u/MZLabs

▲ 1.4k r/decomps+1 crossposts

SwitchRECOMP: Super Mario Odyssey recompiled into a native PC program, no emulator. Here's the Cascade Kingdom boss fight

This is Super Mario Odyssey running as a native PC program. No emulator: I wrote a tool called SwitchRecomp that translates the game’s Switch code into C once and compiles it into a normal executable. Same idea as the N64 and PS1 recomp projects, just for Switch games.

The clip is the Cascade Kingdom boss fight, recorded on an RTX 3050 8GB with a Ryzen 5 5500 and 16GB of RAM on CachyOS. On that setup the graphics look the way they should.

This is still early and experimental. It has bugs and it doesn’t run the same on every PC. Feedback and bug reports are very welcome, just don’t judge it like a finished emulator. Ask whatever you want in the comments.

And please don’t call it AI slop. A lot of real work went into this, and it gets tested on real hardware.

If you only want the source code and you want it right away, don’t join the Discord, and don’t complain that it isn’t out yet. It’ll come out when it’s ready. The Discord is for people who want to apply to playtester, discuss about the project (in a polite way, lol) and follow along.

What’s new:

  • In-game videos work now. The Action Guide video in the menu used to show garbage and crash.
  • Some GPU-side performance work.
  • Next I’m making the translated game code faster, which should help most on weaker PCs.
  • Tears of the Kingdom gets to the “Nintendo presents” screen and stops there.

Results still change from PC to PC, mostly because of GPU drivers. If you test it, your logs help me a lot, especially on hardware I haven’t seen yet.

You need your own legally dumped copy of the game. I don’t share games, keys or firmware.

Discord for testing, aplying for playtesting and updates: https://discord.gg/gdRaXmBTY

u/MZLabs — 5 days ago
▲ 1.0k r/decomps

SwitchRecomp: a tool that turns Switch games into native PC executables, and Kirby now loads way faster and runs better

Quick update on SwitchRecomp. For anyone new: it takes a Switch game's code and recompiles it into a native Windows .exe, so the game code runs directly on your CPU instead of through an emulator.

Something a lot of people get wrong: I'm not porting games to PC one by one. I'm making a tool so anyone can recompile their own games without effort. You pick your game folder, click a button and it spits out the .exe. Right now I'm testing it with specific games so I can open up compatibility, but the process itself is automated.

What changed since last post:

  • Loading is way faster now. Startup and loading screens used to drag a lot, now they're a lot quicker
  • Better performance. I cut a lot of wasted work the GPU side was doing every frame, so fps is higher and more stable
  • Fixed all the graphics bugs in the games I've tested so far (Super Kirby Clash and Bowser's Fury)

Screenshots are Super Kirby Clash: title screen, the town, the shop and the role menu, all running on my Celeron N4500 laptop btw

A few things people keep asking:

GitHub? Not yet. It goes up on release, in about 3-4 months.

Android? Yes, the Android port comes a few months after the PC release on GitHub.

How is this different from suyu's recompiler? suyu's recompiler is bundled inside suyu, on top of its HLE backend, so you're still basically running suyu. SwitchRecomp is its own thing, built from scratch with its own runtime and graphics layer, and it's made to run on weak hardware. Each game comes out as its own standalone .exe. suyu crashes on low-end PCs like mine, and SwitchRecomp runs some games smoothly that suyu doesn't even open.

Also, if a somewhat known youtuber ends up talking about the project, I'll put out a longer gameplay video of Super Kirby Clash

If you want to follow the project, like, comment, repost and follow me so you see the next updates. Every comment helps a lot

u/MZLabs — 18 days ago
▲ 124 r/decomps+1 crossposts

SwitchRecomp: got Super Mario 3D World + Bowser's Fury running on a $200 Intel N4500 laptop, with dynamic

https://preview.redd.it/4p9i94m0vvrh1.png?width=1359&format=png&auto=webp&s=a45eea4a1f67abdb98ac51f59d64c6e6045713a1

Been working on SwitchRecomp for a while now. It's not an emulator in the yuzu/suyu sense, it doesn't interpret or JIT Switch code at runtime. It statically recompiles the ARM64 binary straight into C, compiles that into a native x86 executable, with a custom Horizon OS layer and the Maxwell GPU commands decompiled into OpenGL. Once it's built, you're running actual native code, not something being translated on the fly.

Latest round of work went into performance, since native code alone doesn't save you if the GPU path is wasteful:

  • Found and fixed a big one: instanced draws were getting redrawn from scratch on every single instance instead of batched properly. Some scenes went from under 1 FPS to a locked 60 once that was merged into one draw call.
  • Shader compiling now happens in the background without stealing CPU time from the game, and compiled shaders get cached so they don't rebuild every launch.
  • Added dynamic resolution: it scales itself down when the GPU is struggling and climbs back up when there's room, same idea consoles use.
  • Cut down a bunch of redundant GPU driver calls (texture binding, constant buffers, state changes) since that overhead adds up fast per frame.
  • Fixed a rendering bug that was causing ghosting on distant objects when dynamic resolution kicked in.
  • Rewrote a chunk of the shader translator so shaders compile in roughly a third of the time they used to.

Also poking at something experimental: in-process frame generation using LSFG, the same tech behind Lossless Scaling's frame gen. It reads the shaders straight out of your own legit Lossless.dll at runtime and runs them inside the recompiled game itself instead of needing the separate app open. It's very early and honestly not performing great yet, treating it as a preview more than a real feature right now.

Aiming for a proper release in the next 3 to 4 months. Super Mario Odyssey is next on the list to get running.
Sharing, upvoting, or reposting this genuinely helps it reach more people. Thanks.

reddit.com
u/MZLabs — 19 days ago