Brings in the keyboard/mouse rebinding overhaul (#162), the Kamek skip-return hook fixes (#182, #218), the exit button and controller LED fix (#221), the autohide-cursor and mute hotkey fix (#211), the Linux --sysroot plumbing (#224) and the switch to the theofficialgman dawn-build fork (#215). Conflicts resolved to keep the VR integration intact: - settings_overlay.cpp/.h: kept both new declarations. The controller rebinding UI takes upstream's click-to-rebind widgets wholesale - our only edit there was wrapping the combo width in Scaled(), and upstream's bindingWidth is already font-relative, so the headset panel still scales. Kept our DrawResolutionMenu() extraction (the VR panel reuses it) while adopting upstream's DrawExitPrompt() and its new DrawTopBar() prologue; kept our Diagnostics menu alongside upstream's exit-button width math. HandleEvents merges both keyboard paths, with the VR recenter hotkey now guarded by !g_rebind.active so it cannot fire while a binding is being captured. - AuroraDawnProvider.cmake: dropped our now-dead Android hash block. Upstream restructured the pins into an if/elseif chain that already covers android/aarch64, with the digest for the new dawn-build fork; our leftover block was unreachable and carried the old encounter digest. - Version plumbing (Build-Installer.ps1, Setup.Windows Program.cs and csproj): kept this fork's own line, which is 0.2.39 and centralised in Launcher/Directory.Build.props, rather than regressing to upstream's hardcoded 0.2.32. Verified: translator 654/654; runtime ctest 14/14 including every VR test; WiiCompiled and RetroRewind link; aurora gx_fifo_tests 262/263, the one failure being the TevRegisterLiveness case already documented as pre-existing on this branch. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Translator tests
Translator.Tests is the default binary-free suite. It covers the decoder, IR/SSA, code
generation helpers, parsers with synthetic inputs, project-manifest loading, DOL-only image
construction, and generic entry-point translation.
The older asset-backed and host-C++-compiler-backed test sources are intentionally retained in
Translator.Tests but excluded in its project file. They mixed MKWii fixtures, several compiler
selection strategies, and private-method reflection checks, which made the normal suite both slow
and red on a clean Windows setup. They should become a separate opt-in integration project when
that work is useful again.
An external generic DOL can be included without adding it to the repository:
$env:RECOMP_GENERIC_DOL = 'D:\path\to\main.dol'
dotnet test translator/Translator.sln -c Release
The test treats the file as a generic DOL: it reads the DOL entry point, builds a DOL-only image, and translates that entry point without game-specific addresses or bindings.