案例
Kingdom Hearts 358/2 Days:基于一致性反编译的原生 PC 移植
将 khdays-decomp 一致性反编译的 C 代码编译为 Windows x64 程序,并以原生平台层替代 Nintendo DS 硬件、SDK 服务及声音驱动。README 报告整款游戏无需 ARM 解释器即可运行;渲染、操作、模组支持与网络联机均为移植自身新增。这是基于反编译的移植,与其所依托的逐字节一致 DS 重建并非同一产物。
使用条件与局限
- 所审阅的 0.1.2 版标注为开发中。README 报告标题画面、Story Mode、Mission Mode、战斗、商店及存档读写均可原生运行;目前仅有 Windows x64 构建,Linux、macOS、Windows on ARM 和 Switch 列为计划。固定版本的 khdays-decomp 子模块(a2b0478)报告欧版 YKGP 全部 306 个模块逐字节一致;移植是在构建时改写这些 C 代码后编译,并不复现 DS 二进制。
- 需自备欧版 Kingdom Hearts 358/2 Days ROM(游戏代码 YKGP);工具会先将其与唯一一条受支持 ROM 记录比对,再在本地准备游戏数据。可选的高清画面、视频和菜单由玩家自有的 KINGDOM HEARTS HD 1.5+2.5 ReMIX 与 HD 2.8 Final Chapter Prologue 生成。仓库不含 ROM、素材、SDK 文件或游戏二进制。
- 构建需要 Windows、带 C++ 工作负载的 Visual Studio 2026、CMake、Ninja、Python 3.11+ 及 pycparser;运行需要支持 Direct3D 12 或 Vulkan 的显卡。构建准备阶段把游戏指针改写为 DS 地址引用,并依据从 ROM 得出的 Ghidra ABI 表修补 ARM 调用约定缺口;无法机械修补之处会停在具名的 KHDAYS_ABI_GAP 位置。
- 项目报告的检查包括 ctest 套件(MSVC 静态分析、短时 libFuzzer 运行、GPU 渲染与移植自身软件 DS 引擎的对照、DeSmuME 存档状态对照),以及覆盖 Mission Mode、Story Mode、存档和联机的脚本化回归流程。需要玩家数据的测试在缺少数据时跳过,CI 仅在 Windows 和 Linux 上构建格式库。报告称已通过维护者服务器试过互联网联机,两台 PC 间的局域网联机尚未试过;本合集未运行上述任何检查。
- 移植声明采用 MIT;第三方声明记录反编译部分为 CC0 1.0,并列出 SDL3(zlib)、Lua、Dear ImGui 等各按自身条款授权的组件。仓库中的任何许可均不适用于原游戏或从中提取的材料。README 说明使用了 AI 辅助编码工具;未确立与 REA 的关联。
关于此条目
- 类型
- 案例
- 类别
- 独立重建案例
- 关联
- 独立重建项目
- 目标
- 游戏
来源复核于
说明已依据一手来源复核;这不代表已运行验证、经过安全审计或确认兼容。
一手来源
- README.md GitHub · Yokimitsuro/khdays-port · 修订 8e0ad0b
- docs/BUILD.md GitHub · Yokimitsuro/khdays-port · 修订 8e0ad0b
- THIRD_PARTY_NOTICES.md GitHub · Yokimitsuro/khdays-port · 修订 8e0ad0b
- LICENSE GitHub · Yokimitsuro/khdays-port · 修订 8e0ad0b
- .gitmodules GitHub · Yokimitsuro/khdays-port · 修订 8e0ad0b
- tools/supported_roms.json GitHub · Yokimitsuro/khdays-port · 修订 8e0ad0b
- installer/README.md GitHub · Yokimitsuro/khdays-port · 修订 8e0ad0b
- .github/workflows/build.yml GitHub · Yokimitsuro/khdays-port · 修订 8e0ad0b
- README.md GitHub · Yokimitsuro/khdays-decomp · 修订 a2b0478