# 《超级马力欧 奥德赛》：Switch 主程序的逐函数一致性反编译

> 为《超级马力欧 奥德赛》Switch 1.0 版主程序重建 C++ 源码，并用共享的 nx-decomp-tools 检查器逐个函数与原始 AArch64 机器码比对。在所审固定提交中，其函数清单将 74,171 个函数中的 18,996 个标为一致。README 提醒构建结果不是可游玩的游戏；仓库不含游戏素材，sead、agl 等任天堂库则来自 open-ead 另行维护的重建项目。

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

## 使用条件与局限

- **前提条件：**初始化需要使用者自备原始 1.0 版 main NSO 可执行文件（压缩或未压缩均可）；setup.py 只接受两个指定的 SHA-256 哈希，将其转换为 ELF 后也会校验结果的哈希。只需 ExeFS，不过 README 指出 RomFS 文件有助于对照名称。仓库不含游戏素材，data/ 中存放函数清单以及 1.0 可执行文件的地址、符号和字符串字面量表；贡献者依据 Hex-Rays 或 Ghidra 的输出工作。
- **前提条件：**文档说明的环境是 Linux、WSL 或 macOS，也可使用 VS Code 开发容器或 Nix flake；需要 Python 3.6+、Ninja、CMake 3.13+、ccache、llvm-objdump、Rust 工具链及列明的 Python 模块。setup.py 从项目工具缓存的 v1.2.6 发布下载预编译的 clang、ld.lld 与 viking 检查器（也可从源码构建），并获取 LLVM 3.9.1 的 libc++ 头文件。子模块提供 open-ead 维护的 sead、agl、eui、NintendoSDK 与 NEX 头文件、一份 musl 构建以及 nx-decomp-tools。
- **范围：**所审阅的 master 固定版本日期为 2026 年 9 月 29 日。README 将其描述为进行中的《超级马力欧 奥德赛》1.0.0 反编译，目标是从零重建一套源码，并提醒构建结果无法作为游戏游玩。GitHub 简介称覆盖所有版本，但 setup.py 只构建 1.0，1.0.1、1.1、1.2 与 1.3 均作为待办跳过；README 也把跨版本比对和 1.3.0 不同的优化方式列为未完成工作。函数逐个匹配。
- **测试证据：**tools/check 会把 data/file_list.yml 中登记的每个函数与原始可执行文件比对。在固定版本中，该清单标记 18,996 个函数一致、47 个有细微差异、252 个有较大差异、54,876 个尚未反编译；decomp.dev 针对该提交的报告同样给出 25.61% 的函数一致率，按代码字节计为 15.77%。CI 通过仓库密钥获取可执行文件，构建后要求检查通过，另行检查每个头文件都能单独编译。
- **许可：**GitHub 未识别出许可证，固定版本根目录也没有许可证文件，因此未声明任何复用条款；子模块与任天堂的内容仍受各自条款约束。有一个工作流会给按其说法“通常使用 AI”的作者新开的拉取请求加上 ai 标签。

## 一手来源

1. <https://github.com/MonsterDruide1/OdysseyDecomp/blob/696db2ff5ed558b053c753de420504b8682f24b0/README.md>
2. <https://github.com/MonsterDruide1/OdysseyDecomp/blob/696db2ff5ed558b053c753de420504b8682f24b0/Contributing.md>
3. <https://github.com/MonsterDruide1/OdysseyDecomp/blob/696db2ff5ed558b053c753de420504b8682f24b0/tools/setup.py>
4. <https://github.com/MonsterDruide1/OdysseyDecomp/blob/696db2ff5ed558b053c753de420504b8682f24b0/tools/cache-version.json>
5. <https://github.com/MonsterDruide1/OdysseyDecomp/blob/696db2ff5ed558b053c753de420504b8682f24b0/CMakeLists.txt>
6. <https://github.com/MonsterDruide1/OdysseyDecomp/blob/696db2ff5ed558b053c753de420504b8682f24b0/.gitmodules>
7. <https://github.com/MonsterDruide1/OdysseyDecomp/blob/696db2ff5ed558b053c753de420504b8682f24b0/.github/workflows/compile-check.yml>
8. <https://github.com/MonsterDruide1/OdysseyDecomp/blob/696db2ff5ed558b053c753de420504b8682f24b0/.github/workflows/test-compile.yml>
9. <https://github.com/MonsterDruide1/OdysseyDecomp/blob/696db2ff5ed558b053c753de420504b8682f24b0/.github/workflows/pr-label-ai.yml>
10. <https://decomp.dev/MonsterDruide1/OdysseyDecomp>
11. <https://github.com/MonsterDruide1/OdysseyDecomp/blob/696db2ff5ed558b053c753de420504b8682f24b0/data/file_list.yml>
12. <https://web.archive.org/web/20261020041937/https://decomp.dev/MonsterDruide1/OdysseyDecomp/1.0/696db2ff5ed558b053c753de420504b8682f24b0.json>

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

- [Super Mario Sunshine（美版）：AI 辅助的一致性反编译分支](https://awesomerea.org/zh/resources/sms-english-gmse01-decomp-case/index.md) · 案例
- [Super Mario Sunshine：仍在推进的 GameCube 一致性反编译重建](https://awesomerea.org/zh/resources/sms-matching-decomp-case/index.md) · 案例
- [《任天堂明星大乱斗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) · 案例

## 关于此条目

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