Mechanic · combat · metroidvania, platformer
Screw Attack
An upgrade that turns a spinning jump into an attack on whatever it touches.
On this page
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.
- Running jumpMetroid (1986). A running jump with the item, while it somersaults or still rises.1
- Any spinMetroid II: Return of Samus (1991). Any spin jump, from its start pose.2Super Metroid (1994). The spin's touch deals a base 2000 damage.3
Games
| Game | Year | How | Note |
|---|---|---|---|
| Metroid | 1986 | Running jump | a running jump with the item, while it somersaults or still rises |
| Metroid II: Return of Samus | 1991 | Any spin | any spin jump, from its start pose |
| Super Metroid | 1994 | Any spin | the spin's touch deals a base 2000 damage |
Every claim about this mechanic, by game (3)
References
- ^ ab
IsScrewAttackActivecounts 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 atLF282calls it.Codenmikstas/metroid-disassemblyHow 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.
- ^ 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/M2RoSHow 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.
- ^ abA normal enemy's touch routine takes another path when
ContactDamageIndexis 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_disassemblyHow 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.
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