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.

Requirements and limitations

  • 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.
  • 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.
  • 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.
  • 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, and this collection ran nothing.
  • 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; that establishes no REA use or measured AI contribution.

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

  1. README.md GitHub · HarbourMasters/PaperBoat · Revision d98b4b6
  2. docs/BUILDING.md GitHub · HarbourMasters/PaperBoat · Revision d98b4b6
  3. docs/android-ios-web.md GitHub · HarbourMasters/PaperBoat · Revision d98b4b6
  4. CMakeLists.txt GitHub · HarbourMasters/PaperBoat · Revision d98b4b6
  5. config.yml GitHub · HarbourMasters/PaperBoat · Revision d98b4b6
  6. .gitmodules GitHub · HarbourMasters/PaperBoat · Revision d98b4b6
  7. .github/workflows/build.yml GitHub · HarbourMasters/PaperBoat · Revision d98b4b6
  8. LICENSE GitHub · HarbourMasters/PaperBoat · Revision d98b4b6
  9. https://github.com/HarbourMasters/PaperBoat/releases/tag/1.0.3