Hey there! If you’re reading this, it means that we didn’t have a Nintendo Direct announced today, and that the author of these articles hasn’t died from shock. This week in Zelda Runners, we’ll be taking a closer look at the memory manipulation that fuels A Link to the Past‘s Arbitrary Code Execution, as well as a whole host of news stories and upcoming events!
There’s been a lot happening over the last 14 days. Perhaps most notably, the Ocarina of Time Any% category was finally brought under 10 minutes by runner Lozoots. At present, the fastest “legal” run is 9:56, however other methods have been used to gain times as quick as 8:26. The use of these methods is still being debated, however the latest breakthroughs have seen a surge in popularity in the game, including the return of former world record holder NarcissaWright, who has achieved a time of 8:38.
These new discoveries have also resulted in a re-shuffle of the game’s leaderboards, with a new “No ACE” category to preserve runs which used the older routes.
On a similar note, a new glitch known as Ice Breaker has been discovered in A Link to the Past. This glitch allows runners to skip most of the Ice Palace dungeon by clipping through a wall in the Big Key room. This glitch was allowed for the game’s “Restricted Major Glitches” categories, which only ban large scale exploits such as Arbitrary Code Execution, however a community discussion and vote is still ongoing as whether to allow the glitch in the “No Major Glitches” categories. This vote is expected to conclude tomorrow afternoon, so keep your eyes peeled for the results!
Also this week:
- A new Link’s Awakening Switch category was introduced to the game’s leaderboards. “No Wrong Warp” bans Hinox Heave and Super Hinox Throw to create a run which the community hope will reinvigorate the game. The category will also ban any further similar exploits which may be found in the future.
- Runners of The Wind Waker have discovered a new method to skip the game’s infamous barrier. The trick, which requires Bombs and the Deku Leaf, makes use of a very specific setup, and uses push back from the bomb to clip Link through the barrier, and works on all versions of the game. While this is possible in both the Standard and High Definitions of the game, it only saves time in the former, bringing the Any% category down to almost sub 1 hour.
- A new update has been released for the Ocarina of Time Practice ROM. This tool allows runners to create setups for new glitches, and makes practicing existing tricks faster and easier. The latest update adds Master Quest and Collector Edition support, as well as a free cam feature and hit box viewer. To read more about the Practice ROM, check out the website.
Ocarina of Time isn’t the only game in the Zelda series to have runners fiddle with its code – A Link to the Past did it long before it became cool. To understand exactly how this is possible though, we need to take a step back and look at the game’s approach to Ancilla Glitches.
Anicillae are defined as objects produced or used by Link. These include Bombs, the Boomerang, Somaria Blocks, and Sword Sparks. The game uses locations in memory called “slots” to deal with how Ancilla items spawn. There are 10 slots “labelled 0-9 due to the code aspect), and are split into two groups – those for items used and spawned by Link (Slots 0 – 4), and those for other uses (slots 5 – 9). Some items have specific slots within these groups too, for example Bombs will only be located in Slots 0 or 1.
Upon the player attempting to add an ancilla to the game (by firing an arrow or placing a bomb, for example), the game goes through a set sequence to determine the outcome. First, it checks Slots 0 – 4 to count how many are already spawned. If it finds a suitable empty slot, it will add the requested item. If there are no free slots, the game will instead search for any replaceable ancilla in suitable slots, such as “ArrowInWall” (the term for, well, an arrow in a wall), and replace these with the requested item. It is this final step which can be used to manipulate the game’s memory.
In certain circumstances, it is possible to confuse the game into placing a bomb into Slot 8. Bombs are only designed to be in Slots 0 or 1, and Slot 8 isn’t designed for player inputs either, causing a whole host of miscalculation. In the same vein, it’s also possible to trick the game into placing a bomb into Slots 10, 13, and 16. Having access to these non-existent slots form the basis of A Link to the Past‘s Arbitrary Code Execution.
With this understanding of Slots, however, it’s possible to pull off some other shenanigans, such as skipping the Heart Container after boss fights (an odd request, but useful for the game’s Low% category). On grabbing this Heart Container, two ancillae are spawned. One is a “Received Item” flag for the container itself, the other is the Pendant/Crystal required for the story line. Filling slots 0 – 4 would block both of these, which skips the container, however prevents the player from ever leaving the area (in most cases, the Pendant/Crystal is the trigger to warp the player out of the arena). There are, thankfully, a few ways to get around this problem.
The Arrow and Lamp method blocks the Heart Container flag as it checks only the first 2 slots for replaceable items, and finds none. It fails, and moves on to the Pendant/Crystal, which checks all 5 slots, and replaces an arrow to spawn. To use this method, spam the Lamp 5 times, fire 6 Arrows into the wall, spam the lamp another 2 times, then collect the Heart Container.
Another method uses Somaria blocks and the Pegasus Boots. Place a Somaria block near the center of the room, then move close to the Heart Container (you don’t need to be as close as possible, just fairly near it). Start a canedash into the Heart Container, and you’ll find you collect the Pendant, but not the Container itself. The reason this works is that the dust produced by your dash is actually stored in a Slot.
On collecting the container, it blocks the flag from spawning. Between this and the game trying to add the Pendant, the dust disappears and is removed from the slot, allowing the Pendant to spawn.
A more advanced mis-use of slots is used in a trick called Wonkashot (sadly no this isn’t some new chocolate bar). The game tracks where the Hookshot is stored in a particular location in memory. This very same location is affected by having a Somaria Block in Slot 9 (it decreases the value of this location by 1 every frame, to be exact). As the Hookshot process uses this location to determine where to transport Link to on using the item, this combination results in the Hookshot taking Link in some very unexpected directions.
There are several methods to place a Somaria Block in Slot 9, some more difficult than others. One of the more simpler methods requires Arrows and Sword Beams. Fire 3 arrows into a wall, then turn 180 degrees away. Slash your sword and hold it out. Initiate a dash once the sword beams have travelled roughly half the screen, then place a block once they’ve traveled a full screen.
Another method uses Arrows, Bombs, and the Boomerang. Fire 3 arrows into a wall, then place a bomb down. Slash your sword, and hold it out. Throw the Boomerang, then immediately place the block. Happy Mis-Slotting!
The Legend of Zelda
Any%, No Up+A. Eunos – 29:24
A Link to the Past
RMG, All Dungeons. Buene – 1:10:45
NMG, Any%. bydey – 22:55
Link’s Awakening DX
Reverse Boss Order. astronomous – 34:36
The Minish Cap
firerod%. quo – 39:47
Ocarina of Time
Any%. Lozoots – 9:56.650
100%. fullgrowngaming – 4:39:41
Glitchless, Any%. raggen – 2:59:00
Glitchless, Bug Limit. bann_jpn – 2:36:24
The Wind Waker
Any%. Demon – 1:01:12
A Link Between Worlds
Glitchless. Herreteman – 2:15:17
All Levels, Multiplayer. Spielpro + Shadic + BossMode – 3:09:35
Breath of the Wild
Master Sword, Original, Restricted. Vivoxe – 1:47:43
100%, Original. SpecsNStats – 21:13:04
Hyrule Warriors: Definitive Edition
New Game, Main Story. bananerz – 3:10:40
Cadence of Hyrule
Any%. RatRacing – 17:50.740
Link’s Awakening 2019
Any%, No HW. TGH – 1:21:12
The Final Split
There are plenty of events to keep you entertained until the next Zelda Runners!
No Glitches Allowed 5 – 12th February ~ 17th February – As the name might suggest, this marathon is all about glitchless runs. These will usually revolve more around routing and general optimization. Majora’s Mask makes an appearance on the final day, and there are plenty of other amazing games to keep you enthralled until then.
decolar.thon – 14th February ~ 17th February – This marathon is aimed particularly at Portuguese readers (who should be congratulated if they’ve made it this far), and contains an A Link to the Past Randomizer on the final day.
ESA Winter Marathon – 16th February ~ 22nd February – The European Speedrunner Assembly returns with its Winter Marathon, covering a whole host of games, including 4 Zelda titles! If you haven’t managed to catch an updated Skyward Sword Any% run yet, this could be your chance.
And finally, there’s just enough time to share this week’s wacky clip taken from the Zelda speedrunning community. This week the clip is taken from Skyward Sword, and features… a teleporting bush?
And with that, I’m off. Have a good week everyone!
Euan is the host of Zelda Dungeon’s Speedrunning series, Zelda Runners. He can be found on Twitter and Discord, and honestly if Nintendo don’t have a Direct in the immediate future, he might just actually melt down.