案例

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 的关联。

关于此条目

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

来源复核于

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

一手来源

  1. README.md GitHub · Yokimitsuro/khdays-port · 修订 8e0ad0b
  2. docs/BUILD.md GitHub · Yokimitsuro/khdays-port · 修订 8e0ad0b
  3. THIRD_PARTY_NOTICES.md GitHub · Yokimitsuro/khdays-port · 修订 8e0ad0b
  4. LICENSE GitHub · Yokimitsuro/khdays-port · 修订 8e0ad0b
  5. .gitmodules GitHub · Yokimitsuro/khdays-port · 修订 8e0ad0b
  6. tools/supported_roms.json GitHub · Yokimitsuro/khdays-port · 修订 8e0ad0b
  7. installer/README.md GitHub · Yokimitsuro/khdays-port · 修订 8e0ad0b
  8. .github/workflows/build.yml GitHub · Yokimitsuro/khdays-port · 修订 8e0ad0b
  9. README.md GitHub · Yokimitsuro/khdays-decomp · 修订 a2b0478