Case study
sead: a decompilation of Nintendo’s first-party C++ standard library
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.
Requirements & limits
- 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. This review ran nothing.
- 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, and the reviewed sources establish no AI or REA use.
About this entry
- Type
- Case study
- Category
- Independent reconstruction cases
- Relationship
- Independent reconstruction project
- Targets
- Game
Sources reviewed
The description was reviewed against primary sources. This does not establish runtime testing, security auditing or verified compatibility.
Primary sources
- README.md GitHub · open-ead/sead · Revision f4178a2
- CMakeLists.txt GitHub · open-ead/sead · Revision f4178a2
- include/seadVersion.h GitHub · open-ead/sead · Revision f4178a2
- .github/workflows/lint_pr.yml GitHub · open-ead/sead · Revision f4178a2
- res GitHub · open-ead/sead · Revision f4178a2
- modules/src/gfx/cafe/seadPrimitiveRendererCafe.cpp GitHub · open-ead/sead · Revision f4178a2
- .gitmodules GitHub · zeldaret/botw · Revision e78c024
- https://github.com/aboood40091/sead
More in Games
- Animal Forest: an in-progress matching N64 decompilation · Case study
- Phantom Hourglass: an early-stage matching Nintendo DS decompilation · Case study
- Kinoko: reimplementing Mario Kart Wii’s physics engine for exact ghost replay · Case study
- Mario Kart: Double Dash!!: a matching GameCube decompilation of the debug build · Case study
- 3S Decomp: a byte-compared PS2 decompilation of Street Fighter III: 3rd Strike · Case study
- Halo: Combat Evolved: an incremental re-implementation patched into the original Xbox executable · Case study