Case study

wii-ipl: a decompilation of the Wii Menu (System Menu 4.3)

A work-in-progress decompilation of the Wii Menu, the console’s System Menu (IPL), targeting version 4.3 in its USA, European, Japanese and Korean builds. It recovers the menu’s own code together with the Revolution SDK, NintendoWare (NW4R), EGG and middleware libraries linked into it, matched unit by unit against the original executable with decomp-toolkit and objdiff. The repository holds no assets or assembly; a build needs the user’s own Wii Menu WAD and yields only main.dol.

Requirements & limits

  • The reviewed main commit has no releases or tags. decomp.dev’s report for that commit puts 4.3U at 58.5% matched code, 8,837 of 12,563 functions (70.3%) and 45.2% fully linked code, with the menu’s own code at 53.6% matched; library READMEs mark each RVL_SDK, NW4R, EGG, RevoEX and middleware component as matching, equivalent or not yet matching. The build yields main.dol, not a WAD, and the README warns that the code is not fully shiftable because no SEL file is generated.
  • Users supply their own Wii Menu 4.3 WAD for the selected version (4.3U by default, or 4.3E, 4.3J or 4.3K); the README states that the repository contains no assets or assembly of the executable. Each version’s configuration pins the SHA-1 of the target main.dol.
  • Builds need Python and Ninja on Windows, macOS or Linux. configure.py pins decomp-toolkit v1.7.5, objdiff v3.4.5, binutils 2.42-1 and the 20251118 compiler bundle for Metrowerks CodeWarrior (GC/3.0a5.2 as the linker version), and wibo runs the 32-bit Windows tools on macOS and Linux. CONTRIBUTING lists Ghidra with a shared project, IDA/Hex-Rays, m2c and decomp.me as decompiling aids and objdiff for diffing.
  • CI builds all four versions in a private container that supplies the original files, then uploads map files and progress reports; the percentages above come from those reports and do not establish a complete or shiftable rebuild. This review built or ran nothing.
  • LICENSE is CC0 1.0. The BTE Bluetooth library notes code taken from Android’s bluedroid under Apache-2.0, and the GameSpy SDK subset is BSD-3-Clause. The decompiled third-party middleware (JustSystems ATOK, Zi eZiText, TMC JPEG, eSOL PrFILE2) and the Opera WWW headers carry no separate grants, and the Wii Menu keeps Nintendo’s rights. CONTRIBUTING forbids using AI to decompile code and asks contributors to avoid AI-only matching forks; the reviewed sources establish no REA use.

About this entry

Type
Case study
Category
Independent reconstruction cases
Relationship
Independent reconstruction project
Targets
Firmware · Game

Sources reviewed

The description was reviewed against primary sources. This does not establish runtime testing, security auditing or verified compatibility.

Report an outdated entry Suggest a translation fix

Primary sources

  1. README.md GitHub · koopthekoopa/wii-ipl · Revision f4c09f4
  2. CONTRIBUTING.md GitHub · koopthekoopa/wii-ipl · Revision f4c09f4
  3. configure.py GitHub · koopthekoopa/wii-ipl · Revision f4c09f4
  4. config/43U/config.yml GitHub · koopthekoopa/wii-ipl · Revision f4c09f4
  5. config/43U/build.sha1 GitHub · koopthekoopa/wii-ipl · Revision f4c09f4
  6. .github/workflows/build.yml GitHub · koopthekoopa/wii-ipl · Revision f4c09f4
  7. libs/RVL_SDK/README.md GitHub · koopthekoopa/wii-ipl · Revision f4c09f4
  8. libs/NW4R/README.md GitHub · koopthekoopa/wii-ipl · Revision f4c09f4
  9. libs/RVLMiddleware/README.md GitHub · koopthekoopa/wii-ipl · Revision f4c09f4
  10. libs/RVL_SDK/src/bte/NOTICE GitHub · koopthekoopa/wii-ipl · Revision f4c09f4
  11. src/scene/nakamuraTest/gamespy/README.md GitHub · koopthekoopa/wii-ipl · Revision f4c09f4
  12. LICENSE GitHub · koopthekoopa/wii-ipl · Revision f4c09f4
  13. https://decomp.dev/koopthekoopa/wii-ipl/43U

More in Games

All 230 entries in GamesGames case studies (188)