VOGONS

Common searches


Using a real MT-32 with DOSBox

Topic actions

First post, by Mikity

User metadata
Rank Newbie
Rank
Newbie

Hi all,
I'm trying to use DOSBox to run some old Sierra adventures under WinXP. I've currently got an MT-32 hooked up and would like DOSBox to use it for sound, is this possible?
Sorry if this is an elementary question, but I'm a tad confused with all these VDMSounds and MT-32 drivers floating around...
Thanks!

Reply 4 of 26, by bailey

User metadata
Rank Newbie
Rank
Newbie

Through Windows, you go to "Sounds and Audio Devices" from control panel. Then choose the "audio" tab and you'll see a list of playback and recording options. Under "MIDI music playback" you can choose your MIDI port that's on your soundcard. For example, with my SBLive, I have the option of choosing "SB Live! MIDI UART". Choosing this option sends all MIDI info through the MIDI port, allowing an external synthesizer to play the tracks. In this case, DOSbox will send the MIDI commands to Windows, Windows sends the MIDI commands through the MIDI port on the SBLive and the MT-32 attached to the SBLive plays the songs.

The only problem so far with DOSBox is it sends MIDI information too fast and causes MT-32's to get "Exc. Buffer Overrun" errors. This only occurs when a game uses a custom sound patch for, obviously, custom intruments and settings. Since a lot of games use this customization feature, a lot of games don't play sound correctly. The only remedy for this right now is to play the games on an actual older machine that isn't too fast for the MT-32.

If only there was a way that DOSBox could slow down how fast it sends the MIDI patches over the MIDI port...

Reply 5 of 26, by robertmo

User metadata
Rank l33t++
Rank
l33t++

I think it would be usefull if you mention all those games here.

I have found these games:

"Darksun 1" - you have to set cycles=180 in order not to have buffer overflow,

"Corporation" (Core Design'91) - you have to set cycles=180 and also set intelligent=true in order not to have buffer overflow.

Reply 6 of 26, by Srecko

User metadata
Rank Member
Rank
Member

Dosbox doesn't have output buffer for MIDI sent to port 330, so data is sent to the system immediately.
Real mpu-401 has status bit which tells program if it is ready to receive new command(which can be followed by data) from it. This status is always on in dosbox, so program may send data too fast (while real mpu-401 would slow it down because program would have to wait until device is ready).

Btw. mouse doesn't work in this game ("Corporation") with CVS! (it does with winXP NTVDM shell)

Reply 7 of 26, by robertmo

User metadata
Rank l33t++
Rank
l33t++

You have to run install.exe and enable mouse.
But I observed buffer overflow while running intro (i.exe) (mouse is not needed for that), not game (corp.exe) cause I don't even know how to play it (but mouse works).
And also if you use cycles=180 it is hard to use mouse

Edit: version from underdogs doesn't have all the files, and has that mouse problem you mentioned

Reply 8 of 26, by Srecko

User metadata
Rank Member
Rank
Member

Tested the intro too, but no problems with emulated mt32. I believe that it receives and handles data instantly (even before dosbox's cpu can continue execution) while real hardware cannot forward data so fast and gets buffer overflow.
Problem is how to slow it down 😦
One solution is,as said, to set low cycles while mt32's instruments are initialised.

Reply 10 of 26, by robertmo

User metadata
Rank l33t++
Rank
l33t++

stellar 7 - works ok here, (i get buffer overflow only when intelligent=true and i run s7.bat, but when intelligent=false it works ok with cycles=6000)
When I run it through install.exe it always works ok.

mortal kombat 1 - I get buffer overflow even on a amd386dx40 with mt-32 connected to scc-1.
bailey: are you able to run it properly on any computer?

btw- bailey: don't forget to turn off and on your mt-32 before every test

just wanted to add that i had buffer overflows with "durksun 1" on a 386 computer, though it works ok in dosbox when i reduce cycles (as said before)

Reply 11 of 26, by Guest

User metadata

Does this only apply to XP? I've got a real MT-32 hooked up to my MPU-401 port, but I'm running under 98. Everything's working fine so far, but I recently got XP and am iffy to upgrade to it if everything's working fine for me at the moment. I know I'll have to upgrade eventually (dang Microsoft), but is it worth it to do it now?

Reply 12 of 26, by Guest

User metadata

Does this only apply to XP? I've got a real MT-32 hooked up to my MPU-401 port, but I'm running under 98. Everything's working fine so far, but I recently got XP and am iffy to upgrade to it if everything's working fine for me at the moment. I know I'll have to upgrade eventually (dang Microsoft), but is it worth it to do it now?

Reply 13 of 26, by bailey

User metadata
Rank Newbie
Rank
Newbie

I just did a clean install of DOSBox and Stellar 7 seems to work now (so old that I had dosbox.ini in a config dir). Anyhow, I also checked dosbox.conf and found nothing about intelligent mode being on or off. Is this something I can just add the conf and it'll toggle that mode? Also, there are some sounds that don't play when going through DOSBox but do play when going through an old machine with an MPU-401. I'm not sure if it's due to the lack of a real MPU-401 or if it's just the emulator itself. I haven't looked into it on this forum. Here is an example of what I'm talking about from Stellar 7. The first recording is from DOSBox. The very beginning of the mp3 lacks the small "scales" part and also the start of the introduction doesn't play the low humming sound. The second mp3 is recording from a P75 with the MT-32 attached to an MPU-401. Listen for the difference at the beginning and the humming sound at the end.

http://blaze.spicelab.net/stell7_1.mp3
http://blaze.spicelab.net/stell7_2.mp3

Guest, I'm using XP with my MT-32 attached to my SBLive. I have an MPU-401, but, alas, no ISA slots in my main computer. Here's something you might want to keep in mind after you upgrade to XP: http://www.midiworld.com/forum/messages2/2803.html

Reply 14 of 26, by robertmo

User metadata
Rank l33t++
Rank
l33t++

intelligent=true
^this option will be available in dosbox 0.62
although you can check how it works in dosbox cvs (unsupported latest version) - you can find it in dosbox developement - it is a sticked thread

this option emulates intelligent mode of mpu-401 (some old games uses it so you can check whether it will solve your stellar problems)

Reply 16 of 26, by 459

User metadata
Rank Newbie
Rank
Newbie

If you have buffer overflow problems with MT-32, if I remember right I have read about it in Quest Studios BBS, I've heard that there is some kind of problem with MIDI SysEx transfer in that unit when playing some specific games. MT-32 just doesn't handle everything properly whereas the slightly more modern CM-32L, CM-64 and LAPC-I models work perfectly with those games. I'd list Utopia, Lotus Challenge and Race Drivin' as such games, probably the aforementioned Mortal Kombat has the same problem.

Reply 18 of 26, by robertmo

User metadata
Rank l33t++
Rank
l33t++

bailey: I have checked your recordings. In my opinion dosbox is playing it the right way. That humming noise appears a few seconds later when the interior of the spaceship apears (it's the sound of its engines or something). I have also tested the game with my mt-32 connected to scc-1 with 386dx40 and also with duron 1400 (i have 1 ISA slot there) and both sound exactly like dosbox. I think it is your Pentium 75 that doesn't play it correctly.