# 《旷野之息》：Switch 主程序的逐函数一致性反编译

> 以 C++ 重新实现《塞尔达传说 旷野之息》Switch v1.5.0 主程序的部分代码，并逐个函数与原始机器码比对。项目自称是反编译与重新实现的混合体：不含游戏素材，生成的 ELF 仅包含已重新实现的函数、无法运行游戏，移植到其他平台也明确不是目标。

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

## 使用条件与局限

- **前提条件：**设置时需要使用者自己的 Switch 版 main NSO 可执行文件。固定版本的安装脚本会校验其哈希：1.5.0 直接使用，列明的 1.6.0 或 1.9.0 可执行文件则借助项目托管的补丁转换为 1.5.0；不使用 RomFS 或其他游戏内容。About 页面指出，本项目对未拥有该游戏的人毫无用处。
- **前提条件：**安装指南假定使用 Linux（原生或 WSL）或 macOS，列出 Python 3、Ninja、CMake、ccache、xdelta3、Clang 和 Rust 工具链；固定版本的 CMakeLists 要求 CMake 3.30。安装脚本为游戏代码获取 Clang 4.0.1，并安装 tools/check。子模块提供 sead、agl、EventFlow、NintendoSDK 头文件及共用的 nx-decomp-tools；反编译指南以 Hex-Rays 或 Ghidra 的输出为起点。
- **范围：**README 称其为 Switch v1.5.0 的实验性、进行中的反编译。About 页面将范围限定为主程序（游戏代码及大部分静态链接库），不包括 RomFS 素材、动态链接的 SDK 库、libcurl、NEX 及 Havok 的大部分代码。函数逐个匹配，不放回原始地址，因此这不是整个可执行文件一致的构建，也不是可游玩的游戏或移植。
- **测试证据：**tools/check 将每个列出的函数与原可执行文件逐一比对，data/uking_functions.csv 记录各函数状态。在固定提交中，该列表的 113,490 个函数里，32,079 个标为一致，514 个不一致，7,601 个进行中，6,270 个为库函数，67,026 个尚未反编译；审阅时可变的 botw.link 徽章显示按大小计 17.493%、按函数数计 30.398%。
- **许可：**固定版本的仓库根目录没有许可证文件，GitHub 也未识别出许可证，因此未声明复用许可；子模块和任天堂内容各有其条款，About 页面也称这项工作处于法律灰色地带。AGENTS.md 为 AI 辅助贡献规定了披露和人工审核要求。

## 一手来源

1. <https://github.com/zeldaret/botw/blob/e78c02499d0f108ae9c00158198289764c5980fe/README.md>
2. <https://github.com/zeldaret/botw/blob/e78c02499d0f108ae9c00158198289764c5980fe/tools/setup.py>
3. <https://github.com/zeldaret/botw/blob/e78c02499d0f108ae9c00158198289764c5980fe/CMakeLists.txt>
4. <https://github.com/zeldaret/botw/blob/e78c02499d0f108ae9c00158198289764c5980fe/.gitmodules>
5. <https://github.com/zeldaret/botw/blob/e78c02499d0f108ae9c00158198289764c5980fe/tools/config.toml>
6. <https://github.com/zeldaret/botw/blob/e78c02499d0f108ae9c00158198289764c5980fe/data/uking_functions.csv>
7. <https://github.com/zeldaret/botw/blob/e78c02499d0f108ae9c00158198289764c5980fe/AGENTS.md>
8. <https://github.com/open-ead/botw-decomp-www/blob/bafa2192811908bdba7c558dca0e1584900d9866/docs/about.mdx>
9. <https://github.com/open-ead/botw-decomp-www/blob/bafa2192811908bdba7c558dca0e1584900d9866/docs/contribute/installation.mdx>
10. <https://github.com/open-ead/botw-decomp-www/blob/bafa2192811908bdba7c558dca0e1584900d9866/docs/contribute/how-to-decompile.mdx>
11. <https://github.com/open-ead/nx-decomp-tools/blob/e0eae2f7f403befec6b60cb615f6680a6937d0c9/viking/src/functions.rs>
12. <https://botw.link/progress>

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

- [Castlevania: Symphony of the Night：覆盖 PlayStation、PSP 与 Saturn 版本的一致性反编译](https://awesomerea.org/zh/resources/sotn-matching-decomp-case/index.md) · 案例
- [DX-Ball：借助 REA 并由 Codex 完成的函数级重建](https://awesomerea.org/zh/resources/dx-ball-rea-reconstruction-case/index.md) · 案例
- [DX-Ball：重建声音声像计算](https://awesomerea.org/zh/resources/rea-dxball-case/index.md) · 案例
- [Final Fantasy VII：PlayStation 版一致性反编译](https://awesomerea.org/zh/resources/ff7-ps1-matching-decomp-case/index.md) · 案例
- [GoldenEye 007：覆盖三个版本的一致性 Nintendo 64 反编译](https://awesomerea.org/zh/resources/goldeneye-007-matching-decomp-case/index.md) · 案例
- [Gran Turismo 4：借助智能体的 PS2 引擎匹配反编译](https://awesomerea.org/zh/resources/gran-turismo-4-matching-decomp-case/index.md) · 案例

## 关于此条目

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