Notes — October 2, 2026
What is Super Mario Land Advance, anyway?

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.

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