The Paper Mario decompilation project (pmret/papermario) is a community effort to convert the original Nintendo 64 game back into human-readable C source code that compiles to a byte-for-byte identical ROM. The project targets all four regional releases of the game: US, JP, PAL, and iQue.Documentation Index
Fetch the complete documentation index at: https://mintlify.com/pmret/papermario/llms.txt
Use this file to discover all available pages before exploring further.
What decompilation means
When a game ships on a cartridge, it contains compiled machine code — raw CPU instructions the hardware executes directly. Decompilation is the process of reverse-engineering that machine code back into C source that, when compiled with the original toolchain, produces output that matches the original binary exactly. “Matching” is the key constraint: every byte of the compiled output must equal the corresponding byte in the original ROM. This means the project isn’t just producing equivalent code — it’s recovering the original structure of the game’s logic as closely as possible given the compiler in use.Project goals
The primary goal is a complete, matching decompilation of all four versions of Paper Mario for the Nintendo 64. Beyond historical preservation, a successful decompilation gives the community:- A fully readable and searchable codebase for the game’s logic, rendering, audio, and data systems.
- A foundation for ports, modding tools, and further research.
- An understanding of how the original developers structured the code.
Progress
The project is actively in progress. Each regional version is tracked independently. You can follow live progress for each version on papermar.io. Unmatched functions are either represented as raw assembly includes (INCLUDE_ASM) or wrapped in NON_MATCHING / NON_EQUIVALENT preprocessor guards until a matching C implementation is found.
Community
The project is open to contributors of all experience levels. The Discord server is the primary place to ask questions, coordinate work, and share progress. Whether you are new to decompilation or an experienced reverse engineer, any help is welcome.You must own a legitimate copy of Paper Mario to obtain the base ROM required to build this project. The ROM file is never distributed as part of the repository.
Get started
Set up the repo
Install dependencies and clone the repository on Linux, macOS, WSL 2, or Nix.
Build the ROM
Place your base ROM, run the configure script, and compile with Ninja.
Contributing guide
Learn how to match functions and submit pull requests to the project.
Project website
Track decompilation progress for each regional version.
