General MIDI setup guide

From thecrankyhermit

General MIDI is a music format that was very common in PC games released from 1992 until around 1996.

Windows will play General MIDI as-is, with a competent, albeit unspectacular soundfont. You don't have to do anything special if you just want your General MIDI games to have music and not sound terrible. But you can do better, if you're willing to do some work, and spend $125 (there is a trial version, and it works fine with this guide). In the event that you'd rather not spend money but are willing to do some work, keep reading, there are alternatives, at the cost of some authenticity.

Close to 100% of General MIDI games were composed using a Roland SC-55 sound module, and will sound as they were intended when using one. Roland Sound Canvas VA, to be henceforth referred to as SCVA for brevity, is a commercial product which emulates a later model of Sound Canvas, and contains an SC-55 mode which sounds very close to the real thing when playing the vast majority of computer game music intended for one. Windows' basic MIDI support is also a Sound Canvas emulator, which was jointly developed by Roland and Microsoft, but it is very old, inaccurate, missing features, and uses fairly low quality samples.

Here is a comparison:
SCVA
Windows GS Synth

And a video showing authentic SC-55 playback:
https://www.youtube.com/watch?v=tykAn_7aRP4

To make old PC games sound like that, you're going to have to spend some money, and do some work. I'll help with the work part. Alternatively to spending money, you can use free and more modern (but less authentic) soundfonts through Bassmidi. The following guide will cover both paths.


Get Roland SCVA

If you are going to use SCVA:
You need to purchase Roland SCVA. Or get the trial version. Get it, install it. I'll assume you install it to the default location and are using a 64-bit Windows machine.

If you are going to use a soundfont:
Skip this step.


LoopMIDI

Download and install LoopMIDI. The purpose of this software is to create a virtual MIDI port, which can be routed to MIDI playback software Run it, and you should get a window that looks like this:
Loopmidi.png


Set the New port-name to "To FSMP" (the name is up to you, but this is what I call it for clarity) and click the + icon. It should now look like this:
Loopmidi2.png


You're done configuring LoopMIDI, but you need it to continue running.


Selecting your LoopMIDI port

Next, you need to tell Windows to use this MIDI port instead of the default device. Vista MIDI Mapper can do this (and works fine on Windows 7/8/10).

Despite what the page says, you don't *have* to put it to your system32 folder to use it. You can just double-click the file PLWMidiMap.cpl to use it. Either way, run it, and set "Default Device" to "To FSMP," the port that you just created in LoopMIDI.
Vistamidi.png


OK out. That's it, you're done. You don't need the tool any more, unless you want to change your default MIDI device again.


Falcosoft MIDI Player

Next, you need Falcosoft MIDI Player, to be henceforth referred to as FSMP.

If you have SCVA:
This guide will assume you are using the 32-bit version without a soundfont. The 64-bit version should work fine, but I didn't test it.

If you do not have SCVA:
Get the version labeled "Bassmidi + Soundfont Edition." You may also download the higher quality soundfont from that page (not needed if you are using SCVA); if so, extract it into your FSMP directory.

There are plenty of other soundfonts available that you can use and may prefer to the one on the page. Feel free to search around and experiment. Don't bother with ones that claim to sound like a Sound Canvas though - the Sound Canvas family (including SCVA) does much more than a soundfont does, and any soundfont that tries to emulate one will disappoint. Better to get a soundfont that just focuses on being a good soundfont. The guide will assume you are either using the built-in soundfont, or the high quality one from the same page.


Configuring Falcosoft MIDI Player

Run the MidiPlayer application. You may want to create a convenient shortcut; it must be running whenever you are playing a game with General MIDI.

The main UI looks like this:
Fsmp.png


First, open up the right-click menu by right clicking on the main window. The application is finicky about this, but if you right click in the right spot (the area around the words "Midi Player" tend to work well) you will get this context menu:
Fsmp2.png


This next step is optional and only useful for a handful of games, but there's no reason not to do it. In the context menu, go to Instruments, and select "Use Patch Info for Capital Tone Fallback." Open the context menu again, go to Instruments (the Capital Tone Fallback option should be checked now), and select "Custom Patch Definitions."


If you are going the SCVA route, select these options:
Fsmp3.png


If not, select these options:
Fsmp4.png


OK out. Click the gear to open device settings.


Linking FSMP to SCVA

This section is only relevant if you are using SCVA. Skip to the next section if you are using a free soundfont.

Under the Midi Out section, check "Use Bass (Soundfonts/VSTi)." Under the MIDI In section, check the "Active" checkbox, and make sure "Input Port" is set to "To FSMP."

Your config should look like this:
Fsmp5.png


OK out.

Open the right-click context menu again, and the sub-menu "Bass VST(i) Plugins" should be available. Go into it, and select "VST Instrument." You should get this:
Fsmp6.png


Click the File button. You will get an Open File dialog, in which you must browse to your 32-bit SCVA directory, which should be here:
C:\Program Files (x86)\Roland\Sound Canvas VA

Go there, and select the file "SOUND Canvas VA.dll."
Fsmp7.png


