# Super Mario Sunshine：仍在推进的 GameCube 一致性反编译重建

> 重建 Super Mario Sunshine 的 C++ 源码，目标是让原版 Metrowerks 编译器为四个 GameCube 发行版本及 Switch 版 3D All-Stars 生成逐字节一致的目标文件。目标二进制取自使用者自备的光盘镜像，objdiff 按函数比对重建出的目标文件。工作尚未完成，仓库在人工流程之外还发布了面向 AI 智能体的贡献规则。

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

## 使用条件与局限

- **前提条件：**需将各版本自备的光盘镜像放入 orig/<version>。支持 ISO（GCM）、RVZ、WIA、WBFS、CISO、NFS、GCZ 和 TGC 格式，仓库声明不包含任何游戏素材或汇编。GMSJ01 的符号配置由该光盘中的 mario.MAP 链接映射生成；CI 工作流注明 GMSE01 没有 MAP 文件，因此跳过其符号顺序检查。
- **前提条件：**构建需在 Windows、macOS 或 Linux 上安装 Python 和 Ninja；构建过程会获取 decomp-toolkit、binutils 和旧版 Metrowerks 编译器（大部分代码使用 GC 1.2.5），在 macOS 和 Linux 上通过 wibo 包装器运行。objdiff 将重建的目标文件与从原 DOL 中提取的目标文件比对，各版本的 build.sha1 记录目标 DOL 的哈希。
- **范围：**README 称该项目为仍在进行中的反编译工程。configure.py 默认目标为 GMSJ01（日版 Rev 0），另支持 GMSP01、GMSE01、GMSJ01 Rev 1，以及 Super Mario 3D All-Stars 中的 GMSP01_NX。默认只链接标记为 Matching 的目标文件；--non-matching 会链接等价或经修改的目标文件。在所审阅的提交上，decomp.dev 报告 GMSJ01 已反编译 49.51% 的代码、完全链接 18.42%。
- **测试证据：**AGENTS.md 要求对全部五个版本运行 ninja baseline 与 changes_all 生成回归报告，且每个版本的 DOL 仍须显示 OK。CI 在提供原始文件的构建容器中构建所有版本，并对改动的单元检查符号顺序。这些都是项目自报的检查与进度数据。
- **署名：**AGENTS.md（CLAUDE.md 与 GEMINI.md 均为指向它的符号链接）规定了 AI 智能体的工作流程：禁止无人监督的智能体处理 MSL、MetroTRK、THPPlayer、Dolphin SDK 和 JSystem 代码，并把难以判断的决定交给人类，但没有量化智能体编写的代码比例。仓库声明采用 CC0-1.0；任天堂的游戏、光盘内容及下载的编译器另有权利约束。

## 一手来源

1. <https://github.com/doldecomp/sms/blob/b2350a119b0e113e6cebc389fda9af00328ee85e/README.md>
2. <https://github.com/doldecomp/sms/blob/b2350a119b0e113e6cebc389fda9af00328ee85e/AGENTS.md>
3. <https://github.com/doldecomp/sms/blob/b2350a119b0e113e6cebc389fda9af00328ee85e/configure.py>
4. <https://github.com/doldecomp/sms/blob/b2350a119b0e113e6cebc389fda9af00328ee85e/config/GMSJ01/config.yml>
5. <https://github.com/doldecomp/sms/blob/b2350a119b0e113e6cebc389fda9af00328ee85e/config/GMSJ01/build.sha1>
6. <https://github.com/doldecomp/sms/blob/b2350a119b0e113e6cebc389fda9af00328ee85e/.github/workflows/build.yml>
7. <https://github.com/doldecomp/sms/blob/b2350a119b0e113e6cebc389fda9af00328ee85e/docs/AGENT_MATCHING_TIPS.md>
8. <https://github.com/doldecomp/sms/blob/b2350a119b0e113e6cebc389fda9af00328ee85e/LICENSE>
9. <https://decomp.dev/doldecomp/sms>
10. <https://web.archive.org/web/20261020041309/https://decomp.dev/doldecomp/sms/GMSJ01/b2350a119b0e113e6cebc389fda9af00328ee85e.json>

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

- [《任天堂明星大乱斗X》：早期阶段的 Wii 一致性反编译](https://awesomerea.org/zh/resources/smash-bros-brawl-decomp-case/index.md) · 案例
- [Super Smash Bros. Melee：可移位构建的 GameCube 一致性反编译](https://awesomerea.org/zh/resources/melee-matching-decomp-case/index.md) · 案例
- [Syphon Filter: The Omega Strain：可逐字节重建 PS2 可执行文件的一致性反编译](https://awesomerea.org/zh/resources/syphon-filter-omega-strain-decomp-case/index.md) · 案例
- [TH04：从源码重建东方幻想乡的四个 PC-98 程序](https://awesomerea.org/zh/resources/th04-reconstruction-case/index.md) · 案例
- [TH08：精确源码重建与单独验证的移植](https://awesomerea.org/zh/resources/th08-reconstruction-case/index.md) · 案例
- [TH095：东方文花帖 1.02a 的函数级重建](https://awesomerea.org/zh/resources/th095-reconstruction-case/index.md) · 案例

## 关于此条目

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