Page 1 of 1

[Solved] Cannot get Munt (MT-32 emulator) to work

Posted: Wed 07 Nov, 2018 11:21 pm
by RealNC
Hello!

I recently discovered PCem. It's pretty much exactly what I've been looking for in a PC emulator! I've been using DOSBox for a long time, but something like PCem is much more suitable for me.

Everything worked nicely, I've got MS-DOS 6.22 set up and everything, applications and games work perfectly on the emulated 486. One thing I just cannot get to work is getting PCem to talk with Munt. I've set up the virtual midi device and connected it to Munt:

Code: Select all

$ aconnect -lio
client 0: 'System' [type=kernel]
    0 'Timer           '
    1 'Announce        '
client 14: 'Midi Through' [type=kernel]
    0 'Midi Through Port-0'
client 24: 'Virtual Raw MIDI 2-0' [type=kernel,card=2]
    0 'VirMIDI 2-0     '
        Connecting To: 128:0
client 25: 'Virtual Raw MIDI 2-1' [type=kernel,card=2]
    0 'VirMIDI 2-1     '
client 26: 'Virtual Raw MIDI 2-2' [type=kernel,card=2]
    0 'VirMIDI 2-2     '
client 27: 'Virtual Raw MIDI 2-3' [type=kernel,card=2]
    0 'VirMIDI 2-3     '
client 128: 'Munt MT-32' [type=user,pid=17017]
    0 'Standard        '
        Connected From: 24:0
In PCem, "2:0:0" is selected as the MIDI device, which should correspond to 24:0 above.

But Munt is not receiving any MIDI data whatsoever from PCem. In DOSBox, the same happens if I use "mpu401 = uart" instead of "mpu401 = intelligent". Can this be the issue? Is there something I can do to get MT-32 emulation working with PCem?

I'm using Linux (Gentoo.) I've built PCem from the v14 source package, with --enable-alsa.

Re: Cannot get Munt (MT-32 emulator) to work

Posted: Thu 08 Nov, 2018 3:49 am
by RealNC
I solved it. There is a TSR called SoftMPU, which will emulate an intelligent mode MPU-401 from within DOS. I need to load the tool prior to running the game. It seems not all games need this, I just happened to try the ones that do need it (Legend Entertainment games.)

In case anyone else runs into this problem, the tool can be found here:

http://bjt42.github.io/softmpu

With PCem configured to emulate an AWE32, assuming MPU address 330, SB address 220 and IRQ 5, you need to run the tool like this:

Code: Select all

softmpu /mpu:330 /sb:220 /irq:5
Munt now gets MIDI data when starting the game and it works.

Re: [Solved] Cannot get Munt (MT-32 emulator) to work

Posted: Fri 09 Nov, 2018 4:16 pm
by SeanB
I believe there was a feature request at some point to emulate a real MPU-401 device. I'm definitely interested in this, although I realize it may not be a high priority at the moment.

SoftMPU is great, but the trouble is that it requires a memory manager that in turn requires at least a 386 CPU.

Many of the games that need intelligent mode are older games that run too fast on anything newer than a slow 286. I'm thinking for example of SCI0 Sierra games, but there are many others.

Re: [Solved] Cannot get Munt (MT-32 emulator) to work

Posted: Fri 09 Nov, 2018 8:51 pm
by RealNC
I hope it can be added. There's quite a few cases where you need intelligent MPU for MIDI to work correctly.

Re: [Solved] Cannot get Munt (MT-32 emulator) to work

Posted: Fri 22 Mar, 2019 2:29 am
by SeanB
Something else to try here, under the link SIERRA MIDI PORT UTILITY (MT32SB.EXE). This is supposed to patch Sierra drivers to allow them to work in UART mode.
http://www.sierrahelp.com/Utilities/SoundUtilities.html

However, it didn't work for me in PCEm 14 with MUNT on HQ1 and Hoyle Vol 1.

I can see mpu401.cpp in the Dosbox repo. Is this something that would be difficult for a novice to add to PCEm? Or is there some underlying difference in the MIDI passthrough emulation that would make this more complicated?

Re: [Solved] Cannot get Munt (MT-32 emulator) to work

Posted: Sun 24 Mar, 2019 3:06 pm
by Cheez
I'm under the impression that the differences in how PCem and Dosbox approach emulation would make the code mostly, if not totally, worthless

Re: [Solved] Cannot get Munt (MT-32 emulator) to work

Posted: Thu 04 Apr, 2019 3:25 am
by jm2k7
maybe try to use 86box to emulate mt32, while developing pcem to easily emulate mt32.