SweetLow Posted January 30 Posted January 30 14 hours ago, Drew Hoffman said: Which system are you still having the looping problem on? Is it the Nvidia MCP78 or the Sunrise Point PCH or something else? Realtek ALC887 @ Intel Comet Point-V PCH (Intel Core gen 10 Desktop Motherboard), of course.
SweetLow Posted January 30 Posted January 30 (edited) On 1/28/2026 at 7:15 PM, Drew Hoffman said: it was the HD Audio Controller's PCIe transactions no-snoop bit Ok, I paid some time to check what happens. With high probability clearing this bit is palliative. It will work only on PCI-E devices. But HDA Controller can be pure PCI device that needs uncached buffers or flushing cache explicitly to work properly with very high probability. And JFYI - older Indel HDA controllers are PCI-E devices but newer (including my test system) are PCI. P.S. And second JFYI - MS driver work with this bit set on. Edited January 30 by SweetLow
schwups Posted Friday at 11:29 PM Posted Friday at 11:29 PM (edited) Alpha 016: Win ME / RM / DirectX 9c Success with MSI G41M4-F (7592) ICH7 HD AudioController ID VEN_8086&DEV_27D8 / Realtek ALC888S - line out (green also CS/RS/SS) and Asus P5KPL EPU, ICH7 / Realtek ALC887 So far no sound on Asus P5B (ADI1988A) and Asus P5KPL/1600 (VT1708B) Asus P5KPL/1600 black jack output has scratchy noise. All PCIE 1.0 Edited 16 hours ago by schwups
SweetLow Posted yesterday at 06:31 AM Posted yesterday at 06:31 AM On 1/28/2026 at 7:15 PM, Drew Hoffman said: PCIe transactions no-snoop bit Ok, I paid few more time as caching theme on x86 was slightly unclear for me (as I learnt this theme more from NT point of view - universal drivers for different architectures). But for x86 things are more simple as there is stated that PCI devices always work in cache coherent mode (as PCI-E devices with cleared no-snoop bit) and chipset is responsible for snooping. It means that all memory buffers can have usual WB chache mode and no explicit software cache control needed. But OTOH it is unclear now why my Core gen 10 system does not work - it has HDA Controller as PCI device - exactly as Core gen8.
Drew Hoffman Posted 13 hours ago Author Posted 13 hours ago (edited) I don't have any Intel 10th Gen systems immediately available to test on and there are still similar issues with some AMD chipsets as well both older and newer. Right now I am focused on refactoring to allow support for multiple codecs on a link which is required to support laptop docking stations and HDMI display audio. @SweetLow you did some research on the SBEMUL.SYS driver a year ago and patched it to allow the SB16 over the low DMA channel. Did you decompile the whole thing or just reverse engineer the registry settings? Since it already traps the port for Adlib FM do you think it would be possible to route the command & data port writes to the DOSBox or Nuked OPL emulator? I have tried putting that driver into Ghidra but couldn't make much sense of the int 20 hooks and couldn't load symbols for PortCls and KS in SYM format so I didn't get very far. Edited 8 hours ago by Drew Hoffman
SweetLow Posted 1 hour ago Posted 1 hour ago (edited) 12 hours ago, Drew Hoffman said: I don't have any Intel 10th Gen systems Problem is really strange as for example pangomis'es MSI PRO H610M-B DDR4 (Realtek ALC892/ALC897) with core gen12 has HDA controller as PCI device too. So driver works on core gen8 and core gen12 but does not work on core gen10. But I slightly do not understand why his system did not work on previous versions of driver (if he tested these versions, of course). 12 hours ago, Drew Hoffman said: just reverse engineer the registry settings? This one. And SB16 emulation is just bonus in process of finding Registry settings as I paid attention on the string for environment with T6 type and then found variable responsible for switch - that does not export through the Registry key. 12 hours ago, Drew Hoffman said: Since it already traps the port for Adlib FM do you think it would be possible to route the command & data port writes to the DOSBox or Nuked OPL emulator? The fact that SBEMUL sets (null) hook for FM synthesis was the main surprise for me But I don't understand why do you need exactly such thing. You can DISABLE FM synthesis in SBEMUL and enable it anywhere (real hardware or other emulator). P.S. >but couldn't make much sense of the int 20 hooks I did not understand what you are talking about for the first but now I understand. Man, you are in Windows in 386 Enhanced mode These are just VxD calls/jumps. Some disassemblers should understand them (and I wrote few simple tools for decoding them to human readable values). Edited 1 hour ago by SweetLow P.S. added
Recommended Posts
Please sign in to comment
You will be able to leave a comment after signing in
Sign In Now