案例
Project Arwing (2):由一致性反汇编重编译的 Star Fox 2
从以运行覆盖率为种子的 65816 与 SuperFX 反汇编重建 Star Fox 2:反汇编可重新汇编为与原 ROM 一致的文件,再静态翻译为 C,生成原生 Windows、macOS 和 Linux 版本。未执行到的代码及与 ROM 不一致的 RAM 代码由解释器执行,README 报告其与解释运行的逐帧哈希一致。项目接受 SNES Classic 版映像,不支持 1995 年的原型版;结果仍为项目报告。
使用条件与局限
- README 报告重新汇编的 ROM 逐字节一致,含 66,520 条 65816 指令和 23,186 条 SuperFX 指令;在 2 万帧游戏过程中,99.7% 的 CPU 分派和 100% 的 SuperFX 分派以重编译代码执行,并列出开场、标题、菜单、地图和任务为可游玩。标签均为自动生成,未执行到的代码仍作为数据由解释器运行,音频仅经过间接检查。README 说明 Smooth 模式可消除减速,但与 Star Fox 项目不同,目前尚未加入插值的 60 fps 画面。
- 需自备 SNES Classic/Mini 版的 Star Fox 2 ROM,并与 README 给出的 SHA-1 一致;1995 年的原型版无法使用。构建时从该 ROM 提取图形、模型与音乐,电池存档写在重建的 ROM 旁边。仓库不含任何游戏数据。
- 发布版面向 Windows x64、macOS 11+(未经公证)及 Linux x86_64/ARM64 AppImage。源码构建需要 Python(Windows 上为 3.10+),并分别搭配 Visual Studio 2022 Build Tools、Xcode 命令行工具与 SDL2,或 gcc、SDL2、FreeType 与 DejaVu 字体;tools/build.py 依次执行提取、汇编、重编译和编译。
- tools/build.py 会比较重新汇编 ROM 的 SHA-1,但不一致时只发出警告;文档中的贡献者检查会比对重编译运行与 --interp 运行的 --hashlog 输出。HD 3D 仅挂接多个投影例程中的一个,约为 66–90% 的顶点恢复亚像素位置。本合集未重跑这些检查。
- MIT 覆盖 tools/、src/、installer/、res/ 及构建脚本;LICENSE 排除 asm/(Nintendo Star Fox 2 代码的反汇编)及任何从 ROM 提取的内容。这是与 Nintendo 无关的非官方爱好者项目。所审阅仓库未作任何 AI 或 REA 归因,因此流传帖文所称 Opus 5.5 加单一提示完成的说法在此未获证实。
关于此条目
- 类型
- 案例
- 类别
- 独立重建案例
- 关联
- 独立重建项目
- 目标
- 游戏
来源复核于
说明已依据一手来源复核;这不代表已运行验证、经过安全审计或确认兼容。
一手来源
- README.md GitHub · carlosrmz009/arwing2 · 修订 15af0bf
- LICENSE GitHub · carlosrmz009/arwing2 · 修订 15af0bf
- tools/build.py GitHub · carlosrmz009/arwing2 · 修订 15af0bf