# 《王国之心 358/2 Days》：逐字节一致的 Nintendo DS 反编译重建

> 将 Nintendo DS 欧版《王国之心 358/2 Days》的 ARM9 程序及覆盖模块重建为 C 源码，以 CodeWarrior 重新编译后逐字节一致。README 报告全部 306 个模块字节一致，约 99.5% 的函数为真正的 C，库自身的汇编另行统计；ARM7 二进制不在范围内。仓库不含 ROM、游戏素材或提取的反汇编，也不生成可玩版本。

- 类型：案例
- 目标：游戏
- 类别：独立重建案例
- 关联：独立重建项目
- 来源复核于：2026-10-18
- 收录于：2026-10-18
- 原始资源：<https://github.com/Yokimitsuro/khdays-decomp>
- 一手来源：<https://github.com/Yokimitsuro/khdays-decomp/blob/261a89eaa8f65dd566ae0828b0b57c85c847a6ee/README.md>
- 目录页面：<https://awesomerea.org/zh/resources/kingdom-hearts-days-matching-decomp-case/>
- 记录 JSON：<https://awesomerea.org/resources/kingdom-hearts-days-matching-decomp-case/record.json>
- 英文版：[English](https://awesomerea.org/resources/kingdom-hearts-days-matching-decomp-case/index.md)

## 使用条件与局限

- **前提条件：**需使用者自备欧版 ROM 转储 days.nds：大小 268,435,456 字节，SHA-1 为 6fae8f5bbe80114b4e2535260eab5f4d0fc8a844（CONTRIBUTING.md 另列出 SHA-256 和 MD5）。其他转储与已提交的地址对不上。仓库不跟踪 ROM、提取数据（包括提取出的 asm/ 目录）、构建产物或专有工具链，拉取请求检查也会拒绝新增的 ROM、二进制或素材文件。
- **前提条件：**CONTRIBUTING.md 列出所需工具：带 capstone、pyelftools 和 ndspy 的 Python 3，dsd 提取与反链接工具，专有的 CodeWarrior mwccarm 3.0 build 139 编译器（不随仓库提供），arm-none-eabi-as，以及由 Ninja 驱动的 mwccarm／mwldarm 构建；其命令同时调用 tools/dsd.exe 与 Bash 脚本。少数预编译中间件单元通过逐文件的编译器覆盖设置改用更早版本的 mwccarm。
- **范围：**README 报告欧版（YKGP）ARM9 程序及其覆盖模块的所有函数均已匹配，初始化数据全部重建，重建的 306 个模块全部字节一致；剩余工作是提升可读性，例如共享结构体、命名和按文件归类。其中约 23,233 个函数中有 23,125 个计为真正的 C，另行统计 108 个汇编实现（库例程以及两个需要 clz 指令的游戏函数）。docs/ARM7.md 说明反编译只覆盖 ARM9。这是一致性反编译而非移植，不生成可玩版本或可再分发的二进制。
- **测试证据：**dsd check modules 将每个构建出的模块与原 ROM 比对，verify_idx.py 校验单个函数（包括重定位），ROM 往返脚本的预期结果是与参考转储只差四个不影响功能的 CRC 字节。CONTRIBUTING 说明，列为已知不匹配的函数不会参与链接，其位置以原始字节填充。CI 不构建游戏，只拒绝禁止的文件并重新生成进度报告。decomp.dev 报告所审提交的 YKGP 已 100.00% 反编译并完全链接，其中计入经验证的 SDK 汇编。
- **许可：**贡献者的反编译和工具以 CC0 1.0 贡献到公有领域；原游戏及其素材仍归其所有者，CodeWarrior 编译器也不随仓库分发。DS Protect 源码参照 taxicat1/dsprot 重建，SDK 识别工具编译 pret/pokediamond 中的 NitroSDK 源码。

## 一手来源

1. <https://github.com/Yokimitsuro/khdays-decomp/blob/261a89eaa8f65dd566ae0828b0b57c85c847a6ee/README.md>
2. <https://github.com/Yokimitsuro/khdays-decomp/blob/261a89eaa8f65dd566ae0828b0b57c85c847a6ee/CONTRIBUTING.md>
3. <https://github.com/Yokimitsuro/khdays-decomp/blob/261a89eaa8f65dd566ae0828b0b57c85c847a6ee/PROGRESS.md>
4. <https://github.com/Yokimitsuro/khdays-decomp/blob/261a89eaa8f65dd566ae0828b0b57c85c847a6ee/docs/PROGRESS_POLICY.md>
5. <https://github.com/Yokimitsuro/khdays-decomp/blob/261a89eaa8f65dd566ae0828b0b57c85c847a6ee/docs/ARM7.md>
6. <https://github.com/Yokimitsuro/khdays-decomp/blob/261a89eaa8f65dd566ae0828b0b57c85c847a6ee/.github/workflows/checks.yml>
7. <https://github.com/Yokimitsuro/khdays-decomp/blob/261a89eaa8f65dd566ae0828b0b57c85c847a6ee/.github/workflows/report.yml>
8. <https://github.com/Yokimitsuro/khdays-decomp/blob/261a89eaa8f65dd566ae0828b0b57c85c847a6ee/LICENSE>
9. <https://decomp.dev/Yokimitsuro/khdays-decomp>
10. <https://web.archive.org/web/20261020041901/https://decomp.dev/Yokimitsuro/khdays-decomp/YKGP/261a89eaa8f65dd566ae0828b0b57c85c847a6ee.json>

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

- [LEGO Island：源码重建与单独记录的精确重构建](https://awesomerea.org/zh/resources/lego-island-decomp-case/index.md) · 案例
- [《姆吉拉的假面》：生成一致美版 N64 ROM 的反编译重建](https://awesomerea.org/zh/resources/zelda-mm-decomp-case/index.md) · 案例
- [《马力欧卡丁车 Wii》：进行中的 PAL 版一致性反编译](https://awesomerea.org/zh/resources/mario-kart-wii-decomp-case/index.md) · 案例
- [《马力欧卡丁车：双重冲刺!!》：调试版 GameCube 一致性反编译](https://awesomerea.org/zh/resources/mario-kart-double-dash-decomp-case/index.md) · 案例
- [Mario Party 4：美版 GameCube 一致性反编译重建](https://awesomerea.org/zh/resources/mario-party-4-decomp-case/index.md) · 案例
- [MediEvil 反编译：早期阶段、以校验值把关的 PlayStation 项目](https://awesomerea.org/zh/resources/medievil-decomp-case/index.md) · 案例

## 关于此条目

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