Super Mario Land
Nintendo's 1989 side-scrolling platformer for the Game Boy.
On this page
The atlas reads Super Mario Land through kaspermeerts’ disassembly, which is partial: it covers the jump’s start and release but not the routine that moves Mario through the jump. The arc comes from measurement instead, in the World (Rev 1) ROM running in Mesen.
Unlike the NES Mario games here, the jump has no speed or gravity. Mario walks a table of per-frame steps up and retraces it on the way down1. Holding A keeps him in the table’s fast part; letting go skips ahead to the 1 px steps near the top, so a tap reaches 10 px and a full hold 332. A running jump starts the table two steps earlier and peaks higher3.
Mechanics
| Mechanic | Kind | How |
|---|---|---|
| Jump | Table | a table of per-frame steps, retraced in reverse for the fall; a running jump starts it two steps earlier |
| Variable jump height | Hold timer | the rise keeps its 2 px steps while A is held, and a release skips to the table's 1 px steps |
| Gravity | None | no gravity in the jump; a table sets every frame's step |
Every claim about this game, by concept (4)
References
- ^Measured in the game, a standing jump with A held moves Mario up nothing on the press frame, then 3, 3, and 2 px a frame to 24 px, then 1 px or 0 a frame to an apex of 33 px on frame 23. The fall retraces the rise in reverse, and he lands on frame 49.Verifiedkaspermeerts' SML disassemblyrevised
How we know
418 cp a, $04 419 jr z, .jmp_49ED 420 ld a, $02 421 ld [$C20E], a 422 ld [$C208], a 423.jmp_49ED ⋮ 429 ld a, $01 430 ld [de], a
bank3.asm lines 398–430 at 618d00e · upstream ↗ Measured by a script in MesenCE 2.2.1 (build 4b8a196), on . It fails if the result disagrees with the claim.
The numbers come from the run; its author, an AI model, checked the script measures what the claim says, 2026-10-25.
Revised after a check by a second AI model, 2026-10-21.
Revised after a check by a second AI model, 2026-10-25.
- ^Letting go of A while Mario rises moves the jump index to
$0F, near where the table's 1 px steps begin, unless the index is already at$0For past it. Measured, a 1-frame tap reaches 10 px, 5 frames 19 px, 10 frames 29 px, and 15 frames or more the full 33.Verifiedkaspermeerts' SML disassemblyrevisedHow we know
384.jmp_49AC 385 bit 0, a ; A button 386 jr nz, .jmp_49BF 387 ld a, [de] 388 cp a, $01 389 jr z, Jmp_4966
bank3.asm lines 384–389 at 618d00e · upstream ↗ 338Jmp_4966:: ; 4966 339 inc e 340 ld a, [de] 341 cp a, $0F 342 jr nc, .jmp_49B5 343 inc e 344 dec a 345 ld [de], a 346 dec e 347 ld a, $0F 348 ld [de], a
bank3.asm lines 338–348 at 618d00e · upstream ↗ Measured by a script in MesenCE 2.2.1 (build 4b8a196), on . It fails if the result disagrees with the claim.
The numbers come from the run; its author, an AI model, checked the script measures what the claim says, 2026-10-21.
Revised after a check by a second AI model, 2026-10-21.
- ^Measured, a running jump with A held rises 4, 4, 3, 3, then 2 px a frame and peaks at 41 px on frame 25, higher than the standing jump's 33.Verifiedkaspermeerts' SML disassembly
How we know
417 ld a, [$C20E] ; walking running 418 cp a, $04 419 jr z, .jmp_49ED 420 ld a, $02 421 ld [$C20E], a 422 ld [$C208], a
bank3.asm lines 417–422 at 618d00e · upstream ↗ Measured by a script in MesenCE 2.2.1 (build 4b8a196), on . It fails if the result disagrees with the claim.
The numbers come from the run; its author, an AI model, checked the script measures what the claim says, 2026-10-21.
Checked by a second AI model, 2026-10-21.
Sources
Code
- Meerts, Kasper and Retro-Hax. 2022. “Super Mario Land disassembly (kaspermeerts/supermarioland).” Commit 618d00e. kaspermeerts/supermarioland @ 618d00e · licence, all uses