{
  "added_at": "2026-10-18",
  "additional_evidence_urls": [
    "https://github.com/zeldaret/botw/blob/e78c02499d0f108ae9c00158198289764c5980fe/tools/setup.py",
    "https://github.com/zeldaret/botw/blob/e78c02499d0f108ae9c00158198289764c5980fe/CMakeLists.txt",
    "https://github.com/zeldaret/botw/blob/e78c02499d0f108ae9c00158198289764c5980fe/.gitmodules",
    "https://github.com/zeldaret/botw/blob/e78c02499d0f108ae9c00158198289764c5980fe/tools/config.toml",
    "https://github.com/zeldaret/botw/blob/e78c02499d0f108ae9c00158198289764c5980fe/data/uking_functions.csv",
    "https://github.com/zeldaret/botw/blob/e78c02499d0f108ae9c00158198289764c5980fe/AGENTS.md",
    "https://github.com/open-ead/botw-decomp-www/blob/bafa2192811908bdba7c558dca0e1584900d9866/docs/about.mdx",
    "https://github.com/open-ead/botw-decomp-www/blob/bafa2192811908bdba7c558dca0e1584900d9866/docs/contribute/installation.mdx",
    "https://github.com/open-ead/botw-decomp-www/blob/bafa2192811908bdba7c558dca0e1584900d9866/docs/contribute/how-to-decompile.mdx",
    "https://github.com/open-ead/nx-decomp-tools/blob/e0eae2f7f403befec6b60cb615f6680a6937d0c9/viking/src/functions.rs",
    "https://botw.link/progress"
  ],
  "category": "reconstruction-cases",
  "description_en": "Reimplements part of Breath of the Wild’s Switch v1.5.0 main executable in C++ and checks each function against the original machine code. The project calls itself a hybrid decompilation/reimplementation: it contains no assets, its ELF holds only reimplemented functions and cannot run the game, and porting is an explicit non-goal.",
  "description_zh": "以 C++ 重新实现《塞尔达传说 旷野之息》Switch v1.5.0 主程序的部分代码，并逐个函数与原始机器码比对。项目自称是反编译与重新实现的混合体：不含游戏素材，生成的 ELF 仅包含已重新实现的函数、无法运行游戏，移植到其他平台也明确不是目标。",
  "entry_url": "https://awesomerea.org/resources/botw-decomp-case/",
  "entry_url_zh": "https://awesomerea.org/zh/resources/botw-decomp-case/",
  "evidence_url": "https://github.com/zeldaret/botw/blob/e78c02499d0f108ae9c00158198289764c5980fe/README.md",
  "group": "cases",
  "id": "botw-decomp-case",
  "json_url": "https://awesomerea.org/resources/botw-decomp-case/record.json",
  "kind": "case-study",
  "markdown_url": "https://awesomerea.org/resources/botw-decomp-case/index.md",
  "markdown_url_zh": "https://awesomerea.org/zh/resources/botw-decomp-case/index.md",
  "name": "Breath of the Wild: per-function matching decompilation of the Switch executable",
  "name_zh": "《旷野之息》：Switch 主程序的逐函数一致性反编译",
  "reconstruction_method": "matching-decompilation",
  "record_type": "resource",
  "relationship": "independent-reconstruction",
  "requirement_facets": [
    "scope",
    "prerequisites",
    "prerequisites",
    "testing",
    "license"
  ],
  "requirements": [
    "README calls this an experimental work-in-progress decompilation of Switch v1.5.0. The About page scopes it to the main executable (game code and most statically linked libraries), excluding RomFS assets, dynamically linked SDK libraries, libcurl, NEX and most of Havok. Functions are matched individually rather than placed at original addresses, so this is not a whole-executable matching build, a playable game or a port.",
    "Setup needs the user’s own main NSO executable from the Switch release. The pinned setup script verifies its hash, uses 1.5.0 directly and converts listed 1.6.0 or 1.9.0 executables to 1.5.0 with a project-hosted patch; RomFS and other game content are not used. The About page says the project is useless to anyone who does not own the game.",
    "The installation guide assumes Linux (native or WSL) or macOS and lists Python 3, Ninja, CMake, ccache, xdelta3, Clang and a Rust toolchain; the pinned CMakeLists requires CMake 3.30. Setup fetches Clang 4.0.1 for game code and installs tools/check. Submodules supply sead, agl, EventFlow, NintendoSDK headers and the shared nx-decomp-tools; the decompiling guide works from Hex-Rays or Ghidra output.",
    "tools/check diffs each listed function against the original executable, and data/uking_functions.csv records its status. At the pinned commit that list marks 32,079 of 113,490 functions matching, 514 non-matching, 7,601 work in progress, 6,270 library and 67,026 not decompiled; the mutable botw.link badges showed 17.493% by size and 30.398% by function on review.",
    "The pinned tree has no root license file and GitHub detects none, so no reuse license is stated; submodules and Nintendo content keep their own terms, and the About page calls the work a legal gray zone. AGENTS.md sets disclosure and human-review rules for AI-assisted contributions."
  ],
  "requirements_zh": [
    "README 称其为 Switch v1.5.0 的实验性、进行中的反编译。About 页面将范围限定为主程序（游戏代码及大部分静态链接库），不包括 RomFS 素材、动态链接的 SDK 库、libcurl、NEX 及 Havok 的大部分代码。函数逐个匹配，不放回原始地址，因此这不是整个可执行文件一致的构建，也不是可游玩的游戏或移植。",
    "设置时需要使用者自己的 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 的输出为起点。",
    "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 辅助贡献规定了披露和人工审核要求。"
  ],
  "targets": [
    "game"
  ],
  "url": "https://github.com/zeldaret/botw",
  "verification": "source-reviewed",
  "verified_at": "2026-10-18"
}
