案例

Sly Cooper and the Thievius Raccoonus:PlayStation 2 一致性反编译

将《Sly Cooper and the Thievius Raccoonus》PlayStation 2 美版可执行文件 SCUS_971.98 重建为源码,属于进行中的一致性反编译。尚未匹配的函数仍由从使用者自备可执行文件中拆分出的汇编构建,构建会检查链接后 ELF 的 SHA-1。产物需在 PCSX2 中配合原版光盘素材运行,并不是原生 PC 移植。

使用条件与局限

  • README 将其描述为针对美版可执行文件 SCUS_971.98(SHA-1 前缀 57dc305d)的进行中反编译,目标是把游戏引擎反编译为可一致编译的源码。FAQ 称项目自 2024 年 7 月起已能构建一致的 ELF,最终目标仍是匹配全部函数。引擎、Splice 脚本引擎和数据的进度在 decomp.dev 上报告;本合集未记录百分比。
  • 仓库不含游戏素材或原始代码。使用者需从自己合法取得的光盘提供 SCUS_971.98,或为快速入门脚本提供美版 ISO。运行构建产物需要 PCSX2 2.0、使用者自己的游戏 ISO(用于加载素材)以及来自使用者自有 PS2 的 BIOS。
  • 构建可在基于 Debian 的 Linux 或 WSL 上进行,其他发行版可参考 Distrobox 指南。需要 Python 3.9+ 及所列软件包、MIPS binutils、Ninja,并以 Wine 或 wibo 运行下载的 ee-gcc 2.95.2 SN(ProDG)编译器归档。configure.py 使用 splat 拆分 ELF,以拆分出的汇编替代尚未一致的函数,并链接可执行文件;objdiff、decomp.me 和 CodeMatcher 用于辅助匹配,其中 CodeMatcher 目前以 2002 年 5 月 19 日原型版为对照。
  • 默认构建会依据 config/checksum.sha1 校验 out/SCUS_971.98;文档说明有意修改代码时可使用 --skip-checksum,但其产物可能无法启动。CI 通过仓库机密下载原版 ELF,并在 main 分支上执行此校验,所审提交记录的检查结果为成功。这只验证单个可执行文件的逐字节一致,不代表反编译已经完成,本合集也未重跑。
  • 仓库以 CC0 1.0 发布;原版游戏、提取的汇编和数据,以及 ProDG 编译器和 SCE 运行库各有权利约束。CONTRIBUTING 从 2002 年 5 月原型版的调试符号中获取经过名称修饰的函数名。所审来源未确立 REA 参与,也不主张运行复现。

关于此条目

类型
案例
类别
独立重建案例
关联
独立重建项目
目标
游戏

来源复核于

说明已依据一手来源复核;这不代表已运行验证、经过安全审计或确认兼容。

一手来源

  1. README.md GitHub · TheOnlyZac/sly1 · 修订 ea5e2d7
  2. configure.py GitHub · TheOnlyZac/sly1 · 修订 ea5e2d7
  3. config/checksum.sha1 GitHub · TheOnlyZac/sly1 · 修订 ea5e2d7
  4. config/readme.md GitHub · TheOnlyZac/sly1 · 修订 ea5e2d7
  5. scripts/setup_prodg_linux.sh GitHub · TheOnlyZac/sly1 · 修订 ea5e2d7
  6. docs/CONTRIBUTING.md GitHub · TheOnlyZac/sly1 · 修订 ea5e2d7
  7. .github/workflows/build.yml GitHub · TheOnlyZac/sly1 · 修订 ea5e2d7
  8. LICENSE GitHub · TheOnlyZac/sly1 · 修订 ea5e2d7
  9. https://decomp.dev/TheOnlyZac/sly1
  10. https://theonlyzac.github.io/sly1