Jump to content

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


Recommended Posts

I played around with this new [HDA] section and the L driver:

1 - I created [HDA] section with the entries according to your instructions, first without, then with HDAICOUT, nothing new happened - test files v4 on gdrive

2 - I experimented with placing the [HDA] section's entries within the existing [HDA] section on the top of the file, nothing happened except some new moments in the log - test files v5

3 - I tried to add some other entries from the [HDA_284B8086,30C8103C] to the new [HDA] section, nothing

4 - renamed [HDA_284B8086,30C8103C] to [HDA] and edited the entries i knew - nothing again, the system just added the old [HDA_284B8086,30C8103C] section

5 - then tried your addendum - nothing, my new entries get overwritten every time by my "default", old entries, SEARCH=FALSE remains there though. - test files v6

I tried making the HDACFG read-only, just in case, but the error about it showed on the start-up - ofc.

 

The driver seems stubborn in doing things its own way, and overwriting these entries.

 

I will certainly do more studies of this thread, and search for ways to configure HDAICOUT, but that will take some time.

Do you think I could find any inspiration for that within the system / driver files on a newer version of Windows (XP,..) which has the regular driver installed? Some similar files to HDAICOUT? (more shooting in the dark, I guess not)

 

If any other idea comes to your mind, please let me know! I will keep you posted on potential progress (and probably will have some new questions)..

Thank you one more time for making the sound work on my laptop!!

 

Cheers!

Link to comment
Share on other sites


Strange, for now it is not working.

You added the hack to existing [HDA] section already. I overlooked this possibility.:ph34r:

I doubt XP-drivers will give any inspiration.

Best start commenting out lines in your HDAICOUT.HDA according to the datasheet of AD1981HD until you have 'full' control.

But WAVEOUT.EXE will never become working in this way. At best you can mute your speaker or give it a fixed lower volume setting, somewhere between '01' and max - in your case max is probably '1F' ('80' is muted).

Instead you can do experiments on-the-fly using other parts of INTELHDA.EXE for sending predefined verbs. There is also a part to read-out your codec (communication can take sometimes more than 60 seconds!).

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

An unexpected break through!!!

