Back to home page

DOS ain't dead

Forum index page

Log in | Register

Back to the forum
Board view  Mix view

DOS32AWE - RAM wavetable MIDI possible for PM games under DOS (Announce)

posted by Japheth Homepage, Germany (South), 19.01.2026, 12:04
(edited by Japheth on 19.01.2026, 12:15)

> I tried with HDPMI32 -r and HDPMI32I -r

Don't use HDPMI32i - it runs the clients with IOPL 0, and DOS4GW is NOT compatible with this mode ( SBEMU/VSBHDA use silent hacks to make if run nontheless ).

> No matter what memory manager loaded, tried with himem.sys, jemmex
> and without. But it ramdomly works with cwsdpmi -r and aweutil but not
> usable, sometimes it hangs at Doom start sometimes a bit later up to 10s
> after game start. Until it hangs it plays sfx and MIDI fine.

Very interesting behavior - I couldn't resist to analyse...

The first problem ( which is known and can easily be fixed ) is that DOS4GW is a bit paranoid - it intercepts all exceptions and interrupts and won't route them to real-mode without good reason.

The more severe issue is how AWEUTIL traps MIDI port access. AFAIU that port access triggers an "I/O channel parity error"-NMI ( whatever that is supposed to mean ). This NMI happens AFTER the port access, though, and, what's worse, it may happen in priviledge level 0 ( it an IRQ happened just after the port access instruction ).

This second issue is a problem for HDPMI - it skips NMIs that happen in priviledge level 0. That's bad, because a) AWEUTIL needs the full MIDI output stream and b) this NMI requires some kind of acknowledge - as it seems, bit 3 of port 61h has to be switchen on & off?

A small adjustment in hdpmi made DOOM run with AWEUTIL and MIDI - in real-mode only (that is, with himem.sys, without EMM); a few notes weren't rendered.

---
MS-DOS forever!

 

Complete thread:

Back to the forum
Board view  Mix view
23153 Postings in 2179 Threads, 404 registered users (0 online)
DOS ain't dead | Admin contact
RSS Feed
powered by my little forum