Item Sliding

Discovered by Girtana1, figured out by Susslord

Trick Description

In Wind Waker HD, Link can move around while aiming with an item in first person mode. For some unknown reason, 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.

How To

  1. Pull out an item that can be walked around with in first person.
  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.
  5. From here there are multiple ways to cancel your speed or release it if you're charging up against a wall
    • Pulling out the skull hammer or a bomb will lock your current speed.
    • Pressing A to cancel the item will stop your speed completely
    • Targeting with ZL will lock Link's speed. 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.
    • If you do not have bombs or the skull hammer, it is best to tap ZL to stop gaining speed once you have enough.
    • 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.
    • If you home buffer ZL and B together, Link will swing his sword and his momentum will go in whatever direction he's facing; however, you will not get a jump out of it. This is especially useful for item slides that need a precise angle to be executed.

Notes

  • Depending on how much speed you're gaining, if you charge up for more than 3-5 seconds against a wall and attempt to release your speed, you will most likely crash.
  • If you build up speed for more than 8 seconds in any given area, the game will 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:

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 06/22/2017 – Vanondorf