First post, by onethirdxcubed
My WDM drivers for HD Audio sound in Windows 98se/Me are just about ready for wider testing. These are likely to work in VMware, VirtualBox and on Intel chipsets with a Realtek codec. Also works on a HP T5540 thin client and an Atom netbook, installs but doesn't seem to output anything on Wyse Cx0 and all IDT and Sigmatel codecs.
Current release: Alpha-016 2026-01-28
Changelog:
## WDMHDA Alpha-016 2026-01-28
Note: You must install this version of the driver again with the .inf file!
- Fixed PCIe No-Snoop flag which was causing garbled audio on Intel PCH and newer
- May be fixed for AMD SB450/600 as well, need to test
- Fixed DMA Position Buffer but disabled it by default again
## WDMHDA Alpha-015 2026-01-23
Note: You must install this version of the driver again with the .inf file!
- Add Registry key reader for driver settings. Change settings in the [AddReg] section of HDA.inf
- Add support for DMA Position Buffer (untested, will check on real hardware)
- restrict available sample rates to 22050-48000 because Windows will try the native sample rate of the WAV first and then the highest rate possible. Supporting 96khz means that Windows will use it ALL THE TIME. Supporting rates below 22050 makes buffer interrupt handling more complicated and Windows can just upsample it anyway.
## WDMHDA Alpha-014 2026-01-12
- Better debugging information
- Ignores outputs which are listed as Not Connected in the BIOS pin configuration. If this loads and displays a speaker icon in the Taskbar but you get no sound at all, try version Alpha-012 instead. I will add a Registry key to enable / disable this but haven't done it yet.
edit 2026-01-12: fixed page fault crash bug. Please redownload
## WDMHDA Alpha-013 2026-01-09
- Now tries to connect all Line Out paths in codec (up to 8 total output paths).
- Rearranged a lot of the codec init to improve compatibility as much as possible
- Headphone connection detection is still not working.
- Can now produce some audio on a system with an ALC887 but it is garbled. I think this is an interrupt sharing issue, maybe with the SoftGPU video driver. The problem system puts everything on IRQ 11.
## WDMHDA Alpha-012 2026-01-02
- tries to init the codecs listed in STATESTS before resorting to probing blindly
- SPDIF, CD and Phone outputs will NOT be used as audio outputs. May add these back later
- add more debugging info to determine the output nodes the driver is actually using
- code cleanups, decreases file size a bit
- set the version and other information of the dll file so you can tell what release is installed from the device manager
## WDMHDA Alpha-011 2025-12-13
Fixes stupid IRQ sharing bug. Should fix freezes on some platforms where the audio controller shares an interrupt with USB. Also rewrote interrupt service routine to handle all streams and not to try to service the stream for non-stream interrupts.
## WDMHDA Alpha-010 2025-12-11
Fixes out of bounds read (maybe leading to crash) bug when saving mixer settings to registry that was in the original SB16 driver.
## WDMHDA Alpha-009 2025-12-10
- Set data format before powering up each node in codec, this fixes horrible distortion on Realtek ALC2xx
- Add controller-specific PCI configuration writes that are necessary for many systems
- Fix the mixer controls enough to allow the master volume slider to work on real hardware. On VMWare and Virtualbox it still doesn't do anything but I think that's by design for the VM, you can use the Wave volume slider in the mixer or the host's volume control.
I now consider this driver functional enough to post about on retro hardware forums for further testing.
## WDMHDA Alpha-008 2025-11-23
Fixes:
- Fix double-free if device was disabled in Device Manager
- Add variable sample rates but only the range of 8-48 khz for now. Still locked to 16-bit stereo but Windows can upconvert for anything that opens an 8 bit or mono channel.
- Fix fundamental CORB/RIRB communication error that was leaving the pointers misaligned if the codec did not respond.
Known Bugs:
- Severe USB & Performance issues when sharing an IRQ with a USB controller
- Realtek codecs: Left channel sounds fine but right channel is extremely overamplified and distorted
## WDMHDA Alpha-007 2025-11-19
Added PCI Configuration Register writes for controller-specific quirks.
## WDMHDA Alpha-006 2025-11-05
Still trying to get this working on real hardware. Now including the debug build in the ZIP file, the hda.sys file in that folder may be copied into C:\Windows\System32\Drivers after installation to get full debug log output.
- Check STATESTS register to see if some codecs attach,
- Wait the required amount of time for codec init,
- Don't try to continue into codec init with a STATUS_UNSUCCESSFUL.
## WDMHDA Alpha-005 2025-10-31
- Add codec reset command listed in Realtek datasheet
- Tweak delays, timings, and buffer sizes to align with spec.
- Now packaging the release build instead of the debug build to reduce slowdown from debug-log spam.
## WDMHDA Alpha-004 2025-10-29
Now supports immediate command interface to the codec, and now functions in VMWare as well as VirtualBox. Will test on some real hardware but don't get your hopes up. I still get occasional hard freezes for reasons I don't understand yet.
## WDMHDA Alpha 003 Pre-release 2025-10-27
Fixed more bugs around interrupts and timeouts. Probably doesn't work on real hardware but at least shouldn't freeze instantly anymore
## WDMHDA Alpha 002 Pre-release 2025-10-21
Maybe fixed interrupt issue, some minor polish changes
## WDMHDA Alpha 001 Pre-release 2025-10-20
Alpha release. No guarantees whatsoever. Only tested in VirtualBox! Only works at 16-bit 44100 Hz! Winamp produces horrible screeching noises sometimes! Also the release build doesn't produce sound so this is a debug build. For best results, run with a kernel debugger attached so you can tell why it doesn't work and why everything is frozen. You might get sound, or it might wipe your hard drive and unleash the nasal demons. If it doesn't work for you i would like to see the debug logs to figure out why.
No readme and no instructions are provided for this. If you don;t know how to install windows driver binaries through Device Manager this is not the way to learn.
Install the inf with Device Manager as usual. The unknown device to install it on is probably just called "PCI Card" in Device Manager, if you have multiple of those check with HWINFO for which one has the PCI class code 0403.