Jump to content

Native (WDM) HD Audio driver for Windows 98se/Me


Recommended Posts


Posted

Intel Sunrise Point-LP PCH - High Definition Audio Controller + Realtek ALC236 (Intel Core Gen 8 Notebook) (and HDMI Audio codec on the same HDA controller too).

After installation of driver:

With Normal boot temporary hangs on during the boot and then reboot.

With Logged boot just hangs on with these last lines in BOOTLOG.TXT:

[000FF0E5] INITCOMPLETE = mmdevldr
[000FF0E5] INITCOMPLETESUCCESS = mmdevldr
[000FF0E5] Loading PNP drivers of WDM Sample Driver for HD Audio (PCI\VEN_8086&DEV_9D71&SUBSYS_84A6103C&REV_21\BUS_00&DEV_1F&FUNC_03)

JFYI, on this system CSM programs all PCI devices to one IRQ11.

Posted

Huh. Are you able to get kernel debug prints on that system by any methods? Try the version in the hdac\buildchk folder in the download. Does it hang on installation or just on the first reboot? If it lets you install and then hangs on restarting you might be able to get some debug output with DbgView, otherwise you really have to have a hardware serial port and the newest laptops I know with that are on Dell Latitude E series which have one on some docking stations.

One possible issue is that the driver is not currently designed to be able to load for multiple devices and the PCH on that laptop will have HDMI display audio as well as the HDA bus. There might also be issues with IRQ sharing with the USB controller but if that's the case I'm not sure how to fix the problems. I know you are experienced with Windows Driver development so maybe you would have some suggestions. 

Posted
20 minutes ago, Drew Hoffman said:

how to fix the problems

Check that you handle only YOUR interrupts and pass all other to system. You have to check some bit(s) responsible for indicating IRQ in controller register(s).

25 minutes ago, Drew Hoffman said:

you might be able to get some debug output with DbgView

Ok, I will try to do standard sequence Disable Controller - Reboot - Run DbgView - Enable Controller, But as it hangs probability to success not high.

Posted (edited)

Huanazhi X99-TF (C612 chipset) 
Intel Wellsburg PCH - High Definition Audio Controller [B1]
PCI\VEN_8086&DEV_8D20&SUBSYS_72708086&REV_05
RealTek ALC887
HDAUDIO\FUNC_01&VEN_10EC&DEV_0887&SUBSYS_10EC0887&REV_1003

hda.sys driver is loaded, no crashes, 9x system see audio device, try play, but no any sounds.

on win10 with standart hdaudio.sys sounds ok.

Edited by MERCURY127
Posted (edited)
1 hour ago, SweetLow said:

Check that you handle only YOUR interrupts and pass all other to system. You have to check some bit(s) responsible for indicating IRQ in controller register(s).

In the ISR I am first reading the INTSTS register and returning False if it is 0 (or 0xFFFFFFFF which happens on controller shutdown sometimes ). As far as I can tell this is correct, but on the Wyse Rx0 thin client with AMD SB600 having my driver loaded slows the system down immensely and causes the USB ports to stop working suggesting that there might be an IRQ storm issue. 

If the driver will initialize and load and media players attempt to play sound but nothing is heard, please try all audio jacks. The codec node parser is also fairly rudimentary at the moment and I'm not going to guarantee it works with every codec or even most of them. I've had very little success getting Windows 98 installed and working on systems as new as that anyway though clearly some of the people here are able to manage it.  

Edited by Drew Hoffman
Posted
6 hours ago, Drew Hoffman said:

In the ISR I am first reading the INTSTS register and returning False if it is 0 (or 0xFFFFFFFF which happens on controller shutdown sometimes ).

No, you don't.

NTSTATUS InterruptServiceRoutine
...

    if(!that->AcknowledgeIRQ() ){
        return FALSE;
    }
 

Posted

Now no hang on. Device is OK in Device Manager.

But on the first step device does not work as expected - no sound. It shows in Multimedia but does not allow to select itself as audio output device. 

Ok, this is very base system installation. So I tried to setup DirectX8.1 and lo and behold - sound arrived.

I did not do full tests (l will do lately) but it's working.

Drew Hoffman, do you need tests on other systems (on Nvidia HDA controller and on Intel HDA controller, but I don't remember what codecs there are)?

Posted

Nvidia and ULI chipsets would be the highest priority to test as I don't have any of those myself and they need some PCI Configuration Space fixes that I blindly copied from VSBHDA. Tests on as many combinations of controller and codec as possible would be appreciated. I already know there's no sound on on IDT / Sigmatel codecs yet and will continue to debug that.

The driver should function without DirectX 8, at least it does in Virtualbox, with maybe the only issue being choppier MIDI playback. I'm ignoring the requested interrupt interval from ks.sys (which is always 100ms) because Virtualbox seems to require a power of 2 audio buffer size not just a multiple of 128 bytes. Haven't tested on 98FE or 95 with the USB support added yet.

DirectX 8.1 updates these audio related files: Ks.sys, Stream.sys, msksrv.sys

There's also a Microsoft WDM Audio Update hotfix KB242937 which updates kmixer.sys, portcls.sys, usbaudio.sys, wdmaud.sys

 

Posted (edited)

 

On 12/13/2025 at 6:46 PM, Drew Hoffman said:

please try all audio jacks

1) downloaded latest version.
2) checked all five jacks on rear side.
no sounds... 
for compare, i try mpxplay for DOS with default jack to play logon.wav — there was loud noises, slightly remember logon.wav...

i think it will good option use some registry key for manual iteration of pins and volume control.

i also have nvidia videocard with hda, connected to monitor with speakers. so i check playing this way soon...

Edited by MERCURY127

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...