Skip to content

Releases

v1.0: 100%, all seven versions byte-identical

Choose a tag to compare

@LLCOOLT LLCOOLT released this 01 Nov 13:50

The first complete release. One C source tree builds all seven known versions of Paper Mario: The Thousand-Year Door, and every build is byte-identical to the original: the main executable and every area module (REL).

Version Release Units linked from C Build check
G8MJ01 Japan 1233 / 1233 32 files OK
G8ME01 North America 1226 / 1226 30 files OK
G8MP01 Europe (5 languages, with the developer test REL tst.rel) 1378 / 1378 33 files OK
G8ME01_DEMO June 2004 US demo (Interactive Multi-Game Demo Disc Version 17) 746 / 746 7 files OK
G8MJ01_DEMO 2004 Japanese store demo (Gekkan Nintendo Tentou Demo 2004.7.1) 1377 / 1377 33 files OK
G8ME01_DEMO2 September 2004 US demo (Interactive Multi-Game Demo Disc Version 19) 806 / 806 8 files OK
G8MP01_DEMO September 2004 European demo (Interactive Multi-Game Demo Disk, November 2004) 811 / 811 8 files OK

Highlights

  • 100% code, functions, data and linking in every version.
  • All C. The only assembly is what the original sources had in assembly: a few SDK, runtime and debugger routines, the hardware helpers in include/hwaccess.h and memcpy_as4.
  • One tree for seven versions. The differences are written as ordered VERSION_* conditions, in the order the code was built: June US demo < Japanese demo < JP < US < September US demo < European demo < PAL. docs/VERSIONS.md describes every difference.
  • Readable. Structs instead of raw offsets, typed data, named event scripts, and a comment on every function. Names invented here rather than taken from a symbol map are listed in docs/NAME_PROVENANCE.md.
  • Documented. Separate docs cover the architecture, a glossary of the romanised Japanese names, the original game's bugs that the code reproduces, and every behaviour-identical matching trick (docs/FAKES.md).

Building

You need your own copy of the game: this repository contains no game assets and no disassembled game code. See docs/BUILDING.md for where each version's disc or .tgc goes, then run python configure.py --version <version> followed by ninja.

Credits

This project is a fork of doldecomp/ttyd, and its original commit history is kept. All of the work since the fork was done with the help of AI tools (Anthropic's Claude). It is an independent project, not affiliated with doldecomp; please use this repository's issues for questions.