Click the small button with the Play icon, and wait a few seconds, until it becomes this:
Fsmp8.png


Click Option->System.
Fsmp9.png


Change "Map Mode" to SC-55. Hit the Reset button. Check "Autoload at Startup" and "Autoload Last Used Settings File."
Fsmp10.png


Leave "Sound Module Mode" at GS. This enables some extra functions that a few DOS games can use, if they are configured to "Sound Canvas" rather than "General MIDI." Note that games can override this setting; if you are playing a Sound Canvas game and something sounds odd, check that the Sound Module Mode is still GS. A prior game might have changed it to GM for you.

Finally, click the "Save" button, and use the "Save As" dialog window to save your config file somewhere. Doesn't really matter where.

You're done configuring FSMP! Next time you run it, both FSMP and SCVA should remember all that configuration.

Note that if you quit a game abruptly, SCVA may hang on whatever notes were playing, never cutting them out properly. If this happens, simply hit the Reset button here to silence them.

If you are using the trial version of SCVA, it will stop playing music after 10 minutes. To reset the timer, simply click the square stop button, and then click the play button again. If you do this while a game is trying to play a song, the instruments will all temporarily become pianos, but this should correct itself once the game switches to a new song.

The next section isn't relevant to you, so skip over it.


Configuring FSMP for soundfonts

This section is only relevant if you are using FSMP SoundFont Edition.

Under the MIDI In section, check the "Active" checkbox, and make sure "Input Port" is set to "To FSMP."

If you have downloaded the higher quality soundfont, then under "BassMidi Settings," under "Default Soundfont," click the File button. In the Open File dialog, browse to wherever you extracted the soundfont file, and select it.

Your config should look like this:
Fsmp11.png


OK out. You're done configuring FSMP!


Configuring games

Lastly, the games themselves sometimes must be configured to use MIDI. Often they are configured out of the box to use inferior sounding Adlib or Sound Blaster.


Configuring DOSBox games

The method depends on the game, but DOS games typically have an installer program that allows sound configuration. GOG/Steam are sometimes nice enough to provide access to these setups, but sometimes not. There's no hard and fast rule about how DOS games are configured, so brush up on your DOSBox skills. Sometimes the setup programs are not included with the GOG/Steam versions, making it necessary to "borrow" files from an abandonware copy. GOG is usually better about this than Steam.

I will provide a number of examples, and if you understand what these examples are doing and why, the same principles can be applied to other DOS games. In general, DOS games come with a setup utility that will let you configure sound and music devices, which are different things as far as these games are concerned. Sound Blaster was the most popular product of the day, and could serve both functions, but its music playback was synth-based rather than MIDI-based, and usually sounded a lot worse than General MIDI in games that supported both. General MIDI devices are just for playing music. The optimal setting for most General MIDI games will be to have a Sound Blaster as the sound device, and General MIDI as the music device.


Example 1: The Ultimate Doom on GOG

Not so fun fact - the Steam version of the Dooms don't come with any setup program! Fortunately, the GOG versions do, and GOG makes it easy to access it. Not all games on GOG are treated so well.

Download the non-Galaxy version. Don't launch, but go to the directory where you installed it.

-or-

Download through Galaxy. Don't play, but click More->Manage Installation->Show folder.

There should be a shortcut "Launch Settings." Run it, get this screen:
Doom1.png


Music Device is Sound Blaster, as this was more common than General MIDI back in the day. But we want to switch it to General MIDI, because we can!

Sound FX Device is Sound Blaster, and this is fine.

Choose Music Sound Card, and in the menu that opens, switch it to General MIDI. But if you are using SCVA, then Sound Canvas is a bit better.
Doom2.png


The default MIDI port of 0x330 is fine. On returning to the Main Menu, Save parameters and launch DOOM.
Doom3.png


Remember, LoopMIDI and FSMP must both be running BEFORE you start DOSBox. If you forgot, just exit the game, run LoopMIDI and FSMP, and start the game again, no need to reconfigure.


Example 2: Master of Orion on GOG

Sometimes the setup program is included, but GOG does not make it easy to access, and we'll have to do a bit of manual overriding.

Download the non-Galaxy version. Don't launch, but go to the directory where you installed it.

-or-

Download through Galaxy. Don't play, but click More->Manage Installation->Show folder.

Take a look at the files inside. The setup program is INSTALL.EXE. It's a DOS program, you can't run it directly, but you can reconfigure DOSBox to launch it.

There is also a file called "dosboxMOO1_single.conf." This file tells DOSBox what DOS commands to run initially. We're going to temporarily change it so that it runs MOO's setup program instead of the game. Back it up, and edit it using your favorite text editing software. It will look like this:

[autoexec]
# Lines in this section will be run at startup.

@ECHO OFF
mount C ".."
c:
cls
orion.exe
exit

Change "orion.exe" to "install.exe." Save. Now launch Master of Orion. Instead of the game, you'll get the setup screen. Choose the Reconfigure Hardware Options
Moo1.png


