Difference between revisions of "Ancilla glitches"

From ALttP Speedrunning Wiki
Jump to: navigation, search
(Misslotting)
 
Line 35: Line 35:
 
See [[Consistent setups for misslotting to slot 9]].
 
See [[Consistent setups for misslotting to slot 9]].
  
== Level 1 ==
+
== Ancilla overload ==
 +
=== Level 1 ===
  
Level 1 = Ancilla glitches where we don't use misslotting. Most ancillae spawn in slot 0-4.
+
Level 1: Ancilla overload glitches where we don't use misslotting. Most ancillae spawn in slot 0-4.
  
=== Heart Despawn Glitch ===
+
==== Heart Despawn Glitch ====
  
 
A method to despawn heart containers, making our Low% runs lower. This was decided to be a minor glitch.
 
A method to despawn heart containers, making our Low% runs lower. This was decided to be a minor glitch.
Line 53: Line 54:
 
Pastebins: https://pastebin.com/aNApJZLz https://pastebin.com/BeBFwZX6
 
Pastebins: https://pastebin.com/aNApJZLz https://pastebin.com/BeBFwZX6
  
=== Spooky Action Glitch ===
+
=== Level 2 ===
 
 
See [[Spooky Action at a Distance]]
 
 
 
== Level 2 ==
 
  
 
Level 2 = Misslotting an ancilla into an ''ancilla slot'' it was not coded to be in (slot 5-9).
 
Level 2 = Misslotting an ancilla into an ''ancilla slot'' it was not coded to be in (slot 5-9).
  
