{
  "added_at": "2026-10-18",
  "additional_evidence_urls": [
    "https://github.com/zeldaret/oot/blob/8a3634ca774a9b58d822cbc2cc09309f31eac6a4/Makefile",
    "https://github.com/zeldaret/oot/blob/8a3634ca774a9b58d822cbc2cc09309f31eac6a4/docs/compilers.md",
    "https://github.com/zeldaret/oot/blob/8a3634ca774a9b58d822cbc2cc09309f31eac6a4/docs/BUILDING_MACOS.md",
    "https://github.com/zeldaret/oot/blob/8a3634ca774a9b58d822cbc2cc09309f31eac6a4/baseroms/ntsc-1.0/checksum-US.md5",
    "https://github.com/zeldaret/oot/blob/8a3634ca774a9b58d822cbc2cc09309f31eac6a4/.github/workflows/ci.yml",
    "https://github.com/zeldaret/oot/actions/runs/38614247271",
    "https://zelda.deco.mp/games/oot"
  ],
  "category": "reconstruction-cases",
  "description_en": "Recreates a C source base for Ocarina of Time that rebuilds 16 Nintendo 64, GameCube and iQue Player ROM versions, using information from the game and static and dynamic analysis. Assets come from the user’s own ROM and each default build is checked against that version’s MD5; README states the project is not producing a PC port and still calls the repository a work in progress.",
  "description_zh": "借助游戏本身的信息以及静态与动态分析，为《时之笛》重建 C 源码库，可重新构建 Nintendo 64、GameCube 和 iQue Player 共 16 个 ROM 版本。素材取自使用者自备的 ROM，默认构建会以对应版本的 MD5 校验；README 说明项目不制作 PC 移植，并仍称仓库处于开发中。",
  "entry_url": "https://awesomerea.org/resources/ocarina-of-time-decomp-case/",
  "entry_url_zh": "https://awesomerea.org/zh/resources/ocarina-of-time-decomp-case/",
  "evidence_url": "https://github.com/zeldaret/oot/blob/8a3634ca774a9b58d822cbc2cc09309f31eac6a4/README.md",
  "group": "cases",
  "id": "ocarina-of-time-decomp-case",
  "json_url": "https://awesomerea.org/resources/ocarina-of-time-decomp-case/record.json",
  "kind": "case-study",
  "markdown_url": "https://awesomerea.org/resources/ocarina-of-time-decomp-case/index.md",
  "markdown_url_zh": "https://awesomerea.org/zh/resources/ocarina-of-time-decomp-case/index.md",
  "name": "Ocarina of Time: decompilation with MD5-checked ROM builds for 16 versions",
  "name_zh": "《时之笛》：16 个版本均以 MD5 校验 ROM 构建的反编译",
  "reconstruction_method": "matching-decompilation",
  "record_type": "resource",
  "relationship": "independent-reconstruction",
  "requirement_facets": [
    "scope",
    "prerequisites",
    "prerequisites",
    "testing",
    "license"
  ],
  "requirements": [
    "README describes recreating a source base from scratch using information inside the game and static and/or dynamic analysis, and states that it is not producing a PC port. It builds 16 N64, GameCube and iQue Player ROM versions (default gc-eu-mq-dbg); some ROM parts may not yet be shiftable, so modding can be difficult.",
    "Each build needs the user’s own base ROM for the chosen version, matching an MD5 listed in README; the repository includes no game assets and extracts them from that ROM during setup. Native ports such as Ship of Harkinian, and recompilation projects, are separate from this repository’s output.",
    "README documents Linux or WSL builds, with separate macOS and Docker guides, needing Git, build-essential, curl, Python 3.10+ with pip and venv, libxml2 and a MIPS binutils toolchain. N64 and GameCube code builds with IDO 7.1 and 5.3 through ido-static-recomp; iQue builds also use EGCS for some files, and an optional GCC build is non-matching.",
    "With the default COMPARE=1, make checks the built ROM’s MD5 against the version’s checksum file and prints OK or FAILED; NON_MATCHING=1 or COMPILER=gcc turns the check off. GitHub Actions, using a private container holding the base ROMs, reported all 16 version builds successful for the pinned commit, and the mutable progress badge read 100% on review.",
    "The pinned tree has no license file and GitHub detects none, so no reuse license is stated; Nintendo content and compiler components keep their own terms."
  ],
  "requirements_zh": [
    "README 说明项目利用游戏内部信息及静态和／或动态分析，从零重建源码库，并明确表示不制作 PC 移植。项目可构建 N64、GameCube 和 iQue Player 共 16 个 ROM 版本（默认 gc-eu-mq-dbg）；ROM 的部分内容可能尚不能移位，因此修改起来可能较困难。",
    "每次构建都需要使用者自备所选版本的基础 ROM，且须与 README 列出的 MD5 一致；仓库不含游戏素材，素材在设置阶段从该 ROM 中提取。Ship of Harkinian 等原生移植及重编译项目都是独立项目，并非本仓库的产物。",
    "README 说明在 Linux 或 WSL 上构建，另有 macOS 与 Docker 指南；需要 Git、build-essential、curl、带 pip 与 venv 的 Python 3.10+、libxml2 以及 MIPS binutils 工具链。N64 和 GameCube 代码通过 ido-static-recomp 使用 IDO 7.1 与 5.3 编译；iQue 版本还有部分文件使用 EGCS，可选的 GCC 构建不保证一致。",
    "默认 COMPARE=1 时，make 会将构建出的 ROM 的 MD5 与该版本的校验文件比对，并输出 OK 或 FAILED；设置 NON_MATCHING=1 或 COMPILER=gcc 会关闭该检查。GitHub Actions 在存有基础 ROM 的私有容器中运行，报告固定提交的 16 个版本均构建成功；审阅时可变的进度徽章显示 100%。",
    "固定版本的仓库中没有许可证文件，GitHub 也未识别出许可证，因此未声明复用许可；任天堂内容与编译器组件各有其条款。"
  ],
  "targets": [
    "game"
  ],
  "url": "https://github.com/zeldaret/oot",
  "verification": "source-reviewed",
  "verified_at": "2026-10-18"
}
