Skip to main content

Notes — October 2, 2026

What is Super Mario Land Advance, anyway?

Super Mario Land Advance title screen

There's a lot of confusion about the terms decomp, recomp, disassembly, and port, and people are asking me in which category Super Mario Land Advance falls. Let me see:

  • DecompNo

    SML was written in ASM, and a decomp is a reconstruction of a game's higher-level source code from its compiled code.

  • RecompNo

    Nothing is automatically translating the original instructions.

  • DisassemblyNo

    It's new code rather than the original instructions made readable and shiftable.

  • PortYes, sort of

    It is, but not in the sense most people mean today. There's no source code or decomp behind it to move to new hardware. Instead, the game was reimplemented from scratch in C+ARM assembly for the GBA, which is closer to how many classic ports were made.

A matching reimplementation

What makes it different is how it was built. I call it a "matching reimplementation": I used the original game as a behavioral reference and a (very rough, very quick) disassembly for direct consultation, and my testing suite compares per-frame state traces against the original to make sure the new implementation behaves the same way.

Having that system in place is what made it practical to use AI to help write the implementation. Since every change can be checked against the original's behavior, I can hand off the grunt work and move much faster without guessing whether the result is correct.

This still produces a codebase with many weird quirks, like deliberately skipping frames to match the original, but that's expected. I then have to painfully clean up the code so it makes more sense.

Ultimately, you get a recreation that matches the original's behavior in testing, with a clean codebase you can expand in any way you want: graphics, logic, music, and other improvements, without being constrained by the GB's hardware.

Super Mario Land Advance gameplay in World 1-1
World 1-1, with new graphics running on the reimplemented logic.

In other words: the original game is the specification, not the implementation.