Skip to content
Molly edited this page Oct 12, 2024 · 9 revisions

Ultras are one of the main ways to gain high horizontal speed in Celeste and are therefore ubiquitous in TASes. A lot of terminology surrounding ultras is quite vague and inconsistent, so this page aims to give a comprehensive overview of ultras and various mechanics related to them.

Mechanics

Ultras are made possible and beneficial by the combination of a few mechanics:

High speed dashes

Note

High speed down-diagonal dashes are sometimes referred to as ultras by RTA players, even when they do not involve gaining speed by landing an ultra. When such dashes are beneficial in TAS strats without being used to land an ultra (often because friction does not apply during dashes), TASers usually only refer to them as down-diagonal dashes.

When the player initiates a dash whose DashDir is not strictly vertical, Madeline's current liftboost is added to her current speed. If the horizontal component of the resulting speed is greater than the minimum horizontal speed granted by dashes (240 for horizontal or 169.71 for diagonal), Madeline will keep that resulting speed instead of being assigned the minimum, allowing preservation of high horizontal speed into the dash. The vertical component of the dash's speed is not affected.

Speed preservation from down diagonal dashes

When a dash ends naturally, if DashDir has no downwards component, Madeline's speed is set to a fixed value. This happens if the dash was horizontal or upward to begin with, or if a down diagonal dash was performed on the ground or collided with the ground during the dash (see Landing an ultra). However, if DashDir is still down diagonal (or straight down) when a dash ends, Madeline's speed is unchanged.

Landing an ultra

Whenever the player dashes or uses a red booster, once the dash direction is determined, Madeline's DashDir variable is set to that direction. This will be preserved until another dash is initiated or it is modified by the following process:

If Madeline collides with the ground while DashDir is set to a down diagonal direction and Madeline has downward speed, or if the player performs a down diagonal dash while already on the ground, the following things happen:

  • DashDir is changed to horizontal
  • Madeline's horizontal speed is multiplied by 1.2
  • Madeline crouches

This is referred to as landing an ultra, or simply as an ultra. In a TASing context, the term "ultra" almost always refers to this specific mechanic, although in an RTA context, the term is sometimes applied more broadly to some of the things in the upcoming sections.

Note

Colliding with the ground is not the same as simply being on the ground. Colliding happens if the game tries to move Madeline into the ground (e.g. if Madeline is 2 pixels above the ground and has enough downward speed to be moved down by 3 pixels in the current frame). Simply being on the pixel directly above the ground is not colliding and does not result in landing an ultra. Since jumping/coyote, dash refreshing, and stamina refreshing are based on being on the ground, it is possible to touch the ground, regain resources, and jump without ever landing an ultra even if DashDir is down diagonal. (Particularly in an RTA context, this often occurs when buffering a jump after a down diagonal dash, but buffering is neither necessary nor a guarantee to avoid landing an ultra.)

Applications

The above mechanics are enough to perform a stereotypical ultra, but they also can be combined with other mechanics, resulting in different forms of ultras.

The stereotypical ultra

The stereotypical sequence most commonly referred to as an ultra is to:

  1. Obtain a large amount of horizontal speed (e.g. from a hyper).
  2. Dash down diagonally in the appropriate horizontal direction, preserving the high speed into the dash.
  3. Wait for the dash to end naturally. The high speed is preserved afterwards because DashDir is down diagonal.
  4. Collide with the ground to land the ultra, multiplying the horizontal speed by 1.2.
  5. Jump to get in the air for the lower friction and to add an extra 40 speed from the jump.

An optimal ultra from a hyper uses the following inputs:

14,R,Z
# hyper on the last possible frame to be able to dash immediately
1,R,J
15,R,D,X
# collide with the ground here
1,R,J

If the ground that Madeline will land on is too high, the down diagonal dash has to be delayed, losing some speed to friction, to allow Madeline to gain enough height so that the dash will end before colliding with the ground. If the ground is too low, Madeline will have to fall for a few frames after the end of the dash, also losing some speed to friction. Fastfalling helps to hit the ground as soon as possible.

Cancelling the dash

