It’s easier to extract data from old games now than it was at the time, because the tools available now are better in general. Before embarking on this, it’s always worth poking around Jason Scott’s CD archives since there might well be an unpacker for your game already.
Two tools I particularly like are
- QuickBMS — a scriptable file extractor, with support for a huge variety of compression, checksum and encryption algorithms, and a large number of ready-made extraction scripts (see the list on that page, and look through the forums too);
- Kaitai Struct — a binary parser construction tool; this is more oriented towards building parsers that can be re-used, than extracting individual files, but it has good data exploration tools, and of course once you have a binary parser you can extract the data.
It’s common to need to disassemble code in order to understand how data should be read; in such circumstances, disassemblers and reverse-engineering tools come in handy, tools such as
- Radare 2 — more of a disassembly framework, hard to learn but powerful;
- Ghidra — the NSA’s reverse-engineering framework, with a decent user interface (but I haven’t used it for DOS analysis);
- IDA — the long-standing reference, and its free versions provide good DOS support.