Select the General MIDI option (ignore the Roland choices, those are not the same thing as Sound Canvas). Address should be 330, IRQ should be 2.
Moo2.png


Enter to continue. The rest of the settings can be left unadjusted. Save your config, and exit out of the installer. DOSBox should quit.

Now re-edit "dosboxMOO1_single.conf" and change "install.exe" back to "orion.exe." Launch the game, and you should get MIDI correctly.


Example 3: Duke Nukem 3D Classic on Steam

Duke Nukem 3D: Megaton Edition includes a DOSBox-based "classic" option. Choose this option, and you get a setup screen. Go to Sound Setup.
Dukedos1.png


Your Music device is preset to Sound Blaster. We want General MIDI. Choose Music Card.
Dukedos2.png


Pick "General Midi." Or, if you're using SCVA, pick "Sound Canvas" (the difference is subtle, but there). Default MIDI port of 0x330 is fine.
Dukedos3.png


If you like, you can Test Music Card. If all is well, FSMP should animate, and you should hear enhanced music.
Dukedos4.png


You can hit Esc, and Save and launch Duke Nukem 3D.


Example 4: Heretic on Steam

Heretic: Shadows of the Serpent Riders on Steam comes with the setup program, but the Steam launcher doesn't give you a nice way of accessing it. You'll need to launch it manually.

Open the folder containing your Steam library, and open the folder "common." Inside that, open the folder "Heretic Shadow of the Serpent Riders." Move that folder somewhere easier to access, like c:\dosgames.

Get your own copy of DOSBox if you don't already have it. Install it, and launch it.
Dosbox1.png


Mount your dosgames folder to the virtual C drive with this command, assuming you used the c:\dosgames folder as suggested:

mount c c:\dosgames


Dosbox2.png


Navigate to your Heretic directory with these commands (protip - while typing 'hereti~1', type h, then press Tab to autocomplete):

c:
cd hereti~1


Dosbox3.png


Check the list of files with this command:

dir


Dosbox4.png


The BASE folder has what we want, so cd inside it, and dir again.

cd base
dir


Dosbox5.png


That's too many files! But the one we want is in there. Type this command to look for our setup program:

dir *.exe


Heretic2.png


We've found it, it's SETUP.EXE. With some games, it's not so obvious. Sometimes it's not even a *.exe file, so sometimes you will need to also try "dir *.com" and "dir *.bat". But for now, run our setup program by typing:

setup.exe


Heretic3.png


You should know what to do by now. Once it's configured, and you've launched the game to confirm it works, the settings should be saved.

If you want to be able to launch the game from Steam, just move the "Heretic Shadow of the Serpent Riders" folder back where it came from, into the "common" folder of your Steam library. Personally, I prefer to leave it in DOSGames, and use the copy of DOSBox in my own grubby mitts to play it.


Configuring ScummVM games

ScummVM can enhance many games, but General MIDI support sometimes has to be enabled on a per-game basis. Some games on GOG come with ScummVM already configured, but some others come with DOSBox even though they support ScummVM. When a General MIDI game is supported in ScummVM, you no longer need to worry about the game's configuration program; the ScummVM launcher has all of the configuration options there already.


Example 1: Beneath a Steel Sky on GOG

GOG's copy of Beneath a Steel Sky is preconfigured with ScummVM.

Launch the game, press CTRL+F5 to open the ScummVM main menu. Click "Return to Launcher."
Bassscumm1.png


With Beneath a Steel Sky highlighted, click Edit Game.
Bassscumm2.png


Click the Audio tab.
Bassscumm3.png


Make sure "Override global audio settings" is checked.
Bassscumm4.png


Choose a new Music Device. Lots of options, but you want your LoopMIDI audio port, which should be the one that says "To FSMP [Windows MIDI]."
Bassscumm5.png


OK out, launch your game, and you should get MIDI. Again, remember that LoopMIDI and FSMP must both be running BEFORE you start the game.


Example 2: King's Quest VI on GOG

King's Quest VI on GOG is preconfigured with DOSBox, and is missing the setup, so there's no easy way to change the music device from crappy Adlib to General MIDI! Fortunately, you can remedy this with ScummVM. This holds true with most of Sierra's General MIDI era games on GOG.

Download and install ScummVM, if you haven't already.

Launch ScummVM. Click "Add Game." Navigate to the directory where you installed King's Quest VI and click "Choose."
Sierrascumm1.png


Pick a version, DOS or Windows, from the list. Not all games will give you a choice, but in KQ6's case, the biggest difference is how the character portraits look (I prefer the DOS ones personally). Now select the game from the list and click "Edit Game." Check out the Engine tab first, there are some options there that you might find interesting (or not). After that, go to the Audio tab and select your "To FSMP" LoopMIDI audio port as described in example 1.


Configuring native Windows games

No need! Native Windows games will usually automatically pick your default MIDI player, which you should have overridden with Vista MIDI Mapper tool. That said, native Windows games that use General MIDI are uncommon. By the time Windows 95 games started becoming common, most games were using purely digital audio.