Star on GitHubStar1.1k stars

Case study

Twilight Princess: a decompilation with fully matching GameCube code

Reconstructs Twilight Princess source that compiles back to binaries identical to the originals, building GameCube, Wii and Nvidia Shield releases from one codebase through conditional compilation. README reports the GameCube code as completely matching but not every translation unit linked yet, with Debug and Wii alignment ongoing; the repository ships no assets or assembly and will not produce a port.

Targets
Game
Category
Independent reconstruction cases
Relationship
Independent reconstruction project
Sources reviewed

Requirements & limits

  • Prerequisites: Building needs the user’s own disc image of the chosen version in a supported format (ISO/GCM, RVZ, WIA, WBFS, CISO, NFS, GCZ or TGC), which can be deleted after the first build. The repository contains no game assets or assembly; decomp-toolkit splits the original locally.
  • Prerequisites: Builds run natively on Windows with Python and ninja, or on Linux/macOS with ninja and the automatically downloaded wibo wrapper. configure.py pins decomp-toolkit v1.8.0, objdiff v3.6.1, binutils 2.42-1 and a 20251118 compiler bundle, selecting Metrowerks compiler versions per target and library; objdiff provides per-object diffing.
  • Scope: README describes a work-in-progress decompilation with ten listed targets: three GameCube releases (GZ2E01, GZ2P01, GZ2J01), five Wii builds including a kiosk demo, and two Nvidia Shield China builds. Output is the original platform’s executable and REL modules; README states the project will not produce a PC or other port, and Dusklight is a separate project built on this code.
  • Testing evidence: The default build links source-built objects for units marked complete and original extracted objects for the rest, then checks the output against each version’s build.sha1 (758 entries for GZ2E01). decomp.dev’s reports for the pinned commit list 100% of code matched for all three GameCube versions, with 2,583 of 2,608 units complete, against 54.47% for ShieldD and 47.06% for Wii RZDE01_00. CI runs in a private container holding game files.
  • License: LICENSE.md is CC0-1.0; it does not cover Nintendo’s game, disc content or the downloaded compilers.

About this entry

The description was reviewed against primary sources.

Report an outdated entry Suggest a translation fix

Primary sources

  1. README.md GitHub · zeldaret/tp · Revision c8fa8c9
  2. configure.py GitHub · zeldaret/tp · Revision c8fa8c9
  3. tools/project.py GitHub · zeldaret/tp · Revision c8fa8c9
  4. config/GZ2E01/build.sha1 GitHub · zeldaret/tp · Revision c8fa8c9
  5. LICENSE.md GitHub · zeldaret/tp · Revision c8fa8c9
  6. .github/workflows/build.yml GitHub · zeldaret/tp · Revision c8fa8c9
  7. https://github.com/zeldaret/tp/actions/runs/28052837187
  8. https://decomp.dev/zeldaret/tp
  9. https://web.archive.org/web/20261020041317/https://decomp.dev/zeldaret/tp/GZ2E01/c8fa8c9e2aab72cf4e5db0e5d1c84a9ea6ee6eb0.json
  10. https://web.archive.org/web/20261020041405/https://decomp.dev/zeldaret/tp/GZ2P01/c8fa8c9e2aab72cf4e5db0e5d1c84a9ea6ee6eb0.json
  11. https://web.archive.org/web/20261020041412/https://decomp.dev/zeldaret/tp/GZ2J01/c8fa8c9e2aab72cf4e5db0e5d1c84a9ea6ee6eb0.json
  12. https://web.archive.org/web/20261020041419/https://decomp.dev/zeldaret/tp/ShieldD/c8fa8c9e2aab72cf4e5db0e5d1c84a9ea6ee6eb0.json
  13. https://web.archive.org/web/20261020042930/https://decomp.dev/zeldaret/tp/RZDE01_00/c8fa8c9e2aab72cf4e5db0e5d1c84a9ea6ee6eb0.json

More in Games

All 318 entries in GamesGames case studies (239)

↑↓ move↵ open⌘↵ new tab