Difference between revisions of "Vertical Speed"

From A complete guide to Super Metroid speedrunning
Jump to: navigation, search
(The math got flipped for walljump HGBFS value; it was listed at 101.58368 but it should be 100.7168.)
(Bomb Jump HGBFS was listed as 34.62464, but mathematically it should be 35.62464. Testing on practice rom confirms 35.62464.)
Line 55: Line 55:
 
  | [[Walljump]] ([[Hi-Jump Boots]]) || 5.32768 || 52 || 140.62464 ||  
 
  | [[Walljump]] ([[Hi-Jump Boots]]) || 5.32768 || 52 || 140.62464 ||  
 
  |-
 
  |-
  | [[Bomb Jump]] || 2.49152 || 27 || 34.62464 ||  
+
  | [[Bomb Jump]] || 2.49152 || 27 || 35.62464 ||  
 
  |-
 
  |-
 
  | [[Shinespark]] || 14.? || 2 || N/A || 7.07168 for first frame, then 14.? for all frames after (before crashing occurs); subpixel speed per frame is either random or uses an indiscernible pattern
 
  | [[Shinespark]] || 14.? || 2 || N/A || 7.07168 for first frame, then 14.? for all frames after (before crashing occurs); subpixel speed per frame is either random or uses an indiscernible pattern

Revision as of 05:30, 9 June 2021

Introduction

There are two memory addresses for vertical speed. The first can either have a value of 1 or 2, where 1 is for rising and 2 is for falling. The second is for the vertical speed, and is always used regardless of the first's value.

Rising speed starts with a value which decreases by 7168 subpixels per frame. After the value goes under zero, the first address will switch from 1 to 2, and Samus will start to fall.

The values can be read as "pixels.subpixels."

The maximum amount of subpixels is 65536. You simply divide the decimal (subpixel) amount by 65536 to find the fraction of pixels involved.

"Ramp" means the amount of frames the source takes to reach the amount listed in the column.

"HGBFS" stands for "height gained before falling starts."

Crouching before jumping will cause Samus to begin her jump eight pixels higher than if she did not crouch.

Moonfall is a glitch that underflows the fall speed, allowing you to continuously gain speed without hitting the cap. When doing a moonfall, the address used for direction has a value of 0.

Speed Values

Falling

Movement Amount Ramp Notes
Falling 5.02048 46 7168 subpixel increase per frame


Falling (underwater without Gravity Suit equipped)

Movement Amount Ramp Notes
Falling 5 60 2048 subpixel increase per frame


Rising

Movement Amount Ramp HGBFS Notes
Jump / Space Jump 4.57344 46 111.06144 Same values apply to Spring Ball
Jump / Space Jump (Hi-Jump Boots) 6.00000 56 167.37888 Same values apply to Spring Ball
Walljump 4.40960 44 100.7168
Walljump (Hi-Jump Boots) 5.32768 52 140.62464
Bomb Jump 2.49152 27 35.62464
Shinespark 14.? 2 N/A 7.07168 for first frame, then 14.? for all frames after (before crashing occurs); subpixel speed per frame is either random or uses an indiscernible pattern


Rising (underwater without Gravity Suit equipped)

Movement Amount Ramp HGBFS Notes
Jump 1.49152  ?  ?
Jump (Hi-Jump Boots)  ?  ?  ?
Walljump  ?  ?  ?
Walljump (Hi-Jump Boots)  ?  ?  ?
Shinespark 14.? 2 N/A 7.07168 for first frame, then 14.? for all frames after (before crashing occurs); subpixel speed per frame is either random or uses an indiscernible pattern

Compared with Run Speed

GalamozJumpSpeed.png

Writeup from FreyasSpirit on why this chart is non-linear

See also