案例

Castlevania: Symphony of the Night:覆盖 PlayStation、PSP 与 Saturn 版本的一致性反编译

从《恶魔城 月下夜想曲》的 PlayStation、PSP 和 Saturn 版二进制重建 C 源码,目标是逐字节编译出与原游戏文件一致的产物。这一进行中的构建将已反编译代码与从使用者自备光盘镜像提取的素材和汇编结合,再按版本检查 SHA-1 哈希。同一仓库中的原生 PC 实验被文档说明为尚未完成,并不是已发布的移植。

使用条件与局限

  • README 将其描述为进行中的一致性反编译,涵盖四个构建:us(PlayStation 版 SLUS-00067,为参考版本)、hd(在 Castlevania: Dracula X Chronicles 数据中发现的未发售日版 PS1 构建)、pspeu(Dracula X Chronicles 欧版)和 saturn(由外部团队开发的 Saturn 移植版)。Build wiki 说明仍有部分不一致函数置于 NON_MATCHING 宏下,不保证功能等价。README 链接 sotn.xee.dev 和 decomp.dev 上会变动的进度页面;本合集未记录完成度数字。
  • 仓库不含游戏素材,也不含编译所需的汇编;README 要求事先拥有游戏副本。Build wiki 要求未经修改的美版 PlayStation 光盘的 BIN/CUE 镜像;固定版本的 Makefile 则从欧版 Dracula X Chronicles ISO 读取两个 PSP 来源的构建,并从 Saturn 的 BIN/CUE 镜像读取 Saturn 构建,这些文件均以对应版本的名称放在 disks/ 下。
  • Build wiki 以 CI 所用的 Ubuntu 24.04 LTS 为测试环境,也涵盖通过 WSL 2 使用 Windows 以及基于 Arch 的发行版;Dockerfile 提供 Ubuntu Noble 环境。构建需要 Go、Rust、Python 3.12+、MIPS 与 SH binutils、MIPS GCC、ninja,以及 m2c、maspsx、asm-differ、mipsmatch、decomp-permuter 等子模块工具。项目托管的预编译归档(包括 cc1-psx、mwccpsp、Cygnus 2.7 工具链和 wibo)会依据 SHA-256 文件校验;Saturn 构建还需要 dosemu。
  • 除非设置 SKIP_CHECK,固定版本的构建代码会依据 config/check.<version>.sha 对产物计算哈希:us 清单列出 main.exe、DRA.BIN、RIC.BIN 及关卡和覆盖模块文件,hd、pspeu 与 saturn 的清单较短。wiki 仍提到 make check 步骤,但固定版本的 Makefile 并未定义该目标。这些检查比较所供版本的文件一致性,不覆盖游戏行为,本合集也未重跑。
  • Makefile 也接受 pc 版本,src/pc 中有原生移植代码,但 PC Port wiki 页面说明目前尚无基于反编译、可端到端运行的移植;此处不主张存在 PC 移植。仓库声明采用 AGPL-3.0,光盘镜像、提取的素材和汇编以及下载的编译器各有权利约束。CONTRIBUTING 仅允许贡献者能够说明理由并可手动操作的编码代理辅助改动,并要求提交与拉取请求不得由自主工具生成;这不确立 REA 使用,也不主张运行复现。

关于此条目

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

来源复核于

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

一手来源

  1. README.md GitHub · Xeeynamo/sotn-decomp · 修订 eddaf22
  2. Makefile GitHub · Xeeynamo/sotn-decomp · 修订 eddaf22
  3. LICENSE GitHub · Xeeynamo/sotn-decomp · 修订 eddaf22
  4. CONTRIBUTING.md GitHub · Xeeynamo/sotn-decomp · 修订 eddaf22
  5. .gitmodules GitHub · Xeeynamo/sotn-decomp · 修订 eddaf22
  6. Dockerfile GitHub · Xeeynamo/sotn-decomp · 修订 eddaf22
  7. disks/README GitHub · Xeeynamo/sotn-decomp · 修订 eddaf22
  8. tools/requirements-debian.txt GitHub · Xeeynamo/sotn-decomp · 修订 eddaf22
  9. tools/sotn-assets/build.go GitHub · Xeeynamo/sotn-decomp · 修订 eddaf22
  10. tools/sotn-assets/check.go GitHub · Xeeynamo/sotn-decomp · 修订 eddaf22
  11. config/check.us.sha GitHub · Xeeynamo/sotn-decomp · 修订 eddaf22
  12. config/check.hd.sha GitHub · Xeeynamo/sotn-decomp · 修订 eddaf22
  13. config/check.pspeu.sha GitHub · Xeeynamo/sotn-decomp · 修订 eddaf22
  14. config/check.saturn.sha GitHub · Xeeynamo/sotn-decomp · 修订 eddaf22
  15. https://github.com/Xeeynamo/sotn-decomp/wiki/Build
  16. https://github.com/Xeeynamo/sotn-decomp/wiki/PC-Port