Repository navigation
How the Port Works
Harrison edited this page Oct 2, 2026
·
2 revisions
The translator (translator/, C#) reads the game's main.dol and turns every PowerPC function
into C++ ahead of time. That C++ is compiled together with the runtime (runtime/), which stands in
for the Wii: the SDK's OS, threads and timers, GX graphics (drawn through
aurora on Direct3D 12, Vulkan or Metal), audio, Wii Remote
and controller input, the disc and the NAND. No PowerPC code runs while you play.
-
projects/mscharged/: the project config (recomp.yml) and a function map generated from the mscharged-decomp symbols. -
Native overrides: a runtime function marked
PPC_NATIVE_OVERRIDE(address, ...)replaces the translated function at that address, andPPC_NATIVE_WRAPruns around it with the translated original still callable. The translator scans the runtime sources for these markers, so adding or removing one means translating again (tools/rebuild.sh). -
runtime/src/hle/msc_game.cpp,runtime/src/mods/and theMSC:comments across the runtime: the Strikers-specific parts, such as the emulated Wii Remote and Nunchuk, pointer handling, renderer details, the tweaks and the mod framework.
WiiCompiled's runtime was written against Mario Kart Wii's addresses. This fork re-keyed it to Strikers Charged by matching function names between the two games' symbol maps, with the SDK's global variables checked by hand.