Item Sliding

Discovered by Girtana1, figured out by Zootysuzy

Trick Description

Item sliding is the most powerful glitch currently known in this game, allowing link to gain speed indefinitely at an exponential rate. In Wind Waker HD, Link can move around while aiming with an item in first person mode. If Link is walking in a direction and then tries to walk in the opposite direction with the slightest tilt of the analog stick (otherwise known as ESS position), his speed ends up increasing exponentially in the direction he was first walking. This allows Link to reach speed values that are so high, the game will crash if the speed is released too late or charged for too long.

Tutorial Videos

How To Charge Speed

  1. Pull out an item that can be walked around with in first person. (Grapple, Boomerang, Bow, Hookshot)
  2. Begin holding any direction you wish.
  3. Pause, then tilt the analog stick as slightly as possible in the exact opposite direction.
  4. Unpause and watch your speed increase.

This is also possible to perform unbuffered. Hold a direction, then quickly switch to slightly in the opposite direction.

After -45 speed you can release analog stick or convert to positive speed and the item slide will autocharge regardless of inputs.

Link will continue charge speed for as long as he is in first person.

Positive Speed VS. Negative Speed

The speed that is gained while performing an Item Slide using the above method is considered "negative speed" by the game. Negative speed and positive speed give different properties when it comes to Link clipping through certain surfaces and Link entering the water, along with sending Link in the opposite direction you would expect for the item you use after targetting. Targetting with positive speed using Grapple, Boomerang, or Bow will send link to the right instead of the left. Targeting with positive speed using Hookshot will send link to the left instead of the right.

Switching from negative to positive can be done by performing an itemslide in any direction, building a small amount of speed (roughly 50 units) and then hold the direction link is moving in, this direction should be opposite the ess held and does not need to be ess itself. To convert back to negative simply hold opposite the direction link is moving in. It is important to switch the stick direction by going through the center of the control stick, trying to go around the stick in a rolling motion will change links direction of motion and fail to convert. To convert between positive and negative in 3rd person, hold target and 1) to convert from negative to positive hold the direction link is moving in, 2) to convert from positive to negative, hold the direction opposite to the direction link is moving in.

Canceling speed

In first person:

  • The most useful way to cancel speed after charging an item slide is to press A to exit first person.
  • In addition, if you have the hookshot or grapple, you can fire the item to stop speed without exiting first person.

There are numerous actions that can cancel speed while in third person. Here are a few among many:

  • Performing a roll, backflip, sidehop, or jumpslash
  • Pulling the wind waker
  • Entering first person
  • Jumping off of a ledge
  • Sidling a wall

Locking speed

Sometimes we want to reach a certain speed and then exit first person while keeping our speed. All of the following options will accomplish this:

Pressing ZL:

  • This will send link perpendicular to his facing angle. The direction link goes (left vs right) depends on the item he is holding, postive vs negative speed, and whether an inverted hop was performed.
  • If you are using the Grapple Hook, Boomerang, or Bow, it will shoot Link to the left; if you're using the Hookshot it will shoot him to the right. If you're using the boomerang, pressing and then releasing target will cancel your speed completely.

Entering the water (only if link has negative speed):

  • This can be used to perform a superswim
Item Slide Superswimming map

Superswim map

Pulling bomb or skull hammer:

  • After doing so link will keep traveling in the same direction he was while in first person. This is much easier for controlling link than pressing ZL

  • The angle Link will be facing after pulling out the skull hammer or a bomb out of an item slide is the angle Link was facing when he last targetted or did a spin attack.

Inverted Item Slide

An Inverted Item Slide will change the direction that Link is sent after targeting. Whereas with a normal forward Item Slide using the Grapple Hook, Boomerang, or Bow, targetting will send link to the left, an Inverted Item Slide forward using these items will send link to the right. Similarly, a normal forward Item Slide using the Hookshot sends link to the right, where an Inverted Item Slide forward using Hookshot sends link to the left. The speed that is gained while performing an Inverted Item Slide is negative - just like a normal item slide.

