For nearly a decade, Super Mario 3D Land has been trapped in a 30 FPS prison.
Not because the hardware couldn’t handle more. Not because Nintendo didn’t care. But because the 3DS’s stereoscopic 3D demanded a compromise—one that modern players are finally breaking free from.
Thanks to a dedicated modding scene and a simple code fix, you can now experience the Tanooki-tail-powered adventure at 60 frames per second. And it changes everything. super mario 3d land 60fps code fix
Using a debugger (Citra with attached GDB), the frame limiter was traced to a single conditional branch: For nearly a decade, Super Mario 3D Land
; Original assembly (approximate)
loop:
call update_game_logic
call render_scene
; Wait for next VBlank, but skip one
mov r0, #2 ; frame_skip_count = 2
wait_for_vblank:
sub r0, #1
bne wait_for_vblank
b loop
The patch changes #2 to #1 (or nops the skip logic). In hex, this is often a patch like: The patch changes #2 to #1 (or nops the skip logic)
Original: E3A00002 (mov r0, #2)
Patched: E3A00001 (mov r0, #1)
There is confusion in the community because there are two distinct ways to achieve high frame rates.
When you apply the Super Mario 3D Land 60fps code fix correctly, the result is breathtaking. The first world, with its falling trees and Goombas, feels buttery smooth. Mario’s rolling jump, which had a slight "ghosting" effect at 30fps, is now crystal clear.
However, "perfect" is a tricky word in emulation. Here is the current state of the fix: