{
  "added_at": "2026-10-19",
  "additional_evidence_urls": [
    "https://github.com/sonicdcer/sf64/blob/4235c59f00b04440e3fd5fec49f0bc80e48cf212/Makefile",
    "https://github.com/sonicdcer/sf64/blob/4235c59f00b04440e3fd5fec49f0bc80e48cf212/tools/Makefile",
    "https://github.com/sonicdcer/sf64/blob/4235c59f00b04440e3fd5fec49f0bc80e48cf212/starfox64.us.rev1.md5",
    "https://github.com/sonicdcer/sf64/blob/4235c59f00b04440e3fd5fec49f0bc80e48cf212/config.yml",
    "https://github.com/sonicdcer/sf64/blob/4235c59f00b04440e3fd5fec49f0bc80e48cf212/.gitmodules",
    "https://github.com/sonicdcer/sf64/blob/4235c59f00b04440e3fd5fec49f0bc80e48cf212/.github/workflows/ci.yaml",
    "https://github.com/sonicdcer/sf64/blob/4235c59f00b04440e3fd5fec49f0bc80e48cf212/LICENSE.md"
  ],
  "category": "reconstruction-cases",
  "description_en": "Reconstructs C source for the US 1.1 (Rev A) Nintendo 64 release of Star Fox 64 that, compiled with the IDO compiler through a static recompilation, rebuilds a ROM with the published MD5; the README badge counts all 2,951 functions as matching. Code and assets are split from the user’s own ROM at build time, and the repository contains no assets or assembly. The separately curated Starship PC port compiles this C code, while Starfox 64: Recompiled takes headers and some functions from it for its patches.",
  "description_zh": "为 Nintendo 64 版《星际火狐 64》美版 1.1（Rev A）重建 C 源码；借助静态重编译运行的 IDO 编译器编译后，可重建出 MD5 与公布值一致的 ROM，README 徽章显示全部 2,951 个函数均已一致。构建时从使用者自备的 ROM 中拆分代码与素材，仓库本身不含素材或汇编。另行收录的 Starship PC 移植直接编译这份 C 代码，Starfox 64: Recompiled 则从中取用头文件和部分函数来编写补丁。",
  "entry_url": "https://awesomerea.org/resources/sf64-matching-decomp-case/",
  "entry_url_zh": "https://awesomerea.org/zh/resources/sf64-matching-decomp-case/",
  "evidence_url": "https://github.com/sonicdcer/sf64/blob/4235c59f00b04440e3fd5fec49f0bc80e48cf212/README.md",
  "group": "cases",
  "id": "sf64-matching-decomp-case",
  "json_url": "https://awesomerea.org/resources/sf64-matching-decomp-case/record.json",
  "kind": "case-study",
  "markdown_url": "https://awesomerea.org/resources/sf64-matching-decomp-case/index.md",
  "markdown_url_zh": "https://awesomerea.org/zh/resources/sf64-matching-decomp-case/index.md",
  "name": "Star Fox 64: a complete matching Nintendo 64 decompilation",
  "name_zh": "《星际火狐 64》：完整的 Nintendo 64 版一致性反编译",
  "reconstruction_method": "matching-decompilation",
  "record_type": "resource",
  "relationship": "independent-reconstruction",
  "requirement_facets": [
    "scope",
    "prerequisites",
    "prerequisites",
    "testing",
    "license"
  ],
  "requirements": [
    "The reviewed master pin of 2026-09-28 is a clean-up commit after the July 2026 commits announcing 100% completion. README calls this a complete matching decompilation of the US 1.1 (Rev A) ROM, MD5 741a94eee093c4c8684e66b89f8685e8, and says it is not a PC port. Splat configurations and linker scripts also exist for US 1.0, Japanese and European releases, with checksum files for uncompressed Japanese and European 1.0 ROMs, but README does not document building them.",
    "Building needs the user’s own US 1.1 Rev A ROM, placed in the project root as baserom.us.rev1.z64. README says the repository includes no assets or assembly code; make init decompresses the ROM, splits code, data and assets with splat, then builds. config.yml and assets/yaml also hold the Torch asset definitions that write starship.otr for the Starship port.",
    "README documents Linux, natively or under WSL or a VM, with make, Git, build-essential, MIPS binutils, Python 3 with pip, libpng and the listed clang tools, or macOS with Homebrew’s coreutils, make, pkg-config and mips64-elf binutils; native Windows builds are unsupported. make toolchain downloads decompals’ ido-static-recomp build of the IDO compiler and builds the mio0 tool and Torch, while submodules add splat, asm-processor, asm-differ, m2c and Torch. A GCC build is available but defines NON_MATCHING.",
    "With COMPARE=1 by default, the build checks the output against starfox64.us.rev1.md5, and README reads a mismatch as a bad base ROM or non-matching code. CI runs make init on the US ROM, fetched from a private repository through secrets, and a separate workflow checks formatting.",
    "The repository carries CC0-1.0, which does not cover Nintendo’s game, the ROM or extracted assets; the IDO compiler and the submodules keep their own terms."
  ],
  "requirements_zh": [
    "所审阅的 master 固定版本是 2026 年 9 月 28 日的一次整理提交，此前于 2026 年 7 月有提交宣布完成度达到 100%。README 称其为美版 1.1（Rev A）ROM 的完整一致性反编译，对应 MD5 为 741a94eee093c4c8684e66b89f8685e8，并说明这不是 PC 移植。仓库中还有美版 1.0、日版和欧版的 splat 配置与链接脚本，以及日版和欧版 1.0 未压缩 ROM 的校验文件，但 README 未说明如何构建这些版本。",
    "构建需要使用者自备美版 1.1 Rev A ROM，并以 baserom.us.rev1.z64 为名放在项目根目录。README 表示仓库不含任何素材或汇编代码；make init 会解压 ROM，用 splat 拆分代码、数据与素材，然后构建。config.yml 和 assets/yaml 中还有供 Starship 移植使用的 Torch 素材定义，用于生成 starship.otr。",
    "README 说明的构建环境是 Linux（原生、WSL 或虚拟机），需要 make、Git、build-essential、MIPS binutils、带 pip 的 Python 3、libpng 及列明的 clang 工具；或是 macOS，通过 Homebrew 安装 coreutils、make、pkg-config 与 mips64-elf binutils；不支持在 Windows 上原生构建。make toolchain 会下载 decompals 用 ido-static-recomp 制作的 IDO 编译器，并构建 mio0 工具与 Torch；子模块提供 splat、asm-processor、asm-differ、m2c 和 Torch。也可用 GCC 构建，但会定义 NON_MATCHING。",
    "默认 COMPARE=1 时，构建会依据 starfox64.us.rev1.md5 校验产物；README 将校验失败解释为基础 ROM 有误或部分代码尚未一致。CI 对通过密钥从私有仓库取得的美版 ROM 运行 make init，另有工作流检查代码格式。",
    "仓库采用 CC0-1.0，不涵盖任天堂的游戏、ROM 或提取出的素材；IDO 编译器与各子模块仍受各自条款约束。"
  ],
  "targets": [
    "game"
  ],
  "url": "https://github.com/sonicdcer/sf64",
  "verification": "source-reviewed",
  "verified_at": "2026-10-19"
}
