Jump to content
MSFN is made available via donations, subscriptions and advertising revenue. The use of ad-blocking software hurts the site. Please disable ad-blocking software or set an exception for MSFN. ×


  • Posts

  • Joined

  • Last visited

  • Days Won

  • Donations

  • Country


deomsh last won the day on June 2

deomsh had the most liked content!

About deomsh

Profile Information

  • OS

Recent Profile Visitors

3,281 profile views

deomsh's Achievements



  1. You can try FIND.EXE https://en.m.wikibooks.org/wiki/First_steps_towards_system_programming_under_MS-DOS_7/Selected_utilities
  2. Your welcome. If you are experiencing problems with 'choice', don't hesitate asking for help. I About the other Widget-values in HDACFG.INI: 1) you can try SleepingWiget=$01 and commenting out $00170500;Power up! to ;;$00170500;Power up! (or just deleting the whole line). But from earlier HDAICIN.TXT we saw: sent $001F0500; got $00000033 sent $00170500; got $00000000 sent $001F0500; got $00000000 AND sent $010F0500; got $00000033 sent $01070500; got $00000000 sent $010F0500; got $00000000 So Codec_Reset + setting the AFG-widget to full power has NO effect on power state of DAC0 (last '00' is highest power-state, '33' lowest power-state implemented for STAC9205). From the datasheet (p.40) it's not clear to me what 'referenced node' means, in this respect. Watler from 'Watlers World', the programmer of HDA2DLL, didn't include sending 'standard' $00170500. Although it's clearly needed in case of STAC9205. No offence to Watler of course, he did a great job! 2) OutputWidget=$10 is 'Good'. Overruled by Verbs in latest D830-version HDAICOUT.HDA anyway. 3) VolumeWidget=$10: needed for WAVEOUT.EXE, as found earlier. II About $00A70100;AC_VERB_Set_Connection_Select_Control AND $00D70100;AC_VERB_Set_Connection_Select_Control in HDAICOUT.HDA: I do not understand the 'why' of the 'black screen' you described. In earlier HDAICIN.TXT Verb 701 didn't change anything, so why it's needed in HDAICOUT.HDA? BTW relationship Codec <=> External Amplifier is not clear to me, maybe D830 'expects' *some* electrical output from the codec?
  3. Good. Strange about the need of having a jack plugged in during boot in this case. Good to know! Set Verb $00D70720 is the only way I saw with HDA2.DLL in combination with STAC9205. It's not an official way, just my 'hack'. I believe the only difference with the Set Verbs sent by HDA2.DLL as can be seen in HDACFG.INI is Set Verb $00170500;Power up! (apart form settings of $00A and $00D). This codec has only Power saving Verbs (in the playback-mode) for the DAC's and the main Audio Function Group (AFG) node $001. Maybe $00A70100 and $00D70100 can be commented out, Port A and Port D seems to be connected with DAC0 already after Codec_Reset. You can try. This will be the final working version of HDAICOUT.HDA in case of Dell D830 (probably D630 too), with VolumeWidget in HDACFG.INI set to $10 for use with WAVEOUT.EXE. I can't found anything that mutes the speaker after the headphone-jack is inserted (with this driver). It would be of interest what happens with the muted speaker while still in Windows if you change $00D70720 back to $00D70740 (RUN => Notepad HDAICOUT.HDA should work). Probably no difference? Otherwise you will have a choice before starting Windows. Can be easily automated in a batch-file or in AUTOEXEC.BAT with choice, or with menu's in CONFIG.SYS/ AUTOEXEC.BAT. With purpose to copy 'right' HDAICOUT.HDA to %windir% according to chosen speaker-mode.
  4. And if you go back to earlier version of HDAICOUT.HDA below (cleaned version of Saturday at 12:23 AM, but with $00D70720)? No need to edit HDACFG.INI again, widgets can stay on $10. Begin $0017FF00; CODEC RESET $0017FF00; CODEC RESET $00170500;Power up! End Begin $01070500;Power up! $01024011;AC_VERB_SET_Converter_FORMAT_44.1kHz_16-bits $01070610;AC_VERB_SET_CHANNEL_STREAMID_1 $0103907F;AC_VERB_SET_AMP_GAIN_MUTE;max_vol_right $0103A07F;AC_VERB_SET_AMP_GAIN_MUTE;max_vol_left End Begin $00A70100;AC_VERB_Set_Connection_Select_Control $00A70740;AC_VERB_SET_PIN_WIDGET_CONTROL;out_enable End Begin $00D70100;AC_VERB_Set_Connection_Select_Control $00D70720;AC_VERB_SET_PIN_WIDGET_CONTROL;in_enable ;;$00D70740;AC_VERB_SET_PIN_WIDGET_CONTROL;out_enable End If still everything muted, activate line with $00D70740 and comment-out ;;$00D70720 and report. No files needed.
  5. And if you comment out the two first Codec_Reset lines (;;$0017FF00)? If no difference, change $00D70720 back to $00D70740 and report (still with ;;$0017FF00 - two times!). There is no mute option for node $00D, that's why I changed direction to input (70720) to try if that has same result, instead of output as normally (707040)
  6. I ment two semi-colons to be sure ';;' Nevermind, one should work too. No further difference without CODEC_RESET. But headphone was detected on $00A with Verb F09: $FFFFFFFF instead $7FFFFFFF before. I found an electric diagram of Dell D830 (dell_latitude_d830_discrete_256mb_quanta_jm7b__100.pdf). It seems internal MonoOut is unused ($014 is unconnected) Instead LineOut (Port D = 0x00D) is wired to inputs of an External Stereo Amplifier. Headphone on Port A too. But there is some Sense A back-signaling. There are mute-possibilities too, but not directly (as you experienced already). Next is trying a minimal number of Set_Verbs and muting the Speaker. Please set all three Widget-entries in HDACFG.INI to $10 and try if Speaker is muted, while headphones are active. With following HDAICOUT.HDA Begin $0017FF00; CODEC RESET $0017FF00; CODEC RESET $001F0800;Get_Unsol_Resp End Begin $00AF0100;AC_VERB_Get_Connection_Select_Control $00A70100;AC_VERB_Set_Connection_Select_Control $00AF0100;AC_VERB_Get_Connection_Select_Control $00AF0700;AC_VERB_GET_PIN_WIDGET_CONTROL;out_status $00A70740;AC_VERB_SET_PIN_WIDGET_CONTROL;out_enable $00AF0700;AC_VERB_GET_PIN_WIDGET_CONTROL;out_status $00AF0900;Get_Pin_Sense; $00AF0800;Get_Unsol_Resp End Begin $00DF0100;AC_VERB_Get_Connection_Select_Control $00D70100;AC_VERB_Set_Connection_Select_Control $00DF0100;AC_VERB_Get_Connection_Select_Control $00DF0700;AC_VERB_GET_PIN_WIDGET_CONTROL;out_status $00D70720;AC_VERB_SET_PIN_WIDGET_CONTROL;in_enable $00DF0700;AC_VERB_GET_PIN_WIDGET_CONTROL;out_status $00DF0800;Get_Unsol_Resp End BTW This time I will need HDALOG.TXT and HDAICIN.TXT both.
  7. Can you repeat the procedure? This time with headphone jack inserted. Further with the First two Codec_Reset lines commented out (maybe with two semi-colon's?). Good idea to make changes in Safe mode! I only need HDAICIN.TXT this time. After booting try if there is any response from your speaker if you pull out the jack/ insert again while playing an audio-file.
  8. Thanks! According to the response in HDAICIN.TXT to Verbs $00AF0900 and $00DF0900 there was NO headphone jack inserted during that test. Is that true?
  9. You have the real spirit! First I rearranged HDAICOUT.HDA to the signal path of STAC9205, according to the datasheet. Only many GET-Verbs added, to retrieve information. $010=DAC0 $00A=Port A $00D=Port D $014=MonoOut $015=MonoOutMix $024=ExtVolume Copy code below to an empty HDAICOUT.HDA (always backup previous version first) and set VolumeWidget to $10 Begin $0017FF00; CODEC RESET $0017FF00; CODEC RESET $001F000F;AC_PAR_POWER_STATE $001F0500;AC_VERB_GET_POWER_STATE $00170500;Power up! $001F0500;AC_VERB_GET_POWER_STATE End Begin $001F0000;get_gpio_caps $001F1500;get_gpio $001F1600;get_gpio_en $001F1700;get_gpio_dir $001F1800;get_gpio_wake $001F1900;get_gpio_unsol $001F1A00;get_gpio_sticky $001FEE00;get_gpio_invert $001FEF00;get_gpio_drive Begin $010A0000;AC_VERB_GET_Converter_FORMAT $01024011;AC_VERB_SET_Converter_FORMAT_44.1kHz_16-bits $010A0000;AC_VERB_GET_Converter_FORMAT $010B8000;AC_VERB_GET_AMP_GAIN_MUTE;status_output_right $0103907F;AC_VERB_SET_AMP_GAIN_MUTE;max_vol_right $010B8000;AC_VERB_GET_AMP_GAIN_MUTE;status_output_right $010BA000;AC_VERB_GET_AMP_GAIN_MUTE;status_output_left $0103A07F;AC_VERB_SET_AMP_GAIN_MUTE;max_vol_left $010BA000;AC_VERB_GET_AMP_GAIN_MUTE;status_output_left $010F0009;WCap $010F0500;AC_VERB_GET_POWER_STATE $01070500;Power up! $010F0500;AC_VERB_GET_POWER_STATE $010F0600;AC_VERB_GET_CHANNEL_STREAMID $010F0610;AC_VERB_GET_CHANNEL_STREAMID_1 $01070610;AC_VERB_SET_CHANNEL_STREAMID_1 $010F0600;AC_VERB_GET_CHANNEL_STREAMID $010F0610;AC_VERB_GET_CHANNEL_STREAMID_1 End Begin $00AF0009;WCap $00AF000C;PinCap $00AF000E;ConnLen $00AF0200;ConnList $00AF0100;AC_VERB_Get_Connection_Select_Control $00A70100;AC_VERB_Set_Connection_Select_Control $00AF0100;AC_VERB_Get_Connection_Select_Control $00AF0700;AC_VERB_GET_PIN_WIDGET_CONTROL;out_status $00A70740;AC_VERB_SET_PIN_WIDGET_CONTROL;out_enable $00AF0700;AC_VERB_GET_PIN_WIDGET_CONTROL;out_status $00AF0800;UnsolResp $00AF0900;Get_Pin_Sense; $00AF1C00;PinConfig End Begin $00DF0009;WCap $00DF000C;PinCap $00DF000E;ConnLen $00DF0200;ConnList $00DF0100;AC_VERB_Get_Connection_Select_Control $00D70100;AC_VERB_Set_Connection_Select_Control $00DF0100;AC_VERB_Get_Connection_Select_Control $00DF0700;AC_VERB_GET_PIN_WIDGET_CONTROL;out_status $00D70740;AC_VERB_SET_PIN_WIDGET_CONTROL;out_enable $00DF0700;AC_VERB_GET_PIN_WIDGET_CONTROL;out_status $00DF0800;UnsolResp $00DF0900;Get_Pin_Sense; $00DF1C00;PinConfig End Begin $014BA000;AC_VERB_GET_AMP_GAIN_MUTE;status_output_left $0143A07F;AC_VERB_SET_AMP_GAIN_MUTE;max_vol_left $014BA000;AC_VERB_GET_AMP_GAIN_MUTE;status_output_left $014F0009;WCap $014F000C;PinCap $014F0012;OutAmpCap $014F000E;ConnLen $014F0200;ConnLst $014F0700;AC_VERB_GET_PIN_WIDGET_CONTROL;out_status $01470740;AC_VERB_SET_PIN_WIDGET_CONTROL;out_enable $014F0700;AC_VERB_GET_PIN_WIDGET_CONTROL;out_status $014F1C00;PinConfig End Begin $015F0009;WCap $015F000E;ConnLen $015F0200;ConnList End Begin $024F0009;WCap $024F0013;KnobCap $024F000E;ConnLen $024F0200;ConnList $024F0800;UnsolResp $024F0F00;KnobCtl $024FE000;KnobVSR End I will need HDAICIN.TXT and HDALOG.TXT
  10. Strange If you like, I can try to write a more specific HDAICOUT.HDA for your codec. Will be a lengthy excercise, because first the codec have to be read-out with Get-Verbs and output in HDAICIN.TXT, for comparison with the datasheet. Maybe things will become better, likely not. If you are happy with your current results there is no need to go into this heavy stuff, which will need some testing on your side of course. Although you can stop every time you like.
  11. If you want to mute the speaker, you can try by commenting out all entries in HDAICOUT.HDA starting with $014 (with a semicolon before the entry).
  12. Yes, if it's working... But does it work actually in that way. Is the speaker reacting on WAVEOUT.EXE?
  13. Sorry, I forgot VolumeWidget=$14 is the default setting of HDACFG.INI But how can you set only the speaker-volume to zero without losing headphones? Or is there an independent line-out jack? Or otherwise?
  14. I have done some reading in the datasheet of (IDT) STAC9204,05. I'm afraid auto-switching will be not possible with HDA2.DLL, but it seems PortMonoOut (will be SPEAKER) has it's own independent volume (see page 110 of STAC9204,05.PDF - 213 pages!). So you can try VolumeWidget=$14 in HDACFG.INI with WAVEOUT.EXE Of course you will loose volume with WAVEOUT.EXE on your headphone. But - if the headphone still has sound after this change - volume-slider on most players will do the job too as Master volume (Direct Sound enabled!). Or else the physical volume-slider on many headphones.... BTW The Datasheet mentioned this codec can not play 8-bit audio, only 16/20/24-bit. So you will have to stick to 16-bit.
  15. HDA2.DLL is limited to 48000 Hz/ 16 bit, so just within the HD Audio specification. MediaPlayer will use DirectSound by default. Did you install DirectX 9.0c already? Players like Foobar can convert 24/32-bit audio to 16 bit. There are old versions, I'm not sure if KernelEx is needed.

  • Create New...