I updated the BIOS - twice, first to f.10 (using file from here - https://www.badcaps.net/forum/showthread.php?t=92864), then to f.20. (hp has it on the web). F.10 needs to be installed first.

Funny thing is, I did that in hope that the modem would show up in bios, to turn it off. It didn't show up!

BUT - when I booted Win98, although I didn't really expect to see any change in HDACFG and the log, when I checked - the 11D41981's and codec index=$0's all over the place! :)

Check it out:

$000F0000=$11D41981
$000F0004=$00000000
$000F0005=$00000000
$000F0000=$11D41981
$000F0002=$00100200
   ...    :cool:

HDAICOUT is out of the picture!

Waveout volume control works at glance!

HDACFG looks perfect to me!

I added the winner test files v8 to gdrive.

I'm going to experiment now with the widgetry, and try out how things work from now on. Maybe the bios update made the driver use more stable.. I'll report!

Cheers and a big thank you!

 

Link to comment
Share on other sites

Your welcome.

Unexpected results, a real break-through! Congratulations.

In my language we say "De aanhouder wint" (according to Google Translate in English: 'Persevere', which is not a sentence and I doubt it has the same 'full' meaning - never mind. In Croatian 'Ustrajati' - but my knowledge of this language is on the level of 'dobar dan').

The PCI-bus is a quite complex 'thing'. Normally I always advise to disable all power saving measures in the BIOS (laptops need them of course) and now and then 'pcipatchB=$...' has been successful. Suggesting updating the BIOS has been always out of scope for me because of the risks involved. But your case is quite interesting. So other readers of this thread have a potential tool now - if they remember there are risks involved.

Side note: lately I have been experimenting with HDA2.DLL on Virtual Box 7. Once my whole Windows 10 x64 system crashed , which is weird!

@sifonium you have the real spirit. If you want to continue experimenting with the 'widgetry', you can use my notes made in Excel (see attachment).

BTW I don't see the folder with v8 on your Google Drive, maybe you didn't made it public?

HDA_Codec-info.xls

Post Script:

Thanks for the 'v8' files. They solved me a puzzle regarding directing the driver to a certain PCI-Device together with  SEARCH=FALSE.

In your HDACFG.INI those lines are now:

PCI_BUS=$00
PCI_DEVICE=$1B
PCI_FUNCTION=$0
SEARCH=FALSE

This led me to the conclusion the '27,0' showed in your photo of INTELHDA.EXE is not stated in HEX. Because 10h + Bh = 16 + 11 = 27 !!!

But sadly this does not explain the behavior of HDA2.DLL on your system before you updated the BIOS.

Edited by deomsh
Addition
Link to comment
Share on other sites

Nice, there are various conclusions coming out of this experiment!

De aanhouder wint to you as well! I understood "ustrajati", and as far as I can see from this thread you are holding the throne!

I'm unfortunate to say, my Dutch hasn't yet evolved even to "dobar dan" level, but I hope it will.

 

HDACFG - I tried other Volume widget numbers - 05, 07, 14... also tried 14 for Sleeping widget.

No settings produce any sound, but the current settings (03,06,03). 

Many thanks for your notes, I see you dug deep in this. So where are you heading with it, to making a new, more versatile driver? Or? I'm interested, and sorry if I missed this info in the thread, I had a tunnel vision looking for the correct configuration.. 

I have some questions on how to proceed with my experiments:

1. Am I done with HDACFG.INI or is there any more room to add or edit stuff? By adding, I mean more nodes, instructions, if there is capability..

2. HDAICOUT.HDA - should I use it again, start from an empty one? Is this the place to try to get the sound out of the speakers since the widget changes didn't bring results?

3. Are any other files involved?

I'm aware that any route will certainly need some time invested in studying (your notes, codec manual, this thread), I'm pretty sure I can't count on another BIOS scenario.. But, it's interesting stuff.

 

So.. do you do this audio driver thing often, or is it just this one? Funny how this driver managed to crash even your main system. Watch out for the fuse box! :)

Link to comment
Share on other sites

18 hours ago, sifonium said:

Many thanks for your notes, I see you dug deep in this. So where are you heading with it, to making a new, more versatile driver?

Be aware I am not a programmer, just an 'ordinary Joe'. Watler programmed the driver, targeting Win3.x - I found out possibilities to use this 16-bits driver on Windows 98SE.

18 hours ago, sifonium said:

I'm interested, and sorry if I missed this info in the thread, I had a tunnel vision looking for the correct configuration.

No offense, this is normal. You are a user with a problem to solve.

 

18 hours ago, sifonium said:

1. Am I done with HDACFG.INI or is there any more room to add or edit stuff? By adding, I mean more nodes, instructions, if there is capability.

Yes. You cannot add more nodes to HDACFG.INI (as far as I know). Changes regarding the HDA-controller: you tried already all possibilities, also setting other VerbInterface and Wait-states.

18 hours ago, sifonium said:

2. HDAICOUT.HDA - should I use it again, start from an empty one? Is this the place to try to get the sound out of the speakers since the widget changes didn't bring results?

Best is to start with a new one, I will give some suggestions in the second part of this post.

 

18 hours ago, sifonium said:

3. Are any other files involved?

Files involved are HDA2.DLL, HDACFG.INI, WAVEOUT.EXE and if needed a more 'tailor-made' HDAICOUT.HDA for AD1981HD.

18 hours ago, sifonium said:

I'm aware that any route will certainly need some time invested in studying (your notes, codec manual, this thread), I'm pretty sure

First concentrate on my notes in Excel: sheets 'AD1984' and 'pin-complex verbs'. You also can search in this thread on 'AD1981' and 'AD1984'.

18 hours ago, sifonium said:

So.. do you do this audio driver thing often, or is it just this one?

My experiments with 16-bits drivers and SMARTDRV.EXE are all related to missing Win9.x drivers on newer motherboards.
I started with Window 95 OSR1 on a HD Vectra 66 MHz, fully compatible. This system was rock-stable but rather slow with 8 MB memory.
A few boards later I decided to upgrade to Windows 98 SE because of FAT32, USB-support and DirectX 8.1 and higher. Although I am not a gamer, I liked MS-DOS Prince of Persia 1 & 2 and I wanted to play 'Sands of Time'. But I never succeeded to climb out of the Cave....

Later boards from the XP-area where already more difficult regarding finding Win9.x compatible drivers for integrated AC'97-soundcards/ Ethernet. I always bought used boards, most of the time with Ali/ VIA and SiS chipsets - which are not always 'easy'.

But so called 'modern' motherboards from the Vista-area and later, some integrated devices lacks Win9.x drivers. Like: SATA, AHCI, Ethernet, High Definition Audio and sometimes USB.
R. Loew made commercial Win9.x patches for SATA, AHCI and more (his heirs made them 'free').
In case of USB there is NUSB, but also the USB-part inside U98SESP3.EXE.

In case of Ethernet most Vendors are offering NDIS2 DOS-drivers (16-bits), which can be used with Win9.x - but in case of High Definition Audio there are no commercial Vendors.
So one has to use older compatible PCI cards, USB-audio (both not High Definition Audio) or Watler's 16-bits driver.

To answer your question: earlier I tested High Definition Audio on 32-bits Virtual Box (I believe v4.2), which was very 'bad'. Later I could use 64-bits Virtual Box 6, High Definition Audio was better, but 'not good'. Lately I updated to Virtual Box 7, so I thought it's time to do some new tests (at the moment I am listening to a nice playlist with GOM player, using HDA2.DLL).

------------------------------------------------------------------------------------------------------------------------------------------------------
------------------------------------------------------------------------------------------------------------------------------------------------------

Regarding to your laptop speaker: I want to make some comments about your laptop and your codec AD1981HD and the I will make some suggestions how to proceed with HDAICOUT.HDA.

First let's have a look on the Functional Block Diagram of AD1981HD. I made the non-essential parts black and I colored some parts:

1102369047_AD1984HDFunctionalBlockDiagramforPlayback.thumb.png.331e27b72d1d72260661d74576eb600b.png

Your current signal path for headphone playback is colored red, you can see only nodes 'NID: 03' and 'NID: 06' are involved (GAM is the amplifier, where volume can be set).

Regarding your speaker: according to your laptop manual you have a mono-speaker. So 'NID: 07' is a possibility.
In case of Mono-out with 'NID: 07' there are two other widgets involved: 'NID: 0B', a selector widget and 'NID: 0F', a summing (mixer) widget.
But sometimes external amplifiers are used, so PIN-complexes 'NID: 05', 'NID: 09' and 'NID: 18' are possible too. They all have I/O-capabilities.

But before we proceed we have to know to which verb these widgets/ nodes are 'listening'. Luckily I found a widget table with verb support in the datasheet:

415014189_AD1984HDwidgettablewithverbsupport.thumb.png.fbad186fd70d41efefac91b01cc8fb33.png

Mono-out and all PIN-complexes supports verbs regarding, Amplifier Gain/ Mute and PIN-widget control.
PIN-complexes also have internal Connection Select, Mono-out uses external widget 'NID: 0B'.
Summing widget 'NID: 0F' has no verbs, just mixes L/R to mono (I think this is the meaning of the grey arrow!).
Further all PIN-complexes support verbs regarding Unsolicited Enable and Port D ('NID: 05') EAPD too.

So 'best' is first to sent GET-verbs to these widgets, to get their current state by interpreting the response values in HDAICIN.TXT.

Suggested GET-verbs for HDAICOUT.HDA:

  • Amplifier Gain/ Mute: B8000 & B8001 & BA000 & BA001 (always 4 verbs to be sure !)
  • PIN-widget control:    F0700
  • Connection Select:      F0100
  • Unsolicited Enable:     F0800
  • EAPD:                          F0C00

For now I would suggest NOT using the '7FF' Reset-verbs, maybe your BIOS is giving widgets some presets (I am not sure about this!).

Do you think you can manage to finish your own HDAICOUT.HDA to read-out specified widgets/ NID's ?

 

 

Edited by deomsh
Pressing wrong key while working on a this Post
Link to comment
Share on other sites

Hey! I've been using this driver and I'm having almost the exact problems Dave had originally, but his hdaicout.hda doesn't work. Ive tried (I think) all hdaicout.hdas and I have one that works the best for me, once making media player think it was playing something at one point. Ive tried (I think) all the things mentioned in this thread.

This one stumps me. This goes without saying, but you ofc dont have to help me.

My best working hdaicout.hda:
Hdaicout.hda

Seems to me though that the getting media player to not complain and move the slider was complete luck though

Ill just list a bunch of specifications right now for future reference:
IPIBL-LB Benicia from a really old HP Pavilion m9340f (I think) that I'm using the integrated GPU on (probable doesn't matter). The best spec sheet ive been able to find is quite useless
http://www.findlaptopdriver.com/benicia-ipibl-lb-motherboard-specs/

Intel G33 Chipset with alc888s 7.1 channel audio

I have 13 OSes on the same system for ... reasons
Windows 3.1 (which I plan to try the original on), 95, 98, ME, NT4, 2K, XP, Vista, 7, 8.1, 10, 11 and Ubuntu

I have everything driver related working back to 2K (except wifi on 2K)

I have a intel core 2 quad Q6700, stock Windows 98SE

No video drivers sadly enough, but Im working on that

Sucesses:
Judas and mplayer work with all versions of hdaicout.hda and without. If I let Judas play at least half the song, then skip to the end and let bug.bat launch windows, I have a 50%ish chance of getting the thump of it connecting during startup, but it still doesn't work. If I adjust the volume in Judas then do it, its almost 99% chance of getting a thump but still nothing in windows. All hdaicout versions do this. The one I have above once let media player have the bar slide across thinking it was playing, but that has not happened since with any hdaicout version, even it. They just have hda sound show up in the options menu and then when I select it everything lags and media player forever says opening and the sounds widget in control panel forever plays, im assuming not initializing right. This is the way it is regardless of the thumps or not at startup. I have a feeling a custom HDAICOUT.HDA will be required, but I don't know. This is not my field. I haven't tried every configuration possible, but If someone would want to help me that would be great. I can supply all info needed just ask me. I'm not sure what all the config files do, so I haven't really messed with them. Any info you want just ask.
All hda stuff.zip

hope I didn't miss anything. Ill work on getting the intelpci sheet soon but Ill post this for now

Have a good day! (to whoever is reading this)

 

Link to comment
Share on other sites

So I must have a complete misconfig because IntelHDA says there is no hda found... no matter what. It shows up in device manager and the devices window of control panel sounds, but INTELHDA cant find it... this is probably a lost cause...

I understand that this board is very new and likely may not work...

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

Hello @RU-B0 - so trying HDA2.DLL?

I hope you are sure about this, because I foresee a number of problems, which can take lots of time. But on my side: I am ready to go!

2 hours ago, RU-B0 said:

So I must have a complete misconfig because IntelHDA says there is no hda found... no matter what. It shows up in device manager and the devices window of control panel sounds, but INTELHDA cant find it... this is probably a lost cause...

I understand that this board is very new and likely may not work...

Sorry to say, but at first sight I don't agree. According to your HDACFG.INI your High Definition Audio Controller is 8086:293E which is a known HDA controller. Even a C33-subsytem is mentioned on 'The PCI ID Repository'. Also your HDA codec is found by HDA2.DLL: CODEC_VID=$10EC and CODEC_DID=$0888 is actually ALC888. So far so good.

According to your HDACFG.INI you have 'CODEC Index=$0', so I am afraid using HDAICOUT.HDA written for 'CODEC Index=$2' is not a good idea. NO offense of course!

3 hours ago, RU-B0 said:

Hey! I've been using this driver and I'm having almost the exact problems Dave had originally, but his hdaicout.hda doesn't work. Ive tried (I think) all hdaicout.hdas and I have one that works the best for me, once making media player think it was playing something at one point. Ive tried (I think) all the things mentioned in this thread.

This one stumps me. This goes without saying, but you ofc dont have to help me.

My best working hdaicout.hda:
Hdaicout.hda

Seems to me though that the getting media player to not complain and move the slider was complete luck though

I am not sure if I fully have understand your post, but if the slider of a player is not moving: this is bad. Can't be cured with HDAICOUT.HDA however, because the communication with the HDA controller must be (re-)established first.

I can suggest following:

  1. setting 'pcipatchB=$7900' in HDACFG.INI (be aware: writing to PCI Controller Registers is always at your own risk, if any)
  2. set in HDACFG.INI:
    SleepingWidget=$02  (OR $25)
    VolumeWidget=$02    (OR $25)
    OutputWidget=$02    (OR $25)
  3. use for now my quasi-universal HDAICOUT.HDA, version 'Codec Index=$0' (last version in my Post of May, 12)
  4. always use with headphones if you can hear the slightest sound, or only the 'Sound of Silence'

Your codec ALC888 is a so called 'High End Codec'. In the datasheet of your codec (I assume ALC888S is the right version, because I found ALC888-GR, ALC888DD-GR and ALC888H-GR exists too) can be seen there are several playback possibilities (see below my playback-adjusted version):

2062594139_ALC888SFunctionalBlockDiagramplaybackpath.png.427adf44f7a09b21af00fab2072e538d.png

I am afraid the default setting of all PIN I/O-complexes is 'Input'.
BTW mixer '0B' is input-related, but output of this mixer can be redirected to the playback path.

If you want to continue, please report your results.
If you need more help, I will need your new HDACFG.INI and HDALOG.TXT only.

Link to comment
Share on other sites

@deomsh 

I glanced over some of your posts in this thread, and now I hope I understand all the notes you wrote to me, also the table from the manual. I'm still far from understanding it all. So I made my first HDAICOUT test, and there are some kind of results in the HDAICIN, which mean nothing to me yet, though.

I uploaded the tests v9 to gdrive. Let me know if this was done good, and why not :)

Edited by sifonium
Link to comment
Share on other sites

@sifonium your HDAICOUT.HDA looks good, only better no empty lines (or use a semicolon on empty lines).

Currently I am deciphering the responses.

But I found your codec is no longer identified in HDACFG.INI. So please repeat your experiment.

I also will need HDALOG.TXT

Link to comment
Share on other sites

I'm down for the long haul on this one. My school gets out in 3 days so I have plenty of time

7 hours ago, deomsh said:

(I assume ALC888S is the right version, because I found ALC888-GR, ALC888DD-GR and ALC888H-GR exists too)

Correct

I don't really understand the graph at all... Im not good at that kinda stuff

I did all that you said. New hdaicout.hda, settings in hdacfg.ini, and used headphones.

I got the thump on startup but no sound was made. Now I can hear the sound on every startup, which seems good. I tried both settings of the things in hdacfg ($02 and $25) and no luck. The windows sound applet in control panel either complains about busy sound device if I select the use available sound devices in multimedia settings, or if I select HDA sound in multimedia settings, it seems to never actually load the sound as the stop button never goes away. I wish I could teleport back to when the slider moved in media player but alas. Should I try using hdarun.exe? I may be doing something fundamentally wrong here but idk.

HDAcfg.ini HDALOG.TXT

Edited by RU-B0
accidentally pressed ctrl/shift or something enter
Link to comment
Share on other sites

To be clear: I used some random driver I found on line to install the plug and play bios failsafe as a pci bus so everything would show up. I then installed drivers for everything except USB/Sound, no usb so that It wouldn't drop my mouse (I tried and it installed right but then I have no mouse to press next with to install the mouse usb driver and no keyboard either, quite frustrating). This board is from 2014 or something and has pci-e though, so maybe it will never work, idk. I was not around during 98. thats about 15 years to early for me... but I like the classic games. Mostly one, which I have working to an extent on XP, but xp takes lightyears to load and then the game can bug out all the time. Would be better to get it on dos as it was released in 1995/6 or something. Not sure what I'm doing wrong as I get the thump on startup and everything seems to be working right except for the slider moving in media player and, ofc, no sound. If it means anything, the device shows up under system devices in device manager but that seems normal? I don't really know...

Link to comment
Share on other sites

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!

Edited by RU-B0
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...