案例

Snap64 Recomp:Pokémon Snap 的静态重编译移植

使用 N64Recomp 将 Pokémon Snap 美版 Nintendo 64 发行版静态重编译为原生 Windows、Linux、Steam Deck 和 macOS 移植,由 RT64 负责渲染。重编译器读取从一致性 ethteck/pokemonsnap 反编译项目链接出的可重定位 ELF 及使用者自备的 ROM,游戏侧补丁则是反编译函数的修改副本。作者报告借助 Claude Code 完成移植;各项结果仍为项目报告。

使用条件与局限

  • 所审代码树为 1.1.5 版,对应 2026-10-17 发布的 v1.1.5,仅支持美版卡带;README 说明日版、欧版和澳版是不同的游戏构建。默认保持卡带原有行为,所有增强功能均需手动开启。列出的已知问题包括:提高帧率时部分 2D 元素仍按游戏原速步进、Snap Station 打印机的部分细节为估计值,以及 Windows 上的 Vulkan 测试较少。
  • 需自备与 README 中 SHA-1 一致的美版 ROM,该校验值即反编译项目公布的值;接受 .z64、.v64 和 .n64 文件,错误文件会被拒绝。仓库与发布包均不含游戏素材。构建时同样需要该 ROM,用于一致性反编译构建、重编译器输入及 RSP 音频微码转换。
  • 发布版需要 64 位 Windows 10(1809 及以上)或 11 并支持 Direct3D 12 Shader Model 6.3,或支持 Vulkan 1.2 的 Linux/Steam Deck(实验性),或 macOS 14 及以上;CPU 需为支持 SSE4.1 的 x86-64,或使用提供的 ARM 构建。BUILDING.md 记录的是双机构建:先在 WSL Ubuntu 24.04 上使用 MIPS binutils、反编译项目及其下载的 IDO 编译器和 N64Recomp,再在 Windows 上用 tools/fetch_deps.py 检出固定版本子模块后,以 Visual Studio 2019、CMake 3.20+ 和 Python 3 构建。可重定位 ELF 的重新链接步骤标注为推导所得,并非实际记录的命令。
  • VERIFICATION.md 报告:在 Windows 上完整通关,在 Steam Deck 和 GitHub 托管的虚拟 Mac 上进行了部分运行,作者构建的 1.1.5 可执行文件使用录制回放通过了 33/33 项无界面测试套件检查及 5/5 项 Snap Station 检查。这些检查针对移植的行为,并非与卡带逐字节等价;尚无实体 Mac 或 Linux 桌面的报告。本合集未构建或运行该项目。
  • 移植代码采用 GPLv3,第三方组件列于 NOTICE.md。NOTICE.md 说明仓库跟踪的文件不含 ROM 字节,但分发的可执行文件由 N64Recomp 从游戏指令转换出的 C 代码编译而成,补丁也是修改过的反编译函数;游戏本身仍归其权利人所有。作者报告在其主导下使用 Claude Code 编写此移植;未记录 REA 使用。

关于此条目

类型
案例
类别
独立重建案例
关联
独立重建项目
目标
游戏

来源复核于

说明已依据一手来源复核;这不代表已运行验证、经过安全审计或确认兼容。

一手来源

  1. README.md GitHub · JackandBeans/Snap64Recomp · 修订 cf53b89
  2. BUILDING.md GitHub · JackandBeans/Snap64Recomp · 修订 cf53b89
  3. docs/VERIFICATION.md GitHub · JackandBeans/Snap64Recomp · 修订 cf53b89
  4. docs/KNOWN-ISSUES.md GitHub · JackandBeans/Snap64Recomp · 修订 cf53b89
  5. NOTICE.md GitHub · JackandBeans/Snap64Recomp · 修订 cf53b89
  6. CMakeLists.txt GitHub · JackandBeans/Snap64Recomp · 修订 cf53b89
  7. pokemonsnap.us.toml GitHub · JackandBeans/Snap64Recomp · 修订 cf53b89
  8. .gitmodules GitHub · JackandBeans/Snap64Recomp · 修订 cf53b89
  9. LICENSE GitHub · JackandBeans/Snap64Recomp · 修订 cf53b89
  10. CONTRIBUTING.md GitHub · JackandBeans/Snap64Recomp · 修订 cf53b89
  11. https://github.com/JackandBeans/Snap64Recomp/releases/tag/v1.1.5