Jump to content

deomsh

Member
  • Posts

    666
  • Joined

  • Last visited

  • Days Won

    2
  • Donations

    0.00 USD 
  • Country

    Netherlands

Everything posted by deomsh

  1. I studied all sources about the ctx5066-family I could find. According Linux' ALSA sources your codec needs enabling first GPIO-pin. I do not have any experience with GPIO-verbs, but we can try. I made following debug-version of HDAICOUT.HDA. I added many extra so called 'GET-verbs' to retrieve more information from your codec. As can easily be seen this is NOT an universal version, but addressing specific nodes/ widgets. Verbs starting with ';;' are currently unused: ;;This debug-version of HDAICOUT.HDA should be used for Thinkpad T420 (Conexant cx20672 - Alsa ctx5066 family) Begin $0017FF00;AC_VERB_SET_CODEC_RESET; $0017FF00;AC_VERB_SET_CODEC_RESET;! End Begin $000F0000;AC_PAR_VENDOR_ID $000F0002;AC_PAR_SUBSYSTEM_ID $000F0004;AC_PAR_NODE_COUNT;Subordinate_Node_Count $001F0004;AC_PAR_NODE_COUNT;Subordinate_Node_Count $001F0005;AC_PAR_FUNCTION_TYPE $001F0008;AC_PAR_AUDIO_FG_CAP $001F000A;AC_PAR_STREAM;Sample_Size_Rate $001F000B;AC_PAR_PCM;Stream_Formats $001F000F;AC_PAR_POWER_STATE $001F0011;AC_PAR_GPIO_CAP;Number_GPIO'S $001F2000;AC_VERB_GET_SUBSYSTEM_ID;Board_Implementation_ID $001F0500;AC_VERB_GET_POWER_STATE $00170500;AC_VERB_SET_POWER_STATE;Power up! $001F0500;AC_VERB_GET_POWER_STATE $001F1600;AC_VERB_GET_GPIO_MASK $001F1700;AC_VERB_GET_GPIO_DIRECTION $001F1500;AC_VERB_GET_GPIO_DATA $00171601;AC_VERB_SET_GPIO_MASK,01 $00171701;AC_VERB_SET_GPIO_DIRECTION,01 $00171501;AC_VERB_SET_GPIO_DATA,01 $001F1600;AC_VERB_GET_GPIO_MASK $001F1700;AC_VERB_GET_GPIO_DIRECTION $001F1500;AC_VERB_GET_GPIO_DATA $001F0011;AC_PAR_GPIO_CAP;Number_GPIO'S End Begin ;;node 0x10: DAC1 $010F0009;AC_PAR_AUDIO_WIDGET_CAP $010F000A;AC_PAR_PCM;SAMPLE_SIZE_RATE_CAP $010F000B;AC_PAR_STREAM;STREAM_FORMATS $010F0012;AC_PAR_AMP_OUT_CAP $010F0500;AC_VERB_GET_POWER_STATE $01070500;AC_VERB_SET_POWER_STATE;Power up! $010F0500;AC_VERB_GET_POWER_STATE $010F0600;AC_VERB_GET_CONV;GET_CHANNEL_STREAMID;00 $01070600;AC_VERB_SET_CHANNEL_STREAMID;00 $010F0600;AC_VERB_GET_CONV;GET_CHANNEL_STREAMID;00 $010F0610;AC_VERB_GET_CONV;GET_CHANNEL_STREAMID;01 ;;$01070610;AC_VERB_SET_CHANNEL_STREAMID;01 ;;$010F0610;AC_VERB_GET_CONV;GET_CHANNEL_STREAMID;01 $010A0000;AC_VERB_GET_STREAM_FORMAT $01024011;AC_VERB_SET_STREAM_FORMAT;44.1kHz_16-bits $010A0000;AC_VERB_GET_STREAM_FORMAT $010B8000;AC_VERB_GET_AMP_GAIN_MUTE $0103B04A;AC_VERB_SET_AMP_GAIN_MUTE;max_vol $010B8000;AC_VERB_GET_AMP_GAIN_MUTE End Begin ;;node 0x11: DAC2 $011F0009;AC_PAR_AUDIO_WIDGET_CAP $011F000A;AC_PAR_PCM;SAMPLE_SIZE_RATE_CAP $011F000B;AC_PAR_STREAM;STREAM_FORMATS $011F0012;AC_PAR_AMP_OUT_CAP $011F0500;AC_VERB_GET_POWER_STATE $01170500;AC_VERB_SET_POWER_STATE;Power up! $011F0500;AC_VERB_GET_POWER_STATE $011F0600;AC_VERB_GET_CONV;GET_CHANNEL_STREAMID;00 ;;$01170600;AC_VERB_SET_CHANNEL_STREAMID;00 ;;$011F0600;AC_VERB_GET_CONV;GET_CHANNEL_STREAMID;00 $011F0610;AC_VERB_GET_CONV;GET_CHANNEL_STREAMID;01 $01170610;AC_VERB_SET_CHANNEL_STREAMID;01 $011F0610;AC_VERB_GET_CONV;GET_CHANNEL_STREAMID;01 $011A0000;AC_VERB_GET_STREAM_FORMAT $01124011;AC_VERB_SET_STREAM_FORMAT;44.1kHz_16-bits $011A0000;AC_VERB_GET_STREAM_FORMAT $011B8000;AC_VERB_GET_AMP_GAIN_MUTE $0113B04A;AC_VERB_SET_AMP_GAIN_MUTE;max_vol $011B8000;AC_VERB_GET_AMP_GAIN_MUTE End Begin ;;node 0x19: OUT HP Detect ([Jack] HP Out at Ext Left) $019F0009;AC_PAR_AUDIO_WIDGET_CAP $019F000C;AC_PAR_PIN_CAP $019F0900;AC_VERB_GET_PIN_SENSE $019F0800;AC_VERB_GET_UNSOLICITED_RESPONSE;Get_Unsollicited_Response_Control ;;$01970800;AC_VERB_SET_UNSOLICITED_RESPONSE;Set_Unsollicited_Response_Control;disable ;;$019F0800;AC_VERB_GET_UNSOLICITED_RESPONSE;Get_Unsollicited_Response_Control $019F0500;AC_VERB_GET_POWER_STATE $01970500;AC_VERB_SET_POWER_STATE;Power up! $019F0500;AC_VERB_GET_POWER_STATE $019F0100;AC_VERB_GET_CONNECT_SEL $01970100;AC_VERB_SET_CONNECT_SEL;Front? $019F0100;AC_VERB_GET_CONNECT_SEL $019F0700;AC_VERB_GET_PIN_WIDGET_CONTROL $019707C0;AC_VERB_SET_PIN_WIDGET_CONTROL;hp_amp_out_enable $019F0700;AC_VERB_GET_PIN_WIDGET_CONTROL $019B8000;AC_VERB_GET_AMP_GAIN_MUTE;status_output End Begin ;;node 0x1B: IN OUT EAPD Detect ([Jack] Mic at Ext Left) $01BF0009;AC_PAR_AUDIO_WIDGET_CAP $01BF000C;AC_PAR_PIN_CAP $01BF0500;AC_VERB_GET_POWER_STATE $01B70500;AC_VERB_SET_POWER_STATE;Power up! $01BF0500;AC_VERB_GET_POWER_STATE $01BF0100;AC_VERB_GET_CONNECT_SEL $01B70100;AC_VERB_SET_CONNECT_SEL;Front? $01BF0100;AC_VERB_GET_CONNECT_SEL $01BF0700;AC_VERB_GET_PIN_WIDGET_CONTROL $01B70740;AC_VERB_SET_PIN_WIDGET_CONTROL;out_enable $01BF0700;AC_VERB_GET_PIN_WIDGET_CONTROL $01B70C02;AC_VERB_SET_EAPD_BTLENABLE;ExtenalAmplifierPowerUp $01BB8000;AC_VERB_GET_AMP_GAIN_MUTE;status_output End Begin ;;node 0x1C: OUT Detect (Line Out at Ext N/A) $01CF0009;AC_PAR_AUDIO_WIDGET_CAP $01CF000C;AC_PAR_PIN_CAP $01CF0500;AC_VERB_GET_POWER_STATE $01C70500;AC_VERB_SET_POWER_STATE;Power up! $01CF0500;AC_VERB_GET_POWER_STATE $01CF0100;AC_VERB_GET_CONNECT_SEL $01C70100;AC_VERB_SET_CONNECT_SEL;Front? $01CF0100;AC_VERB_GET_CONNECT_SEL $01CF0700;AC_VERB_GET_PIN_WIDGET_CONTROL $01C70740;AC_VERB_SET_PIN_WIDGET_CONTROL;out_enable $01CF0700;AC_VERB_GET_PIN_WIDGET_CONTROL $01CB8000;AC_VERB_GET_AMP_GAIN_MUTE;status_output End Begin ;;node 0x1D: IN OUT EAPD Detect (Line Out at Ext N/A) $01DF0009;AC_PAR_AUDIO_WIDGET_CAP $01DF000C;AC_PAR_PIN_CAP $01DF0500;AC_VERB_GET_POWER_STATE $01D70500;AC_VERB_SET_POWER_STATE;Power up! $01DF0500;AC_VERB_GET_POWER_STATE $01DF0100;AC_VERB_GET_CONNECT_SEL $01D70100;AC_VERB_SET_CONNECT_SEL;Front? $01DF0100;AC_VERB_GET_CONNECT_SEL $01DF0700;AC_VERB_GET_PIN_WIDGET_CONTROL $01D70740;AC_VERB_SET_PIN_WIDGET_CONTROL;out_enable $01DF0700;AC_VERB_GET_PIN_WIDGET_CONTROL $01D70C02;AC_VERB_SET_EAPD_BTLENABLE;ExtenalAmplifierPowerUp $01DB8000;AC_VERB_GET_AMP_GAIN_MUTE;status_output End Begin ;;node 0x1F: OUT ([Fixed] Speaker at Int Bottom) $01FF0009;AC_PAR_AUDIO_WIDGET_CAP $01FF000C;AC_PAR_PIN_CAP $01FF0500;AC_VERB_GET_POWER_STATE $01F70500;AC_VERB_SET_POWER_STATE;Power up! $01FF0500;AC_VERB_GET_POWER_STATE $01FF0100;AC_VERB_GET_CONNECT_SEL $01F70100;AC_VERB_SET_CONNECT_SEL;Front? $01FF0100;AC_VERB_GET_CONNECT_SEL $01FF0700;AC_VERB_GET_PIN_WIDGET_CONTROL $01F70740;AC_VERB_SET_PIN_WIDGET_CONTROL;out_enable $01FF0700;AC_VERB_GET_PIN_WIDGET_CONTROL $01FB8000;AC_VERB_GET_AMP_GAIN_MUTE;status_output End I'd like you to do following tests, all with new HDAICOUT.HDA. Afterwards I need the four HDAICIN.TXT's only. First: all widget values in HDACFG.INI should ALWAYS stay on $10. First test: 1) Set pcipatchB=$0000 in HDACFG.INI. 2) Connect headphones. 3) Boot and listen carefully. 4) Unplug headphones and listen to the speaker. 5) Rename HDAICIN.TXT to HDAICINA.TXT. 6) Reboot, headphones still unplugged. 7) Listen to the speaker. 5) Rename HDAICIN.TXT to HDAICINB.TXT. Second test: 1) Set pcipatchB=$7900 in HDACFG.INI (as always at your own risk, if any!) 2) Connect headphones. 3) Boot and listen carefully. 4) Unplug headphones and listen to the speaker. 5) Rename HDAICIN.TXT to HDAICINC.TXT. 6) Reboot, headphones still unplugged. 7) Listen to the speaker. 5) Rename HDAICIN.TXT to HDAICIND.TXT. HDAICOUT_(Thinkpad T420_Conexant cx20672_ Alsa_ctx5066_family).ZIP
  2. Thanks for trying. Strange behavior with widgets at $11, but at least something is happening. Did you took any stabilizing measures as described in the hda-thread? Memory should'nt be a problem, HDATSR makes a buffer somewere between 1-4 MB, most of the time. Setting [BUSMASTER] manually in HDACFG.INI is only needed in case of Windows ME (ME can not load TSR's, unless some real-mode fix is added). About trying widgets at $11: very good. The Conexant codec seems to be a so called 'double codec' with two DAC's (Digital Analog Converters). Edit: And just to be sure: if you play a file, is the slider of the mediaplayer moving? Oeps, you already mentioned the slider was moving, overlooked that part.
  3. That's sad. I didn't see anything new in your files, except 'pcipatchB=$7900' of course. I found some information regarding the Conexant '506e' codec (will be cx20590 or cx20672). It seems the Output widgets are $10 or $11 (converting digital to analog audio) and Volume widgets are the same numbers. Maximum volume seems to be 0x4a. Between the PIN-complexes and the Output widgets there does not seem to be a Mixer, default connections are to Output widget $10. The standard headphone widget is probably $19 (with 0xC0: OUT HP), line-out $1A and speaker $1D (with 0x40: OUT; takes EAPD). But of course I can be mistaken/ wrong, or the connections inside your laptop are different wired. So, if there are no special problems like General Purpose Input Output pin's (GPIO), in case of headphones the codec should work just out of the box with HDA2.DLL. To be sure I have to ask you to check again WITHOUT HDAICOUT.HDA. Steps: change in HDACFG.INI SleepingWidget=$10 VolumeWidget=$10 OutputWidget=$10 and try first with default: pcipatchB=$0000 and then again if no sound at all: pcipatchB=$7900 As always listen carefully with headphones and report. New files are not needed.
  4. You seem to have a Conexant codec, sadly no complete datasheet available. According to your HDAICIN.TXT you used a wrong version of HDAICOUT.HDA, verbs are all starting with '$2'. Your HDACFG.INI tells us that 'CODEC Index=$0' so all verbs should start with '$0'. In Linux-sources I found on T420 External Amplifier Power Down (EAPD) can be a problem, so you can try following HDAICOUT.HDA: HDAICOUT (EAPD enabled & CODEC Index 0 in HDACFG.INI).ZIP If you hear still nothing, you can also try setting 'pcipatchB=$7900' (without quotes) in your HDACFG.INI - see: https://msfn.org/board/topic/178295-audio-driver-for-realtek-hd-audio-hardware-testing-thread/?do=findComment&comment=1242464
  5. I will take a look. But first I need the files: HDACFG.INI (or .txt), HDALOG.TXT and if available HDAICIN.TXT. They are/ should be in your Windows-folder. So please upload!
  6. I have used Limbo x86 to install MS-DOS and Windows 98SE. But on my (ARM) smartphone it is rather slow. Sorry, mistake
  7. No problem. Sad activating the headphone amplifier made no difference, but on the other hand this is 'good'. But it seems to be a real issue with codec ALC269, according to various sources. So far I found no cure. You can try the same HDAICOUT.HDA (with 707C0 or 70740 version) and comment out with a semicolon BOTH reset lines (first two lines at the beginning of the file). The reset lines will set al widgets to their default state. Maybe you are lucky that another state of headphones has been set after boot.
  8. Good to know, at least you have DirectX 9.0c now (I presume). In the datasheet it is not fully clear if enabling headphone amplifiers is needed to enable headphones. 'Normally' this is not needed, codecs can be rather stubborn however. But you can try. Open HDAICOUT.HDA in some text editor and change ALL $0..70740 lines to 707C0. First line is now: $00270740;AC_VERB_SET_PIN_WIDGET_CONTROL;out_enable Should become: $002707C0;AC_VERB_SET_PIN_WIDGET_CONTROL;out_enable Etcetera. BTW watch if you use Notepad the extension is still .HDA (Notepad will try to add .TXT). Reboot needed of course.
  9. I found WDM nowhere mentioned in case of the 1998 version. But I have no new ideas. If you run DxDiag, you will see HDA Sound is running in Software Emulation mode. At least in Prince of Persia 'Sands of Time' this was not a problem to get sound with HDA2.DLL (only Windows game I ever tried to play; together with USB the reason I once left my 'beloved' Windows 95 OSR1a). With DirectMusic you can test access to the YAMAGA SGX Driver too (at least in DirectX 9.0c).
  10. About midi: you can try Yamaha S-YXG100plus soft synth, see https://msfn.org/board/topic/178295-audio-driver-for-realtek-hd-audio-hardware-testing-thread/?do=findComment&comment=1245427 Driver is somewhere on Vogons. In my experience: first comment out HDA2.DLL in SYSTEM.INI before installing Yamaha S-YXG100plus soft synth. Afterwards set wavehda=HDA2.DLL as LAST entry in SYSTEM.INI [drivers] and reboot. BTW setting Yamaha S-YXG100plus soft synth to DirectSound output is rather tricky, but after a while you will succeed. But @sifonium who introduced Yamaha S-YXG100plus soft synth to this thread had other experiences/ solutions.
  11. Enjoy! About your test with Colin McRae Rally: I see three possible issues: 1) Version of DirectX 2) Midi driver needed 3) Game needs WDM-driver. Issues 1 an 2 can be fixed, but 3 not: HDA2.DLL is not a WDM-driver
  12. Thanks for testing my next quasi universal HDAICOUT.HDA with EAPD enabled (this version is CODEC Index=$0 only). All 200 lines are logged by HDAICIN.TXT. I only had to reduce the number of 'Power up!' lines a bit. I am afraid I cannot do anything to fix your headphone issue, but maybe you can. IF you where using a headset with three bands on the 3.5mm plug, try a real headphone with two bands.
  13. Two sliders are indeed uncommon. I use WAVEOUT.EXE only to set maximum volume if I use DirectSound aware programs. If they output to DirectSound their OWN volume slider will work. I made a version of HDAICOUT.HDA that sent certain verbs to ALL widgets/ nodes 02h-1Fh, but included EAPD_ENABLE. Please check if there is any difference with headphones. I need HDAICIN.TXT only. HDAICOUT_EAPD_ENABLED.ZIP
  14. Thanks for the info. About a stress test: I believe playing autoreplay a short file many times is different from playing one album. My (unproven, probably 'wild') idea is with autoreplay the driver will be reactivated each time. But you are in an excellent position to test if there is any difference.
  15. Strange that headphones doesn't seem to connect. Do you really hear nothing in your headphones, not the slightest crackle during startup? About speaker volume: is now set to max. Watler's HDA2.DLL comes with WAVEOUT.EXE. Not working if copied to your Windows directory and set VolumeWidget=$02 in HDACFG.INI?
  16. Thanks. Headphone (Node=15h) does not respond to EAPD_ENABLE. Seen the datasheet it's possible headphones are connected to Line-out (Node=1Ah). So I added $1A to HDAICOUT.HDA. I did some fine-tuning too regarding max output volume. Datasheet says 63dB in 1dB steps, so 3F. HDAICIN.TXT needed again. HDAICOUT.HDA.ALC269_v2
  17. Great news. So EAPD is an issue. But first I'd like to see HDAICIN.TXT
  18. @mrfusion92 I did a long search first on your HD Audio Controller, will be SIS996(L). I found no datasheet, but also NO pci quirks in Linux ALSA sources. So for now we should assume the controller is 'good' with Watler's HDA2.DLL. So no pcipatchB in HDACFG.INI. Luckily I found the datasheet of your Realtek codec ALC269, following values in HDACFG.INI are already good: SleepingWidget=$02 OutputWidget=$02 But set: VolumeWidget=$02 I found speaker (widget 14) AND headphones (widget 15) both support EAPD with default '0'. So external amplifiers powered down. Because speaker system looks quite complicated, lets try headphones first with following HDAICOUT.HDA (just rename). BTW I only need HDAICIN.TXT Hdaicout.hda.ALC269
  19. Interesting workaround. Just for the record: still MaxPhysPage=20000 ? Almost the same values (20000 hex is in 4KB pages, so 524288 KB total memory). However better do a sort of stress test with an audio file of say 5 minutes with autoreplay for about 30-60 minutes or so.
  20. I am not familiar with the values noted in HDAICIN.TXT. Special version of HDAICOUT.HDA? Try my quasi-universal version, you will have to use the version in folder HDAICOUT.HDA\Use if CODEC Index=$0. Just copy to your Windows directory and reboot. HDAICOUT.HDA.zip
  21. Sorry, says nothing to me. In the Dell post a special other QFE was mentioned, but I can't found it (also no link in the post). If you are reinstalling already: in my experience with Windows 98SE installations first install with USB and Audio DISABLED in BIOS (if an option). So video first. Second install some USB2 driver and afterwards enable USB and see if everything is working. Then install the audio patch and last enable audio and install driver (AC'97 driver will need access to audio). Because of your shared memory with video: if adjustment is possible in BIOS first, say 32 or 64MB. Setting MaxPhysPage=20000 sounds okay. Maybe in: [vcache] MinFileCache=1024 MaxFileCache=8092 But I doubt vcache will make any difference. And did you install the INTEL inf FIRST, mentioned in the Dell post?
  22. Are you sure it' not GX260? Otherwise maybe this link can be helpful: https://www.dell.com/community/Desktops-General-Read-Only/Windows-98SE-on-an-Optiplex-GX260/td-p/3977581
  23. Thanks. So nothing special. Then there will be another reason for the difference in my case (in fact last time I tested Win98SE+HDA2.DLL on Virtual Box 6 was before I migrated my Windows 10 x64 system to SSD).
  24. Thanks for your kind words. Good luck with your machine. I have a question about your retro-machine: which disk are you using, a 'real' hard disk, or a (fast) SSD? I ask this because the performance of Win98SE+HDA2.DLL was much better in Virtual Box 7 than in Vbox 6 after I upgraded. I first thought this was because of the new version of VBox, but when I had to make a clone of my SSD to a hard disk (because of bad sectors on the SSD), I tested by chance my setup from the hard disk. Now HD-audio was not 'good' anymore. After testing from the SSD again, the 'good' sound was there again. My current theory is the read-speed can be important, but I didn't run any serious tests so far.
  25. Thanks for testing. About your question: if you really use R. Loew's PATCHMEM, why not go for the 2GB settings? If you have any problem: there is always the 1GB option (or less if needed: on Windows 3.1 for instance, or on a low-memory system). But the physical memory addressed in HDACFG.INI [BUSMASTER] must exist. I have no personal experience with 2GB memory in Windows 9x. Many of my contributions to this thread are purely theoretical, also because I have only access to a few High Definition Audio codecs/ controllers.
×
×
  • Create New...