MT-32 to GM mapping in SCI0-SCI1 games
SCI0 - SCI1 games didn't support GM music (it wasn't a standard back then), apart from some late SCI1 games, for which Sierra released aftermarket GM patches.
Sierra's after market GM patches add GM support to the following SCI1 games:
- Leisure Suit Larry 1
- Leisure Suit Larry 5
- Hoyle 3
- Space Quest 1 (VGA)
- Space Quest 4
- Eco Quest 1
- Conquests of the Longbow (Robin Hood)
- Mixed-Up Fairy Tales
The patch can be downloaded from the Quest studios utilities page
There is no GM support in the following SCI1 games:
- Castle of Dr. Brain
- King's Quest V
- Police Quest III
There are some standard MT-32 instruments, which have been mapped to GM ones. All of the SCI games had custom instruments in their MT-32 music score.
There is a mapping of MT-32 to GM instruments, including custom instruments per game in the SCI engine, taken from FreeSCI. This has been mostly worked on for SCI0-SCI01 in FreeSCI, but it still needs work.
If you want to work on this, here's what to do:
- Start ScummVM like this:
scummvm -d0 --debugflags=Sound,OnStartup
this will make ScummVM display the missing MIDI instruments when you start a game, and it will also make it show the console when the game starts
If we take the theme song from PQ3, for example, we can see that instruments (patches) 68, 70, 72 and 82 are all missing, and that percussion 52 is also missing
* 68 = "B I G Bass" * 70 = "Big Orch " * 72 = "Lefty 2 " * 82 = "Lead SqrJH" * 52 percussion = "IceBreakMS"
The command to use is "map_instrument". It takes 3 parameters: the MT-32 instrument name (with the spaces substituted by underscores, always 10 characters), the GM instrument and the GM percussion (255 = "unmapped")
So, for example, you can set "Lefty 2 " to GM instrument 6 (Harpsichord) with this command:
map_instrument Lefty_2__ 6 255
Or you can set "IceBreakMS" to GM "Crash Cymbal 1" with this:
map_instrument IceBreakMS 255 49
The finalized instruments can then be put inside sci/sound/drivers/map-mt32-to-gm.h
If you want the GM instrument/percussion names, they're in sci/sound/drivers/gm_names.h