Jump to content

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


Recommended Posts

@deomsh

There are no power saving features in the BIOS nor is there a modem to activate.

I tried the config changes and no luck - still all zeros and upon re-activating HDA-OUT still no sound.

BUT.....I may have found some additional helpful info.  I went ahead and dual-installed Windows XP, and from within XP, I was able to figure out the codec.  Realtek ALC268.  I hope this information is useful in further troubleshooting (audio works fine, btw, in XP after installing the proper drivers there, so I know that my audio out jack and speaker work fine).

Lastly - one other thing I'd like to add to this....I do have one other unknown device that I'm fairly certain is the AMD High Precision Event Timer.  I have not been able to find any Windows 98 drivers for this, and I hope that its lack of drivers has no impact on the audio capabilities (I am admittedly clueless as to exactly what HPET does).

Edited by bmw
Link to comment
Share on other sites


@bmw

Good you found the codec, but that info is only usefull if the codec responds to HDA2.DLL.

HPET isn't used, and should do no harm (at least not on the systems I have tested). There is a good Wikipedia article on this subject.

Next you can try higher wait-time settings, say $500. Further pcipatchB=$4200, or $4201 or $4204. Also try Verbinterface=$0 (and in all combinations with the higher wait-timings and pcipatchB).

In the mean time I will look in Linux sources if other SB600 chipset registers are mentioned (so called PCI-Quirks). My Asrock 960GM-GS3 has a SB600 HD-Audio Controller too, is working without HDAICOUT.HDA (but Watler gave me instructions for the main parts of the troubleshooting).

Edited by deomsh
Typo
Link to comment
Share on other sites

No luck with any of that troubleshooting, unfortunately.  I will note that changing Verbinterface to $1 caused the log file to be empty and caused some other oddities such as the 0000's changing to FFFF's in both the HDACIN file and various entries in the CFG file.

I do appreciate your help, btw.  Benchmarks on this machine with a Radeon x600 card installed are impressive - nearly 3x faster than any other thin client I've ever tested, and sound right now is the only thing holding this back.

Link to comment
Share on other sites

@bmw

I assume you ment setting Verbinterface=$0 ? In your HDACFG.INI the setting was Verbinterface=$1 already. Move on with $1.

