Case study
Pikmin 2: a fully matched GameCube decompilation across five releases
A fan decompilation of Pikmin 2 that rebuilds main.dol for five GameCube releases (USA retail, two USA demos, PAL and Japan) with the original Metrowerks compilers, checking each against a stored SHA-1. The build reads main.dol from the user’s own copy of each release. decomp.dev reported all code matched and fully linked for every version at the reviewed commit, and a non-matching mode builds the US DOL entirely from C++ for modding.
Requirements & limits
- README still calls this a work-in-progress decompilation and lists five supported versions: GPVE01 (USA retail, the default), GPVE01_D17 and GPVE01_D18 (USA demos 17 and 18), GPVP01 (PAL) and GPVJ01 (Japan). Each has its own configuration and SHA-1 file, and CI builds all five. Outputs are GameCube DOLs, not a PC executable or port.
- Each version needs main.dol from the user’s own copy of that release at orig/<version>/sys/main.dol, and decomp-toolkit checks it against the hash in that version’s config.yml before splitting. The repository commits game-derived symbol and split tables for every version; config comments say the GPVE01 symbols were generated from a pikmin2UP.MAP linker map and the Japanese and PAL tables were recovered from those DOLs using the US symbols. No disc images or extracted game files are included.
- 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.1, binutils 2.42-1, sjiswrap v1.2.2, wibo 1.0.0-beta.5 and the 20250812 compiler bundle, using Metrowerks GC/2.6 for game, JSystem and runtime code and GC/1.2.5n for the Dolphin SDK libraries.
- configure.py marks 1,154 objects Matching for every supported version and one more for Japan only; none is NonMatching. The default ninja target checks the linked DOL against config/<version>/build.sha1 before reporting progress, and CI builds all five versions in a container that supplies the original files and compilers. decomp.dev’s reports for the pinned commit list 100.00% of code matched and fully linked for each version (24,957 functions and 1,153 units for GPVE01); this collection ran no build.
- With --non-matching, README says the final hash check is disabled and the US DOL builds completely from C++ source that is, to the team’s knowledge, functionally equivalent, so every file can be edited for modding. The repository carries CC0-1.0 in LICENSE.MD; Nintendo’s game, its files and the downloaded compilers fall outside that dedication. 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 · projectPiki/pikmin2 · Revision ffbd853
- configure.py GitHub · projectPiki/pikmin2 · Revision ffbd853
- config/GPVE01/config.yml GitHub · projectPiki/pikmin2 · Revision ffbd853
- config/GPVE01/build.sha1 GitHub · projectPiki/pikmin2 · Revision ffbd853
- config/GPVJ01/config.yml GitHub · projectPiki/pikmin2 · Revision ffbd853
- tools/project.py GitHub · projectPiki/pikmin2 · Revision ffbd853
- .github/workflows/build.yml GitHub · projectPiki/pikmin2 · Revision ffbd853
- LICENSE.MD GitHub · projectPiki/pikmin2 · Revision ffbd853
- https://decomp.dev/projectPiki/pikmin2
More in Games
- 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
- Pinyon Shift: a ShiftGlue static recompilation of Forza Horizon for PC · Case study
- Touhou 7: reconstructing Perfect Cherry Blossom 1.00b source · Case study
- DKC1Recomp: static recompilation of Donkey Kong Country · Case study
- San Andreas Unity: a GTA San Andreas engine reimplementation in Unity · Case study