# re2ds：Resident Evil 2 的原生 Nintendo DS 引擎

> 在原生 Nintendo DS 引擎中重新实现 Resident Evil 2 PS1 版的游戏规则，并用转换工具把使用者自有光盘中的数据转为 DS 格式。辅助脚本把 PS1 可执行文件包装成 ELF，供 REA 的 Ghidra 通道分析；分析笔记注明各部分所依据的 PS1 函数与数据表，链接该项目的 Reddit 帖称其借助 REA 和 Claude Code 完成。据报告 Leon 第一张光盘已可游玩，Claire 光盘、多数敌人类型和部分菜单仍未完成。

- 类型：案例
- 目标：游戏
- 类别：REA 社区调查案例
- 关联：作者报告的混合工具流程
- 来源复核于：2026-10-18
- 收录于：2026-10-19
- 原始资源：<https://github.com/eray1605/re2ds>
- 一手来源：<https://github.com/eray1605/re2ds/blob/f1e120ec50f6b072d7283a2d3dd35611d656c9b7/README.md>
- 目录页面：<https://awesomerea.org/zh/resources/re2ds-nds-engine-case/>
- 记录 JSON：<https://awesomerea.org/resources/re2ds-nds-engine-case/record.json>
- 英文版：[English](https://awesomerea.org/resources/re2ds-nds-engine-case/index.md)

## 使用条件与局限

- **前提条件：**需要使用者自有的 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 上运行的照片。
- **范围：**所审阅的提交针对 PS1 PAL 版（SLES-00972）的第一张光盘，即 Leon 篇。README 报告已覆盖第一张光盘的全部 125 个房间、可执行该光盘所用全部操作码的脚本解释器、丧尸、下屏状态菜单、音效、语音、开场动画及打字机存档；同时列出地图与文件、其他敌人类型、其余动画以及 Claire 光盘仍缺失。这是原生引擎，不是模拟器、匹配反编译或完整移植。
- **测试证据：**宿主测试会在 PC 上编译与平台无关的脚本、敌人和过场代码，并以使用者转换出的数据运行；脚本测试会报告未知操作码，scd_disasm.py --check 会校验所有房间的跳转目标。分析笔记引用 PS1 地址，并区分观察所得与推测的行为。psxexe_to_elf.py 把可执行文件和符号列表包装成 REA 的 Ghidra 通道可接受的 MIPS ELF；Claude Code 的使用只见于 Reddit 帖。
- **许可：**所审阅的提交中没有许可证文件。README 说明，若干转换工具以采用 MIT 许可的 OpenBiohazard2 重新实现项目的文件格式成果和脚本操作码表为起点。Capcom 的游戏数据、动画和音频不在仓库中，仍受其各自权利约束。

## 一手来源

1. <https://github.com/eray1605/re2ds/blob/f1e120ec50f6b072d7283a2d3dd35611d656c9b7/README.md>
2. <https://github.com/eray1605/re2ds/blob/f1e120ec50f6b072d7283a2d3dd35611d656c9b7/ROADMAP.md>
3. <https://github.com/eray1605/re2ds/blob/f1e120ec50f6b072d7283a2d3dd35611d656c9b7/Makefile>
4. <https://github.com/eray1605/re2ds/blob/f1e120ec50f6b072d7283a2d3dd35611d656c9b7/.gitignore>
5. <https://github.com/eray1605/re2ds/blob/f1e120ec50f6b072d7283a2d3dd35611d656c9b7/docs/engine-notes.md>
6. <https://github.com/eray1605/re2ds/blob/f1e120ec50f6b072d7283a2d3dd35611d656c9b7/tools/research/psxexe_to_elf.py>
7. <https://www.reddit.com/r/ReverseEngineering/comments/1x85dp5/a_port_of_resident_evil_2_for_the_nintendo_ds/>
8. <https://github.com/OpenBiohazard2/OpenBiohazard2/blob/173f900d174a41af56bd478692892254a2e31aae/LICENSE.md>

## 同分区更多条目：游戏

- [San Andreas Unity：在 Unity 中重新实现的《侠盗猎车手：圣安地列斯》引擎](https://awesomerea.org/zh/resources/san-andreas-unity-engine-case/index.md) · 案例
- [sh23ds：《寂静岭 2》的 3DS 原生重建](https://awesomerea.org/zh/resources/sh23ds-case/index.md) · 案例
- [SiegeFX：处于 alpha 阶段的 Dungeon Siege 引擎重实现](https://awesomerea.org/zh/resources/siegefx-dungeon-siege-engine-case/index.md) · 案例
- [Skate 3 Rust Engine：基于《Skate 3》逆向研究的 Bevy 重写](https://awesomerea.org/zh/resources/skate-3-rust-engine-case/index.md) · 案例
- [Snowball War：范围明确的 REA 辅助小游戏重建](https://awesomerea.org/zh/resources/snowball-war-rea-case/index.md) · 案例
- [Thyme《将军》引擎重实现](https://awesomerea.org/zh/resources/thyme/index.md) · 案例

## 关于此条目

说明已依据一手来源复核。
原创说明采用 MIT 许可；外部项目、论文与素材保留各自的权利和许可。
