Claim set · data/claims/sml.yaml

Super Mario Land (kaspermeerts' disassembly, measured in Mesen)

Game: Super Mario Land.

A jump starts on the frame A goes down while Mario's jump status ($C207) is 0 and his on-ground flag ($C20A) is set. Unless Mario is running, the jump also sets the jump index $C208 to 2. sml/jump-start

About: Super Mario Land Jump

CodeSuper Mario Land disassembly (kaspermeerts/supermarioland) · bank3.asm#L398-L430.jmp_49BF ld a, [de] and a jr nz, .jmp_49B5 ld hl, $C20A ; 1 if on ground ld a, [hl] and a jr z, .jmp_49B5 bit 0, b ; A button jr z, .jmp_49B5 … ld a, [$C20E] ; walking running …Super Mario Land disassembly (kaspermeerts/supermarioland) · bank3.asm#L370-L373ld de, $C207 ; jump status ldh a, [hJoyPressed] ld b, a ldh a, [hJoyHeld]Checked by claude, 2026-10-21 — read the input routine from .jmp_498B; b holds the new presses, de points at the jump status, and $C20E is 4 only while running

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. sml/jump-arc

About: Super Mario Land Jump

Value
{
 "apex": 33,
 "apexAt": 23,
 "airtime": 49,
 "rise": [
  0,
  3,
  3,
  2,
  2,
  2,
  2,
  2,
  2,
  2,
  2,
  2,
  1,
  1,
  1,
  1,
  1,
  1,
  1,
  0,
  1,
  0,
  1
 ]
}
VerifiedSuper Mario Land disassembly (kaspermeerts/supermarioland) · bank3.asm#L398-L430 — the jump start; it sets the jump index $C208 to 2 unless Mario is runningld a, [$C20E] cp a, $04 jr z, .jmp_49ED ld a, $02 ld [$C20E], a ld [$C208], a … ld a, $01 ld [de], aChecked by claude-agent, 2026-10-25 — Read the jump start (bank3.asm L398-430) at the pinned commit: it sets the jump status to 1 and, unless Mario is running ($C20E = 4, L417-421), the jump index $C208 to 2, and nothing there sets a vertical speed; the per-frame steps, the apex, and the mirrored fall are the probe's measurement in the game.Probe: probes/jump-physics/super-mario-land.mjs

The probe walks right 12 frames before jumping: at the very start of World 1-1 something overhead stops a held jump at 20 px. The disassembly doesn't yet cover the routine that moves Mario through the table, so the table itself is read from the measurement. The mirrored steps fit a walk through a table rather than a speed under gravity; that is the atlas's reading, not code we have read.

Cited by: Super Mario Land

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 $0F or 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. sml/release

About: Super Mario Land Variable jump height

Value
{
 "1": 10,
 "5": 19,
 "10": 29,
 "15": 33
}
VerifiedSuper Mario Land disassembly (kaspermeerts/supermarioland) · bank3.asm#L384-L389.jmp_49AC bit 0, a ; A button jr nz, .jmp_49BF ld a, [de] cp a, $01 jr z, Jmp_4966Super Mario Land disassembly (kaspermeerts/supermarioland) · bank3.asm#L338-L348Jmp_4966:: ; 4966 inc e ld a, [de] cp a, $0F jr nc, .jmp_49B5 inc e dec a ld [de], a dec e ld a, $0F ld [de], aChecked by claude, 2026-10-21 — read the release branch (a is hJoyHeld there; status 1 is rising); ran the probe: a tap rises 3 px and then 1 px steps, and the held rise of 3, 3, 2 … switches to 1 px steps on the frame after the releaseProbe: probes/jump-physics/super-mario-land.mjs

Cited by: Super Mario Land

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. sml/run-jump

About: Super Mario Land Jump

Value
{
 "apex": 41,
 "apexAt": 25
}
VerifiedSuper Mario Land disassembly (kaspermeerts/supermarioland) · bank3.asm#L417-L422ld a, [$C20E] ; walking running cp a, $04 jr z, .jmp_49ED ld a, $02 ld [$C20E], a ld [$C208], aChecked by claude, 2026-10-21 — ran the probe: 40 frames of Right and B, then a jump with A held 40; the first two steps (4, 4) are ones the standing jump skips, which fits a running jump starting the table at index 0 rather than 2Probe: probes/jump-physics/super-mario-land.mjs

The run continues into the first Goomba after the apex, so only the rise and apex are used.

Cited by: Super Mario Land