To do an inverted item slide:

  1. Pull out an item that allows walking in first person.
  2. Hold ZL to target.
  3. Side hop in the direction that the item would usually send you after a normal item slide (left if you are using the Grapple Hook, Boomerang, or Bow, right if you are using the Hookshot).
  4. While you are mid-air during the sidehop, release the ZL target, this will make link move back into the first person item view.
    • Do not exit the first person item view after performing these steps, otherwise you will have to set up the inverted item slide again.
  5. Begin your item slide as normal by walking in a direction, pausing, holding ESS opposite the direction you chose to walk, then unpausing.
    • Hitting ZL to target during this new item slide will send you in the direction opposite what you would expect with a normal Item Slide with the item you chose.

Sword Slash Hops

  • Pressing B will make link swing his sword in whatever direction you're holding the control stick with all of his momentum. If you aren't holding the control stick, he'll swing it in the direction his momentum is currently headed.
  • If you end up over a gap, Link will jump in mid-air after he finishes his sword swing as long as you are holding full on the stick in any direction.
  • If you hold ZL and press B together, Link will swing his sword and his momentum will go in whatever direction he's facing
  • If you hold ZL and press B together, Link will swing his sword and his momentum will go in whatever direction he's facing. This is especially useful for item slides that need a precise angle to be executed. Pressing ZL before B makes link shoot to the side before hopping, which requires item sliding into a corner to not fly right or left. To prevent this, either home buffer ZL and B together, or press ZL within a few frames after B.

Shield Crouching Jumps (Swordless)

This can be used to cross certain gaps consistently if you have a shield but no sword. While in third person during an item slide: if you crouch with the shield then Link will go back compared to his facing direction if you have negative speed, and directly towards where he is facing if you have positive speed.

This is useful for crossing the horeshoe platforms with an item slide.

Item Slide Clipping

At higher speeds the game has more issues calculating link's position which can lead to sequence breaks by bypassing collision

Ground Clips

Clipping through the ground requires a slope and is the most commonly used method for clipping. Every slope in the entire game leads to a ground clip at SOME speed. This clip requires charging either positive speed while facing down the slope, or negative speed facing up the slope. The speed value you clip at depends on the following factors:

  1. Facing Angle
  2. Speed Angle

Clipping process: All collision is properly checked at all times. Ground clips do not bypass any collision but can be used to go under collision. On the frame that link clips through the ground he will be teleported to a lower Y position while X and Z position will stay the same, thus going under the ground. The distance that link gets teleported downward is directly proportional to the speed value that he clipped at. At very high speeds he will go straight to the water. His horizontal speed will also drop by a fraction. On this frame link is still considered grounded and can perform all actions that he normally could while on the ground even if this new position is in the middle of the air. On the frame after, because link retains his item sliding speed, he will shoot in whatever direction he was traveling in. Several clips put link airborn under the ground, which means he will then travel off of a ledge and keep his speed for one frame before falling or jumping.

Clipping under water: If you have negative speed, this can lead to a superswim. Sometimes he will swim for only a single frame and then sploosh. If you have positive speed, because your speed is capped in the water he will swim for one frame, traveling only 18 units before surfacing.

Explanation for why you clip: This is not fully understood, but the current best hypothesis is that due to the game calculates the next Y value link should have based on the projection of the slope he is on in the direction he is facing if he has positive speed or opposite the direction he is facing if he has negative speed. Thus the higher speed he has, the farther along the projected slope he moves in one frame. For some unknown reason, the height he can get moved up in one frame is capped, thus you can only get displaced about 30 units above the ground, however if link is projected down a slope, you can get displaced to an indefinitel lower Y value based on how much speed you clip at.

Examples: Door Clip , Forbidden Woods Boss Key Skip , Quiver Clip

Corner clips

Clipping through a corner requires two misaligned walls that create a gap between them. Whether or not you will clip through a corner depends on the following factors:

  1. Speed value (positive vs negative does not matter), must be at least 35 units. It is possible to have an object (a bomb) push you more than 35 units in a frame to get the necessary displacement.
  2. Speed angle
  3. Position relative to the corner

Clipping process: The game will fail to check the collision of either wall that link is item sliding against. Link will not get teleported down as he does with ground clips. Instead he will go straight through the corner and maintain his height and all normal item sliding properties still apply.