Instead of waiting for a down-diagonal dash to end naturally before colliding with the ground, the dash can be cancelled early. This is often beneficial for two purposes:

  • keeping the speed gained from a grounded ultra, since a horizontal dash naturally ending sets Madeline's horizontal speed to 160
  • getting a different trajectory than that of a down-diagonal dash, when it would be impossible or sub-optimal to land an ultra using the down-diagonal trajectory -- applications of this trajectory change usually follow under the "delayed ultra" umbrella term

Anything that sets Madeline's state can potentially be used to cancel a dash. The following are some commonly used methods:

  • Cornerboosts -- the most common method to perform a delayed ultra. That term is often used to refer to this scenario specifically
  • grabbing a holdable -- the most common method to keep speed from a grounded ultra
  • bouncing on a pufferfish, ice ball, snowball etc.
  • passing through a horizontal screen transition with binocular interaction storage
  • ending (usually skipping) a cutscene

Grounded ultras

If Madeline collides with the ground during a down diagonal dash or performs a down diagonal dash while already grounded, the ultra boost is applied while the dash is still ongoing. This is known as a grounded ultra, sometimes abbreviated to gultra. Landing an ultra changes DashDir to horizontal, so allowing the dash to naturally end will reset Madeline's horizontal speed (see Speed preservation from down diagonal dashes). Therefore, grounded ultras are usually used for a short burst of horizontal speed just before a bottleneck.

There are two general methods to keep the speed gained from a grounded ultra, which both require specific circumstances that aren't commonly encountered.

Grounded ultra cancel

It may be possible to cancel the dash state early after a grounded ultra, which is known as a grounded ultra cancel or gultra cancel. See Cancelling the dash for some possible methods of achieving this.

Grounded ultra retained speed

A horizontal dash naturally ending resets speed, but not retained speed. Therefore, the speed gained from a grounded ultra can be kept after the dash ends if events happen in this order:

  1. After landing a grounded ultra, Madeline collides with a wall, so the speed becomes retained speed.
  2. The dash ends, resetting speed, but not retained speed.
  3. Madeline becomes no longer behind the wall before the retention timer expires, so the retained speed is refunded.

Madeline no longer being behind a wall is most commonly accomplished using solids that move (e.g. swap blocks) or disappear (e.g. lock blocks). She can also move above the wall by hypering or climbjumping, though this option is limited by the retention timer only being 4 frames, which only allows enough time for a climbjump to clear a 1-tile wall with a rounding error.

Flat ground movement

Repeated grounded ultras are the fastest way to move along completely flat ground if dashes are available. From a standstill, the optimal sequence for large distances is

6,R,Z
1,R,J
7,R
1,R,J
# repeat the following lines as often as necessary
14,R,D,X
1,R,J

The main repeated movement here does a hyper on the very last frame of the dash to get 325 speed, then immediately performs a down diagonal dash to land a grounded ultra, giving 390 speed for the remainder of the dash before hypering again to complete the loop. To accelerate to high speed quickly at the start, a hyper bunnyhop is performed. The hyper at the start is delayed enough that dash cooldown runs out immediately after the bunnyhop, giving maximum speed into the first grounded ultra (which will be faster than the subsequent ones). However, this sacrifices a small amount of distance at the start. If only a single grounded ultra will be performed and will last at most 12 frames, the optimal sequence is

4,R,Z
2,R,J
8,R
1,R,J
12,R,D,X

This gets to hyper speed as early as possible, but loses slightly more speed to friction before the grounded ultra.

Note

If the ground is not perfectly flat, it is often possible to make use of height differences and corners to set up an ultra chain instead.

Delayed ultras

The term delayed ultra, or dultra for short, is used somewhat imprecisely to refer to certain situations that deviate from the stereotypical ultra pattern. It usually involves either cancelling a down-diagonal dash to alter Madeline's trajectory or intentionally avoiding landing an ultra to save the speed boost for later, or possibly both.

