{
  "added_at": "2026-10-27",
  "additional_evidence_urls": [
    "https://github.com/open-ead/sead/blob/f4178a21e21235830357dc27c26a2c29956972ed/CMakeLists.txt",
    "https://github.com/open-ead/sead/blob/f4178a21e21235830357dc27c26a2c29956972ed/include/seadVersion.h",
    "https://github.com/open-ead/sead/blob/f4178a21e21235830357dc27c26a2c29956972ed/.github/workflows/lint_pr.yml",
    "https://github.com/open-ead/sead/tree/f4178a21e21235830357dc27c26a2c29956972ed/res",
    "https://github.com/open-ead/sead/blob/f4178a21e21235830357dc27c26a2c29956972ed/modules/src/gfx/cafe/seadPrimitiveRendererCafe.cpp",
    "https://github.com/zeldaret/botw/blob/e78c02499d0f108ae9c00158198289764c5980fe/.gitmodules",
    "https://github.com/aboood40091/sead"
  ],
  "category": "reconstruction-cases",
  "description_en": "Decompiles sead, the C++ standard library that Nintendo statically links into its first-party games, covering containers, heaps, strings, math, file devices, threads, the game framework and graphics. Compile-time presets target the recent versions used by Breath of the Wild, Super Mario Odyssey, Splatoon 3, Tears of the Kingdom and Super Mario Bros. Wonder, and game decompilations such as Breath of the Wild pull it in as a submodule. Names come from debugging symbols and assertions in retail titles, and the README warns that many inlined and templated names are guesses.",
  "description_zh": "反编译 sead，即 Nintendo 静态链接进其第一方游戏的 C++ 标准库，涵盖容器、堆、字符串、数学、文件设备、线程、游戏框架和图形等模块。编译期预设针对《旷野之息》《超级马力欧 奥德赛》《斯普拉遁 3》《王国之泪》和《超级马力欧兄弟 惊奇》所用的较新版本，《旷野之息》等游戏反编译项目以子模块方式引入它。命名来自零售游戏中的调试符号和断言，README 也提醒许多内联与模板函数的名称只是猜测。",
  "entry_url": "https://awesomerea.org/resources/sead-nintendo-library-decomp-case/",
  "entry_url_zh": "https://awesomerea.org/zh/resources/sead-nintendo-library-decomp-case/",
  "evidence_url": "https://github.com/open-ead/sead/blob/f4178a21e21235830357dc27c26a2c29956972ed/README.md",
  "group": "cases",
  "id": "sead-nintendo-library-decomp-case",
  "json_url": "https://awesomerea.org/resources/sead-nintendo-library-decomp-case/record.json",
  "kind": "case-study",
  "markdown_url": "https://awesomerea.org/resources/sead-nintendo-library-decomp-case/index.md",
  "markdown_url_zh": "https://awesomerea.org/zh/resources/sead-nintendo-library-decomp-case/index.md",
  "name": "sead: a decompilation of Nintendo’s first-party C++ standard library",
  "name_zh": "sead：Nintendo 第一方 C++ 标准库的反编译重建",
  "reconstruction_method": "matching-decompilation",
  "record_type": "resource",
  "relationship": "independent-reconstruction",
  "requirements": [
    "The reviewed master commit (2026-10-11, no releases) derives from aboood40091/sead but targets newer sead versions. The README says several modules currently fail to build for Switch and points to a GitHub project page for progress; seadVersion.h adds a Super Mario Maker 2 preset and a custom feature set alongside the README’s list.",
    "Building needs no game files. Checking accuracy needs the original sead, which ships only statically linked in games: the README advises legally owning a recent first-party title with debugging symbols, naming Super Mario Odyssey 1.0.0, Splatoon 2 up to 3.1.0 and the Nintendo Labo pilot build.",
    "The README asks for a partially C++17-capable compiler such as Clang 3.9 or newer and CMake 3.10+. CMakeLists builds an object library only for the nin (nnSdk, Switch) platform and links NintendoSDK headers supplied by the host project, the old or new open-ead header repository depending on a migration option. The README also describes Wii U (cafe) sources and declares other platforms unsupported.",
    "The README asks contributors to match non-inlined functions against the original assembly, tolerating only register-allocation or obviously harmless reordering differences marked NOT_MATCHING, and to undo inlining with help from pilot builds and assertions; MATCHING_HACK_NX_CLANG guards codegen hacks. The repository has no checker or progress data of its own, and CI only runs clang-format, so matching is checked in consumer projects.",
    "No license file is present and GitHub detects none; the README says nobody outside Nintendo has sead’s source. res/ holds the decompiled primitive-renderer shader sources plus a 2 KB compiled Wii U shader binary that was updated alongside them. Nintendo’s games keep their own rights."
  ],
  "requirements_zh": [
    "所审阅的 master 提交（2026-10-11，无发行版）源自 aboood40091/sead，但针对更新的 sead 版本。README 称若干模块目前无法为 Switch 构建，进度请见 GitHub 项目页面；seadVersion.h 在 README 所列之外还加入了《超级马力欧创作家 2》预设和自定义特性组合。",
    "构建本身不需要任何游戏文件。要核对准确性则需要原始 sead，而它只以静态链接的形式随游戏发布：README 建议合法拥有一款带调试符号的较新第一方游戏，并举出《超级马力欧 奥德赛》1.0.0、《斯普拉遁 2》3.1.0 及以下版本，以及 Nintendo Labo 的试点构建。",
    "README 要求使用部分支持 C++17 的编译器（如 Clang 3.9 及以上）和 CMake 3.10 及以上版本。CMakeLists 只为 nin（nnSdk，即 Switch）平台构建对象库，并链接宿主项目提供的 NintendoSDK 头文件；根据一个迁移选项，使用 open-ead 的旧版或新版头文件仓库。README 还介绍了 Wii U（cafe）源码，并说明不支持其他平台。",
    "README 要求贡献者将非内联函数与原始汇编比对并使其一致，仅容许寄存器分配或明显无害的指令重排差异，并须以 NOT_MATCHING 注释标明；还要借助试点构建和断言信息还原内联。MATCHING_HACK_NX_CLANG 用于包裹影响代码生成的技巧。仓库本身没有检查器或进度数据，CI 只运行 clang-format，因此一致性在使用它的项目中检查。",
    "仓库没有许可证文件，GitHub 也未识别出许可证；README 称除 Nintendo 外无人拥有 sead 源码。res/ 目录包含反编译的图元渲染器着色器源码，以及随之一同更新的 2 KB 已编译 Wii U 着色器二进制文件。Nintendo 游戏仍受其自身权利约束。"
  ],
  "targets": [
    "game"
  ],
  "url": "https://github.com/open-ead/sead",
  "verification": "source-reviewed",
  "verified_at": "2026-10-19"
}
