Straining

Revision as of 05:10, 19 October 2018 by JoshDuMan (talk | contribs) (Adding in forwards and sideways equations, and described their general functionality. Plan on adding the X.99 tricks into the article soon.)

Straining is a technique that Mario can use at any point while in midair in most states. The technique involves how the joystick is angled relative to Mario's facing direction (which cannot be changed midair in most situations). Because of how the mechanic works, it can often become a trade-off of speed vs distance.

Technical explanation

When in the air, the game deals with Mario's intended movement in two directions- forward and sideways (when forward speed is negative, it indicates backwards speed). These two different directions behave differently from one another, although the two are not independent. The farther the joystick is held in a given direction, the less of the effect it has on the other. This is true all the way to the point where one direction is maxed, and the other direction is zeroed.

The following calculations allow you to find what the effects of straining will be, but are not separate equations. Both equations are calculated at the same time and use the same values. This is why the two are not independent.

Forwards Movement

Forward movement is cumulative where some speed can be added to the forward speed. The maximum speed that can be added to forwards speed in a given frame is 1.15, although this depends on speed and type of air movement.

The formula for forwards speed is-


Forward Speed = 1.5 * Stick Magnitude * cos(Angle from Forwards) - Drag


Where angle from forwards is the angle from a vector straight forwards to the joystick direction, and stick magnitude is the magnitude of the stick being held divided by the maximum value. In other words, if the control stick is pushed all the way, the magnitude is 1.

Drag depends on two things- whether or not you are long jumping and what your speed is. The values are-

Condition Drag
Forwards Speed ≤ 32, Non-Long Jump .35
Forwards Speed > 32, Non-Long Jump 1.35
Forwards Speed ≤ 48, Long Jump .35
Forwards Speed > 48, Long Jump 1.35
Backwards Speed ≥ -16 -.35
Backwards Speed < -16 -2.35

There's a couple important things to note from the drag table. Drag is never zero, you will always slow down if not straining. Drag is not linear, it only changes over certain barriers. The impact of this can create odd movement effects, like the 31.99 Trick. Lastly, the backwards speed drag when faster than -16 is so strong, you cannot actually accelerate faster than it. This creates a soft cap for backwards speed which prevents Mario from moving backwards fast (typically).

Sideways Movement

Sideways movement is a tad simpler than forward movement. Any sideways movement applied gives Mario sideways displacement, but not speed. This displacement is a max of 10 with pure sideways direction being held.

The formula for sideways displacement is-


Sideways Displacement = 10 * Stick Magnitude * sin(Angle from Forwards)


Where angle from forwards is the angle from a vector straight forwards to the joystick direction, and stick magnitude is the magnitude of the stick being held divided by the maximum value. In other words, if the control stick is pushed all the way, the magnitude is 1.

Uses

Although technically straining is always in use while in midair, there are times when it is very important.

  • While building speed in a Pedro spot or via Hyperspeed Grinding, Mario may need to strain in order to avoid breaking free prematurely. This sacrifices some of his speed.