Sound

From Stunts Wiki
Revision as of 03:10, 15 December 2020 by Duplode (talk | contribs) (→‎MT-32 setup for DOSBox: malformatted link)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

Stunts can be configured, through its SETUP.EXE installation tool, to use a number of different sound devices. This article provides notes on getting them to work in modern systems.

Overview of sound devices

Below is a summary of pros and cons of the different devices for playing Stunts under DOSBox:

  • Sound Blaster sound, perhaps the most popular option, works under DOSBox with the default settings. One issue with it is that, with all versions of Stunts, car skidding sounds in grass, dirt and ice are missing. The fact that the same problem happens with MS-DOS running Stunts in QEMU suggests it isn't merely a DOSBox bug.
  • While PC speaker sound is the least refined option, it works perfectly under DOSBox with no need of special configuration, which makes it a good fallback, as it was in the DOS days.
  • Roland MT-32 is, at least according to this writer's ears, the best sounding option by some distance. If you want to try it, there are a few things to be aware of. Firstly, there is a fair bit of extra configuration to be done, which is described in the "MT-32 setup for DOSBox" section below. Secondly, since the setup requires sending MIDI data to be turned into sound outside of DOSBox, gameplay videos recorded with Ctrl+Alt+F5 will not have sound (adding it back would require recording the audio separately and then syncing it).
  • Tandy sound is basically an improved PC speaker (the music, in particular, sounds adorably bright). Unfortunately, this driver has the same skidding bug that affects Sound Blaster sound. In any case, add the following to dosbox.conf if you want to use it (without this setting, the emulation will be imperfect):
    [speaker]
    tandy=on
    
  • Ad Lib, as far as Stunts with DOSBox is concerned, sounds identical to Sound Blaster.

MT-32 setup for DOSBox

DOSBox (or at least its official builds) doesn't provide a software synthesizer to play MIDI; rather, it relays the MIDI data to a MIDI device available in the system. The relevant section in dosbox.conf typically looks like this:

[midi]
mpu401=intelligent
midiconfig=128:0

In particular, the midiconfig option tells DOSBox the ID of the MIDI device to be used. A list of available devices can be found with mixer /listmidi in Windows, or pmidi -l in Linux.

As for the MIDI device itself, the next best thing to an actual Roland MT-32 is munt, a software synthesizer which emulates the MT-32. Install munt (it is available for various operating systems), obtain the MT-32 roms (the relevant files are typically named MT32_CONTROL.ROM and MT32_PCM.ROM) and configure munt to use them. Besides adding the relevant settings to dosbox.conf, you'll have to start munt before running DOSBox.

(For a tutorial on setting up munt plus DOSBox on Windows, see this video by PhilsComputerLab.)

It is worth mentioning that, generally speaking the MIDI soundfonts typically provided by Linux distributions to be used with software synthesizers such as Timidity++ don't work well with Stunts. In particular, car sound effects aren't adequately handled.

If the Stunts version you are using is Brøderbund 1.1, there is one extra step to do. The Brøderbund 1.1 MT-32 drivers don't work well (at least not within DOSBox), leading to various sound glitches. As originally reported by viniciusferrao, that can be fixed by replacing the MT15.DRV file by the file of the same name from the Brøderbund 1.0 version of Stunts.

Virtual machines

Getting sound to work correctly when playing Stunts under an actual DOS system (be it MS-DOS or FreeDos) in a virtual machine can be difficult. User:Duplode has tried several combinations of settings with VirtualBox, none of them actually worked. The only success was with QEMU and Sound Blaster (QEMU also offers PC speaker emulation, but the results with Stunts are poor). Making it work required launching QEMU with the -soundhw adlib command line option and adding SET BLASTER=A220 I5 D1 H5 T5 to AUTOEXEC.BAT (credit to this post by neozeed).