# Himuro：Fatal Frame（《零》）PS2 一致性反编译

> 将 Fatal Frame（《零》）PS2 可执行文件的美版、欧版和日版重建为 C，使用原始的 EE-GCC 2.9 工具链构建，并以使用者自备可执行文件的 SHA-1 校验结果。仓库提交的 objdiff 报告显示美版和欧版代码已全部匹配、日版仅部分匹配，少数例程仍依赖汇编或字节补丁。移植到现代硬件是项目声明的后续目标，不在本仓库范围内。

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

## 使用条件与局限

- **前提条件：**需从自有光盘或 ISO 将对应的主可执行文件复制到 config/<地区>/ 中，README 给出了各地区所需的 SHA-1。数据提取、代码拆分和预期汇编都在本地生成，仓库不提交游戏素材。
- **前提条件：**必须使用 Linux：需虚拟环境中的 Python 3.8+、make、供仓库内 32 位 EE-GCC 2.9-991111-01 编译器运行的 i386 libc／libstdc++，以及另行安装的 decompals PS2 binutils v0.10；仓库也提交了 objdiff-cli。各地区版本需分别提取、配置和构建。
- **范围：**涵盖 SLUS_203.88（美版）、SLES_508.21（欧版）和 SLPS_250.74（日版）；产物是重建的 PS2 ELF，而非 PC 移植，README 只把移植列为后续目标。经项目自带的报告调整脚本处理后，已提交的 objdiff 报告显示美版 3,437 个函数、欧版 3,464 个函数全部匹配，代码与数据均为 100%；日版则为 3,394 个函数中匹配 2,712 个（代码 73.64%）。README 中的 decomp.dev 徽章会随时变化。
- **测试证据：**ninja 构建会依据 config/<地区>/checksum.sha1 运行 sha1sum，因此构建成功即重现所提供的可执行文件。为达到该哈希，构建会按 asm_patches.json 改写部分编译器输出，并把列出的字节范围从原始可执行文件复制到构建产物中（美版与欧版的 PhotoScoreCount、欧版的 DspSpData）。CI 只上传已提交的报告，没有可执行文件就无法构建。
- **许可：**项目采用 MIT 许可；Fatal Frame 及其可执行文件另有权利约束，仓库中的编译器二进制文件也适用各自条款。

## 一手来源

1. <https://github.com/Mikompilation/Himuro/blob/595b082aef19c329a25dc6926e4ac638d13ed75d/README.md>
2. <https://github.com/Mikompilation/Himuro/blob/595b082aef19c329a25dc6926e4ac638d13ed75d/LICENSE>
3. <https://github.com/Mikompilation/Himuro/blob/595b082aef19c329a25dc6926e4ac638d13ed75d/configure.py>
4. <https://github.com/Mikompilation/Himuro/blob/595b082aef19c329a25dc6926e4ac638d13ed75d/Makefile>
5. <https://github.com/Mikompilation/Himuro/blob/595b082aef19c329a25dc6926e4ac638d13ed75d/config/us/checksum.sha1>
6. <https://github.com/Mikompilation/Himuro/blob/595b082aef19c329a25dc6926e4ac638d13ed75d/config/us/report.json>
7. <https://github.com/Mikompilation/Himuro/blob/595b082aef19c329a25dc6926e4ac638d13ed75d/config/eu/report.json>
8. <https://github.com/Mikompilation/Himuro/blob/595b082aef19c329a25dc6926e4ac638d13ed75d/config/jp/report.json>
9. <https://github.com/Mikompilation/Himuro/blob/595b082aef19c329a25dc6926e4ac638d13ed75d/config/us/bin_patches.json>
10. <https://github.com/Mikompilation/Himuro/blob/595b082aef19c329a25dc6926e4ac638d13ed75d/config/eu/bin_patches.json>
11. <https://github.com/Mikompilation/Himuro/blob/595b082aef19c329a25dc6926e4ac638d13ed75d/config/us/asm_patches.json>
12. <https://github.com/Mikompilation/Himuro/blob/595b082aef19c329a25dc6926e4ac638d13ed75d/tools/python/fix_bin_matching.py>
13. <https://github.com/Mikompilation/Himuro/blob/595b082aef19c329a25dc6926e4ac638d13ed75d/tools/python/fix_report.py>
14. <https://github.com/Mikompilation/Himuro/blob/595b082aef19c329a25dc6926e4ac638d13ed75d/.github/workflows/progress.yml>

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

- [《ICO》反编译：逐字节一致的 PAL 与日版 PlayStation 2 启动 ELF](https://awesomerea.org/zh/resources/ico-matching-decomp-case/index.md) · 案例
- [《王国之心 358/2 Days》：逐字节一致的 Nintendo DS 反编译重建](https://awesomerea.org/zh/resources/kingdom-hearts-days-matching-decomp-case/index.md) · 案例
- [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) · 案例

## 关于此条目

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