{
  "added_at": "2026-10-28",
  "additional_evidence_urls": [
    "https://github.com/Xeeynamo/ff7-decomp/blob/37f35a536ba80f0575e79e243a273b28702d494d/CONTRIBUTING.md",
    "https://github.com/Xeeynamo/ff7-decomp/blob/37f35a536ba80f0575e79e243a273b28702d494d/Makefile",
    "https://github.com/Xeeynamo/ff7-decomp/blob/37f35a536ba80f0575e79e243a273b28702d494d/config/us.yaml",
    "https://github.com/Xeeynamo/ff7-decomp/blob/37f35a536ba80f0575e79e243a273b28702d494d/tools/ninja/gen.py",
    "https://github.com/Xeeynamo/ff7-decomp/blob/37f35a536ba80f0575e79e243a273b28702d494d/tools/builder/builder/build.go",
    "https://github.com/Xeeynamo/ff7-decomp/blob/37f35a536ba80f0575e79e243a273b28702d494d/.github/workflows/build.yaml",
    "https://github.com/Xeeynamo/ff7-decomp/blob/37f35a536ba80f0575e79e243a273b28702d494d/CMakeLists.txt",
    "https://github.com/Xeeynamo/ff7-decomp/blob/37f35a536ba80f0575e79e243a273b28702d494d/.gitmodules",
    "https://github.com/Xeeynamo/ff7-decomp/blob/37f35a536ba80f0575e79e243a273b28702d494d/bin/cc1-psx-26.gz.sha256",
    "https://github.com/Xeeynamo/ff7-decomp/blob/37f35a536ba80f0575e79e243a273b28702d494d/Dockerfile",
    "https://github.com/Xeeynamo/ff7-decomp/blob/37f35a536ba80f0575e79e243a273b28702d494d/LICENSE"
  ],
  "category": "reconstruction-cases",
  "description_en": "Reconstructs C source for the US PlayStation release of Final Fantasy VII, aiming for code that compiles back to the original main executable and its game overlays. The build splits the user’s disc files with splat, compiles with period cc1-psx compilers and checks every rebuilt file against its SHA-1. A native build against the PsyZ PlayStation-library replacement is compiled in CI but is not documented as a playable port.",
  "description_zh": "为 Final Fantasy VII 美版 PlayStation 发行版重建 C 源码，目标是让代码重新编译出原版主可执行文件及各游戏覆盖段（overlay）。构建流程用 splat 拆分使用者自备的光盘文件，以当年的 cc1-psx 编译器编译，并用 SHA-1 校验每个重建文件。基于 PsyZ（PlayStation 库替代实现）的原生构建会在 CI 中编译，但未作为可游玩的移植版加以说明。",
  "entry_url": "https://awesomerea.org/resources/ff7-ps1-matching-decomp-case/",
  "entry_url_zh": "https://awesomerea.org/zh/resources/ff7-ps1-matching-decomp-case/",
  "evidence_url": "https://github.com/Xeeynamo/ff7-decomp/blob/37f35a536ba80f0575e79e243a273b28702d494d/README.md",
  "group": "cases",
  "id": "ff7-ps1-matching-decomp-case",
  "json_url": "https://awesomerea.org/resources/ff7-ps1-matching-decomp-case/record.json",
  "kind": "case-study",
  "markdown_url": "https://awesomerea.org/resources/ff7-ps1-matching-decomp-case/index.md",
  "markdown_url_zh": "https://awesomerea.org/zh/resources/ff7-ps1-matching-decomp-case/index.md",
  "name": "Final Fantasy VII: a matching PlayStation decompilation",
  "name_zh": "Final Fantasy VII：PlayStation 版一致性反编译",
  "reconstruction_method": "matching-decompilation",
  "record_type": "resource",
  "relationship": "independent-reconstruction",
  "requirements": [
    "The project describes itself as a matching decompilation of the PS1 game; config/us.yaml defines the single us version, covering SCUS_941.63 and battle, field, menu, world, minigame, magic and other overlays with 29 SHA-1 entries. Source tables such as the chocobo minigame’s arccosine table are data taken from the game, as is usual for such projects. README states no completion figure; CI uploads a progress report as a build artifact.",
    "Supply disc 1 of Final Fantasy VII (USA) as BIN/CUE under disks/; README lists the USA Interactive Sampler CD as optional, though the reviewed config builds only us. CONTRIBUTING says the repository includes no original game data and is not a playable or standalone version. CI fetches its disc images from a private dependency repository through a secret token.",
    "README documents Debian/Ubuntu and Arch Linux with Go, Python 3 (a venv with splat64, spimdisasm and others), ninja, 7zip, bchunk and mipsel-linux-gnu binutils and GCC; CI notes that Ubuntu 24.04’s binutils 2.42 linker does not match the game. Make downloads the cc1-psx-26 and cc1-psx-272 compiler builds from the project’s init release and checks them against committed SHA-256 files; maspsx, m2c, asm-differ and PsyZ come in as submodules, and a Dockerfile is provided.",
    "make build ends with a ninja rule running sha1sum -c over the expected hashes of every overlay. CI on the upstream repository checks formatting, runs that build, lints for overlapping symbols and compiles the PsyZ build. These checks compare file identity for the US release.",
    "LICENSE is AGPL-3.0; the game discs, extracted data and downloaded compilers keep separate rights. README says the decompiled code is written by humans and rejects LLM-accelerated decompilation, while allowing LLMs for tooling, permuting hard functions or hunting runtime bugs; CONTRIBUTING forbids autonomously generated pull requests and commit messages."
  ],
  "requirements_zh": [
    "项目自述为该 PS1 游戏的一致性反编译；config/us.yaml 只定义了 us 一个版本，涵盖 SCUS_941.63 以及战斗、野外、菜单、世界地图、小游戏、魔法及其他覆盖段，共 29 条 SHA-1 记录。源码中的数据表（例如陆行鸟小游戏的反余弦表）取自游戏，这在此类项目中很常见。README 未给出完成度数字；CI 会把进度报告上传为构建产物。",
    "需将 Final Fantasy VII（USA）第 1 张光盘以 BIN/CUE 形式放在 disks/ 下；README 将美版 Interactive Sampler CD 列为可选，但所审配置只构建 us 版本。CONTRIBUTING 说明仓库不含原版游戏数据，也不是可游玩或独立运行的版本。CI 通过机密令牌从一个私有依赖仓库获取光盘镜像。",
    "README 介绍了 Debian/Ubuntu 与 Arch Linux 下的环境：Go、Python 3（含 splat64、spimdisasm 等的虚拟环境）、ninja、7zip、bchunk 以及 mipsel-linux-gnu binutils 和 GCC；CI 注释指出 Ubuntu 24.04 自带的 binutils 2.42 链接器与游戏不匹配。make 会从项目的 init 发布版下载 cc1-psx-26 与 cc1-psx-272 编译器构建，并以仓库中的 SHA-256 文件校验；maspsx、m2c、asm-differ 与 PsyZ 以子模块引入，另提供 Dockerfile。",
    "make build 的最后一步是 ninja 规则，以 sha1sum -c 校验每个覆盖段的预期哈希。上游仓库的 CI 检查代码格式、运行该构建、检查符号重叠，并编译 PsyZ 构建。这些检查比较的是美版文件是否一致。",
    "LICENSE 为 AGPL-3.0；游戏光盘、提取出的数据和下载的编译器另有权利归属。README 表示反编译代码由人编写，拒绝借助 LLM 加速反编译，但允许将 LLM 用于工具开发、对难点函数做排列尝试或排查运行时错误；CONTRIBUTING 禁止自主生成的拉取请求和提交信息。"
  ],
  "targets": [
    "game"
  ],
  "url": "https://github.com/Xeeynamo/ff7-decomp",
  "verification": "source-reviewed",
  "verified_at": "2026-10-19"
}
