# Perfect Dark：生成一致 ROM 的 Nintendo 64 反编译重建

> 重建 Perfect Dark 的 Nintendo 64 代码，并提供生成一致 ROM 的构建流程。项目将重建源码与使用者自备原 ROM 中的素材结合，再检查各版本产物的哈希。这是可复现构建研究案例，与独立的原生 PC 移植不同；此处的一致性结果仍为项目报告。

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

## 使用条件与局限

- **前提条件：**需自行取得获授权的原始 ROM，采用未交换字节序的 .z64 格式，文件头为 0x80371240，并按所选 ROMID 命名。make extract 从该 ROM 读取素材及用于比较的代码段；最终构建也复用提取的启动代码。已有提取文件不会被覆盖，因此修改后的输入可能破坏一致性结果。
- **前提条件：**文档说明的构建宿主为 Linux：需 GNU Make、宿主 C／C++ 工具、Python 3、MIPS binutils／GCC、armips、Capstone 开发文件及列明的 32 位 libc 头文件。还需初始化固定版本的 ido-static-recomp 子模块。一致性模式使用其中的 IRIX 输入重建 IDO 5.3 和 7.1 编译器工具；可选 GCC 构建不保证匹配，且仅支持 ntsc-1.0／ntsc-final。
- **范围：**所审阅的 GitHub 仓库是 Ryan Dwyer 的 GitLab 项目的镜像。README 将其描述为完整的一致性反编译重建；六个构建目标涵盖 NTSC 测试版、NTSC 1.0／最终版、PAL 测试版／最终版及日版最终版，默认 ntsc-final。产物为 N64 ROM，不是 Windows／Linux／macOS 游戏可执行文件，也不是独立的 Perfect Dark PC 移植。
- **测试证据：**构建后，make test 依据所选版本的校验清单，静默执行 MD5 校验，覆盖最终 ROM 及中间产物。README 也说明如何比较原 ROM 与构建 ROM 的哈希。可变的项目状态页报告六个版本均已完成且匹配。
- **许可：**仓库声明源码采用 MIT；原 ROM 和提取的游戏素材仍有各自权利约束。编译器组件另有条款，包括子模块为 IDO 5.3 附带的 SGI 声明，项目的 MIT 声明不能替代这些条款。

## 一手来源

1. <https://github.com/n64decomp/perfect_dark/blob/169ed48bdcbfb3b568b028bd5bebb27680073514/README.md>
2. <https://github.com/n64decomp/perfect_dark/blob/169ed48bdcbfb3b568b028bd5bebb27680073514/Makefile>
3. <https://github.com/n64decomp/perfect_dark/blob/169ed48bdcbfb3b568b028bd5bebb27680073514/LICENSE>
4. <https://github.com/n64decomp/perfect_dark/blob/169ed48bdcbfb3b568b028bd5bebb27680073514/.gitmodules>
5. <https://github.com/n64decomp/perfect_dark/blob/169ed48bdcbfb3b568b028bd5bebb27680073514/tools/extract>
6. <https://github.com/n64decomp/perfect_dark/blob/169ed48bdcbfb3b568b028bd5bebb27680073514/checksums.ntsc-final.md5>
7. <https://github.com/n64decomp/perfect_dark/blob/169ed48bdcbfb3b568b028bd5bebb27680073514/checksums.ntsc-beta.md5>
8. <https://github.com/n64decomp/perfect_dark/blob/169ed48bdcbfb3b568b028bd5bebb27680073514/checksums.ntsc-1.0.md5>
9. <https://github.com/n64decomp/perfect_dark/blob/169ed48bdcbfb3b568b028bd5bebb27680073514/checksums.pal-beta.md5>
10. <https://github.com/n64decomp/perfect_dark/blob/169ed48bdcbfb3b568b028bd5bebb27680073514/checksums.pal-final.md5>
11. <https://github.com/n64decomp/perfect_dark/blob/169ed48bdcbfb3b568b028bd5bebb27680073514/checksums.jpn-final.md5>
12. <https://github.com/Emill/ido-static-recomp/blob/421e546956ceae984927e609b083195e9e81659e/README.md>
13. <https://github.com/Emill/ido-static-recomp/blob/421e546956ceae984927e609b083195e9e81659e/ido/5.3/LICENSE.md>
14. <https://ryandwyer.gitlab.io/pdstatus/>
15. <https://gitlab.com/ryandwyer/perfect-dark/-/tree/46d3393bed1a3d5fbefbdba6df7237579b5c66e0>

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

- [Petari：Super Mario Galaxy 一致性反编译重建](https://awesomerea.org/zh/resources/petari-smg-decomp-case/index.md) · 案例
- [《幻影沙漏》：早期阶段的 Nintendo DS 一致性反编译](https://awesomerea.org/zh/resources/phantom-hourglass-ds-decomp-case/index.md) · 案例
- [《皮克敏2》：覆盖五个版本、已完全匹配的 GameCube 反编译](https://awesomerea.org/zh/resources/pikmin-2-matching-decomp-case/index.md) · 案例
- [pokecrystal：一致构建的《精灵宝可梦 水晶》反汇编](https://awesomerea.org/zh/resources/pokecrystal-disassembly-case/index.md) · 案例
- [pokered：一致构建的《精灵宝可梦 红／蓝》反汇编](https://awesomerea.org/zh/resources/pokered-disassembly-case/index.md) · 案例
- [pokeruby：一致构建的《精灵宝可梦 红宝石／蓝宝石》反编译](https://awesomerea.org/zh/resources/pokeruby-decomp-case/index.md) · 案例

## 关于此条目

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