{
  "added_at": "2026-10-18",
  "additional_evidence_urls": [
    "https://github.com/pmret/papermario/blob/1104f1f71b824042a5fa1f958f2d861b603320fd/SETUP.md",
    "https://github.com/pmret/papermario/blob/1104f1f71b824042a5fa1f958f2d861b603320fd/CONTRIBUTING.md",
    "https://github.com/pmret/papermario/blob/1104f1f71b824042a5fa1f958f2d861b603320fd/tools/configure/src/configure/main.py",
    "https://github.com/pmret/papermario/blob/1104f1f71b824042a5fa1f958f2d861b603320fd/install_compilers.sh",
    "https://github.com/pmret/papermario/blob/1104f1f71b824042a5fa1f958f2d861b603320fd/install_deps.sh",
    "https://github.com/pmret/papermario/blob/1104f1f71b824042a5fa1f958f2d861b603320fd/Jenkinsfile",
    "https://github.com/pmret/papermario/blob/1104f1f71b824042a5fa1f958f2d861b603320fd/progress.py",
    "https://github.com/pmret/papermario/blob/1104f1f71b824042a5fa1f958f2d861b603320fd/ver/us/checksum.sha1",
    "https://github.com/pmret/papermario/blob/1104f1f71b824042a5fa1f958f2d861b603320fd/ver/jp/checksum.sha1",
    "https://github.com/pmret/papermario/blob/1104f1f71b824042a5fa1f958f2d861b603320fd/ver/pal/checksum.sha1",
    "https://github.com/pmret/papermario/blob/1104f1f71b824042a5fa1f958f2d861b603320fd/ver/ique/checksum.sha1",
    "https://papermar.io/progress-us",
    "https://papermar.io/reports/progress_us.csv",
    "https://papermar.io/reports/progress_jp.csv",
    "https://papermar.io/reports/progress_pal.csv",
    "https://papermar.io/reports/progress_ique.csv"
  ],
  "category": "reconstruction-cases",
  "description_en": "Reconstructs Paper Mario’s Nintendo 64 code as C source that rebuilds the US, Japanese, PAL and iQue ROMs. The build takes assets and comparison inputs from a user-supplied original ROM, then checks each output against a recorded SHA-1. Mutable project reports list no remaining nonmatching functions, while the README still calls the decompilation work in progress; it is distinct from the PaperBoat native port.",
  "description_zh": "将 Paper Mario 的 Nintendo 64 代码重建为 C 源码，可重新构建美版、日版、PAL 版和 iQue 版 ROM。构建流程从使用者自备的原 ROM 取得素材和比较输入，再将每个产物与记录的 SHA-1 比对。项目可变的进度报告显示已无未匹配函数，但 README 仍称反编译在进行中；该项目与 PaperBoat 原生移植不同。",
  "entry_url": "https://awesomerea.org/resources/paper-mario-matching-decomp-case/",
  "entry_url_zh": "https://awesomerea.org/zh/resources/paper-mario-matching-decomp-case/",
  "evidence_url": "https://github.com/pmret/papermario/blob/1104f1f71b824042a5fa1f958f2d861b603320fd/README.md",
  "group": "cases",
  "id": "paper-mario-matching-decomp-case",
  "json_url": "https://awesomerea.org/resources/paper-mario-matching-decomp-case/record.json",
  "kind": "case-study",
  "markdown_url": "https://awesomerea.org/resources/paper-mario-matching-decomp-case/index.md",
  "markdown_url_zh": "https://awesomerea.org/zh/resources/paper-mario-matching-decomp-case/index.md",
  "name": "Paper Mario: matching Nintendo 64 decompilation for four releases",
  "name_zh": "Paper Mario：覆盖四个版本的一致性 Nintendo 64 反编译",
  "reconstruction_method": "matching-decompilation",
  "record_type": "resource",
  "relationship": "independent-reconstruction",
  "requirement_facets": [
    "scope",
    "prerequisites",
    "prerequisites",
    "testing",
    "license"
  ],
  "requirements": [
    "README calls this a work-in-progress decompilation that builds US, JP, PAL and iQue ROMs, each with a listed SHA-1. For the reviewed commit, papermar.io’s mutable progress CSVs list zero nonmatching functions for all four versions (12,679 for US), and its US page announces 100% for US, PAL and iQue. The output is an N64 ROM, not a native PC executable; HarbourMasters’ PaperBoat port is a separate project.",
    "At least one independently obtained original ROM matching a listed SHA-1 is required, supplied as that version’s baserom.z64; the Nix route expects all four. configure splits assets from those ROMs, and neither ROMs nor extracted assets are distributed with the source.",
    "SETUP.md supports Linux, macOS, WSL 2 and Nix. The build uses a Python configure script with ninja, pigment64 from cargo, host MIPS binutils/GCC/cpp, and downloaded compiler builds: project GCC/binutils, GCC 2.7.2, EGCS and statically recompiled IDO 5.3. configure refuses a matching iQue build on macOS because EGCS is unavailable there.",
    "A matching build ends with sha1sum checks against each version’s checksum.sha1, reporting “papermario.z64: OK”. --non-matching, --modern-gcc and --shift builds skip that check, so they are not matching results. Jenkins builds all four versions plus a shiftable US build and publishes the progress reports.",
    "The reviewed tree has no top-level license file and GitHub detects none, so no reuse grant is established for the source. Original ROMs and extracted assets retain separate rights, and downloaded compilers carry their own terms."
  ],
  "requirements_zh": [
    "README 称这是一个进行中的反编译项目，可构建美版、日版、PAL 版和 iQue 版 ROM，并分别列出 SHA-1。针对所审版本，papermar.io 可变的进度 CSV 显示四个版本均无未匹配函数（美版共 12,679 个），其美版页面宣布美版、PAL 版和 iQue 版已达 100%。产物是 N64 ROM，不是原生 PC 可执行文件；HarbourMasters 的 PaperBoat 移植是另一个项目。",
    "至少需要一个自行取得、且与所列 SHA-1 一致的原始 ROM，作为对应版本的 baserom.z64 提供；Nix 方式要求四个版本齐备。configure 会从这些 ROM 拆分素材，源码不附带 ROM 或提取后的素材。",
    "SETUP.md 支持 Linux、macOS、WSL 2 和 Nix。构建使用 Python configure 脚本和 ninja、通过 cargo 安装的 pigment64、宿主 MIPS binutils／GCC／cpp，以及下载的编译器：项目自有 GCC／binutils、GCC 2.7.2、EGCS 和静态重编译的 IDO 5.3。由于 macOS 上没有 EGCS，configure 拒绝在 macOS 上进行 iQue 一致性构建。",
    "一致性构建最后会依据各版本的 checksum.sha1 执行 sha1sum 校验，输出“papermario.z64: OK”。--non-matching、--modern-gcc 和 --shift 构建跳过该校验，因此不属于一致性结果。Jenkins 构建全部四个版本及一个可平移的美版构建，并发布进度报告。",
    "所审源码树没有顶层许可证文件，GitHub 也未识别出许可证，因此未确立源码的再使用授权。原 ROM 和提取的素材仍受各自权利约束，下载的编译器另有条款。"
  ],
  "targets": [
    "game"
  ],
  "url": "https://github.com/pmret/papermario",
  "verification": "source-reviewed",
  "verified_at": "2026-10-18"
}
