Jump to content

Native (WDM) HD Audio driver for Windows 98se/Me


Recommended Posts

Guest Drew Hoffman
Posted

Thank you for testing. That is certainly strange behavior, the only way I think that would be able to work is if my driver is loading first, sets up communication to the codecs, configures the codec at address 0 to start receiving from stream 1, then is unloaded. Then the Watler's driver loads later, sets up the controller a second time, doesn't send any messages to codec 0 and just starts streaming audio to stream 1 which happens to go to the right place. 

Can you tell me what chipset / PCH that netbook is using as well as the PID and VID of the HDA controller ? It's becoming clear that I'm missing a lot of newer Intel chipsets that should have the nosnoop flag set and I should probably send a pull request to Sbemul and VSBHDA once I know everything that's missing. I haven't been able to do much coding lately as I have been ill and screens are still giving me headaches.   


Posted

Thanks Drew, more than happy to provide any info that can help.

What you suggest is happening seems logical here, i'm not 100% sure how the HDA.SYS driver functions and what verbs it sends on enumeration (could you please advise?), but definitely when I rename HDA.SYS to HDA.BAK then sound stops. Renaming back to HDA.SYS - sound returns again. Deomsh has advised possibly your driver enumerates GPIO pins which I am not touching in the HDAICOUT file.. yet.. but currently investigating. And/Or nosnoop bit set on audio controller.. also under investigation but this is brand new info for me :). The main mystery is how HDACfg.ini maps codec $2 instead of $0 (Codec $2 is HDMI audio out.. so Watler's should be doing nothing to get sound possible here).

Chipset I am struggling to identify due to the nature of this motherboard (without installing Win8+ that has drivers to identify).. it is a Lenovo S20-30 with Lenovo Edonis 2A1 motherboard, Baytrail-M CPU Intel Celeron N2840 and Valleyview integrated graphics. The audio controller is Intel 8086 0F04. Codec is Realtek HD Audio 10EC 0280.

For chipset if you know any hardware identifier progs that work on win98SE and can identify newer chipsets then I will be happy to try. Currently HWInfo32 shows 'unknown' chipset.

Wishing you a speedy recovery and hope to hear from you soon!

Posted

Asus P5KPL-AM IN/ROEM/SI (Intel Bearlake G31)
Intel 82801GB ICH7 HDA Controller 
PCI\VEN_8086&DEV_27D8&SUBSYS_83A11043&REV_01
VIA VT1705 HDA Codec 11064397h 104383A1h 1000h
(not sure, tomorrow look direct to chip on board)

IRQ 10 USB UHCI Intel 82801G
IRQ 10 VBEMP PCI (VGA) Intel GMA
IRQ 10 HD Audio Controller (WDM)

Only the light green Line Out was tested.

Version 16: Instead of sound, practically only noise is reproduced; sounds are unrecognizable, with the exception of quiet ones (the very beginning and end of Logon). The sound is mono (left channel). There is no stuttering. The SoundCheck program plays a parody of pure sound when checking frequencies of 24, 48, and 96 kHz.

Version 13: There is no sound. None at all. Playback errors. There is not even a delay when shutting down (Logoff sound).

Guest Drew Hoffman
Posted
3 hours ago, MERCURY127 said:

Asus P5KPL-AM IN/ROEM/SI (Intel Bearlake G31)
Intel 82801GB ICH7 HDA Controller 
PCI\VEN_8086&DEV_27D8&SUBSYS_83A11043&REV_01
VIA VT1705 HDA Codec 11064397h 104383A1h 1000h
(not sure, tomorrow look direct to chip on board)

IRQ 10 USB UHCI Intel 82801G
IRQ 10 VBEMP PCI (VGA) Intel GMA
IRQ 10 HD Audio Controller (WDM)

Only the light green Line Out was tested.

Version 16: Instead of sound, practically only noise is reproduced; sounds are unrecognizable, with the exception of quiet ones (the very beginning and end of Logon). The sound is mono (left channel). There is no stuttering. The SoundCheck program plays a parody of pure sound when checking frequencies of 24, 48, and 96 kHz.

Version 13: There is no sound. None at all. Playback errors. There is not even a delay when shutting down (Logoff sound).

