VOGONS


First post, by bjt

User metadata
Rank Oldbie
Rank
Oldbie

Cross-posting from GitHub for visibility.

https://github.com/bjt42/softmpu/issues/31#is … ment-1873335328

My understanding is that the motivation behind adding HDMPI32i port trapping support to SoftMPU would be to support protected-mo […]
Show full quote

My understanding is that the motivation behind adding HDMPI32i port trapping support to SoftMPU would be to support protected-mode games. To my knowledge, there aren't any protected mode games that require SoftMPU's 'Intelligent Mode' emulation. Therefore, I believe the use-case is more specifically to support MIDI redirection (serial port or otherwise) for protected-mode game, as a way of achieving MIDI output on machines without hardware MIDI ports.

While SoftMPU does support MIDI redirection, it's very much an adjunct to the core 'Intelligent Mode' functionality. Furthermore, MIDI redirection is a relatively straightforward case of capturing output to the MPU I/O ports and outputting it instead to the serial port.

SoftMPU also does some fairly hairy things to support 'Intelligent Mode' emulation (for example, reprogramming the RTC, writing to the GDT from within the port trap handler) that while well-tolerated by EMM386/QEMM/possibly JEMM, and the smaller set of older real-mode games requiring 'Intelligent Mode', are likely to reduce compatibility in the general sense. For this reason I regard SoftMPU as a 'load only when needed' proposition.

To summarise, if the specific requirement is for MIDI redirection for PM games, I feel there is a strong case for implementing that in a new, more compatible TSR, likely leveraging HDPMI32i (from what I have read about it).

Reply 2 of 7, by vetz

User metadata
Rank l33t
Rank
l33t

I'd like to add that if protected-mode support could be added for sbmidi as well, that would greatly increase the usability on the MIDI functionality on the early SB cards. I don't have enough slots in my 386 to expand with a MIDI card (and I'd want to keep using my SB Pro 2).

3D Accelerated Games List (Proprietary APIs - No 3DFX/Direct3D)
3D Acceleration Comparison Episodes

Reply 3 of 7, by bjt

User metadata
Rank Oldbie
Rank
Oldbie

Great work!

Reply 4 of 7, by EriolGaurhoth

User metadata
Rank Newbie
Rank
Newbie
jiyunomegami wrote on 2024-01-03, 20:35:

I added protected mode MPU-401 UART support to SBEMU, see SBEMU with protected mode MPU401 UART support
You can still use SoftMPU on a different port, for Intelligent Mode.

Will this work for me if I just want protected mode MPU-401 in DOS and NOT any of the sound blaster features of SBEMU? My PC already has a nice ISA Sound Blaster so SBEMU features are not needed for my setup, but I do have a serial port MIDI device that will only do non-protected mode DOS games with SoftMPU.

I'm really looking for some kind of TSR that lets me map my serial-port MIDI device to a standard MPU port that my protected-mode DOS games will recognize. So far I haven't found a universal solution; only per-game patches that are both extremely limited as well as breaking each game's ability to use any form of MIDI other than the serial MIDI.

Reply 5 of 7, by Cloudschatze

User metadata
Rank Oldbie
Rank
Oldbie
EriolGaurhoth wrote on 2024-08-30, 02:21:

I'm really looking for some kind of TSR that lets me map my serial-port MIDI device to a standard MPU port that my protected-mode DOS games will recognize.

This ought to be do-able, and hopefully someone can make that happen.

So far I haven't found a universal solution; only per-game patches that are both extremely limited as well as breaking each game's ability to use any form of MIDI other than the serial MIDI.

Most protected-mode MIDI support is accomplished using one of just a handful of drivers/libraries, several of which I've provided patched drivers or game executables for (SOL and iMUSE being unshared exceptions). This being the case, I believe a majority of protected-mode titles should already be covered. What remains?

Reply 6 of 7, by EriolGaurhoth

User metadata
Rank Newbie
Rank
Newbie
Cloudschatze wrote on 2024-08-30, 03:13:

Most protected-mode MIDI support is accomplished using one of just a handful of drivers/libraries, several of which I've provided patched drivers or game executables for (SOL and iMUSE being unshared exceptions). This being the case, I believe a majority of protected-mode titles should already be covered. What remains?

Hey Cloudschatze! I've used your patches before and they are awesome, so thank you for that! Perhaps this is a topic for another forum, like the one for MPU-232 : RS-232 MIDI interface, compatible with SoftMPU, but in terms of "what's missing", the iMUSE is a big one (that was the MIDI implementation for Dark Forces/Tie Fighter/X-Wing, right?) Also, out of curiosity, how hard would it be to patch Duke Nukem 3D Atomic Edition (1.5 I believe)? Your patch for Duke 1.3 is fantastic but I'm unsure how (or if) similar changes could be made to the Duke 3D Atomic executable.

Reply 7 of 7, by Cloudschatze

User metadata
Rank Oldbie
Rank
Oldbie
EriolGaurhoth wrote on 2024-08-30, 04:15:

Also, out of curiosity, how hard would it be to patch Duke Nukem 3D Atomic Edition (1.5 I believe)?

I'll have to take a look, but your original suggestion is arguably the better approach anyhow (for exactly the reasons you'd mentioned). If this thread doesn't catch the attention of jiyunomegami, try reaching out directly; I'm thinking/hoping your initial ask might either be do-able with minimal effort, or that perhaps the protected-mode support can be incorporated into SoftMPU otherwise.