Jump to content

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


Recommended Posts

5 hours ago, RU-B0 said:

An explorer has preformed an illegal operation!

When I use Rloew's "64bit File System API" I get a similar error. This isn't really a suggested work around, more informational, but I just don't use Explorer. With an alternative shell "like Losi or Blackbox" and Explorer "like 2xExplorer" I can get along just fine. It is actually my preference, even without the error. In this case, it might be good to rename Explorer.exe to Explorer.bak, and create a Explorer.exe.lnk to 2xExplorer.exe.

5 hours ago, RU-B0 said:

but then I have no mouse to press next with to install the mouse usb driver and no keyboard either, quite frustrating

Some people have altered the installation, to included the USB drivers. The process is then automated. You add your USB files to the Windows 98 installation setup folder. The process is the same for any other driver, you want included during setup. I just haven't done it in a long time.

I've done it, post install. Depending on the circumstances it is almost trivial, for somewhat experienced users. But I recommend taking the high road.

If you only have USB3, then it does not matter.

With USB2 support you can also use most USB audio devices, for default sound.

Anyway, good luck and congratulations, with your audio success.

Edited by awkduck
Link to comment
Share on other sites


@sifonium thanks for test v10. Now CODEC-info lines are populated normally.

Below my comments on responses to the GET-verbs you sent with your HDAICOUT.HDA

Legenda: 8-bit order: bits 7654 3210 (bit3=2^3, bit2=2^2, bit1=2^1, bit0=2^0)
sent $005B8000; got $000000BF => BF should mean on bit-level: 1011 1111
sent $005B8001; got $000000BF => so bit 7 = 1 => muted
sent $005BA000; got $000000BF => (Bh=11=1011, Fh=15=1111,  'together' BFh)
sent $005BA001; got $000000BF => same
sent $006B8000; got $000000BF => same
sent $006B8001; got $000000BF => same
sent $006BA000; got $000000BF => same
sent $006BA001; got $000000BF => same
sent $007B8000; got $000000BF => same
sent $007B8001; got $000000BF => same
sent $007BA000; got $000000BF => same
sent $007BA001; got $000000BF => same
sent $009B8000; got $000000BF => same
sent $009B8001; got $000000BF => same
sent $009BA000; got $000000BF => same
sent $009BA001; got $000000BF => same
sent $018B8000; got $000000BF => same
sent $018B8001; got $000000BF => same
sent $018BA000; got $000000BF => same
sent $018BA001; got $000000BF => same
sent $005F0700; got $00000040 => set to Output
sent $006F0700; got $00000040 => set to Output
sent $007F0700; got $00000040 => set to Output
sent $009F0700; got $00000020 => set to Input
sent $018F0700; got $00000020 => set to Input 
sent $005F0100; got $00000000 => Connection Index = 0, selected is lowest connection '1' 
sent $006F0100; got $00000000 => same
sent $009F0100; got $00000000 => same
sent $00BF0100; got $00000000 => same
sent $018F0100; got $00000000 => same
sent $005F0800; got $00000000 => Bit 7 = 0, so unsollicited response disabled (probably*)
sent $006F0800; got $00000000 => same
sent $009F0800; got $00000000 => same
sent $018F0800; got $00000000 => same
sent $005F0C00; got $00000000 => Bit 1 = 0, so EAPD pin state is low (probably*)

*taken from a Realtek HDA codec datasheet

BTW I removed the tick-responses!

To proceed I suggest to use a HDAICOUT.HDA with SET-verbs between two corresponding GET-verbs, so changes made by SET-verbs can be detected. Further try ONE output-widget at a time. Best start with 'NID: 05'.
Also it is a good habit to end each line with a semicolon and as comment the (more or less) official name of the verb. Most names you can find in my excel notes, or in a box in INTEL.HDA.EXE:

1942972204_INTELHDAnoduleswithopenedverbchoices.thumb.png.371d53240e7da67bf790eac7d4d83aae.png

BTW above all payloads are zero's!

Most of the payloads you can find in my quasi-universal HDAICOUT.HDA, or you can copy/ paste the needed SET-verbs.

For now I would suggest not to play with 'unsollicited response', but always try with and then without 'AC_VERB_SET_EAPD_BTLENABLE (although 'officially' supported on 'NID: 05' only).

The SET-verb of AC_VERB_SET_EAPD_BTLENABLE will be 70C02

Upload same files please.

Edited by deomsh
typo's
Link to comment
Share on other sites

7 hours ago, RU-B0 said:

