Jump to content

Audio driver for Realtek HD Audio Hardware? [Testing thread]


Recommended Posts

Posted (edited)

Nice!

I was a bit behind because of working on some bootloader experiments.

On 4/16/2026 at 3:12 PM, isolar said:

Interestingly now when I set my widget parser to set stream format to 48Khz all of the windows sounds play too fast (quite amusing :buehehe:) so I set it back to 44.1Khz and all sounds great. I assume the windows startup wav file and windows sounds are all 44.1Khz?

This sounds not good. I see somewhere in properties of windows' starting sound (using Mplayer2): '22,050 samples per second'. According to the High Definition Audio Specification there are two main frequencies: 44.1 kHz and 48 kHz. Others are provided by multipliers/dividers. See '3.7.1 Stream Format Structure'. But I don't know how this is on the driver-level however.

On 4/16/2026 at 3:12 PM, isolar said:

Not sure why audio works while it is set to 08 which is nosnoop enabled.

With all due respect, but I think this is not the right question to ask. Rather the other way round: when and why is audio not working if snooping is enabled?

Last friday I looked a bit more into this Snooping 'thing'. At my current (quite low) level of knowledge I would say: if it ain't broke, don't fix it. The PCI-bus is highly complicated. From my understanding snooping can slow things down, also because the process of holding memory and processor cache coherent takes time and can introduce latency. However this Snooping (looking in the processors cache first for data) doesn't seem to be absolute. Also depends on the type of memory. At least if the memory used by the audio stream is marked as 'Uncacheable (UC)' in the MTRR (Memory Type Range Registers) there should be direct hardware access, no caching.

But remember: I am not even a programmer, just an amateur with (maybe) some information-searching/ -processing skills. So every reader of this thread: please correct me if I am wrong (or providing incomplete information).

If you want to experiment: try with and without snooping to watch some movie and listen to the audio with headphones while copying a big file of say 500 MB. The processor must NOT stay at 100%, some simple old AVI will do.

On 4/16/2026 at 3:12 PM, isolar said:

Excellent I implemented MinTimeSlice=10 to be sure.

Be aware the Windows' default is 20 (if not set in SYSTEM.INI). So common knowledge is that lower settings will give better performance, higher settings better stability. However said this, the other way round is not fully unthinkable: the audio stream passes al sorts of buffers on its way from the disk to the codec and buffer-underruns are no good.

15 hours ago, isolar said:

Some more progress today, I have implemented your controller ID data into genhda.inf and it now detects the HDA Controllers correctly for device manager naming.

Can you show your version so far? In the past I started with HDAWIN16.INF which contained all the info I gave you, but the one published in this thread was only a copy/ paste version reduced to GENHDA16.INF. Also I made the bad choice to include HDARUN.EXE instead of WAVEOUT.EXE, seen in retrospect.

15 hours ago, isolar said:

After that fix everything compiles correctly and Multimedia settings now shows HDA Sound 2017-2026.

Good you fixed this (which compiling problems I wasn't aware of).

Edited by deomsh
Small corrections

Posted
On 4/19/2026 at 7:36 AM, deomsh said:

Others are provided by multipliers/dividers. See '3.7.1 Stream Format Structure'.

Interesting, I have been looking into how this works but still learning. I believe the exact same stream format must also be set in ISD0FMT—Offset 92h of memory mapped PCI register or strange results happen. I will look into this.

On 4/19/2026 at 7:36 AM, deomsh said:

Can you show your version so far?

Sure thing, attached below. For now it is simply your original Genhda.inf combined with the device id's you posted last, with just the 1 addition of a registry key removal to ensure latest driver date is shown in multimedia settings.

 

GENHDA16.INF

  • 1 month later...
Posted

Watler provided a new version of his Win3x HDA-driver: HDADRV9O

Download from: https://cute-crisp-779a84.netlify.app/index.html

Highlights:

  • After first boot CODEC_Index can be set manually in HDACFG.INI: useful in case of HDA-modems or HDMI-codec 'giving' wrong Codec index;
  • HDAICOUT.HDA can have many more lines than earlier max of 256;
  • HDAICOUT.HDA is extended with some scripting commands: jump/ label, conditional jump/ label for PCI-devices, conditional jump/ label with GET-verb and Response (so possible to send GET-/ SET-verbs for a specific HDA-controller or HDA-codec, even a specific sub-version). Also VolumeWidget can be set (IF working it should override VolumeWidget setting in HDACFG.INI);
  • Example with free code to make your own extensions using new exported function(s) of HDA2.DLL (mytest.exe).

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
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...