Keeping DashDir down diagonal for a long time after a dash ends, regardless of how the dash ended, is sometimes referred to as having an ultra "stored". This can be useful e.g. in minimum dashes TASes, where if a required dash can be done down diagonally, the stored ultra can be taken advantage of later to gain some extra horizontal speed where another dash would otherwise be required. To keep an ultra stored only requires Madeline to not collide with the ground or dash non-down-diagonally -- she can still perform any other action, including touching the ground to regain dashes and stamina, and there is no maximum amount of time for which an ultra can be stored (i.e. DashDir never automatically resets).

Ultra chains

Because ultras provide a multiplicative speed boost, consecutive ultras can be used to build very large amounts of horizontal speed, as long as Madeline's horizontal speed is not set to a fixed value (by e.g. a hyper) in the process. Cornerboosts are also helpful in ultra chains, both to gain additional speed and to cancel dashes.

Other terminology

Most ultra-related terminology is a specific application of the general concepts described above.

Coyote ultra

Refers to a high speed down-diagonal dash that causes Madeline to touch ground but not collide with it, followed by a jump in coyote time after the dash ends. This tech does not inherently involve landing an ultra, but it may be part of a delayed ultra.

Cutscene ultra

Refers to keeping grounded ultra speed by cancelling the dash by skipping a cutscene.

Door ultra

Refers to using retained speed to keep grounded ultra speed using a disappearing solid, most commonly a lock block or temple gate.

Entity/tech ultra

Terms like "bird ultra", "puffer ultra", "super ultra", etc. usually refer to getting high horizontal speed from that entity or tech and immediately dashing down-diagonally, which may or may not be followed by landing the ultra.

Some entities are used specifically to cancel down-diagonal dashes while keeping the horizontal speed from them, which may be related to a delayed or grounded ultra. Terms like "snowball dultra" or "puffer gultra" refer to this.

Heart ultra

Refers to getting high speed from a horizontal PointBounce from a heart, shielded feather, or seeker bump, and using that speed for a high speed down-diagonal dash.

While similar in TASing contexts, these are often treated as unique from other entity ultras in RTA contexts because hearts and shielded feathers are collected when the down-diagonal dash is buffered, which may or may not be the desired interaction.

Instant delayed ultra and friends

A collection of terms describing how quickly a delayed ultra is landed after cancelling a dash in a way that gives Madeline upwards speed -- most often using a climbjump. These terms were deliberately named to be confusing, and the specific number of frames (e.g. "7f landing") can be used instead for clarity.

  • An "instant delayed ultra" lands on the first frame Madeline's speed changes from upwards to downwards, which is 1-2 frames after she clears a wall. If this first frame has very low downwards speed, it may be more optimal to use slowfall to get more downwards speed.
    • A landing that uses slowfall as described above is still considered "instant" even if that delays getting downwards speed for a frame.
    • A landing that does not use slowfall is considered "instant instant" if the first frame of downwards speed is low enough (typically 0 + rounding error).
  • A "delayed instant delayed ultra" is an instant delayed ultra that either cancels the dash with a cornerboost and then lands on a different ledge, or pausebuffers a jump press to get slowfall without the jump input causing something else (usually jumping away from a wall). This used to be ambiguous, but now largely means only the former, presumably because of the pausebuffering timer change in 1.4.
    • A "delayed instant instant delayed ultra" is like the above, but with respect to an instant instant delayed ultra.

Roof ultra

When two adjacent rooms have an entity (not SolidTiles) acting as the floor and those two rooms' floors are at the same height, a high speed down-diagonal dash can get Madeline corner-corrected past the floor in one room as she enters the screen transition, resulting in her being one pixel inside the floor in the other room after the transition. She can then climbjump back out of the floor and land a delayed ultra. The name refers to the roof tiles in the 3A Oshiro section, where this tech was discovered, but it can theoretically be done with any non-SolidTiles floor.

This is only possible when the floors are entities, since the floor of the second room won't be loaded while Madeline is in the first room. SolidTiles are always loaded no matter what room they're in.

Ultra Jump

Refers to the "Every Jump is an Ultra" Extended Variant.

Tooling Documentation

Celeste TAS

TASing Reference

General Gameplay Techniques

Mechanics and Engine Functionality

Entity Interactions

Clone this wiki locally