Speed in Super Mario 64 refers to the number of Units that Mario will move in 1 Frame. (For reference, Super Mario 64 is a 30 Frame-Per-Second Game. Therefore, 1 Frame is equivalent to 1/30th of a Second.)
Speed is both measured Horizontally, and Vertically. In certain circumstances, the distance (units) Mario moves isn't necessarily equivalent to his speed. For a visual explanation on that subject, visit Pannenkoek2012's detailed video explanation below
All of Mario's Horizontal Movements (on both the X & Z Axes; Forwards, Backwards, & Sideways Movement) are handled separately, but are not independent. The magnitude of an input on the joystick directly correlates to the effect of all his horizontal movements. For example, tilting the joystick forwards at its maximum magnitude (while Mario is also facing forwards) allows Mario to accelerate forwards as fast as possible. In this same scenario, holding the joystick to the left or right at its maximum magnitude (while Mario is also still facing forwards) allows Mario to accelerate Sideways as fast as possible. Although Horizontal Speed Acceleration and Deceleration are directly proportional to the amount of Joystick Tilting being performed, there are exceptions. Examples include: Bonks, Canceling Ledge Grabs, Being Shot out of a Cannon, Getting Hit/Thrown, Wind, etc.
Most of Mario's Vertical Movements (on the Y Axis) are completely independent from joystick movement. (The only exceptions are Swimming and Flying.) There are predetermined values of acceleration and deceleration, both of which depend on the action that's performed. For certain actions, Vertical Speed is directly proportional to the amount of Horizontal Speed that Mario obtains.
The difference between Horizontal Speed and Vertical Speed depend on whether Mario is Grounded or not. Regardless of how it may seem, Vertical Speed is only active when Mario is not Grounded.
Example - Horizontal Speed vs. Vertical Speed:
Let's have Mario slide down an extremely steep slope. His vertical position drastically changes compared to his horizontal position, so surely he must have a large amount of negative vertical speed, right? Wrong. If Mario were to never leave the slope, regardless of his vertical movement, he will only have Horizontal Speed, albeit very little speed.
Factors that Affect Speed:
- Floor (Surface/Ground) Type: Non-Slippery Floors, Slippery Floors, Water, Lava, Ice (Regular, Burning), Sand (Regular, Sand Pit, Sinking Sand, Quicksand), etc.
- Floor Steepness
- Special Caps: Wing Cap (Flying), Metal Cap (Falling, Walking)
- Swimming: Slow, Fast, Shell, Holding Object
- Holding Object: Small Object, Big Object
- Predetermined Speeds for Certain Actions: Cannon Shots, Being Thrown, Wind, Knockback (Enemy, Bonk, Canceled Ledge Grab, Jumpkicking Wall), Etc.
The Mechanics of Speed:
- Speed Cap
- The minimum/maximum value of speed that Mario obtains when performing a certain action. There are Speed Caps for both Horizontal and Vertical Actions. Speed Caps can both be Positive or Negative.
- Acceleration/Deceleration Cap
- The minimum/maximum value of speed that Mario can accelerate/decelerate per frame when performing a certain action. Acceleration Caps are always positive. Deceleration Caps are always negative.
- Predetermined Initial Speed
- The predetermined initial value of speed that Mario's actions begin with.
Side Note: Speed Mechanics
Certain Actions have
No Theoretical Limit for the amount of Speed that can be obtained, which is discussed in the
Hyperspeed section.
Example - Properties of a Speed Cap:
This example features the Speed Cap for Crawling.
Data of this can be viewed on this Imgur Post. Initiation of crawling movement begins with 0 Speed, however, data of initiation is not shown on the graph. Mario's crawling speeds oscillate with a predetermined difference of ~1 Unit for each Sub-Cycle. Several Sub-Cycles are repeated until a value near the Speed Cap is reached. You can see Mario's average speed increases in a linear-like fashion per Cycle. Once a Cycle has been completed, a new Cycle will begin. Cycles are repeated until the Speed Cap of that action has been reached. For crawling, 1 Full Cycle is equivalent to 4 Cycles. This process will continue in the same manner indefinitely, unless the action changes, or is stopped.
Two Types of Speed Caps:
- Absolute Speed Cap
- The absolute minimum/maximum value of speed that Mario obtains when performing a certain action. There are no conditions during this action that can exceed this value.
- Convergent Speed Cap
- The minimum/maximum value of speed that Mario's speed will converge to when performing an action.
Example - Two Types of Speed Caps:
- Absolute Speed Cap: While holding A, when Mario lands in water from a falling state, he will water-plunge (landing in water) for a certain number of frames (the amount of frames depend on the type of falling state in which enters the water) and then he enters his slow swimming (flutter kick) state. (Entering his fast-swimming state is possible with correct timing of A presses.) If Mario has speeds >= 134 just before the first frame of water-plunging, ~1/4th of his original speed is retained. Water-pluging will cause his speed to decrease by 1 Unit per frame. After the water-pluging state is over, he enters his slow swimming state. No matter how much speed was retained, his speed is set to 27.5 Units. This is the Absolute Speed Cap for slow swimming. It's not possible to obtain any value higher than that.
- Convergent Speed Cap: This example continues from the Water-Pluging example above. Once Mario begins to swim slowly, his speed will also begin to decelerate. That's just how the mechanics of slow swimming work. His speed will decelerate from 27.5 Units to 12 Units. 12 Units is the Convergent Speed Cap for slow swimming.
Both
General Forward Movement & Long Jumping are two examples of certain actions that have no theoretical limit for the amount of obtainable speed. For these actions, Mario will reach their Convergent Speed Caps respectively, and can
continue gaining speed beyond them. (Remember: General Forward Movement refers to movement while Mario is in mid-air. If Mario was able to maintain his vertical position while in mid-air, his horiztonal speed would continue to increase indefinitely. The best example that demonstrates this mechanic is the glitch called the
Pedro Spot.
In General Forward Movement & Long Jumping, the Maximum Acceleration Value Per Frame is
1.15 Units prior to reaching the Convergent Speed Cap. Once the Speed Cap is reached, Mario's acceleration value changes from
1.15 Units to
0.15 Units.
Examples - All Possible Speed Caps:
- Horizontal - Absolute Positive: 48 Units (Running Om Steep Slopes After Dive Rolling With Speeds >= 48)
- Horizontal - Absolute Negative: -8 Units (Canceled Ledge Grab)
- Horizontal - Convergent Positive: 32 Units (Running While On Fire)
- Horizontal - Convergent Negative: -0.1 Units (Landing After Knockback From A Bonk)
- Vertical - Absolute Positive: 65 Units (Triple Jump)
- Vertical - Absolute Negative: -75 Units (Falling)
- Vertical - Convergent Positive: N/A (Doesn't Exist)
- Vertical - Convergent Negative: -75 Units (Falling)
Side Note - Absolute and Convergent Speed Caps for Vertical Velocity:
Whenever Mario is not grounded, his vertical speed will naturally decelerate. This is done to mimic gravity within the game. Mario's Terminal Velocity for Falling is -75 Units. Falling is both an Absolute and Convergent Vertical Speed Cap. Mario will never fall faster than -75 Units Per Frame. This makes -75 Units an Absolute Vertical Speed Cap. If Mario was able to fall for an indefinite amount of time, and his initial vertical speed value was 0, his vertical speed would eventually converge to -75 Units. This makes -75 Units a Convergent Vertical Speed Cap. Gravity is also the reason behind there being no Convergent Vertical Positive Speed Cap. Mario will always decelerate when in mid-air, causing any positive vertical values of speed to decelerate into negative values.
To-Do: List All Possible Speed Caps.
To-Do: List All Possible Acceleration Values.
Predetermined Initial Speed:
For nearly every action Mario has, there is an initial speed for them. There are actions that Mario can perform regardless if his speed is < 0, = 0, or > 0. There are actions that can even be performed beyond their Speed Cap. It's rather redundant to refer to every possible starting value of speed as an Initial Speed, therefore, the primary focus of Initial Speeds will be on Predetermined Initial Speeds.
Example - Predetermined Initial Speed:
Mario's Predetermined Initial Speed for a Ground Pound is -50 Units. In other words, no matter the conditions, he will always start a Ground Pound with that speed. (Although he floats in the air for several frames, his speed becomes -50 Units on the frame after Z is pressed.) Predetermined Speeds cannot be manipulated.
To-Do: List All Possible Predetermined Initial Speeds.