mirror of
https://github.com/Droid-Deck/DroidDeck.git
synced 2026-11-11 11:01:07 +00:00
DiRT 3 and DiRT Showdown keep sending motion telemetry on the UDP socket they closed at the end of a race (and when leaving Joyride); sendto() fails with WSAENOTSOCK and the game stops with "sendto failed with error 10038". - tools/dirt-ws2: a 32-bit ws2_32.dll stand-in. Every export jumps to the same-ordinal export of Wine's own ws2_32.dll; only a sendto() failing with 10038 reports 0 bytes sent. Built in CI (components recipe dirt-ws2, clang + lld) with its exports checked against Wine 11's list, staged to /usr/local/lib/droiddeck-dirt. - droiddeck-game-env: for dirt3_game.exe / showdown.exe / showdown_avx.exe with the game's UDP/motion output on, and a Proton whose own ws2_32.dll lacks the fix, the stand-in replaces the prefix's syswow64/ws2_32.dll (Wine loads ws2_32 as a KnownDLL from there, so a copy beside the game is ignored) with WINEDLLOVERRIDES=ws2_32=n,b; the launch waits for the game and puts the prefix's own file back. A copy left by a killed launch is put back at the next launch in that prefix. - Automatic turns DiRT 3 and DiRT Showdown on like the other games again; the crash warning and the switched-on-by-hand memory from the previous build are gone. Same behaviour as DiRTTelemetryErrorFix by RoccoC (MIT), based on the fix by Carsten Gottschling. DroidDeck-Proton gets the same rule in its own ws2_32 (branch fix/dirt-telemetry-sendto); the swap is skipped there.