案例
re2ds:Resident Evil 2 的原生 Nintendo DS 引擎
在原生 Nintendo DS 引擎中重新实现 Resident Evil 2 PS1 版的游戏规则,并用转换工具把使用者自有光盘中的数据转为 DS 格式。辅助脚本把 PS1 可执行文件包装成 ELF,供 REA 的 Ghidra 通道分析;分析笔记注明各部分所依据的 PS1 函数与数据表,链接该项目的 Reddit 帖称其借助 REA 和 Claude Code 完成。据报告 Leon 第一张光盘已可游玩,Claire 光盘、多数敌人类型和部分菜单仍未完成。
使用条件与局限
- 所审阅的提交针对 PS1 PAL 版(SLES-00972)的第一张光盘,即 Leon 篇。README 报告已覆盖第一张光盘的全部 125 个房间、可执行该光盘所用全部操作码的脚本解释器、丧尸、下屏状态菜单、音效、语音、开场动画及打字机存档;同时列出地图与文件、其他敌人类型、其余动画以及 Claire 光盘仍缺失。这是原生引擎,不是模拟器、匹配反编译或完整移植。
- 需要使用者自有的 Resident Evil 2 PAL 第一张光盘的 .bin/.cue 镜像,且只使用 Track 1;本地转换会生成约 290 MB 的 DS 数据。仓库声明不含任何游戏数据,并说明生成的 build/、nitrofiles/ 及 re2ds.nds 含有 Capcom 的数据,绝不能提交或分享。
- 构建需要 devkitARM 与 libnds(devkitPro nds-dev)、Python 3、FFmpeg 及其开发库、C 编译器和 pkg-config。Windows 下在 WSL Ubuntu 中构建;未找到本地 devkitARM 时,make 会改用 devkitPro 的 Docker 镜像。README 使用 melonDS 运行 ROM,存档需要设置 DLDI SD 卡,并附有一张标注为在 Nintendo DSi XL 上运行的照片。
- 宿主测试会在 PC 上编译与平台无关的脚本、敌人和过场代码,并以使用者转换出的数据运行;脚本测试会报告未知操作码,scd_disasm.py --check 会校验所有房间的跳转目标。分析笔记引用 PS1 地址,并区分观察所得与推测的行为。psxexe_to_elf.py 把可执行文件和符号列表包装成 REA 的 Ghidra 通道可接受的 MIPS ELF;Claude Code 的使用只见于 Reddit 帖,且未量化。本目录未构建或运行该引擎。
- 所审阅的提交中没有许可证文件。README 说明,若干转换工具以采用 MIT 许可的 OpenBiohazard2 重新实现项目的文件格式成果和脚本操作码表为起点。Capcom 的游戏数据、动画和音频不在仓库中,仍受其各自权利约束。
关于此条目
- 类型
- 案例
- 类别
- REA 社区调查案例
- 关联
- 作者报告的混合工具流程
- 目标
- 游戏
来源复核于
说明已依据一手来源复核;这不代表已运行验证、经过安全审计或确认兼容。
一手来源
- README.md GitHub · eray1605/re2ds · 修订 f1e120e
- ROADMAP.md GitHub · eray1605/re2ds · 修订 f1e120e
- Makefile GitHub · eray1605/re2ds · 修订 f1e120e
- .gitignore GitHub · eray1605/re2ds · 修订 f1e120e
- docs/engine-notes.md GitHub · eray1605/re2ds · 修订 f1e120e
- tools/research/psxexe_to_elf.py GitHub · eray1605/re2ds · 修订 f1e120e
- https://www.reddit.com/r/ReverseEngineering/comments/1x85dp5/a_port_of_resident_evil_2_for_the_nintendo_ds/
- LICENSE.md GitHub · OpenBiohazard2/OpenBiohazard2 · 修订 173f900