Vertical Speed

From A complete guide to Super Metroid speedrunning
Revision as of 05:59, 26 August 2026 by EXAKTScience (talk | contribs) (Undo revision 10611 by EXAKTScience (talk))
Jump to: navigation, search

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.

Values in the table are in hexadecimal, so 0.1 is equivalent to 1/16 of a pixel

"Ramp" means the number 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.

The below give values in the various mediums of (air, water, lava/acid). For water and lava/acid, it should be assumed Samus does not have Gravity Suit equipped: With Gravity Suit, these mediums behave as air (for purposes of vertical speed).

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.

Values in the table are in hexadecimal, so 0.1 is equivalent to 1/16 of a pixel

"Ramp" means the number 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.

The below give values in the various mediums of (air, water, lava/acid). For water and lava/acid, it should be assumed Samus does not have Gravity Suit equipped: With Gravity Suit, these mediums behave as air (for purposes of vertical speed).

Speed Values

Acceleration

In the various mediums of (air, water, lava/acid), Samus experiences a different acceleration. This changes Samus' speed downwards by this same amount every frame. There are a couple exceptions, for example if she is at her fall speed cap (see next section) or when changing directions (where her speed is first zeroed).

Region Medium Acceleration
NTSC Air 0.1C
NTSC Water 0.08
NTSC Lava/acid 0.90
PAL Air 0.28
PAL Water 0.0999
PAL Lava/acid 0.0ACC


Falling

When falling, there is a maximum fall speed allowed for the pixel value. If Samus' fall speed hits this pixel value, falling further will not increase speed. The fall speed cap ignores subpixel. Since Samus' speed is usually zeroed upon hitting the peak, there is a "usual" value for the subpixel at the fall speed cap. This can be different, though: For example, if Samus falls from air into water, the subpixel will most likely be different.

On NTSC, the fall speed cap is 5 pixels. On PAL, the fall speed cap is 6 pixels.

Since there is a "usual" subpixel value for the fall speed cap, these are recorded below. These are, in essence, when falling from zero speed while fully immersed in the medium.

Region Medium Usual Fall Speed Cap Ramp
NTSC Air 5.08 46
NTSC Water 5.00 160
NTSC Lava/acid 5.07 143
PAL Air 6.018 39
PAL Water 6.0939 161
PAL Lava/acid 6.07F4 143


Rising

For jumping, Space Jump and Spring Ball behave as if jumping from the ground (even if performing a mid-air spring ball jump). A walljump, though, is slightly different.

Note with Speed Booster equipped, jumping with a non-zero dash speed changes the initial velocity. The relationship is somewhat complicated, see the next section.

Region Medium Jump type Velocity Ramp HGBFS
NTSC Air Normal 4.E0 46 111.018
NTSC Air Hi-Jump 6.00 56 167.94
NTSC Air Walljump 4.A0 44 100.01C
NTSC Air Walljump with Hi-Jump 5.80 52 141.0C
NTSC Air Bomb Jump 2.C0 27 35.F4
NTSC Water Normal 1.C0 56 49.E0
NTSC Water Hi-Jump 2.80 80 101.40
NTSC Water Walljump 0.40 8 1.02
NTSC Water Walljump with Hi-Jump 0.80 16 4.40
NTSC Water Bomb Jump 0.01 2 0.018
NTSC Lava/acid Normal 2.C0 80 108.EF
NTSC Lava/acid Hi-Jump 3.80 101 175.FA
NTSC Lava/acid Walljump 2.A0 76 99.51
NTSC Lava/acid Walljump with Hi-Jump 3.80 101 175.FA
NTSC Lava/acid Bomb Jump 0.01 3 0.017
PAL Air Normal 5.55552 39 112.24064
PAL Air Hi-Jump 7.13056 48 169.29952
PAL Air Walljump 5.25600 36 101.16384
PAL Air Walljump with Hi-Jump 6.28928 43 142.39680
PAL Air Bomb Jump 3.19456 23 36.28672
PAL Water Normal 2.06400 57 59.48028
PAL Water Hi-Jump 3.00000 82 121.34712
PAL Water Walljump 0.19456 9 1.21316
PAL Water Walljump with Hi-Jump 0.39168 17 5.04168
PAL Water Bomb Jump 0.04864 3 0.07271
PAL Lava/acid Normal 3.19456 80 130.33492
PAL Lava/acid Hi-Jump 4.13056 101 211.10104
PAL Lava/acid Walljump 3.06964 75 119.06316
PAL Lava/acid Walljump with Hi-Jump 4.13056 100 211.10104
PAL Lava/acid Bomb Jump 0.04864 3 0.06964
Any Any Shinespark 14.xxxxx 2 N/A

Note shinesparks have a cap on the pixel value of 14 (in both NTSC and PAL, in any medium). The first frame will be 7 pixels, and all remaining will be 14 pixels. The subpixel, though, continues to accelerate with a quadratic relationship with respect to the given acceleration values in region and medium above. Thus, for example, on NTSC in air, the subpixel acceleration is: 0.1C, 0.38, 0.54, 0.70... This gives subpixel velocity values of 0.1C, 0.54, 0.A8, 0.18... For most RTA purposes, this is effectively random: Some frames will move Samus 14 pixels, and some 15 pixels.

The subpixel pattern does follow a closed loop, readily determined by the above. The length of the loop is as follows:

Region Medium Jerk (subpixels) Length of loop (frames) Distance before next loop (pixels)
NTSC Air 0.1C 128 1848
NTSC Water 0.80 64 920
NTSC Lava/acid 0.90 512 7416
PAL Air 10240 64 920
PAL Water 2457 131072 1900536
PAL Lava/acid 2764 32768 475128

Compared with Run Speed

Air Physics

Air jump velocity.png

Air jump height.png

The height shown is the height in which Samus could jump and land on, assuming she remains in a spin jump pose. Breaking spin and aiming down will gain an extra 2 pixels.

The dashed lines indicate the jump without Speed Booster (or with zero dash frames).

Water Physics

Water jump velocity.png

Water jump height.png

The dashing distance is required to be in air physics before entering water physics. After entering the water, additional frames do not contribute to jump height.

The air and water plots have the same axes, so they can easily be compared.

Writeup from FreyasSpirit on why this chart is non-linear

See also

Compared with Run Speed

Air Physics

Air jump velocity.png

Air jump height.png

The height shown is the height in which Samus could jump and land on, assuming she remains in a spin jump pose. Breaking spin and aiming down will gain an extra 2 pixels.

The dashed lines indicate the jump without Speed Booster (or with zero dash frames).

Water Physics

Water jump velocity.png

Water jump height.png

The dashing distance is required to be in air physics before entering water physics. After entering the water, additional frames do not contribute to jump height.

The air and water plots have the same axes, so they can easily be compared.

Writeup from FreyasSpirit on why this chart is non-linear

See also