# Paper Mario: The Thousand-Year Door: an early matching GameCube decompilation

> A work-in-progress matching decompilation of Paper Mario: The Thousand-Year Door that targets the Japanese Rev 0 GameCube release (G8MJ01), rebuilding MarioSt.dol and 31 REL modules with the original Metrowerks compilers and checking each against a stored SHA-1. The build splits these binaries from a user-supplied disc image, and objdiff compares objects during development. decomp.dev reported 12.10% of code matched at the reviewed commit.

- Type: Case study
- Targets: Game
- Category: Independent reconstruction cases
- Relationship: Independent reconstruction project
- Sources reviewed: 2026-10-19
- Added to the catalog: 2026-10-28
- Original resource: <https://github.com/doldecomp/ttyd>
- Primary source: <https://github.com/doldecomp/ttyd/blob/62131fc31866f85a12e4817a8dc37f0c25eb5f8c/README.md>
- Catalog page: <https://awesomerea.org/resources/paper-mario-ttyd-decomp-case/>
- Record JSON: <https://awesomerea.org/resources/paper-mario-ttyd-decomp-case/record.json>
- Chinese version: [简体中文](https://awesomerea.org/zh/resources/paper-mario-ttyd-decomp-case/index.md)

## Requirements & limits

- README lists one supported version, G8MJ01 (Rev 0, JP); configure.py defines no other version and CI builds only G8MJ01. README still carries template leftovers: its badges point at another project, its clone command names NWPlayer123/G8MJ01-dtk and one line calls G8MJ01 the USA version. The output is a GameCube DOL and REL set, not a PC port.
- Copy your own G8MJ01 disc image to orig/G8MJ01; 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 main.dol and the RELs using committed symbol and split tables, and extracts the memory-card icon and banner textures from the DOL into local headers. Decompiled sources such as src/pmario_sound.c also carry game data tables reconstructed as C.
- 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.8.3, objdiff v3.7.1, binutils 2.42-2, sjiswrap v1.2.2, wibo 1.1.0 and the 20260305 compiler bundle, using Metrowerks GC/2.6 for game and REL code and GC/1.2.5n for the Dolphin SDK. tools/ttydasm is a Rust helper that decodes a named event script from the linked DOL or REL outputs in build/G8MJ01.
- Objects marked Matching (100 of 547 in configure.py) are compiled from source and the rest come from the split originals; the default ninja target checks the DOL and all RELs against config/G8MJ01/build.sha1 before reporting progress. CI builds G8MJ01 in a container that supplies the disc files and compilers and uploads a progress report. decomp.dev’s report for the pinned commit lists 457,800 of 3,784,980 code bytes (12.10%) and 2,029 of 9,770 functions matched, with 100 of 1,239 units complete.
- The repository carries the MIT License (copyright NWPlayer123), and libs/musyx has its own MIT license; neither covers Nintendo’s game, disc contents or the downloaded compilers.

## Primary sources

1. <https://github.com/doldecomp/ttyd/blob/62131fc31866f85a12e4817a8dc37f0c25eb5f8c/README.md>
2. <https://github.com/doldecomp/ttyd/blob/62131fc31866f85a12e4817a8dc37f0c25eb5f8c/configure.py>
3. <https://github.com/doldecomp/ttyd/blob/62131fc31866f85a12e4817a8dc37f0c25eb5f8c/config/G8MJ01/config.yml>
4. <https://github.com/doldecomp/ttyd/blob/62131fc31866f85a12e4817a8dc37f0c25eb5f8c/config/G8MJ01/build.sha1>
5. <https://github.com/doldecomp/ttyd/blob/62131fc31866f85a12e4817a8dc37f0c25eb5f8c/tools/project.py>
6. <https://github.com/doldecomp/ttyd/blob/62131fc31866f85a12e4817a8dc37f0c25eb5f8c/src/pmario_sound.c>
7. <https://github.com/doldecomp/ttyd/blob/62131fc31866f85a12e4817a8dc37f0c25eb5f8c/tools/ttydasm/src/cli.rs>
8. <https://github.com/doldecomp/ttyd/blob/62131fc31866f85a12e4817a8dc37f0c25eb5f8c/.github/workflows/build.yml>
9. <https://github.com/doldecomp/ttyd/blob/62131fc31866f85a12e4817a8dc37f0c25eb5f8c/LICENSE>
10. <https://decomp.dev/doldecomp/ttyd>

## More in Games

- [Perfect Dark: matching Nintendo 64 decompilation](https://awesomerea.org/resources/perfect-dark-matching-decomp-case/index.md) · Case study
- [Petari: a matching Super Mario Galaxy decompilation](https://awesomerea.org/resources/petari-smg-decomp-case/index.md) · Case study
- [Phantom Hourglass: an early-stage matching Nintendo DS decompilation](https://awesomerea.org/resources/phantom-hourglass-ds-decomp-case/index.md) · Case study
- [Pikmin 2: a fully matched GameCube decompilation across five releases](https://awesomerea.org/resources/pikmin-2-matching-decomp-case/index.md) · Case study
- [pokecrystal: a matching Pokémon Crystal disassembly](https://awesomerea.org/resources/pokecrystal-disassembly-case/index.md) · Case study
- [pokered: a matching Pokémon Red and Blue disassembly](https://awesomerea.org/resources/pokered-disassembly-case/index.md) · Case study

## About this entry

The description was reviewed against primary sources.
Original editorial content: MIT. Linked projects, papers and assets retain their own rights and licenses.
