# TH04：从源码重建东方幻想乡的四个 PC-98 程序

> 为日版 PC-98 Touhou 4：东方幻想乡重建源码，并在 Wine 下用固定版本的 Borland 工具链重新构建全部四个 DOS 程序：MAIN.EXE、OP.EXE、MAINE.EXE 和 ZUN.COM。针对原二进制的函数认定，与在模拟器中对照原游戏比较输入、随机数、对象池和画面的回放分开记录。完整流程、原始时序与字节一致性目标仍未完成。

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

## 使用条件与局限

- **前提条件：**需自备含日版 zun.hdi 的合法副本；导入程序要求 OP.EXE、MAIN.EXE、MAINE.EXE 和 ZUN.COM 与 README 列出的大小和 SHA-256 一致，其来源标注为 candidate-local-attested，尚待独立的原始转储确认。准备镜像时会修改该镜像的一次性副本，原可执行文件和素材从不提交到仓库。
- **前提条件：**构建在 Wine 下使用 Turbo C++ 4.0J、TASM 5.0 和 TLINK；初始化脚本从 TOOLCHAIN.md 不视为权威来源的第三方镜像获取这些工具，并从固定版本的 ReC98 检出中取得 MS-DOS Player。测试宿主为 Debian 12 x86-64 与 Python 3.11。运行检查另需 DOSBox-X 2024.03.01、Xvfb、xdotool 和 ImageMagick，Windows 构建入口通过 WSL 工具链桥接。
- **测试证据：**自动生成的 PROGRESS.md 报告四个程序共 663 个已审原作函数中 661 个一致，MAIN 已确认原作字节的 99.97% 一致，另有两个 MAIN 情形延后处理。README 说明重建产物不必复现原可执行文件字节，完整游戏与原始时序验收尚未完成。port/modern-64 分支上的 64 位原生移植报告了有限范围的 Linux 通关。
- **测试证据：**README 报告：在四段内置演示及更长的第 1–3 关路线中，原版与重建版 DOS 回放在实际输入、分数、随机数、九个对象池、22 个状态块及配置的画面区域上一致，但原始 GDC 时序和部分重置后的输入采样仍有差异。2026-10-16 的审计发现本地存储中缺失冻结的原生程序和候选 MAIN 文件，因此重放历史结果须先恢复这些文件。公开 CI 只运行不依赖目标文件的检查。
- **许可：**MIT 许可覆盖仓库原创代码与文档，不涵盖游戏、素材或第三方作品；作为迁移输入并获署名的 ReC98 在固定版本中没有许可证文件，Borland 工具仍为专有软件。仓库围绕编程智能体交接文档组织；REA 的 TH04 辅助函数展示与东方重建文章覆盖其中部分内容。

## 一手来源

1. <https://github.com/N0zoM1z0/th04/blob/11577b35392c706f3bd39ff1ea932c003e1eaa6b/README.md>
2. <https://github.com/N0zoM1z0/th04/blob/11577b35392c706f3bd39ff1ea932c003e1eaa6b/docs/PROGRESS.md>
3. <https://github.com/N0zoM1z0/th04/blob/11577b35392c706f3bd39ff1ea932c003e1eaa6b/docs/DOS_BUILD.md>
4. <https://github.com/N0zoM1z0/th04/blob/11577b35392c706f3bd39ff1ea932c003e1eaa6b/docs/TOOLCHAIN.md>
5. <https://github.com/N0zoM1z0/th04/blob/11577b35392c706f3bd39ff1ea932c003e1eaa6b/docs/ORACLES.md>
6. <https://github.com/N0zoM1z0/th04/blob/11577b35392c706f3bd39ff1ea932c003e1eaa6b/docs/RUNTIME.md>
7. <https://github.com/N0zoM1z0/th04/blob/11577b35392c706f3bd39ff1ea932c003e1eaa6b/docs/REFERENCE_ANALYSIS.md>
8. <https://github.com/N0zoM1z0/th04/blob/11577b35392c706f3bd39ff1ea932c003e1eaa6b/config/toolchain.toml>
9. <https://github.com/N0zoM1z0/th04/blob/11577b35392c706f3bd39ff1ea932c003e1eaa6b/.github/workflows/ci.yml>
10. <https://github.com/N0zoM1z0/th04/blob/11577b35392c706f3bd39ff1ea932c003e1eaa6b/LICENSE>

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

- [TH08：精确源码重建与单独验证的移植](https://awesomerea.org/zh/resources/th08-reconstruction-case/index.md) · 案例
- [TH095：东方文花帖 1.02a 的函数级重建](https://awesomerea.org/zh/resources/th095-reconstruction-case/index.md) · 案例
- [《缩小帽》：面向五个 ROM 的 GBA 反编译重建](https://awesomerea.org/zh/resources/zelda-tmc-decomp-case/index.md) · 案例
- [The Sims: Bustin' Out：AI 驱动的部分 GBA 一致性反编译重建](https://awesomerea.org/zh/resources/sims-bustin-out-gba-decomp-case/index.md) · 案例
- [《风之杖》：以哈希校验重新链接的 GameCube 版反编译](https://awesomerea.org/zh/resources/wind-waker-decomp-case/index.md) · 案例
- [Touhou 6：重建东方红魔乡 1.02h 版源码](https://awesomerea.org/zh/resources/th06-decomp-case/index.md) · 案例

## 关于此条目

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