VOGONS


SBEMU: Sound Blaster emulation on AC97

Topic actions

Reply 1740 of 1746, by 3lectr1c

User metadata
Rank Member
Rank
Member
L4MD4 wrote on 2025-08-07, 18:16:
3lectr1c wrote on 2025-08-05, 03:50:

Trying to run it under DOS mode in Windows 98.

I'm not sure what you mean, by "DOS mode". If you mean anything other than booting straight to DOS (before Windows loads) don't do that.

If you are trying to accomplish this sort of thing from a Win98 dos prompt, there is VDMSound for Win9x; but it is buggy and not for slower machines.

Is there no way to make this work under DOS mode? Being forced to run pure DOS would be an enormous pain.

Owner of https://www.macdat.net, the largest vintage laptop documentation resource on the web!

Reply 1741 of 1746, by megatron-uk

User metadata
Rank l33t
Rank
l33t

What's the verdict for the best, tiny laptop that can run SBEMU successfully (including the new soundfont support) these days?

I've been looking through my box of old laptops and I've found an old Dell Latitude X1 - a 2005-ish sub-notebook; slightly larger than an EEE PC 900, but still functional and the battery holds (some!) charge. It's a 1.1GHz Pentium-M on Intel 915 chipset.

My collection database and technical wiki:
https://www.target-earth.net

Reply 1742 of 1746, by megatron-uk

User metadata
Rank l33t
Rank
l33t

I was able to get VSBHDA working on this Dell Latitude X1.

It's supported as an ICH6 device, and so far the compatability seems pretty good - it needed a little bit of massaging memory managers and UMBPCI to get them playing nicely with each other, but it mostly worked without any real problems and virtually everything loads to UMB leaving 626kb free.

The biggest issue I've faced is that I cannot have VSBHDA and the Broadcom packet drivers for the built-in NIC and MTCP (ftp / ftpsrv) all at the same time; it gets really flaky at that point. Instead I reboot to an alternative config.sys/autoexec.bat menu entry that skips loading VSBHDA components and instead just runs the Broadcom driver and MTCP - at that point it's perfectly stable, so I'm happy with that as a workaround.

Results so far:

vsbhda16
- Xargon - FM ok, digital ok
- Prince of Persia - FM ok (persia adlib), in SB mode (persia sblast) it reverts to PC speaker
- Prince of Persia 2 - FM ok, digital ok (configured as SB Pro for both)
- Wolf3d - FM ok, digital ok
- Blake Stone 1 - FM ok, digital ok
- Blake Stone 2 - FM ok, digital ok

vsbhda
- Doom (v1.9 Ultimate Doom) - FM okay, digital ok, Soundfont MIDI ok
- Duke3d (v1.4 Atomic Edition) - FM okay, digital only in centre channel*, Soundfont MIDI ok

