VOGONS


MIDI gameport in pure DOS mode

Topic actions

Reply 20 of 23, by kmeaw

User metadata
Rank Member
Rank
Member
Joseph_Joestar wrote on 2024-09-23, 16:46:

Unfortunately, SBLive and Audigy cards behave the same way in pure DOS. Meaning, they will always use the built-in softsynth, and never redirect MIDI signals to an external device.

You can ignore the softsynth (by not loading the driver) and just use the hardware UART as can be seen in the video - I can play music in pure DOS on an external MIDI synth connected to SBLive.

It is a software issue that can be resolved if someone puts enough effort. It can be done either by implementing a more configurable driver, by adding SBLive support to SoftMPU, or by adding SBLive MIDI out support to popular games and sound libraries.

Reply 21 of 23, by bimole

User metadata
Rank Newbie
Rank
Newbie

Unfortunately, SBLive and Audigy cards behave the same way in pure DOS. Meaning, they will always use the built-in softsynth, and never redirect MIDI signals to an external device.

That was the "clue" I was looking for! Thank you Joseph_Joestar (and thank you for your excellent setup guides for SB Live! and Audigy1/2)

Finally, nothing is better than an ISA card for DOS external MIDI signals isn't it ?

What is the size of the riptide.hex file you are using? Please also try specifying the "/V" switch to have more output that could help with debugging.

I found two "driver packs" for this sound card which are working in Win98SE :
- Driver pack "A" : riptide_audio_modem.zip (available here : https://www.driverguide.com/driver/detail.php … riverid=1442939)
- Driver pack "B" : Hp9898se2000FullRiptideAudioDrivers.zip (available here : https://www.driverguide.com/driver/detail.php … driverid=120028)

For now, the sound card is installed in Win98SE with driver pack "B" : Hp9898se2000FullRiptideAudioDrivers\Audio\Rockwell\Win98 folder
Driver pack "A " contains both drivers for audio (AUDIO.W95) and modem parts (HCF.W95)

When I switch in pure DOS mode, only riputil from driver pack "A" seems to work :
1727119074310.jpg

I can load the firmware riptide.hex (15.5KB):
1727121221905.jpg

Otherwise If I try the same thing with the driver pack "B", it doesn't work:
1727119074319.jpg

I did a quick look on Riputil.exe and I don't see any code which sets up MPU-401. Could you get https://github.com/TimmermanV/Tw […]
Show full quote

I did a quick look on Riputil.exe and I don't see any code which sets up MPU-401.
Could you get https://github.com/TimmermanV/TweakPCI and try the following commands?

tweakpci 127a 4320 4c

tweakpci 127a 4320 50

(I'm not sure if the number "4320" is correct, please check your actual PCI device ID which can be seen in the PCI device listing at the end of the BIOS POST or in Windows Device Manager).

The first command should print the MPU-401 port, the last one - legacy device mask and ASIC revision to verify if legacy devices are actually enabled by Riputil.

I will try this tomorrow.

I am running 86Box (v4.1.1) and it has an option to choose a MIDI input device. You would need some kind of a loopback driver for that - Linux has a snd_seq_dummy driver for that, Windows would need a 3rd party application such as MIDI Yoke.

MIDI-OX was exactly what I was thinking for, but it wouldn't be sufficient alone ? As far as I understand, MIDI Yoke is mandatory to "patch" between software devices ?

I can't tell about latencies on Windows but when I had a PCI SBLive card and a USB piano keyboard, I connected them with a Linux machine (it was a Pentium 3 back then) and the latency was good enough for me - I could play the keyboard without noticing that every MIDI event has to be processed in software by my PC.

Of course, even with 25 years old machine, a 10ms latency is achievable. My question was about the latency between my USB keyboard plugged on my host machine, driving the MIDI audio of the virtual 86Box machine (also ran by my host machine).

Cheers !

Reply 22 of 23, by Joseph_Joestar

User metadata
Rank l33t++
Rank
l33t++
kmeaw wrote on 2024-09-23, 20:04:

You can ignore the softsynth (by not loading the driver) and just use the hardware UART as can be seen in the video - I can play music in pure DOS on an external MIDI synth connected to SBLive.

It is a software issue that can be resolved if someone puts enough effort. It can be done either by implementing a more configurable driver, by adding SBLive support to SoftMPU, or by adding SBLive MIDI out support to popular games and sound libraries.

My comment was in reference to using Creative's drivers in pure DOS. But if this can be worked around using other software, that's great to hear.

PC#1: Pentium MMX 166 / Soyo SY-5BT / S3 Trio64V+ / Voodoo1 / YMF719 / AWE64 Gold / SC-155
PC#2: AthlonXP 2100+ / ECS K7VTA3 / Voodoo3 / Audigy2 / Vortex2
PC#3: Core 2 Duo E8600 / Foxconn P35AX-S / X800 / Audigy2 ZS
PC#4: i5-3570K / MSI Z77A-G43 / GTX 980Ti / X-Fi Titanium

Reply 23 of 23, by kmeaw

User metadata
Rank Member
Rank
Member
bimole wrote on 2024-09-23, 20:12:

MIDI-OX was exactly what I was thinking for, but it wouldn't be sufficient alone ? As far as I understand, MIDI Yoke is mandatory to "patch" between software devices ?

I have never used it but as I understand the description, MIDI-OX looks to be a user-space multipurpose MIDI mapper. MIDI Yoke is much simplier - it just creates a virtual pair of ports, passing MIDI events between them.
If Windows userspace is fast enough to keep the latency low (and I suppose it is on a modern machine), then you could do that without MIDI Yoke.

bimole wrote on 2024-09-23, 20:12:

Of course, even with 25 years old machine, a 10ms latency is achievable. My question was about the latency between my USB keyboard plugged on my host machine, driving the MIDI audio of the virtual 86Box machine (also ran by my host machine).

I'm not sure of 86Box latencies as it surely consumes more CPU to make the emulation more accurate. You would probably get better (in terms of latency) results if you use hardware-accelerated virtualization products - to run a softsynth you don't need to have low-level emulation with focus on accuracy. I don't know much about Microsoft Hyper-V but QEMU-KVM can emulate a i440FX-like PC with a CS4231A soundcard.