案例

Petari:Super Mario Galaxy 一致性反编译重建

将 Super Mario Galaxy 的 Wii 代码重建为 C++,并以使用者从自有日版、北美版、PAL 版或韩版光盘中提取的 main.dol 为目标,逐个目标文件重建。已匹配的目标文件由源码链接,并通过 objdiff 和目标哈希检查。项目自称仍在进行中,与任何 PC 移植无关,并表示不接受 AI 生成的反编译代码。

使用条件与局限

  • configure.py 支持 RMGJ01、RMGE01、RMGP01 和 RMGK01,默认构建韩版 RMGK01。除非使用 --non-matching,否则只链接标记为 Matching 的目标文件。在所审阅的提交上,decomp.dev 报告 RMGK01 代码已反编译 100.00%、完全链接 68.75%;其余三个版本反编译 99.70%,链接比例为 55.61%–58.17%。这些是项目进度追踪结果,不代表已能完全由源码构建游戏。
  • 需用 Dolphin 将自有游戏中所选地区的版本提取到 orig/RMG<地区>01,只需要 sys/main.dol。仓库声明不包含任何游戏素材或汇编。各版本配置在 config.yml 和 build.sha1 中记录预期的 DOL SHA-1。
  • 构建需在 Windows、macOS 或 Linux 上安装 Python 和 Ninja;在 macOS 和 Linux 上通过 wibo 运行 Windows 工具。configure.py 固定使用 GC 2.7–3.0a5.2 与 Wii 1.0 系列的 Metrowerks 编译器包。GitHub Actions 工作流在注释所称的私有构建容器中构建全部四个版本。本合集未构建或比对该项目。
  • CONTRIBUTING.md 要求标记为已反编译的目标文件必须 1:1 匹配,须通过 objdiff 检查并成功链接。拉取请求中的每个非一致函数都必须附上 decomp.me 草稿链接,且不得直接复制反编译器输出。README 注明部分代码和头文件来自 doldecomp bte、zeldaret tp(JSystem)及 ogws。
  • README 声明 AI/LLM 未参与反编译,并将允许的 AI 用途限于代码清理、格式化、文档和命名。这是项目自述,本次审阅无法核实。仓库声明采用 CC0-1.0,任天堂内容、提取的文件及工具链另有权利约束。未确立 REA 的使用;README 提到的独立 PC 移植 AstroCore 在此没有公开源码。

关于此条目

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

来源复核于

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

一手来源

  1. README.md GitHub · SMGCommunity/Petari · 修订 86ae7a3
  2. configure.py GitHub · SMGCommunity/Petari · 修订 86ae7a3
  3. CONTRIBUTING.md GitHub · SMGCommunity/Petari · 修订 86ae7a3
  4. config/RMGK01/config.yml GitHub · SMGCommunity/Petari · 修订 86ae7a3
  5. config/RMGK01/build.sha1 GitHub · SMGCommunity/Petari · 修订 86ae7a3
  6. .github/workflows/build.yml GitHub · SMGCommunity/Petari · 修订 86ae7a3
  7. LICENSE GitHub · SMGCommunity/Petari · 修订 86ae7a3
  8. https://decomp.dev/SMGCommunity/Petari