NEVERMIND IT WORKS. I used HDARUN.EXE and I got sound!!!!!! I understand that this is sketchy under 98, but its definetely an improvement!!! I can definitely see the stability issues though. If I try to close the program with the event still on, bad news bears. An explorer has preformed an illegal operation!

Nice result, only @Dave-H tested HDARUN.EXE so far in this thread.

I studied your files, and I have some bad news and some good news. The bad news is you made a mistake in your earlier tests: you set 'mytimer=0' in HDACFG.INI. So HDA2.DLL will ONLY work with HDARUN.EXE (this setting is actually targeting HDARUN.EXE). :rolleyes:

Sorry, I overlooked this the first time. :whistle:

The good news is you can try 'mytimer=1' and repeat all tests WITHOUT using HDARUN.EXE. Please report your results, you are the first in this thread using codec ALC888 ! :thumbup

Link to comment
Share on other sites

5 hours ago, awkduck said:

Some people have altered the installation, to included the USB drivers. The process is then automated. You add your USB files to the Windows 98 installation setup folder. The process is the same for any other driver, you want included during setup. I just haven't done it in a long time.

I've done it, post install. Depending on the circumstances it is almost trivial, for somewhat experienced users. But I recommend taking the high road.

@awkduck I agree in case of updating drivers or files like EXPLORER.EXE already installed by Windows' SETUP.EXE.

But can you record any successes if INF-files are involved (not installed by SETUP), no need for CUSTOM.INF ?

Link to comment
Share on other sites

6 hours ago, deomsh said:

I studied your files, and I have some bad news and some good news. The bad news is you made a mistake in your earlier tests: you set 'mytimer=0' in HDACFG.INI. So HDA2.DLL will ONLY work with HDARUN.EXE (this setting is actually targeting HDARUN.EXE). :rolleyes:

Sorry, I overlooked this the first time. :whistle:

The good news is you can try 'mytimer=1' and repeat all tests WITHOUT using HDARUN.EXE. Please report your results, you are the first in this thread using codec ALC888 ! :thumbup

It works! Thanks for helping me along the way. If you would like to do any more testing with my system, I'm down. For now, though, it works perfectly. Like Dave said, a bit distorted at times, but nothing that can't be overlooked. I do have 1 question though. How do I change the volume? There's nothing on the taskbar for volume like the newer OSes. This is just a 98 question in general as It's loud enough to max out my speakers...

Anyway, thanks for the help!

Link to comment
Share on other sites

The only volume control with this configuration is by using WAVEOUT.EXE, which should be in your Windows folder.
The normal Windows mixer facilities are not available.
:)

Link to comment
Share on other sites

@deomsh I remember doing it for machines that were all the same, years ago (schools/business). But I haven't done it in a long time.

I think everything needed to be in your Win98 setup folder's root. But I'm not sure how you controlled installation order, which may be required in some situations. I think there was a way.

I have read about slipstream tools. But I've never used them.

I couldn't find it, with a brief search, but there was a thread involving the "Unofficial Service Pack" (PROBLEMCHYLD) and USB only machines. I seem to remember something there correlated to "post install" USB driver tricks. The service pack was causing the common "Click Next How?" issue, with updated USB drivers. Maybe it has relevant information for someone.

Surprised there isn't a "How to" thread on this, already.

Edited by awkduck
Link to comment
Share on other sites

1 hour ago, Dave-H said:

The only volume control with this configuration is by using WAVEOUT.EXE, which should be in your Windows folder.

I don't seem to have this file... weird...

I'll manually copy it and see...
Manually copying it did not work. I copied all the files in the volume folder to the windir and windir/system and nothing (i did both at the same time). The waveout.exe launches, looks weird though, as expected, and moving the sliders all the way down or super low does nothing. System sounds still act insanely loud and max my speakers...

Link to comment
Share on other sites

14 hours ago, awkduck said:

Some people have altered the installation, to included the USB drivers. The process is then automated. You add your USB files to the Windows 98 installation setup folder. The process is the same for any other driver, you want included during setup. I just haven't done it in a long time.

I've done it, post install. Depending on the circumstances it is almost trivial, for somewhat experienced users. But I recommend taking the high road.

If you only have USB3, then it does not matter.

With USB2 support you can also use most USB audio devices, for default sound.

Not really fond of reinstalling windows considering it took me a weekish to get drivers and stuff working... I can install the USB drivers and it will work just fine, but since it hasn't installed the mouse or keyboard, I can't click next on the screen to install the mouse or keyboard. Bad design moment. Still, I can use the mouse and keyboard because I just leave out usbd.dll and it doesn't fully load the drivers so it sees it as a ps/2 mous and keyboard. Weird these things are. I have one idea, which is to have them plugged into different sets of ports so it picks up one of the input devices, so I'll try that. Anyway, this is off topic. :/

