First post, by ripsaw8080
- Rank
- DOSBox Author
I recently read a note on the MT-32 compatibility list that Simon the Sorcerer can sometimes play its Roland music incorrectly when switching songs because default instruments and/or controllers are assumed in some cases, and that ScummVM works around the issue. Also, though the compatibility list doesn't mention it, comments in the ScummVM source code state that WaxWorks is similarly affected.
A solution for retro DOS PCs (and DOSBox) seems simple in concept: when the game loads music data, send an "All Parameters Reset" SYSEX command and then delay for a few timer ticks to give the synth some time to process the command before proceeding.
The attached workaround program is what I came up with, which includes support for WaxWorks -- simply extract it into the game directory and start with SIMON.BAT or WAX.BAT as usual. I've only tested with DOSBox and MUNT, but I hope it works on real systems as well.
While analyzing the Simon code, I learned that the floppy version has the ability to play sound effects on the Roland synth similar to what it does on Adlib. However, it is not a configurable option, so I made an alternate version of the workaround program that additionally modifies the game in memory to play the sfx. The alternate is in the ENABLEFX subdir in the archive attachment, and of course it will only work with the floppy version of Simon (the CD-ROM version has digital sfx).
The Roland sfx are instrument patches (panned hard left for some reason) or percussion sounds, and I think the game developer didn't make them an option because they work better in some cases than in others. It might be possible to play Adlib sfx with Roland music, as ScummVM can, but it does not appear to be a simple matter as it was with enabling Roland sfx with Roland music because the game code was not originally designed to initialize and drive more than one sound device.