Explanation for why you clip: Link has two different types of collisions: His bigger collision has a 35 unit radius and is turned off whenever he opens up a chest or a door. His smaller collision is pin-point and at the center of his body and is only turned off when opening doors. If a vector is drawn from link's current position to what a theoretical final position would be should he move for one frame, and a wall is in the way, link will travel in that direction and stop at the wall on the next frame. His big collision works differently. His big collision acts more like a spring that takes effect after the small collision check, to push link back to 35 units away from the wall he was pressed up against. Therefore, if a small gap exists in a wall, Link can travel through it as long as he has enough speed to pass clean through the gap, never passing within 35 units of the wall. As long as his small collision passes clean through the gap, it will not be stopped by the wall.

Examples: barrier skip , leafless trials skip

Item Sliding Speed Equation

Figured out by mralberto and bowserisbored

For a future TAS, it will be necessary to compute link's exact speed while item sliding. It is possible to use the following equations to calculate what link's speed will be on the next frame given his current speed and stick position. While aiming with a first person item, the speed equations are as follows:

  1. If you have positive speed: Next speed = 1.2 x (Current speed) - 9
  2. If you have negative speed and the stick is neutral: Next speed = 1.2 x (Current speed) + 9
  3. If you have negative speed and the stick is not neutral: Next speed = 1.2 x (Current speed) + 6 x (Stick position)

***NOTES: The Next speed is the speed on the next frame. Current speed is the speed value on the current frame. Stick position is the distance of the stick from neutral, calculated as the square root of both X and Y float values squared.

At a speed value of 45 (negative or positive) link's speed will neither increase nor decrease if stick position is not a factor. Under 45 speed holding neutral with negative speed, or having positive speed will cause link's speed to move towards zero. Over 45 speed holding neutral with negative speed or having positive speed will both cause link's speed to indefinitely increase, at least until the game crashes.

Crashing the Game

  • Max float speed value: If you build up speed for ≈ 13.2 in any given area, the game will crash due to going over the speed limit (the max float size):
  • Out of bounds crash: If you charge up for more than 3-5 seconds against a wall and attempt to release your speed towards the edge of the map, you will most likely crash, due to how it calculates what your position should be on the next possible frame. If you want to read the technical side of that, dragonbane0 did some research into why it happens, but for short it has to do with the renderer in very far OoB areas failing:

The game has a check (assertion) that your potential position is staying smaller than 100000000000000000000000000000000 (1.0*10^32) plus or minus on every axis. If it gets bigger, the game hangs forever voluntarily. On CEMU the function is either not implemented yet or doesn't halt execution, you can build up speed infinitely. The maximum speed possible then is 3.402823466(10^38) (max float size). It simply does not increase any further nor do you overflow/get infinity. If you reach that speed you stay at that level (takes like 8 seconds).

Now the way collisions seem to work is that the game casts a line between your old position and your new position every frame (old pos + speed value = new pos) and checks if there is any collidable wall/object in-between. If there is the game adjusts the new position to stay on the in-bounds side of the collision. So while a certain, not even that high, speed would just take you through the barrier, the check notices the barrier is in-between, and so you only be moved to the barrier. This sort of collision check seems to fail on some edges/stairs and uneven terrain (especially with higher speeds), and so the game doesn't detect any collisions. If you do this on a wall that leads to an OoB area and no further collisions are after it that might get detected, you will be moved the full amount of your speed value.(edited) After only like 3 seconds or so, your speed is so high that you get set to a location that is so far OoB that it simply cannot be rendered anymore. The renderer, at least, crashes in that case and you hardlock (both SD/HD). This also happens if you manually edit your position to such a high value. Since only one island is loaded at a time, locks can easily happen on the ocean if you shoot off one island. Since the terrain is very uneven, you also clip pretty often once you reach a high speed making it look like the speed crashed the game; in that case, however, it is often your position and not the speed that causes the issue.

Error message for too high speed/position on TWW SD (is checked before collision check):

"Failed assertion -1.0e32f < pmpos->x && pmpos->x < 1.0e32f && -1.0e32f < pmpos->y && pmpos->y < 1.0e32f && -1.0e32f < pmpos->z && pmpos->z < 1.0e32f in "dbgs_acch.cpp" on line 541"**

Last updated 07/02/2022 – azer67