Star on GitHubStar1.1k stars

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.

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

Requirements & limits

  • Prerequisites: 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.
  • 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.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.
  • Scope: 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.
  • Testing evidence: 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. 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.
  • License: The repository carries CC0-1.0; that dedication does not cover Nintendo’s game, its files 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/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
  9. https://web.archive.org/web/20261020041301/https://decomp.dev/zeldaret/ss/SOUE01/d3d8e3cbf3d353b2231f06690965cac5366e28a1.json

More in Games

All 318 entries in GamesGames case studies (239)

↑↓ move↵ open⌘↵ new tab