{
  "added_at": "2026-10-19",
  "additional_evidence_urls": [
    "https://github.com/eray1605/re2ds/blob/f1e120ec50f6b072d7283a2d3dd35611d656c9b7/ROADMAP.md",
    "https://github.com/eray1605/re2ds/blob/f1e120ec50f6b072d7283a2d3dd35611d656c9b7/Makefile",
    "https://github.com/eray1605/re2ds/blob/f1e120ec50f6b072d7283a2d3dd35611d656c9b7/.gitignore",
    "https://github.com/eray1605/re2ds/blob/f1e120ec50f6b072d7283a2d3dd35611d656c9b7/docs/engine-notes.md",
    "https://github.com/eray1605/re2ds/blob/f1e120ec50f6b072d7283a2d3dd35611d656c9b7/tools/research/psxexe_to_elf.py",
    "https://www.reddit.com/r/ReverseEngineering/comments/1x85dp5/a_port_of_resident_evil_2_for_the_nintendo_ds/",
    "https://github.com/OpenBiohazard2/OpenBiohazard2/blob/173f900d174a41af56bd478692892254a2e31aae/LICENSE.md"
  ],
  "category": "community-case-studies",
  "description_en": "Reimplements Resident Evil 2’s PS1 game rules in a native Nintendo DS engine, with converters that turn data from the user’s own disc into DS formats. A helper wraps the PS1 executable as an ELF for REA’s Ghidra lane, analysis notes name the PS1 functions and tables each part follows, and the Reddit post linking it credits REA and Claude Code. Leon’s disc 1 is reported playable, while Claire’s disc, most enemy types and some menus remain unfinished.",
  "description_zh": "在原生 Nintendo DS 引擎中重新实现 Resident Evil 2 PS1 版的游戏规则，并用转换工具把使用者自有光盘中的数据转为 DS 格式。辅助脚本把 PS1 可执行文件包装成 ELF，供 REA 的 Ghidra 通道分析；分析笔记注明各部分所依据的 PS1 函数与数据表，链接该项目的 Reddit 帖称其借助 REA 和 Claude Code 完成。据报告 Leon 第一张光盘已可游玩，Claire 光盘、多数敌人类型和部分菜单仍未完成。",
  "entry_url": "https://awesomerea.org/resources/re2ds-nds-engine-case/",
  "entry_url_zh": "https://awesomerea.org/zh/resources/re2ds-nds-engine-case/",
  "evidence_url": "https://github.com/eray1605/re2ds/blob/f1e120ec50f6b072d7283a2d3dd35611d656c9b7/README.md",
  "group": "rea",
  "id": "re2ds-nds-engine-case",
  "json_url": "https://awesomerea.org/resources/re2ds-nds-engine-case/record.json",
  "kind": "case-study",
  "markdown_url": "https://awesomerea.org/resources/re2ds-nds-engine-case/index.md",
  "markdown_url_zh": "https://awesomerea.org/zh/resources/re2ds-nds-engine-case/index.md",
  "name": "re2ds: a native Nintendo DS engine for Resident Evil 2",
  "name_zh": "re2ds：Resident Evil 2 的原生 Nintendo DS 引擎",
  "reconstruction_method": "engine-reimplementation",
  "record_type": "resource",
  "relationship": "community-reported-mixed-workflow",
  "requirement_facets": [
    "scope",
    "prerequisites",
    "prerequisites",
    "testing",
    "license"
  ],
  "requirements": [
    "The reviewed commit targets the PAL PS1 release (SLES-00972), disc 1 with Leon. README reports all 125 disc 1 rooms, a script interpreter covering every opcode used on that disc, zombies, the lower-screen status menu, sound, voices, the opening movies and typewriter saves; it lists the map and files, other enemy types, the remaining movies and Claire’s disc as missing. It is a native engine, not an emulator, a matching decompilation or a complete port.",
    "Requires the user’s own Resident Evil 2 PAL disc 1 as a .bin/.cue dump, of which only Track 1 is used; local conversion produces about 290 MB of DS data. The repository states that it contains no game data and that the generated build/, nitrofiles/ and re2ds.nds outputs contain Capcom data that must never be committed or shared.",
    "Building uses devkitARM and libnds (devkitPro nds-dev), Python 3, FFmpeg with its development libraries, a C compiler and pkg-config. Windows builds run in WSL Ubuntu, and make falls back to devkitPro’s Docker image when no local devkitARM is found. The README plays the ROM in melonDS, needs DLDI SD-card setup for saves and shows a photo captioned as running on a Nintendo DSi XL.",
    "Host tests compile the platform-independent script, enemy and cutscene code for a PC and run it against the user’s converted data; the script test reports unknown opcodes, and scd_disasm.py --check validates jump targets across rooms. Analysis notes cite PS1 addresses and mark observed versus assumed behavior. psxexe_to_elf.py wraps the executable and symbol lists as a MIPS ELF accepted by REA’s Ghidra lane; Claude Code use is stated only in the Reddit post.",
    "No license file is present at the reviewed commit. The README credits the MIT-licensed OpenBiohazard2 reimplementation’s file-format work and script opcode table as the starting point for several converters. Capcom’s game data, movies and audio stay outside the repository and retain their own rights."
  ],
  "requirements_zh": [
    "所审阅的提交针对 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 的游戏数据、动画和音频不在仓库中，仍受其各自权利约束。"
  ],
  "targets": [
    "game"
  ],
  "url": "https://github.com/eray1605/re2ds",
  "verification": "source-reviewed",
  "verified_at": "2026-10-18"
}
