GameCube / Wii Static Recompilation — State of the Art
A general survey of static/ahead-of-time recompilation (and its more mature sibling, source decompilation) for the Nintendo GameCube and Wii, independent of any specific game. Companion docs: ps3-recomp.md, ps2-recomp.md, saturn-recomp.md, snes-recomp.md, arcade-recomp.md.
Why one doc for two consoles
Section titled “Why one doc for two consoles”GameCube and Wii are treated here as a single family, and that’s not just editorial convenience — it’s how the hardware and the reverse-engineering community both actually treat them. Wii’s CPU, Broadway, is a die-shrunk, higher-clocked revision of GameCube’s Gekko (729 MHz vs. 486 MHz); Wii’s GPU, Hollywood, is “an updated version of the GameCube’s Flipper,” 1.5x the clock, largely the same pipeline (Wikipedia: Hollywood, Wikipedia: Gekko, Wikipedia: Broadway). Dolphin, the reference emulator for both systems, is one codebase covering both consoles, and its own compatibility reporting tracks “the combined GameCube and Wii library” as a unit (Tech Times). The decompilation community mirrors this: the umbrella GitHub org for source-decompilation projects is literally named doldecomp (“dol” for the GC/Wii .dol executable format) and hosts titles from both platforms side by side (doldecomp on GitHub).
CPU architecture: Gekko/Broadway
Section titled “CPU architecture: Gekko/Broadway”Both chips are IBM-fabricated derivatives of the PowerPC 750 (“G3”) line — customized from the 750CXe, with a bespoke bus interface, DMA controller, and an added paired-single SIMD FPU extension for tight GPU coupling, but otherwise an ordinary, single-core 32-bit PowerPC core running a normal instruction stream (Wikipedia: Gekko, Retro Reversing: The PowerPC). Broadway is the same lineage shrunk and clocked up for Wii; the stock IBM part closest to it, the PowerPC 750CL, is “virtually identical” per public teardown analysis.
This matters for tractability. As covered in ps3-recomp.md, the hard part of Cell BE recompilation isn’t the PPU — it’s the SPUs, asymmetric DSP-like coprocessors with private local stores and no unified memory view, which defeat straightforward ahead-of-time analysis. Gekko and Broadway have no analog to that problem: one CPU core, “just PowerPC,” addressing memory like every other CPU in this survey series. Gekko/Broadway sit in roughly the same lifting-difficulty class as the PS3’s PPU alone, minus the PS3’s defining complication entirely.
GPU: Flipper/Hollywood and the TEV pipeline
Section titled “GPU: Flipper/Hollywood and the TEV pipeline”Flipper (and its Wii successor Hollywood) was designed by ArtX — a startup of ex-SGI graphics engineers ATI acquired in 2000 shortly before Flipper’s completion, hence the common “ATI-designed” shorthand. Its centerpiece is the TEV (Texture EnVironment) unit: a configurable multi-stage combiner pipeline, not a programmable-shader GPU in the modern sense, but flexible enough to be described as an elaborate switchboard capable of pixel-shader-equivalent effects through stage chaining (amnoid.de Flipper/TEV semi-documentation, Copetti: GameCube Architecture). Because it’s fixed-function-ish rather than truly programmable, and Dolphin’s developers have spent two decades re-documenting every TEV combiner mode and BP/CP register to emit equivalent modern shaders, the TEV pipeline is arguably one of the best publicly-documented GPU designs of its console generation (Ubershaders, Pixel Processing Problems).
The structural advantage: the original compiler still runs
Section titled “The structural advantage: the original compiler still runs”This is the single biggest thing setting GameCube/Wii apart from almost every other platform in this series. Nintendo’s GC/Wii SDKs were built around Metrowerks CodeWarrior (mwcceppc/mwldeppc), and — unlike PSX’s or Saturn’s era-specific toolchains — the actual compiler binary still exists, still runs on modern machines (via Wine or the community’s wibo shim on Linux/macOS), and is what active decompilation projects use directly. The doldecomp training guide pins a specific version, CodeWarrior v3.0a5.2, with setup instructions as simple as “extract CodeWarrior to build/compiler” (doldecomp/decomp-training). There’s even a public interactive course, Decomp Academy, that grades submitted C “live by the real Metrowerks CodeWarrior GC/2.0 compiler.”
The consequence: matching decompilation is possible. Instead of writing C that merely behaves equivalently to the original binary, contributors write C that the original compiler turns into byte-for-byte identical machine code, verified with a diff, not a guess — sidestepping the hardest recurring problem for platforms whose original toolchains are lost or must be approximated. It’s not entirely frictionless: the Melee decompilation FAQ avoids distributing the compiler itself and calls the toolchain opaque (“we don’t have its source”) even while relying on its exact output (doldecomp/melee) — “obtainable” means community-circulated and runnable, not officially re-released by Nintendo or NXP.
Prior art: doldecomp, zeldaret, PrimeDecomp, and shared tooling
Section titled “Prior art: doldecomp, zeldaret, PrimeDecomp, and shared tooling”The doldecomp GitHub org anchors dozens of active source-decompilation projects; related orgs zeldaret (Zelda titles) and PrimeDecomp (Metroid Prime series) round out the ecosystem. Verified completion status as of this survey (via the live tracker decomp.dev):
- Pikmin — 100% decompiled, 100% fully linked (decomp.dev)
- Twilight Princess — GameCube version’s code is “completely matching” per the project itself, with Wii-version matching and full TU linking still in progress (zeldaret/tp) — a concrete example of GC and Wii versions being tracked as related-but-distinct decomp targets
- Mario Party 4 — listed complete in the community’s curated project index (gamecube.dev)
- Super Smash Bros. Melee — 84.65% decompiled, 55.77% fully linked
- Pikmin 2 — 87.94% / 57.81%
- The Wind Waker — 73.16% / 59.39%, described by community coverage as “past the midway point”
- Metroid Prime — 37.05% / 19.32%
- Super Mario Sunshine — 35.31% / 14.22%
- Luigi’s Mansion — 17.83% / 11.44%
- Paper Mario: The Thousand-Year Door — 12.07% / 8.12%
- Metroid Prime 2: Echoes — ~1.6% / 1.0%, an early-stage effort that nonetheless already builds six regional/platform DOL variants (GC and Wii, US/JP/PAL) (PrimeDecomp/echoes)
Tooling is shared and standardized: decomp-toolkit (“dtk”) splits original binaries into relocatable objects, generates linker scripts, and drives the matching build (encounter/decomp-toolkit); objdiff does the byte-level diff-and-watch loop against CodeWarrior’s output (encounter/objdiff); decomp.me provides collaborative online scratch-compiling. objdiff isn’t GC/Wii-specific — it also covers GBA/NDS/3DS ARM, N64/PSX/PS2/PSP MIPS, PS3/Xbox 360 PowerPC, and Saturn/Dreamcast SuperH, the same shared-ecosystem tool referenced across several other docs in this series.
A distinct effort: genuine binary-level static recompilation
Section titled “A distinct effort: genuine binary-level static recompilation”Separate from all of the above (source decompilation, not recompilation), a true binary-to-C static recompiler exists for this platform: DolRecomp, by developer “ExpansionPak,” a rewrite of an earlier “GCRecompiler.” It decodes GameCube/Wii/Broadway PowerPC opcodes (236 supported) directly from a .dol/REL image and emits splittable C, with experimental Wii U RPX support, but is explicitly CPU-only — no bundled GPU/audio runtime, and self-modifying code needs manual patching. Its demo target is Luigi’s Mansion reaching its title screen from recompiled code, and community coverage describes early work toward Mario Kart Wii (ExpansionPak/DolRecomp, GBAtemp coverage). This is genuinely early-stage — comparable to the nascent binary recompilers covered elsewhere in this series — and shouldn’t be conflated with the far-more-advanced source-decompilation ecosystem above.
Reference emulator: Dolphin
Section titled “Reference emulator: Dolphin”Dolphin is widely regarded as one of the most accurate and successful emulators ever built for any platform. As of mid-2026 it reports 97.8% combined GameCube/Wii compatibility, with Wii titles earning a “Perfect” (boots to credits, zero issues) rating climbing from 38% to 69% — the remaining gap concentrated in niche titles stressing instruction- or register-timing edge cases (Tech Times). Its GPU approach — translating live TEV/BP register configurations into equivalent modern-API shaders, including “ubershader” work to eliminate compilation stutter — is a landmark case study in emulator engineering (Dolphin blog: Ubershaders).
Honest maturity assessment
Section titled “Honest maturity assessment”Relative to every other doc in this series, GameCube/Wii is, with real evidence behind it rather than a prior assumption, the single most mature decompilation-based entry — but the nuance matters. It isn’t that individual game decomps are further along on average than other platforms’ best efforts (several flagship titles here — Prime, Sunshine, TTYD, Luigi’s Mansion — are well under 40% complete). It’s that the structural preconditions for high-confidence decompilation are uniquely strong: a still-runnable original compiler enabling byte-exact matching (unavailable to most sibling platforms here), a large, coordinated multi-org community (doldecomp/zeldaret/PrimeDecomp) sharing one toolchain (dtk/objdiff/decomp.me), several fully-matching flagship results already banked (Pikmin, Twilight Princess GC, Mario Party 4), and a best-in-class reference emulator (Dolphin) to validate against. True static/binary recompilation (DolRecomp) is comparatively immature here, same as elsewhere in the series — but this platform is the rare case where that’s almost beside the point, since source decompilation is already far enough along, and methodologically strong enough, to functionally supersede the need for it on several titles.