486 SX 25 Mhz, 4 MB RAM, DOS 6.xx:
default EXE freezes with a General Protection Fault
Pentium-S 200 Mhz, 64 MB RAM, SoundBlaster 16 (CT2940), Win98 SE + DOS mode:
Game is playable. Music plays fine, but sound effects stop working entirely after the first bit of the "enter level" sound.
Pentium-S 133 MHz, 16 MB RAM, some Aztec sound card, Win95 DOS mode:
Game is playable. Sound effects stop working entirely after the first bit of the "enter level" sound. Sometimes I didn't get any music at all, sometimes music was present but completely garbled.
Pentium MMX 266 MHz, 160 MB RAM (64 MB usable in DOS 6.22), on-board ESS Audio Drive, DOS 6.22:
Game is playable, but constantly interrupted by pc speaker beeps (probably because the BIOS keyboard buffer is overflowing). Music plays fine, but sound effects stop working entirely after the first bit of the "enter level" sound.
Pentium 75 Mhz, 24 MB RAM, "Media Vision Pro Audio Deluxe/ProSonic/Jazz-16", DOS 6.22:
Game is playable but noticeably slower than on the other systems (debug says "mfr: 78" while scrolling) and often interrupted by pc speaker beeps (probably because the BIOS keyboard buffer is overflowing). Music plays fine, but sound effects stop working entirely after the first bit of the "enter level" sound. Game still misses key releases (Keen keeps walking until I hit and release the key again) and still freezes the system after a short while.
A few general issues I want to point out:
- You really should do something to clear the BIOS keyboard buffer when the game quits. I made the mistake of running the game from DosZip on the Pentium MMX and couldn't quit the game because all the times I hit enter when the game started were still in the input queue after quitting and were now processed by DosZip, so the program keept restarting every time I quit.
- Your game drastically increases sound and music volume at startup. My ears still hurt from the first time I ran it on actual hardware. It would be nice to have an option to customize the volume via config files.
- Quitting the game completely turns off the volume of the OPL chip, so every program I start afterwards that was designed to work on "real" AdLib cards (which didn't have software volume settings at all IIRC) don't play any sounds or music. Well, technically they do play them, but I can't hear anything because the volume is set to 0. The first time I noticed this was on the P133, as I started Wolf3D after running your game to see if the sound card was okay. When I didn't get any music, I thought the sound card had died. But the digitized effects still worked, so this was just because the OPL volume was set to 0 by your program. After re-testing on the same machine, AdLib sound/music works fine in Wolf3D and other games before I start your game and stops working at all after I quit your game. The same happpened on the MMX and the P200 (all systems booted to DOS/command prompt only). This doesn't seem to happen when the game is run directly from Windows 98 (probalby 95 as well), but what's the point of creating a DOS game that needs to be run from Windows to avoid such issues?
Just in case it wasn't obvious: All Pentium machines are equipped with soundblaster(-compatible) sound chips, have the correct settings in the BLASTER environment variable and play sounds and music perfectly fine in other games. I could swap the Aztec and SB16 sound cards and see if the problem is the card or the system, but only if you really need it. I think as long as the sound code doesn't work on any of my systems there's not really a point in tackling that "minor" issue right now.
- The fact that the first bit of the sound effect is played and playback stops after that suggests that your game is using an incorrect IRQ setting (assuming it uses the IRQ and doesn't send the samples directly).
I'm not familiar with FreeBasic, so I don't know if these issues are caused by something in your code or if the cause lies in the FreeBasic libraries.