I used version 9J.
I compared 9J/9K/9L in case of HDALOG.TXT (on Asrock 960GM-GS3 with HDA controller 1002:4383 and codec 10EC:0662):
1) With HDAICOUT.HDA all log's are equal on Windows 3.1 without [VOLUME] setting in HDACFG.INI (written if WAVEOUT.EXE was used). The driver always sent '7F' to VolumeWidget set. On Windows 3.1 responses to GET Verbs sent further good, but on Windows 98SE intermittendly the response to Verb 001F2000 was OR the wrong 'Board_Implementation_ID' OR even zero's (on Windows 98SE with version 9K/9L). Seems also different on how 'cold' or 'hot' my system was;
2) Without HDAICOUT.HDA all log's are almost always equal in size, but intermittendly the response to Verb 001F2000 was or the wrong 'Board_Implementation_ID' (on Windows 3.1) or even zero's (on Windows 98SE with version 9K/9L. Version HDADRV9J seems to be a little 'better', not fully sure).
So I think I have timing-problems too, especially on Windows 98SE without HDAICOUT.HDA (needed on my system tested anyway).
I also found if the 'right' VolumeWiget is set in HDACFG.INI the volume setting in HDAICOUT.HDA is overruled (on HDADRV 9J/9K/9L). But with WAVEOUT.EXE volume setting can be adjusted and is written into HDACFG.INI. Also overuled in case of OutputWidget: always 44.1kHz 16-bits. But I think the codec will switch to the right frequency if needed?
Both tested with sending GET Verbs with AHDA17 version O (INTELHDA.EXE).
About Mytimer=$0
This setting in HDACFG.INI was added by Watler in case after a DOS-session sound was 'gone', and/ or in case of problems with virtual memory. So especially useful in case of Windows 3x Standard mode (no virtual memory). Although he said the default setting (Mytimer=$1) should work on Windows 3x Standard mode, on my system/ installation I always needed HDARUN.EXE in this case:
Verb 707:
On my system payload '0C' introduced noise, that's why I always use '40' as default, but this can simply be changed in HDAICOUT.HDA. Using Input's (payload '20' ) only make sense on codecs with a loopback function, most of the time a Mixer Widget and/ or a Selector Widget. I only used the analog CD-in port, no problems with Vref experienced (maybe not supported?). Unless you want to re-write HDA2.DLL to cover the recording part (currently playback only).
About hard-coding HDAICOUT.HDA inside HDA.PAS:
It should be possible, but you will loose the flexibility of HDAICOUT.HDA. In case of EAPD: there exist codecs with inverted EAPD (I believe some Lenovo laptop's!).
From a more 'overall' perspective it would be more useful to concentrate on the 'controller part' and the codec-identification. But of course: it is all up to you!