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

The Screw Attack makes a jump a weapon. In Metroid it counts as on only in a running jump, while Samus somersaults or still rises1. Metroid II turns on for any spin jump, and the touch hits the enemy without hurting her2. Super Metroid gives the touch a base damage of 2000 before the enemy’s vulnerability scales it3.

Games

GameYearHowNote
Metroid1986Running jumpa running jump with the item, while it somersaults or still rises
Metroid II: Return of Samus1991Any spinany spin jump, from its start pose
Super Metroid1994Any spinthe spin's touch deals a base 2000 damage
Every claim about this mechanic, by game (3)

References

  1. ^ abIsScrewAttackActive counts the Screw Attack as on only in the running state with the item: in a somersault, or in the plain jump animation while Samus still rises. The Samus-enemy crash code at LF282 calls it.Codenmikstas/metroid-disassembly
    How we know
    2362IsScrewAttackActive:
    2363LCD9C:  SEC             ;Assume screw attack is not active.
    2364LCD9D:  LDY ObjAction           ;
    2365LCDA0:  DEY             ;Is Samus running?
    2366LCDA1:  BNE ++              ;If not, branch to exit.
    2367LCDA3:  LDA SamusGear           ;
    2368LCDA6:  AND #gr_SCREWATTACK     ;Does Samus have screw attack?
    2369LCDA8:  BEQ ++              ;If not, branch to exit.
    2370LCDAA:  LDA AnimResetIndex      ;
    2371LCDAD:  CMP #an_SamusSalto      ;Is Samus summersaulting?
    2372LCDAF:  BEQ +               ;If so, branch to clear carry(screw attack active).
    2373LCDB1:  CMP #an_SamusJump       ;
    ⋮
    
    Source_Files/Bank07.asm lines 2362–2379 at 4270d57 · upstream ↗
    7935LF282:  bcs Exit17
    7936    jsr LF2E8
    7937    jsr IsScrewAttackActive     ;($CD9C)Check if screw attack active.
    
    Source_Files/Bank07.asm lines 7935–7937 at 4270d57 · upstream ↗
    865.alias sa_Run           1   ;Also run and jump.
    866.alias sa_Jump          2
    
    Source_Files/Metroid_Defines.asm lines 865–866 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. ^ abWith the Screw Attack, an enemy Samus touches in a spin jump or its start pose takes a Screw Attack weapon hit, and the contact doesn't hurt her. Solid enemies, whose damage entry is $FF, are exempt.Codealex-west/M2RoS
    How we know
    8850    ; Check if screw attack is active
    8851    ld a, [samusItems]
    8852    bit itemBit_screw, a
    8853        jr z, .iceCase
    8854    ld a, [samusPose]
    8855    cp pose_spinJump
    8856        jr z, .screwCase
    8857    ld a, [samusPose]
    8858    cp pose_spinStart
    ⋮
    8878    ; Don't screw if damage is $FF (enemy is solid)
    ⋮
    8885    ; Hurt flag is not set here, so Samus will not be damaged by this
    ⋮
    8890    ; Save weapon type to Screw Attack
    ⋮
    
    SRC/bank_000.asm lines 8850–8892 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. ^ abA normal enemy's touch routine takes another path when ContactDamageIndex is nonzero: it damages the enemy and returns without hurting Samus. Its comment places the Screw Attack's damage at $A4C2, 2000 ($07D0) for index 3, before the enemy's vulnerability scales it.CodeInsaneFirebat/sm_disassembly
    How we know
    4812NormalEnemyTouchAI_NoDeathCheck:
    4813; Damage values:
    4814;     Speed boosting:      $A4AF
    4815;     Shinesparking:       $A4BA
    4816;     Screw attack:        $A4C2
    4817;     Pseudo screw attack: $A4CC
    
    src/bank_A0.asm lines 4812–4835 at 7af131e · upstream ↗
    LDA.L EnemyVulnerabilities_power,X … LDA.W Enemy.health,X SEC SBC.B DP_Temp12
    src/bank_A0.asm#L4860-L4901 · 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