# 《宝可梦 心金／魂银》：校验一致的进行中 DS 反汇编项目

> 以进行中的反汇编项目重建美版 Nintendo DS《宝可梦 心金／魂银》，其中部分代码已反编译为 C。每次默认构建都会按各游戏的 SHA-1 清单校验 ARM9 与 ARM7 二进制、文件系统及完整 ROM。README 提醒，由于反编译尚未完成，改变代码或数据布局的修改可能导致游戏崩溃。

- 类型：案例
- 目标：游戏
- 类别：独立重建案例
- 关联：独立重建项目
- 来源复核于：2026-10-18
- 收录于：2026-10-18
- 原始资源：<https://github.com/pret/pokeheartgold>
- 一手来源：<https://github.com/pret/pokeheartgold/blob/5bb4b3b4961cbf0f8a42360c58a3c045d8535069/README.md>
- 目录页面：<https://awesomerea.org/zh/resources/pokemon-heartgold-soulsilver-disassembly-case/>
- 记录 JSON：<https://awesomerea.org/resources/pokemon-heartgold-soulsilver-disassembly-case/record.json>
- 英文版：[English](https://awesomerea.org/resources/pokemon-heartgold-soulsilver-disassembly-case/index.md)

## 使用条件与局限

- **前提条件：**文档所述的构建不读取原 ROM：DS 文件系统中的图像、模型、文本和数据文件提交在 files/ 下。目标镜像以 SHA-1 标识（心金 4fcded0e2713dc03929845de631d0932ea2b5a37，魂银 f8dc38ea20c17541a43b58c5e6d18c1732c7e582），README 链接其 No-Intro 条目。只有贡献者使用的 asmdiff 工具会用到使用者自备的原 ROM。
- **前提条件：**INSTALL.md 涵盖 WSL2（推荐）、WSL1、MSYS2、macOS 以及 Debian、Arch 和 Fedora Linux；所需软件包括 ARM GCC 工具链、bison、flex、Ninja、Python 3、libpng 和 32 位 libc，macOS 另需 Wine。Makefile 会克隆 Meson 1.12.0，并下载 metroskrew 0.1.3 发行版，其仓库称之为通过重新链接移植到 Linux 的专有 Windows 版 Metrowerks ARM 编译器；Meson 拉取固定版本的 NitroSDK、NitroSystem、NitroDWC、NitroWiFi 和 libvct 子项目。make 构建心金，make soulsilver 构建魂银。
- **范围：**README 称其为美版的进行中反汇编项目；提醒符号名与代码结构可能变化，并因 ROM 尚未完全反编译，改变任何函数或数据结构大小或布局的修改都可能使游戏崩溃。在所审提交中，asm/ 仍有 283 个汇编文件，src/ 中有 406 个 C 文件；CONTRIBUTING.md 说明 NONMATCHING 的 C 实现与一致性构建所用的内联汇编版本并存。产物为 pokeheartgold.us.nds 和 pokesoulsilver.us.nds，不是 PC 移植。
- **测试证据：**make 构建完成后运行 Meson 测试，按 SHA-1 清单校验 ARM9 主程序、ARM7 程序、文件系统及完整 ROM；Makefile 说明改版作者可在首次构建后去掉这项检查。CI 构建并校验两款游戏，推送时还会计算进度。哈希一致确认这两个美版镜像的一致性。
- **许可：**仓库没有顶层许可证文件，GitHub 也未识别出许可证；部分附带工具有各自的许可证，metroskrew 及 ntrtwl 的 SDK 仓库在 GitHub 上均未声明许可证。SDK 库和原游戏内容仍受其权利人约束。CONTRIBUTING.md 禁止由大语言模型生成的贡献，仅有少数需完整披露的例外。

## 一手来源

1. <https://github.com/pret/pokeheartgold/blob/5bb4b3b4961cbf0f8a42360c58a3c045d8535069/README.md>
2. <https://github.com/pret/pokeheartgold/blob/5bb4b3b4961cbf0f8a42360c58a3c045d8535069/INSTALL.md>
3. <https://github.com/pret/pokeheartgold/blob/5bb4b3b4961cbf0f8a42360c58a3c045d8535069/Makefile>
4. <https://github.com/pret/pokeheartgold/blob/5bb4b3b4961cbf0f8a42360c58a3c045d8535069/meson.build>
5. <https://github.com/pret/pokeheartgold/blob/5bb4b3b4961cbf0f8a42360c58a3c045d8535069/heartgold.us/rom.sha1>
6. <https://github.com/pret/pokeheartgold/blob/5bb4b3b4961cbf0f8a42360c58a3c045d8535069/soulsilver.us/rom.sha1>
7. <https://github.com/pret/pokeheartgold/blob/5bb4b3b4961cbf0f8a42360c58a3c045d8535069/CONTRIBUTING.md>
8. <https://github.com/pret/pokeheartgold/blob/5bb4b3b4961cbf0f8a42360c58a3c045d8535069/.github/workflows/build.yml>
9. <https://github.com/pret/pokeheartgold/blob/5bb4b3b4961cbf0f8a42360c58a3c045d8535069/tools/devtools/get_metroskrew.sh>
10. <https://github.com/pret/pokeheartgold/tree/5bb4b3b4961cbf0f8a42360c58a3c045d8535069/subprojects>
11. <https://github.com/pret/pokeheartgold/tree/5bb4b3b4961cbf0f8a42360c58a3c045d8535069/files>
12. <https://github.com/mid-kid/metroskrew/releases/tag/0.1.3>

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

- [《宝可梦 白金》：校验一致的 Nintendo DS 反编译重建](https://awesomerea.org/zh/resources/pokemon-platinum-decomp-case/index.md) · 案例
- [pw：Pokéwalker 固件的一致性反编译重建](https://awesomerea.org/zh/resources/pokewalker-matching-decomp-case/index.md) · 案例
- [Ratchet & Clank：记录了代理流程的 PS2 一致性反编译](https://awesomerea.org/zh/resources/rac1-matching-decomp-case/index.md) · 案例
- [re4：Resident Evil 4 GameCube 调试版的字节一致反编译](https://awesomerea.org/zh/resources/re4-gamecube-debug-decomp-case/index.md) · 案例
- [sead：Nintendo 第一方 C++ 标准库的反编译重建](https://awesomerea.org/zh/resources/sead-nintendo-library-decomp-case/index.md) · 案例
- [《天空之剑》：以哈希校验重新链接的 Wii 版反编译](https://awesomerea.org/zh/resources/skyward-sword-decomp-case/index.md) · 案例

## 关于此条目

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