ScummVM setup guide

From thecrankyhermit

ScummVM is an emulator-like program that runs a number of old computer games, mostly adventure titles, on modern operating systems, often with bug fixes and enhancements.

LucasArts adventures are the biggest focus of ScummVM. These were the first games to be supported, and the name "ScummVM" comes from LucasArts' SCUMM engine. More recently, Sierra games have been a major focus, and stand to gain much in the way of enhancement. Lesser known developers with fairly comprehensive ScummVM support include Adventuresoft, Coktel Vision, and Humongous Entertainment. Numerous other developers' games have ScummVM support, but not as comprehensively.

Several of GOG's titles come bundled with ScummVM, though many more don't even though ScummVM supports those games. GOG does not always configure their ScummVM settings optimally, especially when it comes to music settings. What's even worse is when they bundle with DOSBox, configure the music incorrectly, and include no easy way of fixing it. I will show two ways to invoke ScummVM for configuration; the lazy way, and the power user way.


Using a preconfigured ScummVM (the lazy way)

This only works with GOG titles that are bundled with ScummVM. And a small number of games don't allow this method. Furthemore, this method doesn't allow using ScummVM's MT-32 emulator, and although it's possible to enable it on a preconfigured ScummVM, this requires enough work that you might as well just follow the power user guide.

GOG's copy of Beneath a Steel Sky is preconfigured with ScummVM, and works as an example.

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


With the game highlighted, click Edit Game.
Bassscumm2.png


That's it! Now you can poke around in the ScummVM options. Skip to the next section to see what all those options do.


Setting up a ScummVM (the power user way)

Setting up your own copy of ScummVM is more work, but gives you some advantages.

  • You can keep ScummVM up to date with the latest version for better features and better accuracy. Often the bundled ScummVM in GOG titles is outdated.
  • You can set global settings across all games
  • You can enable the MT-32 emulator, which usually doesn't work in preconfigured ScummVMs
  • Sometimes GOG doesn't even bundle ScummVM when they could


Installing ScummVM

Go to ScummVM.org. Downloading and installing should be straightforward. If you're interested in bleeding edge support, it may be worth it to have two side-by-side ScummVMs; one stable release version, and one daily build version. Don't get them mixed up, and stick with the stable release version for playing games supported by it. Otherwise, the stable release version is all you need.


Setting up the MT-32 ROMs

Many ScummVM games were composed for the MT-32 or CM-32L sound modules, and ScummVM can emulate both, but you will need to acquire ROMs, which are in a state of legal limbo. There are four ROM files relevant to you:

  • CM32L_CONTROL.ROM
  • CM32L_PCM.ROM
  • MT32_CONTROL.ROM
  • MT32_PCM.ROM

The "CONTROL" roms sometimes come in multiple revisions and may have a longer filename to reflect this. For instance, "MT32_CONTROL.1987-10-07.v1.07.ROM." For the MT32_CONTROL.ROM file, you will want the oldest revision possible. Anything with "1987" or "1.07" in the name is fine. SHA1 hash is b083518fffb7f66b03c23b7eb4f868e62dc5a987 if you're savvy.

An explanation on what's going on here. The first revision of the MT-32 contains some bugs, but an unknown number of games actually rely on these bugs to produce the correct sound. Later ROM revisions fix these bugs, but said games won't sound correct using them. The downsides of the bugs are of no consequence when emulating an MT-32. So you actually do want the buggy MT-32 ROM.

The CM-32L supports sound effects in addition to MT-32 music, though this is only relevant for games specifically designed to take advantage of the CM-32L. But it is based on the newer MT-32 revision, and therefore, games which rely on the bugs of the old MT-32 won't sound right on a CM-32L.

Therefore, the above ROM sets will cover all of your bases. The pair of MT32 ROMs, old revision, are your best "default" ROM set, since any game not specifically designed for the CM-32L might depend on their bugs. And the pair of CM32L ROMs should be used for games believed to support CM-32L.

Unfortunately, ScummVM is not smart enough to select the appropriate ROMs for you. Fortunately, there's a way to configure it on a per-game basis, though it isn't obvious. For now, put the pair of MT-32 ROMs in your ScummVM directory. Then create a folder inside the ScummVM directory, give it a name such as "CM32L" or whatever, and put the pair of CM-32L ROMs in it. Make sure that the only ROMs in the ScummVM directory are the two MT-32 old revision ROMs. If you put all four directly in, ScummVM will favor the CM-32L ROMs, and we don't want that.


Optimizing General MIDI

This is optional, but strongly recommended. Follow the General MIDI setup guide, but you can skip the "Configuring games" section.


Global ScummVM options

Launch ScummVM. Click "Options."
Scummgraphics.png


I would recommend setting Graphics mode to OpenGL (No filtering). This setting will be applied across all games as a default setting. This mode tends to fare the best in fullscreen mode; others may not correctly upscale to your full screen size. You can come back to the options menu later if you decide there are other settings you'd like to make global. OK out.


Adding games to ScummVM

First, make sure you have a game installed on your hard drive supported by ScummVM. GOG titles are ideal, even when the GOG version does not use ScummVM.

Some CD-ROM titles aren't designed with full hard drive installation, and files must be copied manually. Refer to this ScummVM guide.

Click "Add Game." Navigate to the directory where you installed the game and click "Choose."
Sierrascumm1.png


If there are multiple versions of the game in the directory, you will be prompted to choose.

Once it's added, select the game from the list, and click "Edit Game" to set game-specific options.

Configuring a ScummVM game

Page by page, here's what the options worth bothering with do.


Game

Bassscumm6.png


You can leave these settings alone. If you really want to, you can change the "Name" field to make the game's title different in your ScummVM launcher (e.g. shorten it to "Beneath a Steel Sky" or even just "BASS").


