Pages: [1]   Go Down
  Print  
Author Topic: MPU-401 ACK Emulator/Facilitator  (Read 866 times)
0 Members and 1 Guest are viewing this topic.
Great Hierophant
Senior Member
*
Offline Offline

Posts: 1,003



View Profile
« on: July 22, 2010, 07:55:09 PM »

For those of us who only have a UART compatible MPU-401 interface, a software solution must do for DOS games that require a true MPU-401 outside of DOSBox. 

In the most basic description, a DOS game that supports the MPU-401 interface should do the following when it starts up to send midi data:

1.  Send command 3F to I/O 331 (the Command/Status Port) to put MPU-401 into UART mode.  
2.  Read FE from I/0 330 (the Data Port) to ensure the MPU-401 has ACKnowledged that it is now in UART mode.
3.  Send Midi data to I/O 330.  

The UART MPU-401 Compatible interface on a Sound Blaster 16 and above can handle #1, #2 and #3.  The Sound Blaster will also send an ACK if the reset command (FF) is issued.  If this is all a game does, there is no problem.  If it sends one of the other 254 possible commands (not all used of course), then the interface will not respond with an appropriate ACK.  If the game pauses sending midi data until receipt of the ACK, then the midi will not work. 

Some hardware emulations (Ensoniq Soundscape) will actually send an ACK regardless of what is written to the command port.  Apparently this seems to do the trick with game software.

Is it possible to write a memory-resident DOS program that will monitor port 331 and be able to display the ACK byte on port 330 when the game looks for it?  
« Last Edit: July 23, 2010, 12:46:45 AM by Great Hierophant » Logged

endre1952
Senior Member
*
Offline Offline

Posts: 397


View Profile
« Reply #1 on: July 23, 2010, 05:49:17 PM »

You're talking about a possible solution for games working only in intelligent mode, right? It would be cool to have perfect game compatibility on an AWE32 (with true OPL3 chip). I'm planning to build a second retro machine, probably a 486 DX-100 (gotta have that turbo switch), but don't have another Roland midi interface card yet.
« Last Edit: July 23, 2010, 06:25:59 PM by endre1952 » Logged
Pages: [1]   Go Up
  Print  
 
Jump to: