Jump to content

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


Recommended Posts

If I comment out wavehda and then run IntelHDA and go to the widgets tab, all I get when I click any button is it locks up for about 5 seconds and then the output box under the buttons is black with nothing in it at all (other than the teal blue desktop color).

I'm not clear as to what you're looking for in the output from the register sniffer program, so I have just attached the entire output.

pci.txt

Link to comment
Share on other sites


I am sorry I didn't make myself clear.

I need a hex dump of the registers of 1002:4383. Should look like the PCI-tab of INTELHDA.EXE, but in a bit different fashion.

You will have used the program pci32.exe. You have to run from a command-prompt following command: [PATH]\pci32 -D > ATIDUMP.TXT (not case-sensitive)

I do not know where you unzipped the download. Say if you choosed location C:\PCISNIF than the command will be C:\PCISNIF\pci32 -D > ATIDUMP.TXT

Below is the original information from my chipset, the dump is the second part (made in 2017 with an old MS-DOS version while using new PCIDEVS.TXT).

Bus 0 (PCI), Device Number 20, Device Function 2
Vendor 1002h ATI Technologies Inc
Device 4383h IXP SB600 High Definition Audio Controller
Command 0006h (Memory Access, BusMaster)
Status 0410h (Has Capabilities List, Slow Timing)
Revision 00h, Header Type 00h, Bus Latency 20h
Self test 00h (Self test not supported)
Cache line size 64 Bytes (16 DWords)
PCI Class Multimedia, type Unknown!
Subsystem ID 76621849h Unknown
Subsystem Vendor 1849h ASRock Inc
Address 0 is a Memory Address (anywhere in 64-bit space) : FBFF4000h
System IRQ 10, INT# A
New Capabilities List Present:
Power Management Capability
Supports power state D1
Current Power State : D0 (Device operational, no power saving)

Hex-Dump of device configuration space follows:
0000 02 10 83 43 06 00 10 04 00 00 03 04 10 20 00 00 ..ƒC......... ..
0010 04 40 FF FB 00 00 00 00 00 00 00 00 00 00 00 00 .@ÿû............
0020 00 00 00 00 00 00 00 00 00 00 00 00 49 18 62 76 ............I.bv
0030 00 00 00 00 50 00 00 00 00 00 00 00 0A 01 00 00 ....P...........
0040 00 00 00 00 01 00 00 00 00 00 00 00 01 00 00 00 ................
0050 01 00 42 C8 00 00 00 00 00 00 00 00 00 00 00 00 ..BÈ............
0060 05 00 80 00 00 00 00 00 00 00 00 00 00 00 00 00 ..€.............
0070 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0080 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0090 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00A0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00B0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00C0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00D0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00E0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00F0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................

The first part is like the report you delivered. The program 'translates' the hexadecimal values with help of the database. But we need the hexadecimal values, to see if I can find any potential pcipatchB.

 

Edited by deomsh
Typo
Link to comment
Share on other sites

And so I combed through that data, and I notice only 2 differences compared to my Windows 98 output as follows:

W1E - 0110 (XP) compared to 010A (98)

W21 - 0000 (XP) compared to 0007 (98)

W1E I assume is the IRQ (10 in 98 compared to 16 in XP).

So W21 is the pciPatchB?  Value of 00?  So is that 4200?

Edited by bmw
Link to comment
Share on other sites

@bmw

Well done!

Indeed, last two digits of W21 are the one-byte value of 8-bits register 42h. Earlier you said you tried all values I gave you. To be sure try pcipatchB=$4200 once again.

Your observations regarding last two digits of W21 are interesting, but I do not know what to do with this register. Should be Register 3Ch. The SB600 documentation call´s this register "Interrupt Line", a 8 bits RW register (so Read/Write!). The text is cryptic:"This register is used to communicate to software the interrupt line that the interrupt controller is connected to. It is not used by the HD Audio controller". I have no idea´s about this register (I am not a PCI-device programmer, even worse: I am not a programmer at all :ph34r:).

But feel free to try several IRQ-values with pcipatchB. You can also use INTELHDA.EXE to change the value on the fly by typing in new values (Only in RW-registers of course). Al values in HEX (register-address is in hex already)!

If there is no immediate change regarding output of HDA2.DLL, maybe it´s following is a good procedure: boot Windows with HDA2.DLL active, change with INTELHDA.EXE a register value you like, Reboot to MS-DOS => Exit to restart Windows 98SE (like sweaterfish did) and look if anything changed in HDALOG.TXT. Also watch the IRQ-value of the High Definition Controller in Device Manager.

I hope this will give any results, otherwise I think it´s better to look for another solution like USB-audio.

Edited by deomsh
addition
Link to comment
Share on other sites

On 8/24/2020 at 3:15 PM, deomsh said:

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!

Yes, with pcipatchB=$7900, W3C/w1 in INTELHDA is $0000. There does not seem to be any other differences.

Link to comment
Share on other sites

@Deomsh thanks again for all the assistance....I've tried 4200 again and no luck, also re-tried some other values.  I think it may finally be time to admit defeat here and move on to a USB solution.  I do have an unused USB 9-pin header onboard, I may or may not try to come up with a mod solution whereby I can mount some audio ports directly to the case while they're connected internally.  I did test with an old Behringer USB DAC and to my surprise it actually worked flawlessly in Windows 98 with no drivers needed (even gave me emulated soundblaster audio in some DOS games when launched within Windows 98).

510OiDnBLIL._AC_SL1000_.jpg

 

Unfortunately these have skyrocketed in price recently - I think I paid like $30 for mine way back when, now they're going for $90.  There are a few $10 to $20 solutions I'm looking at.

Link to comment
Share on other sites

@bmw

Just for the record: I assume pcipatchB=$3C10 did nothing? Was the new value reflected in INTELHDA.EXE? Which IRQ was reported by Device Manager for the High Definition Audio Controller in that case?

Regarding USB audio: never used one. On MSFN "cheap $3" devices are mentioned, but @Ruthan reported one as "crap". I came across CMI6206 cards (only from China) for about $20.

Edited by deomsh
Correction
Link to comment
Share on other sites

Hey, sorry if I seem unintelligible on this topic; Drivers & Audio are out of my wheelhouse when it comes to computers, but would anyone here know how to go about getting the HDA driver working in 95 OSR2.5 in Parallels for Mac? — Parallels for Mac doesn't offer support for audio on deprecated systems, but I can set the VM to a "generic" Windows OS, which provides Intel HD Audio support. However, I've been pouring over forums and different config steps, and I'm not really sure what to do.

The chipset presented by Parallels is the Intel ICH10 with Intel HD Audio, Vendor ID 8086 & Device ID 293E, which are correctly detected by the driver when installed (I verified this by comparing it to a Windows 10 VM's DID & VID). However, beyond that sound doesn't work, neither in DOS mode nor in Windows.

Both act like it works, but with "quirks"; DOS mode will just be like "yeah sound is playing" when I tried test utilities from another form thread on the driver, whereas in Windows, the media player and the system sounds window will get "stuck" in a playing state, but the progress scrubber will not move (in media player) and it must be "stopped" manually. — But there's no sound at all when this happens.

Method of install:

HDATSR -> AUTOEXEC.BAT
Custom INF installed for the PCI card.
HDA Sound as default output device.
Min & max virtual cache set to low
'wave=hda2.dll' in System.ini

I've tried various adjustments, deleting HDAICOUT.HDA (after backing it up of course), changing values in HDAcfg. I'm not sure if there's something I'm missing, if ICH10 is too new for this driver, or if Windows 95 has a weird quirk (everywhere I've read it seems like people have tried this with Windows 3.1 or Windows 98SE, and have assumed it will work with 95 as a result.).

Here's my HDAcfg, for reference:

[ALLHDA]
$00FC=$293E8086

[HDA]
TSR=TSR FOUND
PCI_VID=$8086
PCI_DID=$293E

[BUSMASTER]
myPCIHI=$0012
myPCILO=$1000
aPCIHI=$0011
aPCILO=$1000
aPCI=$00111000

[HDA_293E8086,04001AB8]
cardmemoryregistersLO=$0000
cardmemoryregistersHI=$F014
Mytimer=1
Verbinterface=$1
wait1=$100
wait2=$100
pcipatchB=$0000
PCI_BUS=$00
PCI_DEVICE=$1F
PCI_FUNCTION=$0
GCAP=$2201
VMIN=$00
VMAJ=$01
GCTL=$0001
CODEC BITMAP=00000001
CODEC Index=$0
CODEC_VID=$1AB8
CODEC_DID=$0001
CODEC_REV=$100100
CODEC_NODEINFO=$010001
CODEC_AFG_GPIO_CAP=$C0000004
CODEC_AFG_SUBSYSTEM_ID=$1AB80101
CODEC_AFG_PM_SUPPORT=$0F
CODEC_AFG_PCM_DEFINITION=$1E07FF
CODEC_AFG_F000B=$01
SleepingWidget=$02
VolumeWidget=$14
OutputWidget=$02

Note that most of these values reset on reboot; only the widget values can persist. What is above is a "stock" config (I deleted the one i modified and let HDATSR rebuild the config, and these are the values it presented).

Another note is that I was going to try the Microsoft HD Audio Utility to try and compare the data between Windows 10 and the HDA configuration file, but I only have access to 64-bit copies of Windows outside of 95, and the only version shared online is the 32-bit version, which refuses to install on 64-bit systems (it will say to download the 64 bit inversion instead).

I was able to find an archived version of the 64bit installer of HDAUtil via a url punched into wayback from the extracted contents of the 32bit MSI. I have HDAUtil if this helps.

Would anyone be able to point me in the direction of troubleshooting here? Like I said, this falls out of my area of expertise.

Edited by MisutaaUrufu
Update on status
Link to comment
Share on other sites

@MisutaaUrufu

Before I will try to answer your questions, please provide following information first:

1) What version of Parallels for mac you're using?

2) Is there a PCI-Card with yellow exclamation mark in Device Manager of Windows 95 OSR2.5? If it's there, is the Memory Address F0140000? And: no IRQ-conflict?

Link to comment
Share on other sites

@deomsh

Still no luck.  I assume you meant 3C0A for pcipatchB (as this would represent IRQ 10 where the HDA controller is located).

Nevertheless, I tried several different values, and they did reflect correctly in INTELHDA.EXE; however, the IRQ in the device manager always remained at 10 for the HDA controller.

Link to comment
Share on other sites

@bmw

I really ment the value you found under XP! Just for the sake of experiment, and see if Windows will do anything with it.

Today I had some spare time and liked to test another MS-DOS player, Mplayer, on my ´new´ H61-board. I googled around, but could´t find a download location until I came across this thread. The player inside mplayer_dos.zip is really nice, worked out of the box with CWSDPMI.EXE. I played my favourite testfile DRUMLOOP.WAV. But also a Youtube-MP4! Nice sound and good video. First the audio lagged behind, but after loading SMARTDRV everything was okay.

In case you want to continue: here is the link to April 12, 2019. You can use CWSDPMI.EXE from JUDAS21C. Just unzip mplayer_dos.zip in some folder and copy CWSDPMI.EXE in the same folder were MPlAYER.EXE resides. Only for use in Real mode!

https://msfn.org/board/topic/178295-audio-driver-for-realtek-hd-audio-hardware/?do=findComment&comment=1162272

Link to comment
Share on other sites

1 hour ago, deomsh said:

@MisutaaUrufu

Before I will try to answer your questions, please provide following information first:

1) What version of Parallels for mac you're using?

2) Is there a PCI-Card with yellow exclamation mark in Device Manager of Windows 95 OSR2.5? If it's there, is the Memory Address F0140000? And: no IRQ-conflict?

  1. Parallels Desktop App Store 1.5.0 (Roughly equivalent to version 15 or 16). — VM is configured as a generic Windows VM rather than a 95 VM (as 95 VM support is deprecated and official audio support no longer exists; Generic Windows Machines allow use of the Intel HD Audio device.)
  2. There is, and the memory address is F0140000 with no IRQ-conflict.

More notes:

  • Attempted running without HDAICOUT.HDA, as well as with the generic copies hosted here. No luck.
  • Similar to others, codec values in HDACFG.ini are different before and after Windows boots. Mine are all $FFFFFFFF.
  • Setting Verbinterface to $0 prevents the desktop and taskbar from displaying; Windows hangs at my wallpaper, requiring a forced reboot.
  • Changing the timing values to 250+, and setting the pcipatchB to various values, so far, has not worked.
  • Attached are the codec files exported by Microsoft HD Audio Utility (x64) from Windows 10, in INI & XML format.
  • HDALog contains various entries that are all 0s, though roughly 50% of entries have non-zero values.

 

Update:

  • Attempts to play audio directly in Media Player returns that all audio devices are in use.

HDA_Codec.ini HDA_Codec.xml

Edited by MisutaaUrufu
Minor Update
Link to comment
Share on other sites

On 8/27/2020 at 1:31 AM, deomsh said:

I assume you've tried pcipatchB=$7900 already together with HDAICOUT.HDA (Step 4)?

Indeed I have.

However, I'm still in the dark about what all this stuff is about, so I'm finding the process sort of frustrating. Could I ask you to take a minute and explain what the goal of the HDAICOUT.HDA file is? Like what is it attempting to do exactly? Same for the pcipatchb lines in the HDAcfg.ini file. What is the point of this line and where are you getting the values you're suggesting to use?

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