MPU-401

Discussion of development and patch submission.
Post Reply
SeanB
Posts: 12
Joined: Wed 07 Mar, 2018 12:57 am

MPU-401

Post by SeanB »

I know I've brought this up before. I'd like to use this thread to discuss how to achieve this. The issue is that MIDI devices are currently restricted by the presence of a wave blaster header on your sound card. This causes two major issues.

1. It is not possible to use earlier sound cards like SB 1.0 with MT-32 or to run any MIDI device without a sound card.
2. MPU-401 Intelligent mode is not available in native hardware. This is necessary for early games with MT-32 support. SoftMPU is a partial solution, but this comes with more memory overhead as well as CPU requirements that are not always appropriate for games of that era.

To tackle these problems separately, I see #1 as easier to solve. I see that mpu401_uart.c currently checks uart_mode in the current config. Would it be possible to separate uart_mode, as well as MIDI out device from the sound card entirely? This change would also need to be made in the config GUI. This would allow you to select a MIDI device from your host OS, including MT-32 / Munt, without needing to be compatible with your sound card selection.

This would NOT solve the issue of earlier games (#2), as UART mode wouldn't help with those. When I compare the Dosbox functionality at mpu401.cpp, I can see that it's obviously more complex. As a beginner programmer (at best), I can see that it seems to be passing MIDI events after checking and waiting for certain states. Sorry if that is oversimplifying things. Is this something that would be difficult to implement? If no one else is interested in working on this, is it something that would be possible for a beginner to submit in small patches?

I ask because I care! PCem is clearly the best, most accurate emulator out there, but there is a rather large gap in this area - playing late 80s / early 90s games accurately with the best sound hardware available in that era. I hope I've made this clear and moved the conversation in a positive direction.
Siggy12
Posts: 54
Joined: Sat 21 Jul, 2018 6:04 pm

Re: MPU-401

Post by Siggy12 »

Second to this!!
Please add MPU-401 is really important for DOS environment for attach to MUNT Emulator externally without use the SOFTMPU emulator on the guest that is impossible from machine 80826 and 8086 and to be honest I don't know how it run on 386 too causing is a board emulator to install on guest.
SeanB
Posts: 12
Joined: Wed 07 Mar, 2018 12:57 am

Re: MPU-401

Post by SeanB »

Siggy12 wrote: Tue 16 Mar, 2021 8:26 am to be honest I don't know how it run on 386 too
Did you follow the instructions here?
http://bjt42.github.io/softmpu/
Siggy12
Posts: 54
Joined: Sat 21 Jul, 2018 6:04 pm

Re: MPU-401

Post by Siggy12 »

Hi SeanB!
Thank You for your help,
Yes!!! I saw that my problem is run it on MSDOS 5.0 and 80286 machine and in this case
the emulation of mpu-401 board inside Pcem became really
important for be able to link externally with MUNT.
SeanB
Posts: 12
Joined: Wed 07 Mar, 2018 12:57 am

Re: MPU-401

Post by SeanB »

In case anyone is looking for this feature without using 86box, it can also be found in IBMulator (limited to PS/1 models):

https://github.com/barotto/IBMulator/releases/tag/v0.12
Post Reply