Case study
Super Smash Bros. Brawl: an early matching Wii decompilation
A work-in-progress matching decompilation of Super Smash Bros. Brawl that targets the USA Rev 2 Wii release (RSBE01_02), splitting main.dol and 126 REL modules from a user-supplied disc image and checking the rebuilt binaries against stored SHA-1 values. objdiff compares objects during development, and six other regional revisions are listed but commented out of the supported set. decomp.dev reported 1.27% of code matched at the reviewed commit.
Requirements & limits
- README lists one supported version, RSBE01_02 (USA Rev 2), with the Japan, USA Rev 1, PAL and Korea revisions commented out; configure.py names all seven, but only RSBE01_02 has a configuration and CI builds only it. The output is a Wii main.dol and REL set, not a PC port.
- Copy your own disc image to orig/RSBE01_02; ISO (GCM), RVZ, WIA, WBFS, CISO, NFS, GCZ and TGC images are accepted. README says the repository contains no game assets or assembly: decomp-toolkit splits the DOL and RELs using committed per-module symbol and split tables, and extracts one embedded binary (HomeBtnIcon) from the DOL locally. Game headers come from the BrawlHeaders submodule (Sammi-Husky/BrawlHeaders), which README says to initialize before building.
- Builds need Python and ninja on Windows (native tooling recommended), macOS (with wine-crossover) or Linux (an automatically downloaded wibo on x86, Wine elsewhere). configure.py pins decomp-toolkit v1.7.5, objdiff v3.4.4, binutils 2.42-1, sjiswrap v1.2.2, wibo 1.0.0 and the 20250812 compiler bundle, compiling and linking with Metrowerks GC/3.0a5.2.
- Objects marked Matching (184 in configure.py; 20 remain NonMatching) are compiled from source and the rest come from the split originals; the default ninja target checks main.dol and the RELs against config/RSBE01_02/build.sha1 before reporting progress. CI builds RSBE01_02 in a container that supplies the disc files and compilers and uploads a progress report. decomp.dev’s report for the pinned commit lists 201,252 of 15,833,548 code bytes (1.27%) and 2,504 of 92,523 functions matched, with 516 of 4,415 units complete; this collection ran no build.
- The repository carries CC0-1.0; Nintendo’s game, disc contents and the downloaded compilers fall outside that dedication, and the BrawlHeaders submodule declares no license on GitHub. The reviewed sources establish no AI or REA use, and no runtime reproduction is claimed.
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
- README.md GitHub · doldecomp/brawl · Revision b96b501
- configure.py GitHub · doldecomp/brawl · Revision b96b501
- config/RSBE01_02/config.yml GitHub · doldecomp/brawl · Revision b96b501
- config/RSBE01_02/build.sha1 GitHub · doldecomp/brawl · Revision b96b501
- tools/project.py GitHub · doldecomp/brawl · Revision b96b501
- .gitmodules GitHub · doldecomp/brawl · Revision b96b501
- .github/workflows/build.yml GitHub · doldecomp/brawl · Revision b96b501
- LICENSE GitHub · doldecomp/brawl · Revision b96b501
- https://github.com/Sammi-Husky/BrawlHeaders/tree/29c4ff16ce06241ea672ffd54e6415fbd02c0743
- https://decomp.dev/doldecomp/brawl
More in Games
- re-plants-vs-zombies: decompiling and modernizing Plants vs. Zombies GOTY · Case study
- Sonic Advance 1 & 2: a matching GBA decompilation with widescreen ports · Case study
- Paleblood: a functional decompilation of Bloodborne with its own runtime · Case study
- Pikmin 2: a fully matched GameCube decompilation across five releases · Case study
- Gran Turismo 4: an agent-assisted PS2 engine matching decompilation · Case study
- Mario Kart Wii: an in-progress matching decompilation of the PAL release · Case study