# Super Mario Odyssey: per-function matching decompilation of the Switch executable

> Reconstructs C++ source for Super Mario Odyssey’s Switch 1.0 main executable and checks each function against the original AArch64 machine code with the shared nx-decomp-tools checker. At the pinned commit its function list marks 18,996 of 74,171 functions matching. The README warns that the build is not a playable game, the repository ships no game assets, and Nintendo libraries such as sead and agl come from open-ead’s separate reconstructions.

- Type: Case study
- Targets: Game
- Category: Independent reconstruction cases
- Relationship: Independent reconstruction project
- Sources reviewed: 2026-10-19
- Added to the catalog: 2026-10-19
- Original resource: <https://github.com/MonsterDruide1/OdysseyDecomp>
- Primary source: <https://github.com/MonsterDruide1/OdysseyDecomp/blob/696db2ff5ed558b053c753de420504b8682f24b0/README.md>
- Catalog page: <https://awesomerea.org/resources/odyssey-decomp-case/>
- Record JSON: <https://awesomerea.org/resources/odyssey-decomp-case/record.json>
- Chinese version: [简体中文](https://awesomerea.org/zh/resources/odyssey-decomp-case/index.md)

## Requirements & limits

- **Prerequisites:** Setup needs the user’s own original 1.0 main NSO executable, compressed or not; setup.py accepts only two SHA-256 hashes, converts it to an ELF and checks that result’s hash too. Only the ExeFS is needed, though README notes that RomFS files help cross-reference names. The repository holds no game assets, while data/ carries the function list and address, symbol and string-literal tables for the 1.0 executable; contributors work from Hex-Rays or Ghidra output.
- **Prerequisites:** The documented setup is Linux, WSL or macOS, with a VS Code dev container and a Nix flake as alternatives; it needs Python 3.6+, Ninja, CMake 3.13+, ccache, llvm-objdump, a Rust toolchain and the listed Python modules. setup.py downloads prebuilt clang, ld.lld and the viking checker from the project’s tools-cache release v1.2.6, or builds them from source, and fetches LLVM 3.9.1 libc++ headers. Submodules supply open-ead’s sead, agl, eui, NintendoSDK and NEX headers, a musl build and nx-decomp-tools.
- **Scope:** The reviewed master pin is dated 2026-09-29. README describes a work-in-progress decompilation of Super Mario Odyssey 1.0.0 that recreates a source base from scratch and warns that it will not produce a playable game. The GitHub description says all versions, but setup.py builds only 1.0 and skips 1.0.1, 1.1, 1.2 and 1.3 as a to-do, and README lists cross-version comparison and 1.3.0’s different optimisation as open work. Functions are matched individually.
- **Testing evidence:** tools/check compares every function marked in data/file_list.yml with the original executable. At the pin the list marks 18,996 functions matching, 47 with minor and 252 with major differences and 54,876 not decompiled, and decomp.dev’s report for the commit gives the same 25.61% of functions, or 15.77% of code bytes. CI fetches the executable through a repository secret, builds and requires the check to pass, and separately checks that every header compiles on its own.
- **License:** GitHub detects no license and the pinned root has no license file, so no reuse terms are stated; submodules and Nintendo content keep their own terms. A workflow adds an ai label to new pull requests from authors who, in its own words, usually use AI.

## Primary sources

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>

## More in Games

- [Super Mario Sunshine (USA): an AI-assisted matching decompilation fork](https://awesomerea.org/resources/sms-english-gmse01-decomp-case/index.md) · Case study
- [Super Mario Sunshine: an in-progress matching GameCube decompilation](https://awesomerea.org/resources/sms-matching-decomp-case/index.md) · Case study
- [Super Smash Bros. Brawl: an early matching Wii decompilation](https://awesomerea.org/resources/smash-bros-brawl-decomp-case/index.md) · Case study
- [Super Smash Bros. Melee: a matching GameCube decompilation with a shiftable build](https://awesomerea.org/resources/melee-matching-decomp-case/index.md) · Case study
- [Syphon Filter: The Omega Strain — matching PS2 executable decompilation](https://awesomerea.org/resources/syphon-filter-omega-strain-decomp-case/index.md) · Case study
- [TH04: rebuilding Lotus Land Story’s four PC-98 programs from source](https://awesomerea.org/resources/th04-reconstruction-case/index.md) · Case study

## About this entry

The description was reviewed against primary sources.
Original editorial content: MIT. Linked projects, papers and assets retain their own rights and licenses.
