案例

3S Decomp:逐字比对的《街头霸王 III:3rd Strike》PS2 反编译重建

将 Street Fighter Anniversary Collection 中《街头霸王 III:3rd Strike》的 PlayStation 2 可执行文件反编译为 C 源码,用当年的 Metrowerks 与 EE GCC 编译器重新构建,再将重建出的可执行文件与使用者自备的原文件逐字比较。README 报告游戏代码已全部反编译,CRI 中间件部分完成。另有独立的 3SX 原生移植,自称是本项目的延续。

使用条件与局限

  • README 报告游戏代码已全部反编译,CRI 中间件部分反编译,游戏所用的大部分文件系统和声音函数已一致;cri-progress.md 所列 503 个 CRI 函数中已勾选 497 个。在所审提交中,PS2 构建仍有两个游戏函数(sea_write 和 mlt_obj_trans_rgb_ext)及 52 个 CRI C 文件中的 39 个包含汇编;PS2 SDK 和 GCC 库代码不在范围内。产物是 PS2 可执行文件,不是 PC 移植。
  • 构建需要使用者从自己的游戏副本中取得 THIRD_U.BIN;拆分配置记录其 SHA-1 为 cf58495054c31ad852175c66e9ca04d5094f000e,make split 据此生成汇编和链接脚本。反编译指南还借助该可执行文件中的 DWARF 调试数据(用 decomp-toolkit 导出)获取函数签名和局部变量。另有面向 CPS3 街机版的 split_cps3 目标,需要使用者自备街机 ROM,目前只有代码段配置。
  • 构建指南涵盖 Linux(需启用 i386 支持的 Debian 软件包、MIPS binutils,以及装有 splat64 0.29.0 和 spimdisasm 1.35.0 的 Python 虚拟环境),macOS 则使用所提供的 Dockerfile。make setup_tools 从 decomp.me 的编译器发布中下载 Metrowerks mwccps2 3.0b38 和 EE GCC 2.96,并下载用于运行 Windows 工具的 wibo;m2c、asm-differ、mwccgap 和 saturn-splitter 是 git 子模块。
  • 构建成功后,compare_bytes.py 将重建的可执行文件与原文件在偏移 0x80 至 0x478A00 范围内比对,并输出 “Files match ✅”。该检查容许约 20 个游戏与 CRI 函数中列明的 163 个字存在差异,原因注明为寄存器与操作数互换、断言行号、字符串编码、一处错位的 nop 和一处调用错位,因此按项目自身的检查,一致性接近字节级,而非整个文件的哈希一致。最新提交移除了 GitHub Actions 工作流;本合集未自行构建。
  • LICENSE 为 AGPL-3.0,适用于项目代码。原可执行文件和游戏内容仍有各自权利约束;include/cri 中有标注 “CRI Middleware SDK” 及 “Copyright (c) … CRI-MW” 的头文件,内置的 zlib 也保留其自身许可证。所审来源未确立 AI 或 REA 使用,也不主张运行复现。

关于此条目

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

来源复核于

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

报告条目过时 建议修正翻译

一手来源

  1. README.md GitHub · crowded-street/3s-decomp · 修订 be9b9bc
  2. docs/builde-guide.md GitHub · crowded-street/3s-decomp · 修订 be9b9bc
  3. docs/decompiling.md GitHub · crowded-street/3s-decomp · 修订 be9b9bc
  4. Makefile GitHub · crowded-street/3s-decomp · 修订 be9b9bc
  5. config/anniversary/sfiii.anniversary.yaml GitHub · crowded-street/3s-decomp · 修订 be9b9bc
  6. tools/compare_bytes.py GitHub · crowded-street/3s-decomp · 修订 be9b9bc
  7. cri-progress.md GitHub · crowded-street/3s-decomp · 修订 be9b9bc
  8. src/anniversary/sf33rd/Source/Game/end_20.c#L321-L322 GitHub · crowded-street/3s-decomp · 修订 be9b9bc
  9. src/anniversary/sf33rd/Source/Game/MTRANS.c#L1145-L1146 GitHub · crowded-street/3s-decomp · 修订 be9b9bc
  10. config/cps3/sfiii3n.yaml GitHub · crowded-street/3s-decomp · 修订 be9b9bc
  11. tools/requirements-python.txt GitHub · crowded-street/3s-decomp · 修订 be9b9bc
  12. .gitmodules GitHub · crowded-street/3s-decomp · 修订 be9b9bc
  13. include/cri/cri_xpts.h GitHub · crowded-street/3s-decomp · 修订 be9b9bc
  14. LICENSE GitHub · crowded-street/3s-decomp · 修订 be9b9bc
  15. https://github.com/crowded-street/3s-decomp/commit/be9b9bc69dc19822a8eca9ce3e72ba560d5a3835

同分区更多条目:游戏

游戏分区全部 231 项资源游戏案例(189)