I know a bit about Duke Nukem 2, so if you have any questions regarding its codebase, feel free to ask. Here are some things I wanted to share:
- @Cyberdyne: The files in your archive still use ADPCM. You probably uploaded the wrong files.
Edit: I just noticed that some files were indeed converted, but SB_2.MNI, SB_20.MNI and SB_21.MNI still use compression types 2 and 3 (2.6 bits and 2 bits ADPCM).
- You don't need Camato (unless you want to extract the original VOC files from NUKEM2.CMP yourself). Just put the replacement SB_*.MNI files in your Duke Nukem 2 folder and the game will use the external files instead of the ones included in NUKEM2.CMP. This applies to both the shareware release and the registered version of the game.
- Duke Nukem 2 does not make any assumptions on the format or the structure of individual VOC files. It reads the entire file (modulo 65536 bytes) into memory and passes all the data to the playback routines.
- The sound effects for the intro animation weren't mentioned anywhere in this thread. The sound files for that are INTRO3.MNI to INTRO9.MNI.
Edit: These files use compression types 0 and 1, so maybe they don't need to be converted after all.
- ADPCM was used to decrease the size of the digitized sounds. Using uncompressed versions of the VOC files will likely cause the game to run out of memory and crash. Duke Nukem 2 allocates a big buffer of 390,000 bytes at startup and uses that buffer to store all game data (level, sounds, music, graphics etc.). Even if your computer has more memory available, Duke2 will only use this fixed amount. Some levels use up a lot of memory, to the point where using up just a few more bytes would cause a crash. If you don't believe me, play episode 2 level 2 on the hardest difficulty setting and press H to bring up the help screen or hold down N-U-K to use the weapons/inventory cheat. The game will quit to DOS with an invisible "No Memory" error.
- Major Stryker uses the same digitized sound playback routines as Duke Nukem 2. IIRC every single VOC file in Major Stryker uses ADPCM. Monster Bash also uses ADPCM for most/all its VOC files, but the playback routines are not the same as in Duke Nukem 2.
Edit: If only the compression types 2 and 3 (2.6 bis and 2 bits ADPCM) are unsupported by those clone cards, then I'll have to take a look at every single VOC file in these games. The ones I've tested so far all use compression type 1 (4 bits ADPCM).
- Duke Nukem 2 parses the BLASTER environment variable to get the Address, IRQ and DMA values. There are error messages for unsuported settings in the sound blaster code, but Duke Nukem 2 does not show any of these. Supported address values are 0x210, 0x220, 0x230, 0x240, 0x250 and 0x260. Supported IRQ values are 2, 3, 5, 7 and 10. Supported DMA channels are 0, 1 and 3.