Case study
PaperBoat: a native Paper Mario port built on the decompilation
Compiles Paper Mario decompilation sources, credited to the pmret and Paper Mario DX projects, into a native US-version application on libultraship. Torch converts the user’s own ROM into a local asset archive, and the port adds rendering backends, enhancements and archive-based mods. Desktop releases are published, while Android, iOS and web builds are documented on the development branch.
- Targets
- Game
- Category
- Independent reconstruction cases
- Relationship
- Independent reconstruction project
- Sources reviewed
Requirements & limits
- Prerequisites: Requires the user’s US Paper Mario ROM with the SHA-1 listed in the README; config.yml carries recipes for that hash only, and the README states no copyrighted assets are included. Torch generates the pm64.o2r game archive on the user’s machine or device; that archive never ships with the app.
- Prerequisites: Source builds need the Torch and libultraship submodules, CMake 3.24+, Ninja and C99/C++20 compilers. Windows uses Visual Studio 2022 with clang-cl, because plain MSVC cl.exe is unsupported for the C99 decompilation sources. Renderers are DirectX 11, OpenGL and Metal. Android arm64-v8a, iOS 16.3+ and Emscripten builds are documented, with scripting and native mods disabled there.
- Scope: The reviewed develop snapshot follows release 1.0.3 (2026-10-11), whose packages cover Windows, Linux and macOS. CMake compiles the decompilation’s game C sources for VERSION_US with port code replacing the N64 boot and most OS layers. This is a native port that deliberately adds enhancements and fixes, not a matching ROM build or a static recompilation.
- Testing evidence: The CI workflow builds Linux, Windows, macOS, iOS, Android and web artifacts and checks package contents; the platform guide states CI never touches a ROM, and its named desktop check script is absent from the reviewed tree. Nightly builds are labeled playtest-only with expected bugs and crashes. No gameplay-equivalence or performance results are reported.
- License: The repository carries CC0-1.0 text, but GitHub detects no license for the credited pmret and Paper Mario DX repositories, and submodules have separate terms; the CC0 file is not treated as a grant over inherited code or game content. The README says AI-assisted pull requests are accepted under a HarbourMasters policy.
About this entry
The description was reviewed against primary sources.
Primary sources
- README.md GitHub · HarbourMasters/PaperBoat · Revision d98b4b6
- docs/BUILDING.md GitHub · HarbourMasters/PaperBoat · Revision d98b4b6
- docs/android-ios-web.md GitHub · HarbourMasters/PaperBoat · Revision d98b4b6
- CMakeLists.txt GitHub · HarbourMasters/PaperBoat · Revision d98b4b6
- config.yml GitHub · HarbourMasters/PaperBoat · Revision d98b4b6
- .gitmodules GitHub · HarbourMasters/PaperBoat · Revision d98b4b6
- .github/workflows/build.yml GitHub · HarbourMasters/PaperBoat · Revision d98b4b6
- LICENSE GitHub · HarbourMasters/PaperBoat · Revision d98b4b6
- https://github.com/HarbourMasters/PaperBoat/releases/tag/1.0.3
More in Games
- Pokémon Platinum PC Port: a native port built on the pret decompilation · Case study
- Salamander UEFI: a disassembly-based UEFI port of the NES game · Case study
- Ship of Harkinian: a native Ocarina of Time port built on the decompilation · Case study
- sm64ex: an enhanced Super Mario 64 PC port from the decompilation · Case study
- SpaghettiKart: a native Mario Kart 64 port built on decompiled source · Case study
- Starship: a Star Fox 64 PC port built from the decompilation · Case study