Morph ball
A form in which the character curls into a small ball that rolls along the ground.
On this page
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
| Game | Year | How | Note |
|---|---|---|---|
| Super Metroid | 1994 | an item, with a top speed on the ground above running's | |
| Metroid | 1986 | No jump | the Maru Mari, from the ground only; a jump press unrolls it |
| Metroid II: Return of Samus | 1991 | Spring upgrade | available from the start; the Spring Ball lets it jump |
Every claim about this mechanic, by game (4)
References
- ^ 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-disassemblyHow 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.
- ^ 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/M2RoSHow 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' equipmentSRC/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.
- ^ abIn the morph ball, A starts a jump only with the Spring Ball, from a counter of
$2E.Codealex-west/M2RoSHow 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.
- ^ 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.
Sources
Code
- nmikstas and Kent Hansen. 2025. “metroid-disassembly: Metroid software disassembly.” Commit 4270d57. nmikstas/metroid-disassembly @ 4270d57 · licence, all uses
- alex-west. 2026. “M2RoS: Return of Samus Disassembly.” Commit 031aea3. alex-west/M2RoS @ 031aea3 · licence, all uses
- InsaneFirebat and P.JBoy. 2026. “sm_disassembly: a relocatable disassembly of Super Metroid.” Commit 7af131e. InsaneFirebat/sm_disassembly @ 7af131e · licence, all uses