ux-3 wrote:Curiously, the SB16 has both irq5 and irq7 reserved in bios. Don't see where the conflict would sit.
It's not a system conflict, rather, it's a problem with the game's MIDI interrupt handler. Per NewRisingSun: "On the SB16, the single Interrupt Request Line is shared both among DSP and MPU interrupt requests. If it doesn't work without SBMPU401, it's because the game is not prepared for IRQ line sharing (which wasn't necessary before the SB16 came out). All SBMPU401 does is disable the MPU IRQ completely."
I am still puzzled by that hanging notes issue. I have tried two AWE32s in Hexen warp 02 and either I am just too stupid to notice or it doesn't happen. Others report that it does happen quickly. If it doesn't happen here, then perhaps there is another factor that has do with it?
As far as the "hanging notes issue" is concerned, there seem to be two types of hanging notes - legitimate, and illegitimate. Hexen and Doom (and others I'm probably not aware of) fall into the latter category.
Take a look at a "Hexen -warp 02" hang:

See those A7 notes? They shouldn't exist. Basically, the card (in this case, a CT2940) appears to be re-reading the velocity byte from the last legitimate note (E2) multiple times, from which a bunch of spurious notes are generated. Since Note Off messages for these bastard notes don't exist, they simply hang. As of yet, I'm not sure why this problem occurs.
For an example of a legitimate hanging note, try an AWE32 with X-Wing CD. Though mostly inconsistent, the occasional hanging/dropped notes do occur. In this case, I believe the issue to be both related to how the game handles MIDI, and either an undersized FIFO buffer on the AWE32, or the fact that its DSP may not be fast enough to handle everything being thrown at it (MIDI + PCM).
Furthermore, both the DSP version and the bus interface chip appear to be factors with both types of hanging. You didn't experience the Hexen hang with your AWE32s because the cards with the CT1747 interface chip don't exhibit this problem, nor do the SB16's with the CT1746 interface chip and 4.04/4.05 DSPs.
Whew. Confused yet? 🤣
I wonder if the hanging notes bug inversely correlates with the presence of an ASP processor?
This is one of the things I keep meaning to look into. After looking at the circuit traces, I think I came to the conclusion that the CSP would need to be physically removed in order to prevent the DSP from (theoretically) wasting processing cycles on it. For the most part though, the hangs are so few and far between (with the AWE32), that I haven't thought it necessary. Besides, why deprive yourself of the chance to play the one known game that actually supports QSound via the ASP/CSP?