Sunday, March 21, 2010

Tutorial : How to Get the Roland MT-32 working with DOS Games

As a followup to my previous post about the Choices for Roland LA Synthesis, I have decided to write a tutorial on how-to make DOS games work with them. This tutorial assumes that the reader has or will have a real Roland MT -32 or one of the compatibles listed in my previous post on the subject. This tutorial is not intended for those using the MT-32 emulator called Munt or any other hardware device that claims MT-32 compatibility.

With that out of the way, there are two guaranteed methods get your MT-32 or compatible working with DOS games. Method 1 is by using a hardware Roland MPU-401 Midi interface. Method 2 is using DOSBox.

Method 1 : Hardware Midi Interface

(a.k.a. the Intended Way). Ah, if you are going the Method 1 route, you are truly adventurous and deserve respect for attempting it. You have your MT-32 or compatible unit, probably acquired off eBay or Yahoo Auctions Japan. Now you need a midi interface for the game to communicate with the module. (That is what those DINs on the back of these modules are for.) Since we are playing DOS games on an IBM PC or compatible, you are going to need a midi interface in the machine. (Atari ST users had midi interface ports with DIN ports built into the system, a design feature that never made it into the PC world.) Moreover, most of the DOS games of the MT-32 era, which runs from 1988-1992, assumed that the interface would be a Roland MPU-401 interface.

A bit of back-history here: Roland, makers of the MT-32, designed an interface box called the MPU-401 Midi Processing Unit so a computer could communicate with midi modules, whether its own or from a competitor such as Yamaha, Casio or Korg. The original MPU-401 could have been released in 1984 but would certainly have been available in 1985. The Unit is pretty large and looks like this:



It is a little hard to make out from the picture, but the Unit has two MIDI OUT ports. The rest of the ports are unimportant to a gamer. You have to connect a 5-pin DIN cable from the MIDI OUT of the Unit to the MIDI IN of your MIDI module or keyboard. On the other side, which is not visible, there is a DB-25 pin female connector.

The MPU-401 Midi Processing Unit was not tied to any specific computer. Roland made adapter cards and cartridges to allow the Unit to work with Apple IIs (MIF-APL), Commodore 64s (MIF-C64), IBM PCs (MIF-IPC & MIF-IPC-A) and most popular Japanese PCs. These MIF cards/cartridges only contained some simple glue logic to give the computer access to the data port and command/status port on the Unit. The adapter card/cartridge connect to the Unit via a mostly standard DB-25 male to male cable.  The only difference between a standard cable and an MIF-IPC or MIF-IPC-A card is that pins 13 & 25 (ground) are connected in the cable.

If you obtain an MPU-401 Unit, it is useless without an adapter card. As previously mentioned, Roland made two for IBM PCs and compatibles, the MIF-IPC and MIF-IPC-A. The MIF-IPC came first and is designed for bus of the IBM PC and IBM PC/XT (also works with the IBM PC Portable should work with most 8088 processor-based PC compatibles). It is an 8-bit ISA card, and does not reliably work properly with an IBM PC AT or faster computer (essentially anything with an 80286 processor or better) The MIF-IPC-A is the simplified version and is compatible with the IBM PC, IBM PC/XT & IBM PC AT. It is also an 8-bit card and is not bus-sensitive, so it should work in any ISA slot of any IBM-PC compatible, regardless of CPU speed. The MIF-IPC-A is an incredibly simple card, someone with the proper skills and a few parts could easily reproduce it on an ISA prototype board. The schematic is here:



Although the Unit was developed and sold long before Roland convinced Sierra On-Line to support its MT-32 in King's Quest IV and other high-profile 1988 games, Sierra used the MPU-401 to provide the interface between computer and module. Sierra sold the MT-32 to its customers so they could hear great music in its games, and also bundled a MPU-401 interface.

By this time, Roland had made an IBM PC-specific product called the MPU-IPC. This product contained an 8-bit ISA card, which contained the midi interface, and a smaller breakout box which contained the connectors for midi modules. A DB-25 pin cable connected the two. Often on ebay you may see either the card or the breakout box but not both. Both are required to communicate with an MT-32 or compatible. If you have the interface card, you can make a midi output port with a few electronic parts. Like its immediate predecessor, the MPU-IPC should work in any computer with an available ISA slot.

Before I continue with my description of MPU-401 interfaces, I must talk for a moment about setting up your game and card to work with the interface. The MPU 401 interface on an IBM PC or compatible requires certain system resources, two input/output ports and one IRQ. The previously mentioned cards are all wired to use I/O 330/331 and IRQ 2/9. This cannot be changed absent soldering and trace cutting on the cards. As this was the default, games expect that the interface will use these ports and IRQ. Later cards allow the user to change these resources, but I always say that you should keep to the default. All you need to do with your game is to set it to use the MT-32 whenever offered (chiefly for music but sometimes for sound effects) and it will work. You do not need to load any drivers (outside of the game) or type any strings in your AUTOEXEC.BAT file.