Soundfont support also appears to work well enough on the 1.1GHz Pentium-M to not cause any noticeable slowdown in Doom and Duke3d when I tried it - I tried with a simple 8MB GM soundfont and with a bigger 32MB one, and no noticeable difference in performance (except load times - the 1.8" drive in this thing is slooooow!). I'd guess there will be a ceiling to this though.

On this laptop there's a harsh cut off in volume levels as anything below /VOL9 is almost inaudible. Setting the volume to /VOL9 in most cases then seems to max it out resulting in speaker distortion. In games that have an in-game mixer (e.g Doom or the Duke3d setup tool) you can then adjust the levels to a more appropriate setting.

The biggest disappointment so far is the lack of digital audio on the left and right channels in Duke3d - that's a bit of a killer at the moment. The setup tool sounds the "Centre" test, but then "Left" and "Right" tests are completely silent.

It is only a mono speaker device though (it's a fairly tiny machine - only slightly larger than a Thinkpad 240)... so there's that to consider, but it does make a cracking little portable system!

My collection database and technical wiki:
https://www.target-earth.net

Reply 1743 of 1746, by vintagely

User metadata
Rank Newbie
Rank
Newbie
3lectr1c wrote on 2025-08-07, 23:16:
L4MD4 wrote on 2025-08-07, 18:16:
3lectr1c wrote on 2025-08-05, 03:50:

Trying to run it under DOS mode in Windows 98.

I'm not sure what you mean, by "DOS mode". If you mean anything other than booting straight to DOS (before Windows loads) don't do that.

If you are trying to accomplish this sort of thing from a Win98 dos prompt, there is VDMSound for Win9x; but it is buggy and not for slower machines.

Is there no way to make this work under DOS mode? Being forced to run pure DOS would be an enormous pain.

I was just trying to do the same exact thing on a Pentium 4 system (specs here https://theretroweb.com/motherboards/s/intel- … -bayfield#chips) for HOURS and then i got the feeling there is NO WAY you can make it work, at least for real mode. Best i could do was to obtain emulation without real mode.

Reply 1744 of 1746, by Kekkula

User metadata
Rank Member
Rank
Member

If the desire is to use windows, why don't you just install DosBox to win98 machine?

Reply 1745 of 1746, by mkarcher

User metadata
Rank l33t
Rank
l33t
3lectr1c wrote on 2025-08-07, 23:16:

Is there no way to make this work under DOS mode? Being forced to run pure DOS would be an enormous pain.

There is no way using the current technology of SBEMU.

Basically put, Windows 95 and SBEMU do the same thing: They execute DOS programs under control of an operating system that has 32-bit drivers controlling modern hardware. They use the DOS virtualization technique (actually: real-mode/8086 virtualization technique) introduced with the 80386, executing real DOS code "virtual 8086 mode" (often shortened to "virtual mode" or "V86" mode). There can only be one system that provides the backend to these virtual machines, the "virtual machine monitor" (VMM). In case of SBEMU, SBEMU itself is the virtual machine monitor (in cooperation with JEMM and QPIEMU.DLL) for real mode games. It's similar for protected mode games (like DOS4GW games): These games are using DPMI to interface with a protected mode operating system which again can emulate hardware. In case of SBEMU, the DPMI interface is provided by the special HDPMI version shipped with SBEMU, and SBEMU "plugs into" that specific DPMI implementation.

In either case, SBEMU provides an virtual DMA controller and a virtual interrupt controller, so that sound blaster DMA and IRQs can be emulated in software. SBEMU can do that because it is the only component that emulates virtual hardware. There is no 32-bit operating system kernel that also tries to do these tasks (well, actually EMM386/JEMM do some DMA virtualization to handle EMS/UMBs properly), so SBEMU can do that. On the other hand, with Windows 95, the Windows 95 kernel already has the "Virtual DMA Device" and the "Virtual PIC device" as the central implementation of DMA and IRQ virtualization. SBEMU is unable to provide its own hardware virtualization while running in a Windows 95 DOS box.

To get SBEMU for Windows 95, a different approach would need to be taken: Instead of virtualizing the DMA controller and the interrupt controller itself, SBEMU would need to be a Windows 95 kernel module (a .VXD file) that can interface with the Windows 95 DMA and IRQ virtualization drivers. SBEMU is (in my oppinion) partly re-inventing the virtualization of DMA and IRQ channels. I'm unsure whether I like that, or providing SBEMU as VXD for Windows 3.1 or Windows 95 would be a smarter approach. While I do understand many people don't want to boot Windows 95 to run DOS games, running a Windows 3.1 32-bit Kernel (no GUI shell needed) to back up SBEMU may be an interesting approach. It's not that interesting, though, as I don't think you can find a lot of AC97 or HDA sound drivers for Windows 3.1, so they would need to be written as well...

Reply 1746 of 1746, by myne

User metadata
Rank Oldbie
Rank
Oldbie

There is one 3.x hda driver.
One thing that baffles me is that hda and ac97 are fundamentally different. It just seems silly that they were so different while implementing the same thing, and both designed by Intel

I built:
Convert old ASUS ASC boardviews to KICAD PCB!
Re: A comprehensive guide to install and play MechWarrior 2 on new versions on Windows.
Dos+Windows 3.11+tcp+vbe_svga auto-install iso template
Script to backup Win9x\ME drivers from a working install
Re: The thing no one asked for: KICAD 440bx reference schematic