=== Weirdshot/hookclip ===
+
==== Hookclip ====
  
 
''Weirdshot'' is the name of a [http://zelda.speedruns.com/mm/tech/weirdshot similar glitch] in Ocarina of Time speedruns, copied over to ALttP.
 
''Weirdshot'' is the name of a [http://zelda.speedruns.com/mm/tech/weirdshot similar glitch] in Ocarina of Time speedruns, copied over to ALttP.
Line 77: Line 74:
 
Preliminary technical explanation can be found here https://pastebin.com/ua73VDi1, but it's not complete.
 
Preliminary technical explanation can be found here https://pastebin.com/ua73VDi1, but it's not complete.
  
=== Hookpush (Somaria misslot) ===
+
==== Hookpush (Somaria misslot) ====
  
 
{{VideoBox
 
{{VideoBox
Line 93: Line 90:
 
Pastebin: https://pastebin.com/KsRGZNKu.
 
Pastebin: https://pastebin.com/KsRGZNKu.
  
=== Hookpush (Hook misslot) ===
+
==== Hookpush (Hook misslot) ====
  
 
Same application as above, but done by misslotting hookshots instead.
 
Same application as above, but done by misslotting hookshots instead.
Line 105: Line 102:
 
Technical explanation: https://pastebin.com/Z1FanJwK
 
Technical explanation: https://pastebin.com/Z1FanJwK
  
=== Overworld Conveyor ===
+
==== Overworld Conveyor ====
  
 
By transitioning right after dropping either a Bomb or Somaria (misslotted in slot 9) from taking damage, you can get the conveyor effect while in the overworld. You can get this effect either upwards or downwards depending on the setup.
 
By transitioning right after dropping either a Bomb or Somaria (misslotted in slot 9) from taking damage, you can get the conveyor effect while in the overworld. You can get this effect either upwards or downwards depending on the setup.
Line 127: Line 124:
 
Note that Somaria is not needed for this, it could be done with holding a bomb instead.
 
Note that Somaria is not needed for this, it could be done with holding a bomb instead.
  
=== Murderbomb ===
+
==== Murderbomb ====
  
 
{{VideoBox
 
{{VideoBox
Line 137: Line 134:
 
By putting a bomb into slot 9, we can reset the ''explosion duration'' timer indefinitely by simply using a hookshot or producing sword beams.
 
By putting a bomb into slot 9, we can reset the ''explosion duration'' timer indefinitely by simply using a hookshot or producing sword beams.
  
=== Overworld Ancilla Persistence Through Transitions ===
+
==== Overworld Ancilla Persistence Through Transitions ====
  
 
By misslotting a bomb (or anything else), it will still be active after Link transitions.
 
By misslotting a bomb (or anything else), it will still be active after Link transitions.
Line 148: Line 145:
 
}}
 
}}
  
== Level 3 ==
+
=== Level 3 ===
  
 
Level 3 = Misslotting an ancilla into a slot that doesn't even exist (slot 10+). Basically, you end up writing values to arbitrary memory at will.
 
Level 3 = Misslotting an ancilla into a slot that doesn't even exist (slot 10+). Basically, you end up writing values to arbitrary memory at will.
Line 172: Line 169:
 
* Uninitialized altitude
 
* Uninitialized altitude
 
** Spooky Action Glitch
 
** Spooky Action Glitch
* Despawn
+
* Overloading slots
** Heart Despawn glitch
+
** Despawn
* Misslotted Ancilla
+
** fmp fake flippers
** Slot 5-9 misslot
+
*** Heart Despawn glitch
 +
** Misslotted Ancilla
 +
*** Slot 5-9 misslot
 
*** Weirdshot
 
*** Weirdshot
 
**** Weirdshot (Alternating Layer)
 
**** Weirdshot (Alternating Layer)

Latest revision as of 17:45, 13 December 2019

Summary

This page explains glitches that has to do with ancilla.

For now, go to Spooky Action at a Distance for the also-ancilla-related glitch that was found in 2018. This page is a summary of the glitches found mid 2019.

In this game, we use the word ancilla (plural: ancillae) for objects that Link produces/uses. Some examples are Boomerang, Bombs, Somaria block/spark, Sword spark, and Boots dust.

Enemies, Heart drops, etc... on the other hand, are sprites.

History

Yuzuhara found that using items in certain combinations created weird effects, like getting two somaria blocks/bombs, having bombs explode indefinitely etc. He did not understand how it worked, and it was mostly not known about in the Discord at the time, but he posted everything on his twitter account here

Someone mentioned it on Discord after 4-5 months had passed, and the videos were linked into Discord. We started looking more in depth on what was happening, and this investigation produced a few new glitches. All of them having something to do with Ancillae.

Some terminology

Slots

When you try to put down a bomb, the game looks for an empty slot in the game's memory. There's 10 slots for ancillae, which means you can only have 10 ancillae on the screen at any point in time.

For practical reasons, we've named them slot 0 through slot 9.

For example, you spawn an arrow, and the arrow might be put into slot 4. You spawn another arrow, and slot 4 is occupied and the new one is put into slot 3.

Misslotting

What we found, is that the game was coded to have certain items in certain slots. Bombs for example, needs to be in slot 0 or slot 1. Most other items from Link's inventory was only coded to be in slot 0, 1, 2, 3 or 4. However, there are ways to force them to occupy slot 5+. Since this was unintended from developers (and it doesn't really happen in normal gameplay), unintended things happen.

We call the concept of putting an item into a slot it was not coded to be in mis-slotting (or misslotting).

There's a tutorial on how misslotting works here: https://milde.no/public/alttp/misslots/.

See Consistent setups for misslotting to slot 9.

Ancilla overload

Level 1

Level 1: Ancilla overload glitches where we don't use misslotting. Most ancillae spawn in slot 0-4.

Heart Despawn Glitch

A method to despawn heart containers, making our Low% runs lower. This was decided to be a minor glitch.

This one does not use misslotting, but was a random discovery during our investigations into misslotting. It works by filling up ancilla slots in clever ways that only despawn the heart container, but not the pendant/crystal that follows (else you would softlock on most bosses where doors are closed and menues not possible).

Pastebins: https://pastebin.com/aNApJZLz https://pastebin.com/BeBFwZX6

Level 2

Level 2 = Misslotting an ancilla into an ancilla slot it was not coded to be in (slot 5-9).

Hookclip

Weirdshot is the name of a similar glitch in Ocarina of Time speedruns, copied over to ALttP.

The hookshot can pass through one-tile blocks.

What happens is that the hookshot object is traveling in EG for 3 out of 4 frames. There is another variant of this where the hookshot is only traveling in EG. If you hit something in the other layer, it will drag Link to it and also change Link's layer.

Preliminary technical explanation can be found here https://pastebin.com/ua73VDi1, but it's not complete.

Hookpush (Somaria misslot)

The reason this works is very technical, but basically, the "hookshot dragging Link to an object" code is glitched out and Link is dragged for a longer duration and often a different direction. This code does not check any collision at all, so Link can clip through walls. You can also use this to get Link into EG.

We can completely control the direction, the duration, and whether or not Link should be put into a different layer, by changing the setups.

Tutorial on how to do this consistently: https://milde.no/public/alttp/misslots/

Pastebin: https://pastebin.com/KsRGZNKu.

Hookpush (Hook misslot)

Same application as above, but done by misslotting hookshots instead.

Technical explanation: https://pastebin.com/Z1FanJwK

Overworld Conveyor

By transitioning right after dropping either a Bomb or Somaria (misslotted in slot 9) from taking damage, you can get the conveyor effect while in the overworld. You can get this effect either upwards or downwards depending on the setup.

When this effect is active, you can nudge against any slope and automatically clip from one side of the overworld map to the other, without anything colliding with Link. You can even use your sword and some items while in this noclip mode, while other actions like dashing or moving will let Link collide with things again.

Another application of this is transitioning into an underworld entrance. This gives the same effect as mirroring while on a conveyor belt, except the setup is outside the entrance and can easily be done for all entrances now.

Note that Somaria is not needed for this, it could be done with holding a bomb instead.

Murderbomb

By putting a bomb into slot 9, we can reset the explosion duration timer indefinitely by simply using a hookshot or producing sword beams.

Overworld Ancilla Persistence Through Transitions

By misslotting a bomb (or anything else), it will still be active after Link transitions.

Example of Spooky Bomb

A silly application of this, but it's the only known one that does anything "useful". File

Level 3

Level 3 = Misslotting an ancilla into a slot that doesn't even exist (slot 10+). Basically, you end up writing values to arbitrary memory at will.

This is the really broken stuff.

Some technical information here: https://pastebin.com/NnRnX4X5

Categorization of ancilla related glitches

  • Uninitialized altitude
    • Spooky Action Glitch
  • Overloading slots
    • Despawn
    • fmp fake flippers
      • Heart Despawn glitch
    • Misslotted Ancilla
      • Slot 5-9 misslot
      • Weirdshot
        • Weirdshot (Alternating Layer)
        • Weirdshot (Opposite Layer)
      • Hookpush
      • Murder Bomb
      • OW Conveyor
    • Slot 10+ misslot
      • ACE
      • etc. Anything can be done in theory.

Some glitches in different "categories" use similar methods for its exploit.