案例
Syphon Filter: The Omega Strain:可逐字节重建 PS2 可执行文件的一致性反编译
将 Syphon Filter: The Omega Strain 北美版 PlayStation 2 可执行文件的大部分代码重建为 C;其余函数保留为拆分出的汇编,整体构建可逐字节重现零售版 SCUS_972.64。仓库提交的 objdiff 报告以使用者自备的可执行文件为基准,追踪逐函数的匹配进度。这是一致性反编译案例,不是 PC 移植;进度数字仍为项目报告。
使用条件与局限
- 仅针对北美版可执行文件 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 代理”,进度日志也计划并行使用代理,但未将具体匹配归于它们;未确立与 REA 的关联。
关于此条目
- 类型
- 案例
- 类别
- 独立重建案例
- 关联
- 独立重建项目
- 目标
- 游戏
来源复核于
说明已依据一手来源复核;这不代表已运行验证、经过安全审计或确认兼容。
一手来源
- README.md GitHub · zm2283145/syphon-filter-omega-strain-decomp · 修订 d41eacc
- PROGRESS.md GitHub · zm2283145/syphon-filter-omega-strain-decomp · 修订 d41eacc
- docs/HANDOFF.md GitHub · zm2283145/syphon-filter-omega-strain-decomp · 修订 d41eacc
- progress/report.json GitHub · zm2283145/syphon-filter-omega-strain-decomp · 修订 d41eacc
- DECOMP_DEV.md GitHub · zm2283145/syphon-filter-omega-strain-decomp · 修订 d41eacc
- config/target.sha256 GitHub · zm2283145/syphon-filter-omega-strain-decomp · 修订 d41eacc
- tools/check_sha256.py GitHub · zm2283145/syphon-filter-omega-strain-decomp · 修订 d41eacc
- requirements.txt GitHub · zm2283145/syphon-filter-omega-strain-decomp · 修订 d41eacc
- docs/data_gen.md GitHub · zm2283145/syphon-filter-omega-strain-decomp · 修订 d41eacc
- .github/workflows/report.yml GitHub · zm2283145/syphon-filter-omega-strain-decomp · 修订 d41eacc