On this page
  1. Related
  2. Games
  3. References
  4. Sources

The morph ball shrinks the character into a ball that rolls. In Metroid Samus rolls into it only on the ground and only with the Maru Mari, and a jump press unrolls her1. Metroid II gives her the ball with no item2, and its Spring Ball lets the ball jump3. Super Metroid makes the ball an item again, and its top speed on the ground, 3.25 px/frame, is above running’s 2.754.

  • Super Metroid (1994). An item, with a top speed on the ground above running's.4
  • No jumpMetroid (1986). The Maru Mari, from the ground only; a jump press unrolls it.1
  • Spring upgradeMetroid II: Return of Samus (1991). Available from the start; the Spring Ball lets it jump.2,3

Games

GameYearHowNote
Super Metroid1994an item, with a top speed on the ground above running's
Metroid1986No jumpthe Maru Mari, from the ground only; a jump press unrolls it
Metroid II: Return of Samus1991Spring upgradeavailable from the start; the Spring Ball lets it jump
Every claim about this mechanic, by game (4)

References

  1. ^ abSamus rolls into the ball only with the Maru Mari (gr_MARUMARI) and only on the ground. In the ball, Up or a jump press unrolls her unless Down is held, and only if she has room to stand.Codenmikstas/metroid-disassembly
    How we know
    2794SetSamusRoll:
    2795LD0B5:  lda SamusGear
    2796    and #gr_MARUMARI
    2797    beq +      ; branch if Samus doesn't have Maru Mari
    2798    lda SamusGravity
    2799    bne +
    
    Source_Files/Bank07.asm lines 2794–2799 at 4270d57 · upstream ↗
    2820    SamusRoll:
    2821    lda Joy1Change
    2822    and #$08     ; UP pressed?
    2823    bne +      ; branch if yes
    2824    bit Joy1Change  ; JUMP pressed?
    2825    bpl ++    ; branch if no
    2826*   lda Joy1Status
    2827    and #$04       ; DOWN pressed?
    2828    bne +     ; branch if yes
    2829;break out of "ball mode"
    ⋮
    2834    jsr CheckMoveUp
    
    Source_Files/Bank07.asm lines 2820–2834 at 4270d57 · upstream ↗

    Checked against the evidence by its author, an AI model, 2026-10-21.

    Checked by a second AI model, 2026-10-21.

    In the claim ledger

  2. ^ abThe morph ball needs no item: a Down press while crouching calls samus_morphOnGround, and the item bits list bombs, Hi-Jump, Screw Attack, Space Jump, Spring Ball, Spider Ball, and Varia, with no bit for the ball. A new game starts with no item bits set.Codealex-west/M2RoS
    How we know
    3705; Handle down input
    3706    ; Rising edge
    3707    ldh a, [hInputRisingEdge]
    3708    bit PADB_DOWN, a
    3709    jr z, .endIf_L
    3710        call samus_morphOnGround
    
    SRC/bank_000.asm lines 3705–3710 at 031aea3 · upstream ↗
    4524samus_morphOnGround: ;{ 00:1BA4
    4525    ; Set pose
    4526    ld a, pose_morph
    4527    ld [samusPose], a
    
    SRC/bank_000.asm lines 4524–4527 at 031aea3 · upstream ↗
    49def itemMask_bomb   = %00000001 ; 01: Bombs
    ⋮
    53def itemMask_spring = %00010000 ; 10: Spring ball
    54def itemMask_spider = %00100000 ; 20: Spider ball
    55def itemMask_varia  = %01000000 ; 40: Varia suit
    56def itemMask_UNUSED = %10000000 ; 80: Unused
    
    SRC/constants.asm lines 49–56 at 031aea3 · upstream ↗
    20    db $00       ; Samus' equipment
    
    SRC/data/initialSave.asm line 20 at 031aea3 · upstream ↗

    Checked against the evidence by its author, an AI model, 2026-10-21.

    Checked by a second AI model, 2026-10-21.

    In the claim ledger

  3. ^ abIn the morph ball, A starts a jump only with the Spring Ball, from a counter of $2E.Codealex-west/M2RoS
    How we know
    3780    ; Handle spring ball
    3781    ; Check if A is pressed
    3782    ldh a, [hInputPressed]
    3783    bit PADB_A, a
    3784    jr z, .endIf_C
    3785        ; Check if we have spring ball
    3786        ld a, [samusItems]
    3787        bit itemBit_spring, a
    3788        jr z, .endIf_C
    3789            ; Set jump parameter
    3790            ld a, samus_jumpArrayBaseOffset - $12 ;$2e
    
    SRC/bank_000.asm lines 3780–3793 at 031aea3 · upstream ↗

    Checked against the evidence by its author, an AI model, 2026-10-21.

    Checked by a second AI model, 2026-10-21.

    In the claim ledger

  4. ^ abThe morphing transition reverts Samus's pose unless the Morph Ball is equipped. On the ground the ball's row of the speed table tops out at 3.25 px/frame, above running's 2.75.CodeInsaneFirebat/sm_disassembly
    How we know
    15801InitializeSamusPose_MorphingTransition:
    ⋮
    15819  .noMorphBall:
    
    src/bank_91.asm lines 15801–15822 at 7af131e · upstream ↗
    5200    dd wordSwap($0030*!SPF*$100),wordSwap($02C0*!SPF*$100),           wordSwap($0080*!SPF*$100) ; 1: Running
    ⋮
    5203    dd wordSwap($00C0*!SPF*$100),wordSwap($0340*!SPF*$100),           wordSwap($0080*!SPF*$100) ; 4: Morph ball - on ground
    
    src/bank_90.asm lines 5200–5203 at 7af131e · upstream ↗

    Checked against the evidence by its author, an AI model, 2026-10-21.

    Checked by a second AI model, 2026-10-21.

    In the claim ledger

Sources

Code