Hookpush
Hookpush is a Major Glitch that uses Misslotting to alter the values the Hookshot uses to determine how far and in what direction to pull Link when the hook latches onto something. Because the game mostly ignores collision while Link is being dragged by the Hookshot, this can be a very powerful glitch for bypassing walls and other obstacles.
Loose Explanation
Normally, when Link uses the Hookshot, a Hookshot ancilla is loaded into slot4 and a counter in that slot will immediately be set to 0 and then increment every frame the Hookshot is extending. When the Hookshot connects with an object to pull Link to, the counter will decrement every frame as Link is pulled to the object, with Link stopping when the counter gets back to 0. But what if we can get the Hookshot to look at different counters outside of its current ancilla slot? That's how this glitch is gonna work.
$039D
is a memory address where the Hookshot's current slot value is written to when we use the Hookshot, and it is referenced when the game starts pulling Link to determine which slot's counters the game should use. A Somaria block placed in slot9 will decrement the value at this address every frame. This means that if we have a Somaria block in slot9, and we use the Hookshot with no other ancilla loaded, the Hookshot will spawn in slot4 and the counter for slot4 will increment until the Hook connects with an object. For the first frame of pulling, the slot4 counter will be used, but then, because of the slot9 block decrementing the value at $309D
, the next frame of pulling will read data from slot3, the 3rd frame of pulling from slot2, then slot1, and then finally slot0, where it will continually use this counter until it reaches 0.
Through using other ancillae in specific ways, we can manipulate the counters in other slots to get the Hookshot to pull us for extended durations and/or in the incorrect directions. Or even have it pull us to EG.