VIA audio codecs are not currently supported and not for lack of trying. VIA controllers with Realtek codecs like the HP T5540 seem to already be functional so the problem is probably in the codec node parsing and init.

I have a Wyse Cx0 and can work on this somewhat myself, but if you want to help, can you install the Debug version of the driver (in the hdac\obchk\i386 folder) and the WDEB386 kernel debugger, and capture the debug output over the serial port? I have linked instructions for the kernel debugger elsewhere in the thread.

Posted

i check — it is real VT1705 on this board. 

unfortunately, i don't have a second computer with a com port. but i can try setting up dual-machine debugging using SoftIce over lan. if it works, I'll let you know.

Guest Drew Hoffman
Posted (edited)

Released version Alpha-017 https://github.com/andrew-hoffman/WDMHDA/releases/tag/Alpha-017

  • Allows multiple codecs on a controller link to be used
  • Added many more chipset device IDs for snoop flag.
    • Should fix garbled audio on a lot of AMD and Nforce chipsets.
  • Fixed inf file not specifying source disks correctly for 98se
  • Increased range of reported sample rates again, fixes DXDIAG 6.1 playing no sounds

About Mercury127's system with an Intel HDA controller and a Nvidia Pascal GPU, some more refactoring needs to be done to allow multiple controllers to be used at once since the AdapterCommon object is a singleton but currently holds a lot of controller state. This is causing problems when multiple instances of the driver are loaded for any reason and should be fixed.

Also the two PCIe devices having different snoop settings seems to be normal and expected? 

Edited by Drew Hoffman
Posted
41 minutes ago, Drew Hoffman said:

Released version Alpha-017

1. No sound on my Core Gen10 system (loops on 16 version).

2. DXDIAG 6.1a works.

3. The last but not least - driver does so INTERESTING thing with hardware that after soft reboot to Windows 11 it does not see HDA controller as available audio device.

Posted

With the Alpha-016 and Alpha-017 versions, the sound is still garbled (unless I run the ScanDisc). Tested on: WindowsMe, AUDIO: Realtek ALC662 HDA, CHIPSET: North Bridge: AMD 770 and South Bridge: AMD SB710.

I also noticed that Alpha-016 and Alpha-017 have identical version number: 5.0.2195.16

Guest Drew Hoffman
Posted (edited)

The unchanged version number would be because I forgot to save HDA.RC before compiling. Really need to put together a build system for modern windows instead of compiling in a VM.

I am clearing the no snoop flag for unknown Intel chipsets now but apparently SweetLow's doesn't like that. Is this chipset PCI\VEN_8086&DEV_06C8="Intel(R) Smart Sound Technology (Intel(R) SST) Audio Controller" ? Are you using the BIOS CSM or CSMWrap? 

Intel Smart Sound Technology adds a whole DSP to the HD Audio Controller which uses the second PCI BAR on the device and is 1mb big. I can't find much more documentation on it than that. 

I did find a thread on the garbled audio problem happening in Linux before the kernel was updated to support Intel SST. https://bbs.archlinux.org/viewtopic.php?id=181764&p=2

Edited by Drew Hoffman
Posted (edited)
> Is this chipset PCI\VEN_8086&DEV_06C8="Intel(R) Smart Sound Technology (Intel(R) SST) Audio Controller" ?
No. Windows 11 Info:
Контроллер High Definition Audio (Microsoft) [System]
** DEVICE: PCI\VEN_8086&DEV_A3F0&SUBSYS_A1841458&REV_00\3&11583659&1&FB
** DRIVER: {4d36e97d-e325-11ce-bfc1-08002be10318}\0035
** SERVICE: HDAudBus
** MFG: Microsoft
** HARDWAREID: PCI\VEN_8086&DEV_A3F0&SUBSYS_A1841458&REV_00 PCI\VEN_8086&DEV_A3F0&SUBSYS_A1841458 PCI\VEN_8086&DEV_A3F0&CC_040300 PCI\VEN_8086&DEV_A3F0&CC_0403
** COMPATIBLEIDS: PCI\VEN_8086&DEV_A3F0&REV_00 PCI\VEN_8086&DEV_A3F0 PCI\VEN_8086&CC_040300 PCI\VEN_8086&CC_0403 PCI\VEN_8086 PCI\CC_040300 PCI\CC_0403
** Registry.MatchingDeviceId: PCI\CC_0403
** Registry.Inf: hdaudbus.inf:[HDAudio_Device.NT]
** LOCATION_INFORMATION: PCI-шина 0, устройство 31, функция 3
** MEM: [00000000000000000000000010000011] FE030000 - FE033FFFh, BAR
** MEM: [00000000000000000000000010000011] FE400000 - FE40FFFFh, BAR
** IRQ: [00000000000000000000000000000001] 16, Share, Level