The next year, Roland introduced two new MPU-401 compatible products, the MPU-IPC-T and LAPC-I. The first was a cost reduced version of the MPU-IPC and and for our purposes, is identical to it with one exception. This was the first interface product whereby Roland allowed the user to change the settings for the system resources to be used via jumpers. If you obtain this card, you should make sure the jumpers are set to use the default system resources I/O 330/331 and IRQ 2/9. The proper settings are illustrated in the manual, which is available at Roland's US site, backstage.rolandus.com/login.php, after a free registration. Also, there is a schematic diagram in that manual that will allow you to make a MIDI OUT port for either the MPU-IPC or MPU-IPC-T if you don't have the breakout box.  Finally, the breakout box for the MPU-IPC will work with the MPU-IPC-T and vice versa. The MPU-IPC-T looks like this (the MPU-IPC looks almost exactly the same):



The second product, the LAPC-I, combines the MPU-401 MIDI Interface with the circuitry from a Roland CM-32L module all one one 8-bit ISA card. It is a perfect solution for MT-32 DOS games except for those (few) games that utilize bugs on the first generation MT-32 modules. It also allows you to change the settings, so please refer to the manual (available at Roland's US site) for the proper settings. All the caveats that I mentioned in my previous post on the subject of the Roland LA Synthesis devices apply here. This card is 13" long, so your case and motherboard cannot block it. It needs a -5v power source from the PSU, which may not be available on all computers. It also tends to go for very high prices on eBay. If you want to use an external module, such as a Roland SC-55 or MT-32 for the MIDI messages, you will need the MCB-1 breakout box.

In 1991, Roland released the SCC-1 GS Sound Card. Similar to the LAPC-I, the card combines the MPU-401 MIDI Interface with the circuitry from a Roland CM-300 module all on one 8-bit ISA card. This card should be compatible with all IBM PCs, and is much smaller than the LAPC-I. To connect to external midi modules, it uses mini-DINs on the card bracket. You will need a mini-DIN to DIN adapter to connect to an MT-32 or compatible. Two were included with the card, but if your eBay purchase did not come with them, you will need to find a substitute. No one makes these adpaters, but Creative Labs included compatible adapters on their Sound Blaster Live! Audigy and X-Fi card that came with I/O Drives that fit inside a 5.25" computer case drive bay. I do not believe that Roland or Creative carry any spares in stock anymore. Here is the pinout to make an adapter cable yourself (red is ground) :


The last true Roland MPU-401 Midi Interface card was the MPU-401AT, released in 1994. This contained the interface on a small 8-bit ISA card. To communicate with external modules, it uses the same mini-DIN ports of the SCC-1. The above diagram should also work fine if you lack the proper adapter cables. The card comes with no midi module circuitry but has a 26-pin Waveblaster port to connect a midi daughterboard. Roland offered combinations of the card with its SCB-7/SCD-10 daughtercard (containing the GM-compatible circuitry of its SC-7 module) and the the SCB-55/SCD-15 daughtercard (containing the GM/GS compatible circuitry of an SC-55ST). The combinations were sold as the SCM-10AT (GM) and SCM-15AT (GS/GM). Any other waveblaster-compatible daughterboard, such as the Yamaha DB50XG and Creative WaveBlaster I or II will work well here. The SnR is better on this card than many Creative cards (which created the waveblaster standard). The MPU-401AT looks like this:


The following third party MIDI interfaces or devices have been confirmed to contain the Roland MPU-401 chipset or are 100% Roland MPU-401 compatible :

CMS CMS-401
CMS CMS-444

Midiman MM-401%

Music Quest MQX-16(s)
Music Quest MQX-32(m)*

Voyetra V-4000
Voyetra V-4001
Voyetra OP-4001
Voyetra V-22/24

* - This card has been observed to cause freezes or incorrect MIDI playback in Origin Systems games like Wing Commander and Ultima VI.

% - Has been reported to have problems with working consistently with Legend Entertainment's Gateway compared to a Roland MPU-401.

Music Quest also released a pair of basic MPU-401 compatible cards.  The pure 8-bit card looks like this :


The dongle has one MIDI in and one MIDI out.  The jumpers can select IRQ 2, 3, 5 and 7, and the jumper marked P controls the address.  If the P jumper is covered, the address will be at Address 330, and if removed it will be at address 300.

There are two ROM versions for this card.  The earlier version is v.004 and the later version is v.010.  Fortunately Music Quest marked their ROMs.  The earlier ROM will not work with Wing Commander or Wing Commander II and may have trouble with other Origin games that support the MT-32.  The later ROM will fix the problem, but requires desoldering and replacing the old ROM.   Here is a shot of a card with the old ROM for reference purposes :


Music Quest later released a version of this card with a small 16-bit connector.  All the connector did was allow you to use IRQs 10, 11 or 12.  The rest of the options remained the same as the older card.  The ROM is embedded into the microcontroller chip, and as it is a later card it would not have the problems of the ROM v.004.  


If you don't have the dongle for the card, do not despair.  You can make a dongle like the one in the second picture with this handy diagram :


A final word about other MIDI interfaces, do not bother with them. The above choices are your only guaranteed choices for DOS Games using MT-32 or compatibles. The reason why? These cards are the only cards known to guarantee to implement the MPU-401 Normal (a.k.a. Intelligent) Mode reliably. DOS Games that support the MT-32 and compatibles frequently use this mode when setting up the interface or communicating through it. Most later games, including games that are GM compatible, use the MPU-401 UART mode, which is much simpler to implement in "MPU-401 compatible" hardware. The Sound Blaster 16 and up only support MPU-401 UART mode, making them unsuitable as a reliable interface for older DOS Games with MT-32 support. The older Sound Blasters do not support MPU-401 at all. Even later Roland products, including the Roland S-MPU, S-MPU II, SCP-55 or RAP-10AT do not support intelligent mode or have problems with it. Some MT-32 DOS games will work with an interface that supports Normal/Intelligent Mode, but a true MPU-401 interface will ensure hassle-free operation.

There are cards that try to fool games into thinking that an intelligent MPU-401 interface exists by sending an ACK byte in response to every command to the MPU-401.  However, the actual command sent to the MPU-401 is not processed.  This works for most games, but not games from Legend Entertainment, whose MPU-401 usage cannot be defeated by such simple tricks.  Cards with this functionality incldue the Ensoniq Soundscape ISA series, the Yamaha SW-20PC and the MediaTrix AudioTriX Pro.

Even if you have a true MPU-401 Interface, if your computer is too fast, your game may be sending MIDI data to the MT-32 or compatible faster than the module can handle. This is the cause of the dreaded Exec. Buffer Overflow (first gen MT-32s only) and the Exec. Checksum Error (all modules). The first is very common in faster computers, the second is a lot less common. Expect either issue if you are using an MT-32 with a Pentium III computer (the last that generally had ISA slots as standard).

Method Number 2 : DOSBox

(a.k.a. the easy way out). DOSBox is an PC emulator that concentrates on getting DOS games to work. It emulates a lot of video and sound cards. It also emulates an MPU-401 interface, including the Normal/Intelligent Mode. For MT-32 and compatibles and GM/GS/XG modules, the emulation is superb. Considering that DOSBox takes the need for a Roland MPU-401 Interface and a computer with ISA slots out of the equation, it is easy to see why people prefer it. DOSBox is mostly a matter of configuring software, but a Midi Interface is still required.

This part of the guide will only consider DOSBox MIDI interface support in Windows operating systems, since that is all I am familiar with. In order to work with DOSBox, your sound card must have its MIDI drivers installed in Windows. On-board sound chips on modern motherboards tend not to support external midi. If you have a chip or a sound card that does, it generally will connect through the DA-15 game port. If you have a midi/gameport in your computer or on your card, you will need a gameport midi cable. Creative Sound Blaster cards also can use the I/O Drives or external breakout boxes that have midi ports on them.

If your audio device will not support an external midi connector, then you can use a USB MIDI adapter. However, you have to be picky, as not all USB midi adapters are created equal. I have used a Roland UM-1X for years and never have had a problem. Unfortunately it has been discontinued. Some USB MIDI adapters have had problems being able to transmit system exclusive messages to an MT-32, which is what DOS Games use create custom sounds with the MT-32.

Having obtained some kind of MIDI interface with support for external modules, connect the MIDI OUT cable to the MIDI IN port on the MT-32 or compatible module. That completes the hardware assembly. Having properly installed your drivers for your midi product, you need to set the Windows midi device to use external interface. In Windows XP, go to your Control Panel and click on "Sound and Audio Devices". Under the "Audio" tab, go to the Midi dropbox and select the name of your external device. Usually it is quite evident. Press the OK button. Under Windows 98, go to your Control Panel and click on "Multimedia". Under the MIDI tab, in the Single instrument box select the name of your external device. Press the OK button. This completes your Windows configuration.

Since Microsoft, in its infinite wisdom eliminated the selection of midi devices in the Control Panel in Windows Vista & 7, you have to select the MIDI device to use program by program. To do this in DOSBox, start DOSBox up and enter the command "mixer /listmidi". This command will show you all the MIDI devices available in your system. Make a note of the number next to the name of the external midi device. Go to your dosbox.conf file, and under [midi] there will be a line that says "midiconfig=". Enter the number of your MIDI device as DOSBox reported it after the =, save the configuration and DOSBox will use your external MIDI interface instead of the Windows default midi. If the external device is the only other midi device other than the Windows GM/GS synthesizer, then the number will be 1.

DOSBox configures its settings through the dosbox.conf (really a text) file or through a shortcut under its program folder in the start menu. Open the config file up and make sure [midi] that "mpu401=intelligent" is there. It should be by default I believe. Once that has been done, start DOSBox and configure your game to use MT-32 for its music and/or sound effects. Exit your game's configuration program, start the game and get ready to listen to some great music. Watch the MT-32 display for midi messages and make sure that there are no errors in transmission. If you are getting buffer overflow errors on a first gen MT-32, adjust the machine cycles down by using Ctrl F11. 2000 cycles should be good to start, and if you are not using a joystick you can increase them later in the game.

Currently there is a good Roland MT-32 and CM-32L emulator called Munt.  Munt is a device that emulates an MT-32 or CM-32L in software on a modern machine.  It requires the PCM ROM and Control ROM from an MT-32 or CM-32L.  You should dump your own, or if you own one of these devices you can find it without too much difficulty on the Internet.  Once installed and configured with the appropriate ROM set, it will show up in DOSBox's mixer /listmidi and you can use it by setting the MIDI device.

12 comments:

anotherone said...

Thanks for this informative rundown of Roland products.

Quest Studios has lots of revised MIDI files from old games, a tutorial on how to patch old Sierra games, mode switching tools etc.

They also have a dedicated MT-32 section.

I don't want to give a link here, just Google for Gabriel Knight and Quest Studios )

( a user from Germany, equipped with an SC-55, Audigy 2; XP + an old DOS6/7 computer. Still have lots of old DOS games... )

Great Hierophant said...

Yeah, Quest Studios is *the* resource for the Roland MT-32 and SC compatible devices. Much of the information from this post has been gleaned from its forums.

www.queststudios.com

Kenneth said...

Excellent guide!
Bookmarked!

bjt said...

There's now a third method - SoftMPU is a DOS TSR that allows games that require intelligent mode to work with a Sound Blaster's MIDI interface. Please see http://bjt42.github.io/softmpu for more details.

Anonymous said...

Being a little picky here, but you have used the word "dongle" incorrectly in this instance. A dongle is a software security device; what we have here is known as a breakout cable, or interface adaptor. Great blog, btw.

Chris Nova777 said...
This comment has been removed by the author.
Chris Nova777 said...

im looking to find either an MQX-32M or either of the multiport Voyetra interfaces, V22 or V24, these interfaces really arent designed for DOS gaming.. they are designed for composing music with many synthesizers + modules in DOS! see my page here: http://www.oldschooldaw.com/forums/index.php?topic=2368.0 id like to use this app to work on my own music... but to do so with more than 1 midi in + 1 midi out, i need one of these 3 interfaces which allow the program to use more than 16 channels (1 port) please respond to THIS comment if youve got one of these interfaces you can part with. ive enabled email notification;)

Chris Nova777 said...

for more information on the voyetra interfaces please see my post here:
http://www.oldschooldaw.com/forums/index.php?topic=2368.msg2551#msg2551
it explains the the v22 + v24s interfaces are *NOT* mpu-401 compatible unless
they have a smaller daughterboard attached to the card which alters the configuration of the card
to 'snap back' to the old mpu-401 configuration. it also explains the entire reason behind
the v22 + v24s cards were designed to break away from the mpu-401 standard in order
to provide more functionality that was unable to be achieved using the companies flagship product
voyetra sequencer plus gold (such as muting tracks while playing.. etc) its all in the detailed product
announcement i linked above.. retrieved from a newsgroup post dated in October + November of 1990.
the v22 + V24s interfaces were designed to be used with v4.0 and up of SEQ+Gold.. the program
before version 4 was stuck requiring mpu-401 intelligent operation and as such was not able to offer multiple output ports
+ other extended features that they added with the release of v4.0 in Nov.1992

Henry McHenry said...

correct me if I'm wrong but then MT32 + Midi to gameport cable + sound card with gameport + softmpu is all I'd need.

Great Hierophant said...

Yes, that is all you need, but your sound card has to be a Sound Blaster or on the list of cards supported by softmpu : https://github.com/bjt42/softmpu/wiki/Compatible-Sound-Cards

Piters Lair said...

MT32 + Midi to gameport cable + sound card with gameport like SB Ave 64 gold will be enough to listen music from games like Sierra Games etc in raw 6.22 DOS.

Or mpu is neeted in raw dos?

Alesiofrancesco@alice.it said...

Hi can i ask for a diagram of midi box of ibm ps/1 to try to make an artigianal but worked interface for my mt-32