Next try pcipatchB=$4207 (I've been deducting that value from a Linux source). 

Also I like to see a printscreen of the PCI register of your HDA controller. For details how to get it, see my post of April 8, 2019 in this thread (Steps 1-3).

Edited by deomsh
Correction
Link to comment
Share on other sites

My bad, I meant verb interface of 0 caused no log.  It is back at 1.

PCI Patch B at 4207 did not help.

So I have used that 4207 value, reverted the timings back to 100, and here is a register screenshot:

pci-register.jpg

Link to comment
Share on other sites

8 hours ago, deomsh said:

Regarding Step 1: remove or rename HDACFG.INI and HDAICOUT.HDA, reboot and enter your BIOS-Setup. Go to Config => Power and disable all power-saving setting. Further look if your model has a Modem. According to Linux sources the Modem should be ON ("they share a bus" was said).

Ah, I did have the modem disabled and enabling it has changed some things, but there's still no sound. Now some of the HDAcfg.ini codec lines get populated even after a cold boot and restarting in MS-DOS and coming back does not change anything. However, I think the new info in the HDAcfg.ini is wrong, it seems to be returning the Vendor and Device IDs of the modem instead of the audio codec.

So I tried disabling all power management options in the BIOS, but also keeping the modem disabled. Everything was the same as before, though. The codec lines of the HDAcfg.ini are zeros initially and get populated with what looks like the right info only after a DOS reboot.

Feeling like this means my audio hardware might be slow to respond for some reason, I did try playing with the wait times in the HDAcfg.ini. I tried 200 and 500, but no change either with or without the modem enabled.

 

Quote

Regarding Step 2: boot Windows and save HDACFG.INI as HDACFG.000, same for HDALOG.TXT. Then start INTELHDA.EXE and make a full printscreen of the HDA PCI-register. See for details my post of April 8, 2019 in this thread. Next Reboot to MS-DOS/Exit to Windows and provide HDACFG.001, HDALOG.001 and a second printscreen of the HDA PCI-register. Then upload your four files and the two printscreens.

With the modem enabled there's no difference between before and after restarting in MS-DOS mode, but I'm attaching both sets of files just in case. Two sets of screenshots (000a, 000b and 001a,001b) because of the 640x480 resolution.

INTELHDA.000a.png

INTELHDA.000b.png

INTELHDA.001a.png

INTELHDA.001b.png

HDAcfg.000.txt HDAcfg.001.txt HDALOG.000.TXT HDALOG.001.TXT

Link to comment
Share on other sites

@bmw

Thanks, I assume picture was taken with pcipatchB=$4207 ? (W20/w2 last two digits = register 42h or 66 decimal starting with register 0).

Next I want you to repeat the procedure described in my post from April 9, 2019. But before disable HDA2.DLL with a semicolon in SYSTEM.INI: [drivers] ;;wavehda=HDA2.DLL (I allways use two semicolon's).

I hope Judas will provide sound, so we can compare the settings of the HDA controller register.

Link to comment
Share on other sites

Yes, pcipatchB=$4207 for that screenshot.

I followed your procedure, and once in DOS, Judas loaded a sound file and said it was playing it, but I could hear nothing.  I eventually pressed ESC and then it eventually booted back into Windows.

Do you still want another registers screenshot upon the auto-boot into Windows?

Link to comment
Share on other sites

@bmw

That's sad, but yes please a new screenshot, at least I can compare them.

@sweaterfish

In the first line of the logs you can see AD1984 is detected too. I don't know why the driver switches to the Modem (14f1:2bfa is actually a named Thinkpad modem).

Is there any change in HDALOG.TXT if you set in your Modem-version of HDACFG.INI (HDAcfg.001.txt), Codec Index=$0 , reboot and leave the Modem ON ?

Link to comment
Share on other sites

Ok, so there were 3 registers with different values than the first time around.  They are as follows:

W1E
010A 0000 (old)
000A 0000 (new)

W20
0000 0007 (old)
0000 0002 (new)

W22
0001 0000 (old)
0000 0000 (new)

Link to comment
Share on other sites

@bmw

The last two digits of register W20/w2 are the content of register 42h. Possible values are: 00 up to 07 (8 possibilities). I thougt you have tested all values already?

The first to digits of W1E/w1 should be read-only register 3Dh, only reflects the value of last two digits set in W22/w1. That register is writable and should be register 44h.

According to the AMD SB600 BIOS Developer's Guide (page 22) the IRQ routing can be set with 44h. As far as I understand this subject their are 8 possibilities.

Since we have seen 00 and 01 already, you can try pcipatchB with values $4402 up to $4407.

Always reboot in between and watch HDALOG.TXT for non-zero responses.

Edited by deomsh
Typo
Link to comment
Share on other sites

And....no luck.  Have now tried $4402 through 4407 and 4200, 4201, 4204, and 4207 for pcipatchB.  This time around I tested with timings of $250.

Are we at a dead-end?  Is there any useful information that could be gotten from the working Windows XP installation?

Link to comment
Share on other sites

@bmw

I am sorry to hear that. Dead end? Maybe.

By the way, if you comment out wavehda=HDA2.DLL in SYSTEM.INI and start INTELHDA.EXE, is the widgets-tab giving non-zero $-values if you click the buttons?

About Windows XP: can you provide the HDA controller register from inside XP? There are 32-bit versions of PCI-sniffer from Craig. Maybe this one: http://www.seascapesailing.com/tools/PCI n PCI32 sniff/

Edited by deomsh
Link
Link to comment
Share on other sites

19 hours ago, deomsh said:

Is there any change in HDALOG.TXT if you set in your Modem-version of HDACFG.INI (HDAcfg.001.txt), Codec Index=$0 , reboot and leave the Modem ON ?

It seems to be exactly the same. The Codec Index line gets overwritten.

Since the modem in the X61 is on a daughter card, though, I was just able to physically remove it. Now with the modem enabled in the BIOS, but physically removed, the HDA driver does correctly identify the AD1984 upon initial boot in 98SE. Restarting in MS-DOS mode is no longer necessary. So that problem is solved at least, but there's still no sound. Just the same single pop through headphones at boot.

I'm pretty sure the result is exactly the same as the files I posted initially from after a DOS restart, but here they are for posterity's sake along with INTELHDA screenshots. This is with no HDAICOUT.HDA file, but I have tried several of them including the universal 000 one you posted previously, the one that comes with the HDADRV9J archive, and all the other ones I've seen in this thread. No effect from any of them.

INTELHDA.002a.png

INTELHDA.002b.png

HDAcfg.002.txt HDALOG.002.TXT

Link to comment
Share on other sites

@sweaterfish

Great idea to remove the modem, with surprising results. A big step forward in my opinion. :)

It's good to know thats Codec Index gives indeed the status only, I have no boards with a HDA-Modem combination.

Next you can try pcipatchB=$7900. The first digits of register W3C/w1 should be zero afterwards. I have been succesfull with this patch on a H61 board with (roughly) the same HDA controller registers. Leave the widgets on $03!

Edited by deomsh
Grammar
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...