Static recompilation · GPL-3.0 · Windows x64
OPENSMASH ULTIMATE
Recompiled, not emulated. The Switch game's code, translated to C and compiled into a real Windows program. Built on your PC, from your own copy.
- Vulkan renderer
- Game 13.0.4 / 13.0.5
- One-click installer
- No game files included
01 / What it is
NOT AN
EMULATOR.
OpenSmash-Ultimate turns the Nintendo Switch version of Super Smash Bros. Ultimate into a normal Windows program, ahead of time. There is no CPU interpreter and no JIT running while you play: the console's system libraries (files, audio, video, input, threads, graphics) are re-implemented by the project's own runtime.
- AYour dumpThe game you own, dumped from your console. Never in this project.
- BAArch64 → COne C function per game function, checked against a CPU emulator on 32,043 instruction cases.
- CCompiled for Windowsclang builds a game DLL; the runtime brings the console's services and NVN on Vulkan.
- DPlayA resizable 16:9 window, your GPU, any controller. Saves stay on your PC.
02 / On screen
RUNNING
NATIVELY.





03 / Features
WHAT'S
IN THE BOX.
- Done
Native, not emulated
The game's AArch64 machine code is translated to C once and compiled for x64. No interpreter, no JIT at run time.
- Done
Vulkan renderer
The game's graphics API (NVN) translated to Vulkan 1.3, with an OpenGL fallback. Resolution scale, vsync modes, a low profile for integrated GPUs.
- Done
Game 13.0.4 and 13.0.5
Base game with the 13.0.4 or 13.0.5 update. The build tells them apart and refuses anything else.
- Done
Shaders loaded at start
Shaders are prepared from the game's own shader containers by background threads: 0 pipeline holds in fight frames in our first-run tests.
- Done
One-click installer
No Visual Studio needed, a private Python, finds your keys and firmware in emulator folders, applies the update and DLC, every download hash-checked, resumable.
- Done
In-game settings menu
F1 or a controller's Home button: display, graphics, window, volume, full key and button remapping, add-ons, language, log and a stats overlay (F2), over the running game. On by default.
- Done
Full remapping
Every key and button, per controller or per controller kind, with dead zones, trigger threshold and a live input test. F2 shows a stats overlay.
- Done
On-screen keyboard
Type names with a controller on a keyboard drawn over the game; the PC keyboard works too.
- Experimental
Online play
The game's own Local Wireless mode over a network: same LAN, a room code between two PCs, or a lobby server. Off by default.
- Experimental
Run-ahead
Runs one frame ahead to cut a frame of input delay, bit-exact in tests. Off by default; not fast enough on every PC yet.
- In progress
Rollback netcode
Our own network layer with rollback. Input queues: done. Snapshot ring: done. Rollback simulation and protocol: next.
- In progress
Fighters as C++ source
Fighter status scripts decompiled to readable, editable C++ (85% published), each proven equal to the original in differential tests.
Done works and was tested on the development PC Experimental works, off by default or not widely tested In progress being built
04 / Install
THREE
STEPS.
- 01
Download
Get the repository from GitHub (Code, Download ZIP) and unpack it anywhere.
Open the repository → - 02
Install
Double-click
Install SSBU.bat(if Windows warns about a downloaded file: More info, Run anyway). In the window pick your game package (.nsp/.xci/.nsz), the 13.0.4 or 13.0.5 update and yourprod.keys— or let it find them in your yuzu / Ryujinx folders — and press Install. No firmware needed. Answer Yes once when Windows asks for administrator rights (the LLVM compiler). About 45 minutes on a fast PC; if it stops, run it again and it resumes. - 03
Play
Double-click
Play SSBU.bator the desktop shortcut. Your saves go tobuild\saves.
You need
- Windows 10 or 11, 64-bit
- A GPU with a Vulkan 1.3 driver
- About 25 GB of free disk (8 GB for the build + up to 17 GB for the dump made from your packages)
- A CPU with AVX2 (most CPUs from 2013 on)
- Your own copy of the game (13.0.4 or 13.0.5), dumped from a console you own
Try it with a friend Experimental
PLAY WITH
A FRIEND.
- 01
Both install
Each of you follows the three steps above on your own PC, with your own copy of the game. Use the same game update (both 13.0.4 or both 13.0.5) and download the project on the same day (the same version of it), then start the game once from the desktop shortcut.
- 02
Turn online on
In the game press F1 (or a controller's Home button) → Experimental → Online play: ON → mode Lobby server (already filled in) → Restart the game now. If Windows asks about the network, allow it.
- 03
Create & join
One of you: main menu → Local Wireless → Create Room. The other: Local Wireless → Rooms List → pick the room. The host accepts the request, you both pick fighters and stage, the host starts with L + R.
If the room does not show up
- Check that both of you are on the same game update and project version.
- Look at the lobby status on this page: it must say Online.
- Same house? Pick Same network (LAN) on both PCs instead.
- Still nothing: one of you picks Host a room and sends the ROOM CODE shown there; the other picks Join with a code and types it.
- Press F1 → Log → Export and send the file on Discord.
05 / Online Experimental
PLAY
ONLINE.
The game's own Local Wireless mode, carried over a network. Create a room, the other player finds it in the Rooms List and joins. No extra program.
- LANSame network, no server: rooms are found automatically.
- Room codeHost and join over the internet with a code, no server.
- LobbyA small open-source lobby server; players need no port forwarding.
Off by default: switch it on in the game with F1 → Experimental → Online play. Our public lobby is in Milan. Tested with two game instances on one PC; your matches between two PCs over the internet are the first real tests. No encryption yet: play with people you know. Delay-based for now; rollback is in development.
How to turn it on →Lobby status
Checking…- Players online
- –
- Rooms
- –
- Lobby
- –
- Uptime
- –
06 / Roadmap
WHAT'S
NEXT.
- 01In progress
Rollback online
Own network layer: fight state as data, logic-only frame stepping. Input queues and snapshot ring are done; rollback simulation and the protocol come next.
- 02In progress
Zero input delay
Run-ahead made to fit the 16.7 ms frame on every PC, so you feel the game as fast as it can be.
- 03In progress
Fixed 60 fps
Fight frames are already hold-free in tests; every mode at a steady 60 is the goal.
- 04In progress
Fighters 100% source
Every fighter's scripts as readable C++, each proven equal to the original. 85% published today.
- 05Planned
Items as source
Items and stages turned into readable source too, after the fighters.
- 06In progress
Mods as single files
Drop one file in the characters folder and the fighter is in the game.
07 / Tools
BUILT
TO MOD.
Lobby server
Run your own online lobby: one Python file, standard library only, with a status endpoint.
SoonFighter SDK
Decompile fighter scripts to C++, edit, rebuild a fighter in about a second; hook any game function from a mod DLL.
SoonSingle-file packager
Pack a fighter mod into one file that you drop into the characters folder.
SoonMod manager
Turn mods on and off and keep them in sync with your build.
SoonFrame compare
Compare two builds frame by frame from their per-frame state hash logs.
Soon
08 / FAQ
STRAIGHT
ANSWERS.
Is this an emulator?
No. There is no CPU interpreter or JIT. The game's code is translated to C ahead of time and compiled for Windows; the console's services are re-implemented by the project's runtime.
Does it include the game?
No. The project contains no game code, no game assets, no keys and no firmware, and does not link to any. Everything derived from the game is generated on your PC from your own dump and never leaves it.
Do I need to own the game?
Yes. You need your own copy of the game (13.0.4 or 13.0.5) and a console you own to dump it, its keys and firmware. That is the one step the project cannot do for you.
Why do I have to build it? Why no download?
The build contains code derived from the game, which cannot be distributed. The installer generates it on your PC from your dump, in one click.
Can I play online?
Experimentally: Local Wireless over a LAN, with a room code or through a lobby server. It is off by default and delay-based; rollback netcode is in development.
Linux or Steam Deck?
Not yet. The runtime is Windows-only today; other platforms are on the roadmap.
How do I use my own save file?
With the game closed. The game keeps its saves in build\saves\save\ (or <your install location>\saves\save\ if you chose one in the installer), as a save_data folder holding system_data.bin, mii, spirits and stage. Get your save as a folder that contains save_data: from your Switch with JKSV or Checkpoint, from yuzu / Eden / suyu (right-click the game, Open Save Data Location) or from Ryujinx (right-click the game, Open User Save Directory). Rename build\saves\save to save_old as a backup, create a new empty build\saves\save and copy your save_data folder into it (you should have build\saves\save\save_data\system_data.bin), then start the game. Folders named save.work.<number> are temporary session files: leave them or delete them while the game is closed.
What is the licence?
GPL-3.0 (version 3 or later), every file. You can read, change and share the code under the same terms.
Was this built with AI?
Yes, openly: almost all code was written by AI coding agents directed by the maintainer. Every claim is backed by a test or a measurement.
Join the community
Testers with other GPUs and controllers, and people who know the game's internals or the modding tools, are very welcome.