VOGONS


First post, by Kamerat

User metadata
Rank Oldbie
Rank
Oldbie

A lot of motherboards from the early to mid 00's came with an MPU-401 interface integrated to the LPC interface chip, they even got their own IRQ assigned. I've tried some of these MPU LPC interfaces but SoftMPU fails to detect them even if they work with games like Descent and Doom (Duke Nukem 3D also fails on detecting MPU).

Is there any way to make SoftMPU work? It can be useful with PCI sound cards that lacks connection for external MIDI devices like Sound Blaster PCI/Live!/Audigy, Trident 4DWaveDX/NX and some Cirrus Logic based cards.

DOS Sound Blaster compatibility: PCI sound cards vs. PCI chipsets
YouTube channel

Reply 1 of 10, by bjt

User metadata
Rank Oldbie
Rank
Oldbie

What's the error output from SoftMPU? Failed to detect MPU-401?

The MPU check relies on the interface returning an ACK. Maybe some games don't do this check and just squirt data at the interface?

Reply 2 of 10, by Kamerat

User metadata
Rank Oldbie
Rank
Oldbie
bjt wrote:

What's the error output from SoftMPU? Failed to detect MPU-401?

Yes, that's correct.

bjt wrote:

The MPU check relies on the interface returning an ACK. Maybe some games don't do this check and just squirt data at the interface?

Yeah, that may be the case. A little weird thing is that Descent detects MPU-401 on the LPC interface but not on my ESS Solo-1 (for SoftMPU it's the other way around).

Do you think if it's possible to add a "force" option to SoftMPU to get around the issue?

DOS Sound Blaster compatibility: PCI sound cards vs. PCI chipsets
YouTube channel

Reply 3 of 10, by bjt

User metadata
Rank Oldbie
Rank
Oldbie

Yes, could do. Would you be able to test & report back if I sent you a patched version?

Reply 5 of 10, by bjt

User metadata
Rank Oldbie
Rank
Oldbie

OK, please try the attached test versions and let me know if test1 and/or test2 work for you. Cheers

Reply 6 of 10, by Kamerat

User metadata
Rank Oldbie
Rank
Oldbie

Thanks, much appreciated! 😁

Tried it on a MSI KT266 Pro2 with the W83627HF-AW LPC chip where the regular SoftMPU won't work. Both versions you supplied in the archive seems to work fine.
Used a Sound Blaster PCI64 (Creative CT5507/Ensoniq ES1370) and a Turtle Beach Santa Cruz (Crystal CS4630) for testing as none of theese cards supports external MIDI devices under DOS. The internal synth of the Sound Blaster PCI64 were set to I/O 340h during the test. Games I tried, all with success: A-10 Tank Killer, Space Quest 4, Ski or Die, Indy 500 and Silpheed. I can test it on some other motherboards too.

Anther question: Would it be possible to use the IRQ of the LPC MPU-401 instead of the Sound Blaster IRQ omitting the SB requirement? I guess that also need some change to SoftMPU itself.

Edit: Also works on the Asus P4C800-E Deluxe (W83627THF-A).

DOS Sound Blaster compatibility: PCI sound cards vs. PCI chipsets
YouTube channel

Reply 7 of 10, by bjt

User metadata
Rank Oldbie
Rank
Oldbie

Good to hear, I'll look to add a force MPU option in the next version.

Unfortunately I don't think the hardware MPU IRQ can be used as a replacement for the SB IRQ, because as far as I know there's no way to trigger the MPU IRQ from software. The MPU IRQ only gets triggered when the MIDI port receives data.

Reply 8 of 10, by Kamerat

User metadata
Rank Oldbie
Rank
Oldbie

Thanks for the explanation. I've also tried the Audigy 2 ZS (last card from Creative with inofficial DOS Sound Blaster support) with success even with some games requiring IRQ 2/9, had the Audigy set to IRQ 2 in CTSYN.INI

DOS Sound Blaster compatibility: PCI sound cards vs. PCI chipsets
YouTube channel

Reply 9 of 10, by bjt

User metadata
Rank Oldbie
Rank
Oldbie

Cool, I'll add it to the compatibility list.

Reply 10 of 10, by bjt

User metadata
Rank Oldbie
Rank
Oldbie

Just a heads up that this change made it into 1.91. The MPU detection no longer requires ACK to be returned. Let me know if there's any further issues.