BelmanteGu / SuperMarioWonderRecomp
git clone https://github.com/BelmanteGu/SuperMarioWonderRecomp.git
Super Mario Bros. Wonder static recompilation (NVN on Vulkan/MoltenVK), macOS, Android and Windows. No game assets.
—
stars, 24h
+349
stars, 7 days · #162
+349
stars, 30 days · #758
349
★ total · +349% this week
36
forks · 13 open issues
Star history starts 2026-10-20; the chart appears after the second daily snapshot.
LanguageC++
LicenseMIT
Created2026-10-14 (6d ago)
Last push2d ago
Watchers9
OwnerUser
Links
README excerpt
# Super Mario Bros. Wonder Recomp A Projeto Belmante project · youtube.com/@belmante Static recompilation of **Super Mario Bros. Wonder** (Nintendo Switch, 1.0.0, title ID `010015100B514000`) to native code. No emulator runs: the game's AArch64 machine code becomes C++ compiled for the host, and its system and graphics calls (NVN, Nintendo's own API) are implemented natively on **Vulkan** (MoltenVK on the Mac). Part of the SwitchGamesRecomp work (same runtime, see docs/FRAMEWORK.md); this repo follows Wonder alone. Living log: PROGRESS.md. > [!NOTE] > **No game files are included.** This repository holds no game code, assets, keys or firmware, and no build > made from them. Everything derived from the game stays in `private/` (gitignored). You need your own legally > dumped copy of Wonder 1.0.0, plus your own keys and firmware. Instructions on how to obtain them are **not** > provided. > [!IMPORTANT] > **This project was made with a lot of AI and a lot of study.** Most of the code, tooling and documentation was > written with AI assistance (Anthropic's Claude), directed, tested and reviewed by a human who spent a great deal of > time studying the Switch's CPU, OS and graphics stack (AArch64, NVN, Maxwell shaders, Vulkan) to guide it. If you > don't agree with the use of AI or don't trust AI-written code, that is your right; you run the code at your own > discretion. > [!IMPORTANT] > **A note on the history of this repo.** The project was developed across several computers, and files were lost > when moving between them. Part of the code had to be rewritten from scratch, and some early notes, test > scripts and intermediate results no longer exist. If something in PROGRESS.md or the docs refers > to a file you cannot find, that is probably why. Bug reports about gaps like this are welcome. ## Platforms | Platform | Status | Graphics | |---|---|---| | macOS (Apple Silicon) | works, the reference platform | Vulkan on Metal through MoltenVK | | Windows (x86-64) | works, tested on NVIDIA (RTX 3050) and Intel GPUs | native Vulkan 1.3 | | Android (arm64) | works, tested on a Galaxy S23 | native Vulkan 1.3 | | Linux (x86-64) | works since 2026-10-17, tested on Ubuntu 26.04: NVIDIA RTX 3050 laptop GPU, and **60 fps on an Intel UHD integrated GPU** (720p) | native Vulkan 1.3 | Linux support was added on 2026-10-17 by BelmanteGu (Projeto Belmante): the platform layer `runtime/src/platform_linux.cpp` (SDL3 window, gamepad, keyboard and audio, Vulkan surface through SDL, crash handler) and `memguard_linux.cpp`, a Linux branch in `CMakeLists.txt` and `tools/wonder_linux.sh`. The recompiled code and the translated shaders built on Linux are byte for byte the Mac's. See Linux. ## State *The Flower Kingdom intro on Linux, NVIDIA RTX 3050, ultrawide 21:9 (`NX_ULTRAWIDE=1`, 2560x1080; GIF at 15 fps).* | Title | Character select | |---|---| | | | | **Flower Kingdom intro** | **Opening at the castle** | | | | *All four on Linux, RTX 3050, ultrawide 2560x1080. Gamep