Engine

Bassscumm7.png


Not all games will have this tab. When they do, there will be one or more options specific to the game. I can't give a comprehensive guide, but some options enhance the game, some don't, some are a matter of preference, and some are irrelevant to 99% of players.

One engine feature of particular interest to me is "Skip EGA dithering pass." This is only an option for games which used Sierra's SCI0 engine, such as King's Quest IV, Space Quest III, and Quest for Glory 1&2. These games were designed for 16 color graphics cards, but their backgrounds were actually rendered internally at 256 colors! The engine only supported 16 color output, and used a dithering pass to convert the 256 color graphics into 16 colors. With ScummVM and with this option checked, you can actually play these games in their "native" 256 color format. They won't magically become VGA quality, and some players will prefer the authentic dithered 16 color look, but I find it a very welcome improvement.


Dithered 16 colors:
Qfg216.png


Non-dithered 256 colors:
Qfg2256.png


Graphics

Bassscumm8.png


If you're going to touch these settings, you probably want to set them in the Options menu rather than the Edit Game menu, so that they change all games instead of just one.

Graphics Mode: Set it to an OpenGL mode if you're having trouble getting proper fullscreen. Other settings tend to request low resolutions, leaving it up to your GPU on how to upscale. OpenGL settings do the upscaling in software. I prefer the (No Filtering) OpenGL setting.

Render Mode: Leave it alone. ScummVM will pick the best option automatically. Most of the time this setting doesn't even do anything.

Aspect ratio correction: This is one option you may want to set on a per-game basis. Many DOS games render at 320x200 resolution, which has a wide aspect ratio of 16:10. When disabled, games will run at their native aspect ratio. Enabling will stretch it vertically to a 4:3 aspect ratio, which is what authentic CRT monitors of the time would have done. But it's surprising how many games failed to account for this, and look better at 16:10. A simple way to tell is to look for objects that are meant to be circular.

Beneath a Steel Sky, for example, does not seem to have been designed with aspect ratio correction in mind, and will look better with aspect ratio correction turned off.


Native 16:10:
Basswide.png


"Corrected" 4:3:
Bass43.png


Loom, on the other hand, does seem to have been designed with aspect ratio correction in mind, and will look better with aspect ratio correction turned on.


Native 16:10:
Loomwide.png


"Corrected" 4:3:
Loom43.png


For games that actually have a native aspect ratio of 4:3, this setting does nothing.


Audio/Music Device

Bassscumm9.png


This option is the raison d'être for this guide. ScummVM is often configured to use Adlib by default, but this is rarely the best setting. The "Music Device" should be set according to the game's music standard.


For MT-32 games
Make sure you followed the Power user ScummVM section, and that you have MT-32 ROMs in the right places. Then select "MT-32 emulator."

If you have an actual MT-32, then select your MIDI port connected to the MT-32.


For CM-32L games
Same as MT-32 games, but there's an additional step. We'll get to that later, in the Paths section.


For General MIDI games
For best quality, follow the General MIDI setup guide, but you can skip the "Configuring games" section. Make sure LoopMIDI and FSMP are running. Select your LoopMIDI port from the list of music devices. If it isn't there, double-check that LoopMIDI and FSMP are running, that they are configured correctly, and restart ScummVM.

If you really don't want to follow the General MIDI setup guide, then select "Microsoft GS Wavetable Synth." It beats AdLib, but you can do better.

If you have an actual Sound Canvas or other MIDI device, then select your MIDI port connected to the device.


For Sierra AGI games
For Sierra's really old PC games, from King's Quest to Manhunter 2 and everything in between, you will want to select "IBM PCjr Emulator. This is also applicable to the PC versions of Maniac Mansion and Zak McKracken, but I'd rather play the Commodore 64 versions of those.


For all other games
For games composed with AdLib in mind, or games for computers other than the PC (such as C64 and Amiga), or games with purely digital audio, just leave this setting alone. ScummVM will select the right option.


Audio/Misc

The rest of the settings are simpler.

Adlib emulator: Leave it alone.

Output rate: Leave it alone.

Text and Speech: Your preference. Doesn't work in a lot of games.

Subtitle speed: Your preference. Doesn't work in most games.


Volume

Bassscumm10.png


Self explanatory. Your preference.


MIDI

Bassscumm11.png


GM Device and MIDI gain seem to be vestigial and don't do anything. I haven't bothered with the SoundFont setting, because FSMP offers more robust Sound Font options than I expect ScummVM possibly could. It might be worth checking out if you like Sound Fonts and want the convenience of ScummVM handling them without the need to run LoopMIDI/FSMP separately, but you're on your own if you want to go down that route. That leaves one other setting, which is sometimes useful.

Mixed AdLib/MIDI mode: Enable this for The Secret of Monkey Island (floppy versions) and Monkey Island 2. These games have better sound effects in AdLib mode, but better music in MT-32 mode. Originally, you couldn't have both at the same time, but this setting allows it. I don't know of any other games where this setting does anything.


MT-32

Bassscumm12.png


If you're not using an external MIDI device, you can ignore this page.

True Roland MT-32: Enable if you're using a real Roland MT-32 or CM-32L. This prevents the game from sending it GM information.

Roland GS Device: Pointless, unless you have a Roland GS device and really want to use its MT-32 mapping mode (a very poor substitute for a genuine MT-32) for some reason.


Paths

Bassscumm13.png


For CM-32L games, you want to change the "Extra Path" to the location where you put your CM-32L ROMs, so that your game will use CM-32L mode instead of MT-32 mode and enable the extra sound effects.

Leave the other settings alone, unless you want to change your save game file location.