http://bugs.winehq.org/show_bug.cgi?id=58731 --- Comment #18 from Nostalgia_Realm <mail@rickweb.nl> --- Following up on [comment #17](https://list.winehq.org/hyperkitty/list/wine-bugs@list.winehq.org/message/5J...): I used **GPT-6 Astra** to investigate the supplied dgVoodoo2 binaries. It identified the relevant code and produced a working fix in approximately **17 minutes**. I then personally confirmed that Snail Mail’s Tutorial renders and responds correctly with the patched DLL. The findings point to **a Wine-specific code path inside dgVoodoo2 as the cause of this regression**. No changes to Wine were needed to remove the reproduced crash. The relevant code does the following: 1. Walks the process’s loaded-module list and locates `NTDLL.DLL` using an encoded name. 2. Reads its export table directly and searches for names containing `wine_get`, such as `wine_get_version`. 3. Conceals that substring comparison behind arithmetic and numeric constants, rather than a readable Wine-identification string. 4. When Wine is detected, takes a path that skips clearing two graphics-state values. Redirecting execution to the normal clearing path removes the reproduced failure. This was confirmed in **2.82 and 2.87.5**. The corresponding check was absent from the supplied **2.8** D3D8/DDraw binaries. Every intervening release was not individually analysed, so this does not establish the exact release that first introduced it. The fix is very small once the affected DLLs are unpacked: - **2.82:** change one branch-displacement byte in each affected D3D8/DDraw DLL so that the state-clearing instructions also execute under Wine. - **2.87.5:** change one instruction byte per Wine-export detection routine so it returns “not detected.” There are **23 copies across 22 DLLs**, including both copies inside the ARM64X D3D9 DLL. The two D3DImm DLLs lack this check. With the original DLLs, Snail Mail crashes and a separate DirectDraw test fails during surface creation. With the patches, Snail Mail runs and the DirectDraw test passes drawing, pixel readback, and cleanup. DXVK was still needed for D3D11 translation. **I strongly suspect deliberate interference with Wine compatibility**, given the obfuscated Wine detection and the harmful path it selects. Intent cannot be established conclusively from this evidence alone, but the Wine detection itself, and its connection to the reproduced failure is concrete. The earlier comment’s more specific D3D12-pointer explanation was not independently established. I might provide patched builds of this app on my website promptly, I will first check what license is that Dege uses for his app. -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.