Skip to content

Music

Game music in the 1990s came from the sound card’s FM chip or from a MIDI synthesizer, and the same game could sound completely different on each. 2ksbox has both.

Pick it in the machine’s settings, on the Audio page.

Sound card Use it for
Sound Blaster 16 (with FM) Windows 98 and DOS. Almost every game knows it. The default on both
Intel AC’97 Windows XP. The default there
Intel HD Audio Windows 7 and 11
Gravis Ultrasound DOS games that support it
AdLib (FM only) Very old DOS games
Ensoniq AudioPCI (ES1370) Other operating systems: BeOS, Linux, OS/2

The Sound Blaster’s FM chip is a real OPL3 synthesizer, not a sample of one. A DOS game set to “Sound Blaster” or “AdLib” music sounds the way it did on the card.

The OPL3 emulation comes from Nuked-OPL3, a cycle-accurate emulation of Yamaha’s chip, through its Rust port nuked-opl3-rs. Thank you to the developers of both.

Music (MIDI) adds a MIDI port (an MPU-401) with a synthesizer behind it, on Windows 98, XP, DOS and Other machines.

General MIDI (SoundFont) is what a game’s setup calls “General MIDI” or “MPU-401”. 2ksbox includes a sound bank, so it works out of the box. Under SoundFont (optional), you can pick a .sf2 bank of your own, which changes how every instrument sounds.

The General MIDI synthesizer is RustySynth, and the bank it plays out of the box is TimGM6mb, by Tim Brechbill with later work by David Bolton. Thank you to all of them.

On Windows 98, Windows finds the port after you add “MPU-401 Compatible” in Add New Hardware and pick it under Multimedia in the Control Panel. It sounds much better than the FM chip Windows plays MIDI on otherwise.

Roland MT-32 / CM-32L is what a 1990 game means by “Roland”. Many Sierra and LucasArts games were composed on it, and they sound nothing like General MIDI.

The MT-32 needs your own ROM images. 2ksbox doesn’t include anything of Roland’s. Under MT-32 ROMs, pick the folder with your CM-32L control and PCM ROM files. The machine won’t start without them.

The MT-32 emulation is moont, a Rust port of Munt. Thank you to the developers of both.