EDIT: I tried this but since the file is there now, all the USB ports load properly and recognize the mouse, asking for me to install it, but I DONT HAVE A MOUSE TO DO IT WITH... annoying. Ill just deal with no hot plug until I can find a PS/2 mouse/keyboard/adapter to use...

EDIT 2:

I just had to not reboot in between so it would keep the driver until i updated it *facepalm*

Edited by RU-B0
Link to comment
Share on other sites

@Dave-H Thanks for mentioning WAVEOUT.EXE.

@RU-B0 Did you need to select a Device and is the first white screen populated after pushing the button in the upper left?

1450705178_VBOX7WAVEOUT.EXEonWin98SE.png.86587177d40749e3a4a54b32643c87d9.png

Further in HDACFG.INI the right widget must be set. In the last version of your HDACFG.INI you set 'VolumeWidget=$25' - maybe 'VolumeWidget=$02' will be better. According to the datasheet of ALC888S other possibilities are '$03', '$04' and '$05'.

@awkduck Thanks for clarification. Would be a nice project.

Link to comment
Share on other sites

@deomsh I have manually adjusted the volume in the config file and waveout writes to it properly. I have also tried all the VolumeWidget= possibilities and the volume never goes down even though I have it set to 3c003c00...

I have a feeling that it wont work because the files had to be manually copied, waveout and the other volume ones, to the windows folder as they weren't originally for some reason...

here are the files if you want to look:

HDAcfg.iniHDALOG.TXT

Edited by RU-B0
Link to comment
Share on other sites

It seems volume setting of WAVEOUT.EXE is written by HDA2.DLL to the [Volume] section in HDACFG.INI. So WAVEOUT.EXE seems to be okay. Manually copying WAVEOUT.EXE makes no difference.

How about if listening with headphones, any difference? Please try both 'VolumeWidget=$02' and '$25' and report.

Edit:

Some Alsa-sources mentions nodes 0C and 26 in relation to output volume. So you should try '$0C' and '$26' too.

Edited by deomsh
typo, addition
Link to comment
Share on other sites

It seems that the value 0C worked. I set the volume to 00000000 and it still made sound but was VERY quiet. Ill gradually make it louder until it is good. Thank you for the help. I would bet all values may work, just needing to be set extremely quiet to make a difference on my hardware? A very interesting problem to say the least. Now that I know, it is quite simple. Just pin waveout and done. Thanks!

Link to comment
Share on other sites

Good!

I think Watler did a good job with the widget settings in HDACFG.INI. Only finding the right widget number is not always easy. But don't forget the brute-force method, just trying all numbers from '$01' up to, say, '$26' (hex!). Only 2x16+6 = 38 reboots needed....

About the sound with the '00000000'-value, it is possible this sound came from other channels. I experienced this on my own codec ALC662.

You can try to mute the other mixers by changing some verbs in HDAICOUT.HDA.

In my quasi-universal design ALL widgets are set at max volume (but will only 'listen' if they have the capability to change output volume:

$00C3B01F;AC_VERB_SET_AMP_GAIN_MUTE;max_vol

etcetera (in fact ALC888 supports '7F', but @sweaterfish found out this was not supported on his codec and gave issues).

So you can try to mute the other mixers:

$00D3B080;AC_VERB_SET_AMP_GAIN_MUTE;mute-channel0

$00E3B080;AC_VERB_SET_AMP_GAIN_MUTE;mute-channel0

$00F3B080;AC_VERB_SET_AMP_GAIN_MUTE;mute-channel0

$0263B080;AC_VERB_SET_AMP_GAIN_MUTE;mute-channel0

Maybe muting the loopback-signal path is needed too, this time mixer 0C included:

$00C3B180;AC_VERB_SET_AMP_GAIN_MUTE;mute-channel1

and so on. But I think this is unlikely, Channel 1 will be muted in the default state.

Edited by deomsh
typo, addition
Link to comment
Share on other sites

These seems to have done nothing. I may have written the HDACIOUT.HDA wrongly though, so here it is:

Hdaicout.hda

I'm not super worried about it. Having a little bit of sound when it is muted is fine. It's not like I can't just mute it on the speaker end. The only reason I wanted sound control in the first place was because it was maxing out my speakers, which it doesn't anymore, so were good.

Link to comment
Share on other sites

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...