{
  "added_at": "2026-10-18",
  "additional_evidence_urls": [
    "https://github.com/zm2283145/syphon-filter-omega-strain-decomp/blob/d41eacc6dd89befed75fec21a02faaa2b5a4750c/PROGRESS.md",
    "https://github.com/zm2283145/syphon-filter-omega-strain-decomp/blob/d41eacc6dd89befed75fec21a02faaa2b5a4750c/docs/HANDOFF.md",
    "https://github.com/zm2283145/syphon-filter-omega-strain-decomp/blob/d41eacc6dd89befed75fec21a02faaa2b5a4750c/progress/report.json",
    "https://github.com/zm2283145/syphon-filter-omega-strain-decomp/blob/d41eacc6dd89befed75fec21a02faaa2b5a4750c/DECOMP_DEV.md",
    "https://github.com/zm2283145/syphon-filter-omega-strain-decomp/blob/d41eacc6dd89befed75fec21a02faaa2b5a4750c/config/target.sha256",
    "https://github.com/zm2283145/syphon-filter-omega-strain-decomp/blob/d41eacc6dd89befed75fec21a02faaa2b5a4750c/tools/check_sha256.py",
    "https://github.com/zm2283145/syphon-filter-omega-strain-decomp/blob/d41eacc6dd89befed75fec21a02faaa2b5a4750c/requirements.txt",
    "https://github.com/zm2283145/syphon-filter-omega-strain-decomp/blob/d41eacc6dd89befed75fec21a02faaa2b5a4750c/docs/data_gen.md",
    "https://github.com/zm2283145/syphon-filter-omega-strain-decomp/blob/d41eacc6dd89befed75fec21a02faaa2b5a4750c/.github/workflows/report.yml"
  ],
  "category": "reconstruction-cases",
  "description_en": "Reconstructs much of the NTSC-U PlayStation 2 executable of Syphon Filter: The Omega Strain as C; with the remaining functions kept as split assembly, the build reproduces the retail SCUS_972.64 byte for byte. Committed objdiff reports track per-function matching against the user’s own executable. This is a matching-decompilation case, not a PC port; progress figures remain project-reported.",
  "description_zh": "将 Syphon Filter: The Omega Strain 北美版 PlayStation 2 可执行文件的大部分代码重建为 C；其余函数保留为拆分出的汇编，整体构建可逐字节重现零售版 SCUS_972.64。仓库提交的 objdiff 报告以使用者自备的可执行文件为基准，追踪逐函数的匹配进度。这是一致性反编译案例，不是 PC 移植；进度数字仍为项目报告。",
  "entry_url": "https://awesomerea.org/resources/syphon-filter-omega-strain-decomp-case/",
  "entry_url_zh": "https://awesomerea.org/zh/resources/syphon-filter-omega-strain-decomp-case/",
  "evidence_url": "https://github.com/zm2283145/syphon-filter-omega-strain-decomp/blob/d41eacc6dd89befed75fec21a02faaa2b5a4750c/README.md",
  "group": "cases",
  "id": "syphon-filter-omega-strain-decomp-case",
  "json_url": "https://awesomerea.org/resources/syphon-filter-omega-strain-decomp-case/record.json",
  "kind": "case-study",
  "markdown_url": "https://awesomerea.org/resources/syphon-filter-omega-strain-decomp-case/index.md",
  "markdown_url_zh": "https://awesomerea.org/zh/resources/syphon-filter-omega-strain-decomp-case/index.md",
  "name": "Syphon Filter: The Omega Strain — matching PS2 executable decompilation",
  "name_zh": "Syphon Filter: The Omega Strain：可逐字节重建 PS2 可执行文件的一致性反编译",
  "reconstruction_method": "matching-decompilation",
  "record_type": "resource",
  "relationship": "independent-reconstruction",
  "requirement_facets": [
    "scope",
    "prerequisites",
    "prerequisites",
    "testing",
    "license"
  ],
  "requirements": [
    "Targets only the NTSC-U executable SCUS_972.64; the output is a rebuilt PS2 ELF, not a native PC program. At the reviewed commit, the committed objdiff report and handoff note list 13,413 of 14,331 functions (93.59%), 76.59% of code bytes and 99.92% of data as matched, with the rest still assembly. The dated status table in PROGRESS.md shows older, lower figures, and function totals shift as boundaries are refined.",
    "Supply SCUS_972.64 from an independently owned disc or image; configure.py checks its SHA-256 against config/target.sha256 before splitting. No disc data, split assembly, objects or rebuilt executable is committed; derived files are generated in git-ignored folders. Executable data regions are committed as generated C definitions.",
    "Setup needs Python 3.10+ with pinned splat 0.50.0 and spimdisasm 1.42.4, ninja, MIPS binutils and objdiff-cli. Windows runs the tools natively; Linux/macOS run the Windows compiler through wibo or wine. The setup script downloads a CodeWarrior PS2 3.0.3 build archived by decomp.me, but the licensed 3.0 build 38 and 3.04 build 22 installations used by per-unit overrides are not supplied; without them those units fall back to retail assembly. Library units use EE-GCC 2.95.3 and 2.96.",
    "Verification is a whole-image SHA-256 comparison: ninja fails unless the rebuilt executable matches the retail hash, and the project claims a function match only with that check and objdiff identity. CI cannot build without the executable and only uploads the locally generated report for decomp.dev. The project treats build 38 compatibility as code-generation evidence.",
    "No license file is present at the reviewed commit, so reuse terms for the project’s code are unstated; the game, its executable and the proprietary Metrowerks compilers retain separate rights. The handoff note addresses a person or AI agent and the progress log plans parallel agent work."
  ],
  "requirements_zh": [
    "仅针对北美版可执行文件 SCUS_972.64；产物是重建的 PS2 ELF，而非原生 PC 程序。在所审提交中，已提交的 objdiff 报告和交接说明列出 14,331 个函数中已匹配 13,413 个（93.59%），代码字节匹配 76.59%，数据匹配 99.92%，其余仍为汇编。PROGRESS.md 中带日期的状态表仍显示较早、较低的数字，函数总数也会随边界细化而变化。",
    "需从自有光盘或其镜像取得 SCUS_972.64；configure.py 在拆分前会将其 SHA-256 与 config/target.sha256 比对。仓库不提交光盘数据、拆分出的汇编、目标文件或重建的可执行文件，这些派生文件都生成于 git 忽略的目录中。可执行文件的数据区以生成的 C 定义形式提交。",
    "构建环境需 Python 3.10+，以及固定版本的 splat 0.50.0、spimdisasm 1.42.4、ninja、MIPS binutils 和 objdiff-cli。Windows 可原生运行这些工具；Linux／macOS 通过 wibo 或 wine 运行 Windows 编译器。安装脚本会下载 decomp.me 存档的 CodeWarrior PS2 3.0.3 版本，但逐单元覆盖所用的需授权 3.0 build 38 和 3.04 build 22 安装不随附；缺少它们时，这些单元会回退为零售版汇编。库代码单元使用 EE-GCC 2.95.3 和 2.96。",
    "验证方式是整个映像的 SHA-256 比对：重建的可执行文件与零售版哈希不符时 ninja 即报错，项目只有在通过该检查且 objdiff 显示一致时才声称函数匹配。CI 没有可执行文件，无法构建，只上传本地生成的报告供 decomp.dev 读取。项目将 build 38 的兼容性视为代码生成方面的证据。",
    "所审提交中没有许可证文件，因此项目代码的复用条款未说明；游戏、其可执行文件及专有的 Metrowerks 编译器另有权利约束。交接说明面向“人或 AI 代理”，进度日志也计划并行使用代理。"
  ],
  "targets": [
    "game"
  ],
  "url": "https://github.com/zm2283145/syphon-filter-omega-strain-decomp",
  "verification": "source-reviewed",
  "verified_at": "2026-10-18"
}
