# Vandal Hearts：基于一致性反编译的原生 PC 移植

> 以 shao113 的 PlayStation 版 Vandal Hearts 一致性反编译为基础，新增日版一致性代码树，并将两者延伸为原生 Windows 与 Linux 移植。SDL2、OpenGL 或 Metal 及 OpenAL 后端替代主机的 GPU、GTE、CD-ROM／XA、SPU、MDEC 和手柄接口，同一可执行文件可运行美版、亚洲版和日版光盘。每次修改仍须通过一致性构建检查；Tactical Mode、高清包等 PC 专属功能均为可选。

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

## 使用条件与局限

- **前提条件：**需自备美版（SLUS-00447）、亚洲版（SCPS-45183）或日版（SLPM-86007）的原始 .bin 光盘镜像；移植会校验并自动识别各光盘。一致性构建还需原可执行文件作为 MD5 参照，以及在本地取得的专有 PsyQ SDK 文件（README 以 MD5 列出 ASPSX 2.21 和 LIB34.ZIP）。汉字字库、游戏内文本和静态数据段均由使用者自有副本生成，不提交入库。
- **前提条件：**移植可用 Make 或 CMake 构建，依赖 SDL2、OpenAL、OpenGL（macOS 上为 Metal）、libwebp、libav 和 Python 3；Windows 二进制在 Linux 上以 MinGW-w64 交叉编译，Linux 版以 AppImage 发布。一致性构建使用 splat、maspsx、decompals 的 GCC 2.5.7／2.6.3 前端及 MIPS binutils；由于这些前端是 32 位 Linux 可执行文件，必须在 Linux 主机上进行。
- **测试证据：**所审阅源码晚于 v2.1.0（2026-08-31）。README 报告所有非 PsyQ 函数均已反编译，make check 通过 MD5 确认美版 SLUS_004.47 及（自 2.0.0 起）日版 SLPM_860.07 可逐字节一致地重建，并在 Windows 与 Linux 上完成直至结局的完整通关。macOS 为社区支持的实验性构建，已测试到第一场战斗；其完整通关与公证验证仍待完成。
- **测试证据：**项目报告的检查包括两个地区版本的 make check、修复七个潜在越界缺陷的 AddressSanitizer 与 UBSan 扫描、以 BizHawk 验证的音画还原，以及软件光栅化器与 DuckStation 显存截取对比达 99.84–99.99% 像素一致。已知问题列表将剩余缺陷归于移植的渲染与后端层。
- **许可：**GPL-2.0 仅涵盖项目原创的移植代码、工具和文档。反编译的游戏代码（源自 shao113 未附许可的反编译）及重建的数据表属于 Konami，项目并不授予其许可；预构建版本嵌入部分游戏派生数据段及源自 BIOS 的字库。仓库将构建环境配置说明保存在 Claude Code 技能文件中。

## 一手来源

1. <https://github.com/HalmyLyseas/VandalHearts-PcPort/blob/14552fffa0e0b47e02b57592e274fc6e7a649923/README.md>
2. <https://github.com/HalmyLyseas/VandalHearts-PcPort/blob/14552fffa0e0b47e02b57592e274fc6e7a649923/NOTICE>
3. <https://github.com/HalmyLyseas/VandalHearts-PcPort/blob/14552fffa0e0b47e02b57592e274fc6e7a649923/CLAUDE.md>
4. <https://github.com/HalmyLyseas/VandalHearts-PcPort/blob/14552fffa0e0b47e02b57592e274fc6e7a649923/docs/building.md>
5. <https://github.com/HalmyLyseas/VandalHearts-PcPort/blob/14552fffa0e0b47e02b57592e274fc6e7a649923/docs/known_issues.md>
6. <https://github.com/HalmyLyseas/VandalHearts-PcPort/blob/14552fffa0e0b47e02b57592e274fc6e7a649923/CHANGELOG.md>
7. <https://github.com/HalmyLyseas/VandalHearts-PcPort/blob/14552fffa0e0b47e02b57592e274fc6e7a649923/LICENSE>
8. <https://github.com/shao113/vh/tree/a9e53de9484d4b42b023411617fe6d44acf592bc>

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

- [Age of Empires Free Software Remake：基于原版数据的重新实现](https://awesomerea.org/zh/resources/aoe-free-software-remake-case/index.md) · 案例
- [Bravo：逆向实现的 Minecraft 服务端](https://awesomerea.org/zh/resources/bravo-minecraft-server-case/index.md) · 案例
- [Chariot《帝国时代》引擎重实现](https://awesomerea.org/zh/resources/chariot/index.md) · 案例
- [CoD4 Rewrite：Rust/Bevy 游戏重建](https://awesomerea.org/zh/resources/cod4-rewrite-reconstruction-case/index.md) · 案例
- [CorsixTH：Theme Hospital 的开源重新实现](https://awesomerea.org/zh/resources/corsixth-engine-case/index.md) · 案例
- [Cursed Lands：用 Godot 重建《Evil Islands》与《Lost in Astral》引擎](https://awesomerea.org/zh/resources/cursed-lands-case/index.md) · 案例

## 关于此条目

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