Realtek High Definition Audio [MEDIA]
** DEVICE: HDAUDIO\FUNC_01&VEN_10EC&DEV_0887&SUBSYS_1458A184&REV_1003\4&37848E68&0&0001
** DRIVER: {4d36e96c-e325-11ce-bfc1-08002be10318}\0001
** SERVICE: IntcAzAudAddService
** MFG: Realtek
** HARDWAREID: HDAUDIO\FUNC_01&VEN_10EC&DEV_0887&SUBSYS_1458A184&REV_1003 HDAUDIO\FUNC_01&VEN_10EC&DEV_0887&SUBSYS_1458A184
** Registry.MatchingDeviceId: hdaudio\func_01&ven_10ec&dev_0887
** Registry.Inf: oem5.inf:[IntcAzAudModel.NTamd64]
** LOCATION_INFORMATION: Internal High Definition Audio Bus

Audio Intel(R) for Displays [MEDIA]
** DEVICE: HDAUDIO\FUNC_01&VEN_8086&DEV_280B&SUBSYS_80860101&REV_1000\4&37848E68&0&0201
** DRIVER: {4d36e96c-e325-11ce-bfc1-08002be10318}\0000
** SERVICE: IntcDAud
** MFG: Intel(R) Corporation
** HARDWAREID: HDAUDIO\FUNC_01&VEN_8086&DEV_280B&SUBSYS_80860101&REV_1000 HDAUDIO\FUNC_01&VEN_8086&DEV_280B&SUBSYS_80860101
** Registry.MatchingDeviceId: HDAUDIO\FUNC_01&VEN_8086&DEV_280B&SUBSYS_80860101
** Registry.Inf: oem18.inf:[IntcAudModel]
** LOCATION_INFORMATION: Internal High Definition Audio Bus

>Are you using the BIOS CSM or CSMWrap?
AMI BIOS CSM Edited by SweetLow
Posted

Alpha 017:
Still no sound on Asus P5B Ich8 HD AudioController ID VEN_8086&DEV_284B / ADI1988A and Asus P5KPL/1600 ICH7 HDAC ID VEN_8086&DEV_27D8 / VT1708B.

Posted (edited)

I tested Alpha-017 with Asrock 960GM-GS3 on SB710/ ALC662.

Same as Alpha-016: first one or two notes of music seems to be heard, then repeat these endlessly. But volume is much lower now.

I played a bit with the settings from the HDA.INF, no differences (found in HKLM\System\CurrentControlSet\Class\MEDIA\0018\Settings\ on my system, if I remember well).

Following settings ment:

HKR,Settings,SkipControllerReset,0x00010001,0
HKR,Settings,SkipCodecReset,0x00010001,0
HKR,Settings,UseAltOut,0x00010001,0
HKR,Settings,UseSPDIF,0x00010001,1
HKR,Settings,UseDisabledPins,0x00010001,0
HKR,Settings,UseDmaPos,0x00010001,0

Same results after full reboot (cannot return from exit to MS-DOS, driver gives yellow exclamation mark in Device Manager).

Edited by deomsh
Guest Drew Hoffman
Posted

Uploaded a 17.1 bug fix version, fixed the version number and headphone output being ignored due to a missed refactoring change. 

Posted

Just tested Alpha-017.1 with Asrock 960GM-GS3 on SB710/ ALC662.

Same as earlier, still looks like only first two 'tones' are played (different 'tone' for other music file).  :(

Posted

I tested the latest version : EX58-UD4 motherboard with ALS888. Works just fine for me so far. Tried the following: midi file playback, in-game playback (Hitman Contracts). Let me know if there's anything more specific I can test on and report

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