Horizontal Speed

From A complete guide to Super Metroid speedrunning
Revision as of 19:51, 16 February 2021 by UNHchabo (talk | contribs) (Slopekiller)
Jump to: navigation, search

Introduction

The dash value is added towards the momentum value to create the speed value. The speed value indicates how many pixels per frame Samus will move.

Here's an example referencing information below: Assuming a dash value of 0, the horizontal speed of a normal jump on NTSC is 1.25 pixels per frame.

An armpump will shift Samus forward one pixel.

In summation, Samus's total speed in pixels per frame = dash value + momentum value + armpump value (if it applies - 1 if it does, 0 if it does not).

Dash

NTSC

The maximum dash value without Speed Booster equipped is 2.

The maximum dash value with Speed Booster equipped is 7.

4096 subpixels (0.0625 pixels) are added to the dash value for every frame dash is held.

Without Speed Booster, it takes 32 frames to gain full dash amount. This is a little over 7 Tiles (No Slopes).

With Speed Booster, it takes 112 frames to gain full dash amount. This is a little over 37 Tiles (No Slopes).


PAL

The maximum dash value without Speed Booster equipped is 2.26112.

The maximum dash value with Speed Booster equipped is 8.

5120 subpixels (0.078125 pixels) are added to the dash value for every frame dash is held.

Without Speed Booster, it takes 31 frames to gain full dash amount.

With Speed Booster, it takes 103 frames to gain full dash amount.


Both

It is possible to maintain the dash value for all types of momentum except for turnaround and moonwalk (tool-assisted only).

The dash value is immediately reset if Samus becomes submerged in sand, or submerged in lava with Speed Booster equipped. The dash value cannot be increased in quicksand nor with Speed Booster equipped in lava. The dash value can be increased in lava if Samus has Gravity Suit equipped without Speed Booster equipped.

Momentum

The momentum values can be read as both the amount of pixels Samus moves per frame (assuming a dash value of 0), and 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.

Excluding moonwalk, all of these values are different (including shinespark) if Samus is underwater without Gravity Suit equipped.

All animations are twice as long when they take place underwater without Gravity Suit equipped.

Momentum is forced to decrease to 0 if Samus performs a turnaround, or if Samus runs forward and then forward is released. The latter is the reason "stuttering" works, and is the reason why, with tools, the dash amount can be increased in a shorter distance than what is humanly possible.

Morphing and unmorphing animations ignore the momentum value and only utilize the dash value.

"Ramp" means the amount of frames the source of momentum takes to reach the amount listed in the column, which is its standard amount. Technically, all sources could have a 'minimum' amount of 0, and a variable 'maximum' amount if they have oscillating values.

All ramp amounts assume that Samus's starting momentum is 0.


NTSC

Movement Amount Ramp Notes
Walking 2.49152 12 This value + dash value = running speed; when momentum value bypasses 2 during the ramp-up, the momentum value will immediately jump to 2.49152
Morphing Ball 3.16384 5 This value + dash value = "mockball" speed; increases by 0.49152 per frame and upon reaching 3.49152, immediately drops to 3.16384
Jump 1.16384 2 Same values apply if performing a controllable Spring Ball jump
Spinjump 1.24576 2 It is faster to stay in spin for as long as possible before breaking spin to perform actions (such as mockballs)
Bomb jump 3 16 Dash can be applied if speed is being maintained when the bomb jump is performed
Falling 1.24576 2 Oscillates between 1 and 1.49152; same values apply if morphed, performing a downback, or performing an uncontrollable Spring Ball jump
Damage boost 5.24576 8 Oscillates between 5 and 5.49152; dash can be applied if speed is being maintained ("speedkeep") when the damage boost is performed
Knockback 5 4
Turnaround 0.24576 1 Oscillates between 0 and 0.49152
Moonwalk 0.32768 1
Shinespark 15 64 Starts at 8, then takes 64 frames to accelerate to 15


NTSC (underwater without Gravity Suit equipped)

Movement Amount Ramp Notes
Walking  ?  ?
Morphing Ball 2.49152  ?
Jump 1.16384  ? Same values apply if performing a controllable Spring Ball jump
Spinjump 1.24576  ?
Falling 1.24576  ? Same values applies if performing a downback or performing an uncontrollable Spring Ball jump
Falling (morphed) 1.32768  ?
Damage boost 0.32768  ?
Knockback 5 4
Turnaround 0.24576 1 Oscillates between 0 and 0.49152
Moonwalk 0.32768 1
Shinespark 15 224 Starts at 8, then takes 224 frames to accelerate to 15


PAL

Movement Amount Ramp Notes
Walking 3.19456 15 This value + dash value = running speed
Morphing Ball 3.58880 5 This value + dash value = "mockball" speed
Falling 1.32768 2 Same values apply if performing a jump, a controllable Spring Ball jump, or falling (including downback)
Falling (morphed) 1.13056 2 Same values apply if performing an uncontrollable Spring Ball jump
Spinjump 1.42496 2 It is faster to stay in spin for as long as possible before breaking spin to perform actions (such as mockballs)
Bomb jump 3.39168 17 Dash can be applied if speed is being maintained when the bomb jump is performed
Damage boost 6.29440 8 Oscillates between 6 and 6.58880; dash can be applied if speed is being maintained ("speedkeep") when the damage boost is performed
Turnaround 0.29440 1 Oscillates between 0 and 0.58880
Moonwalk 0.39168 1
Shinespark 15 45 Starts at 8, then takes 45 frames to accelerate to 15

Slopes

Slopes apply a multiplier to reduce Samus' speed as she travels over them, either 75% or 50%.

To avoid this, you can use a technique called Slopekiller, which will cancel out the multiplier. Although it's possible for humans to do this, it's considered TAS-only because it requires frame-perfect inputs and pixel-perfect positioning.

See also