Case study

Skyward Sword: Wii decompilation with hash-checked relinking

Reconstructs C++ source for The Legend of Zelda: Skyward Sword’s Wii main.dol and REL modules, starting from the user’s NTSC-U 1.0 (SOUE01) disc files. Objects marked matching are compiled from source and linked with objects split from the original, and the result is checked against SHA-1 hashes; the repository ships no assets or assembly and is not a port.

Requirements and limitations

  • README describes a work-in-progress Wii decompilation whose only supported version is SOUE01 (NTSC-U 1.0); configure.py also lists SOUP01, but the pinned tree has configuration only for SOUE01. The output is a rebuilt main.dol and REL set for the Wii, not a PC executable or port.
  • Building needs the user’s own SOUE01 game: README names sys/main.dol and files/rels.arc from its data partition as the only required files. The repository contains no game assets or assembly; decomp-toolkit splits the user’s files into objects locally, using the input hash and split tables in config/SOUE01.
  • 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.7.1, objdiff v3.4.1, binutils 2.42-1 and a 20250812 compiler bundle, selecting Metrowerks Wii/1.5 for most code and Wii/1.3 for most NW4R code; objdiff compares individual objects during development.
  • The default ninja target links source-built objects only for units marked Matching (493 in configure.py; 536 remain NonMatching) and uses the original extracted object for the rest, then checks main.dol and 636 RELs against build.sha1. A passing check shows output identity, not complete decompilation. decomp.dev’s report for the pinned commit lists 27.89% of code bytes and 33,940 of 76,968 functions matched; CI uses a private container holding game files, and this collection ran neither.
  • The repository carries CC0-1.0; that dedication does not cover Nintendo’s game, its files or the downloaded compilers. The reviewed sources establish no REA or coding-agent involvement.

About this entry

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

Sources reviewed

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

Primary sources

  1. README.md GitHub · zeldaret/ss · Revision d3d8e3c
  2. configure.py GitHub · zeldaret/ss · Revision d3d8e3c
  3. tools/project.py GitHub · zeldaret/ss · Revision d3d8e3c
  4. config/SOUE01/config.yml GitHub · zeldaret/ss · Revision d3d8e3c
  5. config/SOUE01/build.sha1 GitHub · zeldaret/ss · Revision d3d8e3c
  6. LICENSE GitHub · zeldaret/ss · Revision d3d8e3c
  7. .github/workflows/build.yml GitHub · zeldaret/ss · Revision d3d8e3c
  8. https://decomp.dev/zeldaret/ss