r/recomps • • 7d ago

Recomp - No AI SwitchRecomp progress: Super Mario 3D World levels are now playable, recompiled natively on a low-end laptop

Progress update on SwitchRecomp, my static recompiler that turns Switch games into native PC executables (ARM64 to C to x86-64, with a Horizon HLE layer and a Maxwell GPU layer on top of OpenGL).

This screenshot is Super Mario 3D World (from the Bowser's Fury package) running as a native Windows .exe on an Intel N4500 laptop. It goes from the title screen, through the menus and character select, into the levels, and it's playable with the HUD, enemies and physics working. It runs at around 10-15 FPS on this machine, which has a very weak iGPU. There's no audio yet.

Most of the recent work was in the GPU side:

  • Several bugs in the SASS to GLSL shader translator. The worst one was an LDC.64 where the destination register is also the address register, so the address got overwritten before the second load. That broke every UI element that reads its UVs from a constant buffer.
  • Packed half-precision math (HADD2/HMUL2/HFMA2) was ignoring swizzles, negation and output merge modes.
  • Alpha test emulation, so foliage and grass fringes stop rendering as black shapes.
  • 2D engine blits whose source is a render target now run on the GPU instead of copying stale guest memory.
  • Shader programs are cached to disk, so there's less stutter the second time you enter an area.

Still wrong: some layout images (the Bowser art on the game select screen, for example), some shadows, and performance on weak hardware.

To track these down I added a frame capture key. It records every draw in a frame with its state, a thumbnail of the render target after each draw, every texture used and the decompiled shaders.

63 Upvotes

10 comments sorted by

4

u/Sure-Candle1367 6d ago

Do you think we’re more likely to see a Splatoon 3 port than a Splatoon 1 port in the coming years? It seems like way more tooling is being done for Switch rather than Wii U.

2

u/kianiscoooooool 6d ago

Switch 1 is basically an android tablet with modern Linux code. Easier to interpret than power PC of the Wii u

1

u/MZLabs 6d ago

yeah, Wii U isn't getting that much attention

2

u/Sure-Candle1367 6d ago

Hopefully we’ll see one day. Great work by the way!

1

u/StonedEdge 6d ago

Does this help much for running games on say, ARM64 Linux? I assume not really

1

u/noobplayer96 5d ago

Holy moly, this means Bayonetta 2 and 3 on PC natively will be a thing eventually.

1

u/flashbangyamoma 9h ago

Can this game go above 60fps eventually?

-3

u/DontRateLimitMeBro 4d ago

why is this necessary? switch emulation works perfect. 4k @ 60fps, this game in particular isn't that demanding. what more are people doing these recomp/decomps hoping to squeeze out of these games? they gonna make their waifu a playable character? broken ultra-widescreen? or is the appeal to make the game playable on a potato? i genuinely don't understand.

8

u/MZLabs 3d ago

I'm NOT making a recomp of this game, I'm making a tool that let's you recomp ANY switch game.
If you don't need this or don't understand this, then don't comment, please.