Submission #4147: Bloobiebla & MrGrunz's N64 The Legend of Zelda: Ocarina of Time in 20:09.98

Nintendo 64
baseline
mupen64-rr 2
72599
60
151896
Unknown
Zelda no Densetsu - Toki no Ocarina (J) [!].z64
Submitted by Bloobiebla on 12/31/2013 9:42:15 PM
Submission Comments

Introduction

Happy Christmas everyone! Like I wrote in the description of the Youtube encode, this originally wasn't supposed to be submitted as a Christmas present. We actually planned to get this done in mid October or something, but similar to the last run that unsynchable Tower Collapse Cutscene right before fighting Ganon fucked us completely over. Way worse compared to old run even, but as this is supposed to be the introduction let's wait a bit longer for my annual rant about this game's desperate attempt to drive me insane.
This run is an improvement of 6037 frames or 1:40.62 minutes over the old run. The final time of the m64 is 20:09.98 and 16:57.69 using the RTA (Real Time Attack) timing used by all of the console speedrunners of this game. The RTA timing goes from file select to the final hit on Ganon. When the last run was submitted I doubt anyone really expected another improvement of far over a minute to happen, especially not within one single year. Neither did I, but "GlitchesAndStuff" went totally crazy and found new tricks that allowed for this massive improvement within like a week and made discovering them look like it was the easiest thing ever to him. He discovered the basic tricks themselves, faster methods for them were discovered later on by Bloobiebla for the Void Warp and Sva for the Gohma clip.
If I'm not mistaken this is the first time a 3D Zelda run was done by a real team (dunno you can call 2 people a "team"). Usually all runs contained inputs from various people, but this time 2 people really worked on each section together which allowed us to go for an even higher technical level than what we had already. 2 minds are simply superior to one, so this is no real suprise. As this game became very short thanks to the new tricks, we finally decided to go for an all out frame war. I think it's fair to call Ocarina of Time an official part of the "Frame War League" now. Maybe it is even the highest optimized 3D game out there directly after Super Mario 64. The rerecord count is completely wrong because we always worked on the run at the same time and also used many different m64s. I assume 250.000 would be a way more realistic count. It is hard to say how much time we saved by pure optimizing and how much by using the new tricks. All I can say for sure is, that we managed to improve almost each section (I even think all but one). Some were even improved to a degree I didn't believe to be possible (2-3-1 room *cough*). You can find a list showing the frames we saved at each section by scrolling down. More details on this in the "Section by Section"-section (hehe, I like that term).
Some people may be disappointed that we didn't re-do the run completely. We restarted at the end of the cucco collection because we knew that we could improve this part slightly more. Bloob TASed the whole Zora's River section as well and got exactly the same time I got in my old run, so this section should be pretty clean. The very beginning to the Kokiri Sword has been done many times already and should be quite maxed out, same as the Lost Woods and Hyrule Field sections. Only thing that can be improved of the parts we didn't re-do is, of course, the cucco collection. This section will never be maxed out completely, simply too many variables are involved that all have to work out perfectly at the same time. The collection of my old run is pretty well done, we don't even know if we could do it better if we went for it. It could very well be a nightmare to even tie it. We decided that it is better to invest all that time into the following sections which we knew could be improved and max those out completely instead. I think the result proves that this was indeed the better idea. If we had really gone for the collection as well, I'm certain I would have gave up on the run already right before entering the tree. Bloob probably as well.
One question will obviously always remain: Will this run be improved again? Yes, I'm 100% sure there will be a quicker run submitted at some point in the future. The real question is how much it will improve this run. As the run is getting shorter, the space for newer and faster strategies also becomes smaller at the same time as well. Only thing I can really imagine to happen to be discovered is skipping the bottle completely by somehow being able to play the Ocarina in Boss Rooms, which would save quite a big amount of time. Leaving and re-entering the Gohma Boss Room also looks slow, so let's hope there will a way to clip through the stone wall without Gohma in the future. Maybe it will happen....maybe. Other than that the whole route looks pretty straight forward now, no more weird looking one minute drop to get the Slingshot and stuff like that.
If there are new tricks discovered, I'm sure Bloob and I will be doing another run again.

Emulator Information

This run was made on a specific version of Mupen64 which allows resets to be recorded in an m64. Download the .zip here and extract the .exe and place it in your Mupen folder, then run it. It's crucial that you run the movie on this version of Mupen.
[dead link removed]
IMPORTANT!!! You MUST have "Copy framebuffer to RDRAM" enabled. This is what removes the imfamous pause lag in Ocarina of Time. To do this, go to Options -> Settings -> Config (under video plugin while Jabo 1.6 is selected) -> Advanced (if there is no Advanced tab, then under Settings, uncheck "Hide Advanced Settings" and hit Apply first). Note: Although I used Jabo 1.6 while making the run, Jabo 1.6.1 works as well (and looks identical to 1.6 as far as I can tell).
Input: TAS Input Plugin 0.6
Sound: Jabo's DirectSound 1.6
RSP: RSP emulation Plugin. IMPORTANT!!! This plugin must be the one listed. There is another RSP plugin, and having it selected instead WILL desynch the movie. If you do not have RSP emulation plugin, download it here (extract it from the .zip) and put it in your plugins folder: [dead link removed]

General Tricks and Glitches

Infinite Supersliding (ISS)

This trick extends a regular superslide and allows full control of its direction indefinitely. There are various ways to begin this trick. In this run, I usually use the "Water Infinite Superslide", which is executed by entering the water with high speed - in most cases by Jumpslash-Recoil - and then instantly leaving it again.

Z-Sliding

This slide works by using constant Z presses to maintain Link's recoil speed. This is used to travel in a straight line from one point to another. You can also slightly change your angle during a Z-slide at the cost of the speed 2 (for example: Superslide has speed -18, sidehopping has speed 8.5).

A-Sliding / Analog-Sliding

By constantly alternating between holding a direction on the control stick for 3 frames and holding nothing for 3 frames link is so busy with his animation, that he totally forgets to lose his speed. This and the Z-Slide can only maintain recoil / negative speed (backwards facing speed).

Infinite Sword Glitch (ISG)

Interacting with an object while crouch-stabbing will cause the sword to attack infinitely. This can be done with text, by picking something up or also by blocking damage while crouch stabbing.

Twisty Sidehops/Backflips

This is done by holding ISS position and Z, and then tilting the control stick in one direction and performing a sidehop/backflip, all the while still holding Z. This causes Link to perform a sidehop/backflip at a certain angle, but because Z is still being held, the camera doesn't change and he rotates back to the direction he was facing previously while he's in the air. This allows some angle changes to be avoided.

Mid-Air Angle changing for Sidehops

This trick is suprisingly useful in many sections (especially Zora's River) to save a few frames, mainly because it allows you to skip changing your angle after a sidehop. Each angle change costs 6 frames. This can only be done with the first sidehop after an angle change. You let go of Z at the same time you press A to start the first sidehop of a new sidehop chain and thus interrupt Link's angle change. The first sidehop will be facing a slightly different direction than all the other following ones, which for example allows you to move around corners more smoothly.

Quick Backwalking

Recently Fox discovered that you can start backwalking instantly after an angle change the same way it is possible in Majora's Mask. This saves 6-9 frames for each backwalk after an angle change. You have to hold specific angles on the control stick at each frame while the camera is turning, which also change after 3 frames. This is almost impossible to do without a certain memory address, which is also the reason why this wasn't discovered earlier. It was especially helpful during the Ganon fight. In the early parts of the run, that had been done before quick backwalking was dicovered, there was no place where it could have saved time.

Superswim

This is essentially an A/Z-Slide in the water. The only difference is that the movements here do not have to be frame perfect in order to maintain speed. This will also be cancelled if Link performs his resurfacing animation, meaning that in order to do a truly infinite superswim, he must be hit by a damage source with his shield out after he's already resurfaced.

Ocarina Items

This is a glitch which lets Link play almost any item as if it were an Ocarina. It's done by emptying the contents of a bottle (which contains bugs or a fish), recatching them, and while Link is holding the full bottle in his hand, performing a jump/sidehop/backflip, and while in the air, pressing the button for the bottle followed by the button for the item that you want him to play. In this run, the sword is used for this, although many items work.

Wrong Warping

This is a glitch which allows Link to warp to a different location than expected by exiting a room in some way while a timer is ticking down for the warp in that room. It's done by performing the ocarina items glitch at the very edge of a blue warp at the end of a dungeon. Doing this allows the player to actually control Link during the cutscene where, normally, he would be floating up towards the ceiling. When the duration of that cutscene is up, the screen will simply fade to white (even though Link is on the ground) and the normal cutscene will begin. However, if the room is left in some way at a very precise moment, the game will warp you to a certain location, which is determined by the last cutscene viewed prior to doing the trick. Fortunately, the cutscene required to warp to Ganon's Castle is the Deku Tree opening cutscene, which is directly on our path in this run.

Void Warp

This is a new trick, that wasn't used in the old run. During the Ganon Tower Collapse sequence, you void out if you fall a certain amount of pixels. After voiding out the game puts Link back to the place he entered the area from. This place has certain coordinates, that are stored in memory. Essentially this trick works by touching a loading zone of the inner tower part at the same frame Link voids out. What happens is, that the game loads the "Inner-Tower-Area" at the same time it voids Link out, so the game warps Link to the earlier mentioned coordinates from the void out, but instead of the "Outer-Tower-Area" you are in the "Inner-Tower-Area". All in all the game loads the "Inner-Tower-Area" with a fucked up position of Link. In this case he is way up in the air and coincidentally able to reach the area of the very bottom loading zone. We were quite lucky here, that this trick leads to such a perfect result. It could have also been completely useless.

Time Saved by Sections

Here's a table showing how much time we saved in each section. The timing spots used are not really consistent (SM64 has a consistent timing used for all the stars for example), because we chose the timings point rather randomly. This list is simply meant to illustrate how much time was saved where. The difference is always correct. If you add the frames each section took together you won't get the final time, though, because we left some cutscenes and transitions which are impossible to improve out of this timing. Due to the new tricks the route is very different, so it is hard to any good kind of comparison once we are in Deku Tree, but we thought this table should still be better than none at all.
I added () twice. Swordless and I equipped our Shield at different times, so the difference in those 2 sections gets messed up. The time shown in the () is the time that was really saved. For example: On the way to the Deku Tree I lost 232 frames due to equipping the shield, but in reality I saved 18 frames. "-" means obviously, that I lost time. A detailed description of how I saved time or why I lost time can be found by scrolling down.
SectionTime(s)Old Time(s)DifferenceTotal Difference
Intro + Kokiri Forest Time Saved: 0"00
Opening Menu57157100
Opening Cutscene104091040900
Link's House888800
To Crawling Hole1581158100
Kokiri Sword96796700
Bush Slashing to Vines2595259500
Entering Lost Woods53153100
Lost Woods + Cucco Collection Time Saved: 0"35
Lost Woods1030103000
Zora's River1974197400
Hyrule Field94794700
Cucco Collection Part 1 (Cucco 4 Throw)2670267000
Cucco Collection Part 2 (Until Bottle)272727482121
Collection Bugs + Reset969969021
Kokiri (2nd Visit) Time Saved: 4"87
Link's House144144021
To Kokiri Shop717717021
Kokiri Shop757757021
Mido Skip107210901839
Collecting Deku Stick5495762766
Entering Deku Tree20522299247313
Deku Tree Time Saved: 1'04"35
To the Vines237454-21796
Reaching Basement 11322467533533666
Going to 2-3-1 Room216204-123654
2-3-1 Room10511081303684
Gohma + Re-entering the Room406745544874171
Wrong Warp (Ganondoor Glitch)1493149634174
Ganon's Tower / Tower Collapse Time Saved: 29"83
Lag During Wrong Warp + Leaving Tower374386124186
Collapse Sequence6082786717855971
Tower Collapsing Cutscene53545350-45967
Ganon Fight + Final Time Saved: 1"17
Reaching Ganon Cutscene19720135971
Ganon 1st Phase + Picking up Master Sword42094206-35968
Hitting Ganon to activate 2nd Phase318366486016
Ganon 2nd Phase723738156031
Ganon Down Cutscene + Final Hit1515152166037
Summary7259978636Total Time Saved6037 = 1'40"62

Section by Section

Everything until the end of Cucco Collection

Everything stood the same up until the point Link jumps off the ledge next to the windmill and flies with a cucco for the last time. For a comment on all those section that stood the same look at the submission text of the old run:

End of Cucco Collection

Like written above the slight changes were all done after Link jumps of that ledge next to the windmill. By luring the Cuccos a little bit differently they end up in a better position once they stop running away from Link. Other than that the manipulation is also clearly superior for the 2 last cuccos. While in the old movie one cucco stood in place and the other walked towards the cage after they stopped running, they now run both towards the cage. This allows us to reach the 2nd last cucco by using a sidehop instead of a roll, which saves quite a bit of the time. The last cucco was handled the same way as before. All in all those small changes allowed for a rather big improvement of 21 frames.

Mido Skip

This happens to be a highly complex section, even though it doesn’t look so much that way. A good 30 hours were put into optimizing this one trick. To start, the slide begins 6 frames earlier by avoiding an angle change before the jumpslash. This causes your recoil direction to be much worse, but with some optimization you can keep the frames and clip out of bounds 6 frames earlier. When you jumpslash to reenter the water, your swimming speed will vary greatly depending on your initial angle and distance from the water just before the jumpslash. After some major experimentation we finally got a re-entry that gave maximum swimming speed and also a very good position. The next challenge was falling out of the water and reentering. The idea is to fall low enough so that Mido won’t get in the way of your jumpslash, but also not fall so low that you waste extra frames falling and/or have to spend extra frames resurfacing. There is a perfect balance for this, and we think we got it pretty close.

To Deku Tree

The old route required you to take extra damage, so it was fastest to take it from the first Deku Baba and also use it to collect the stick. But without having to take damage this time, the first Deku Baba was quite slow. After slashing it there would be a sitting period before the stick became collectable. So instead, we slash the farthest one and use the extra time to move toward the cutscene trigger.
This setup has one problem though: it's seemingly impossible to get an optimal Deku Tree cutscene entry from this position. In Grunz's old run, he runs directly down the center of the path toward the Deku Tree, while in this run we run slightly to the left, costing us 3 frames when travelling toward the Deku Tree. Apparently, the truly optimal cutscene entry is only possible when you hit the cutscene trigger very far to the right, which isn't feasible when collecting the stick from the furthest Baba.

Picking up the Deku Nuts

When picking up item drops - like in this case a Deku Nuts - you can pick them up while being in a position that normally isn't part of the "grab circle" around the item, in which you normally have to stand to be able to grab it. Let's say the Deku Nut gets grabbable at frame 64. It seems as if not not your position of frame 64 determines whether you can pick it up or not, but your position on frame 61. This leads to this cool optimization trick: You want to be at the very end of the mentioned "grab circle" of the nut at frame 61 and at the same time you want to move as fast as possible towards your next destination between frame 61 and 64. You will grab the Deku Nut because you are in the "grab circle" at frame 61 despite being out of it at frame 64, which is the frame you will start picking the nut up. Bloob did some testing and it sounds totally crazy, but as only your position at frame 61 matters, you can lock in an endlessly high movement speed for Link during frame 61 and 64 and he will still grab the Deku Nut up no matter how far away he is.

B1 Skip

Getting to the top vines is done pretty standard. Simply a smooth sidehop combination and then a backflip on to the chest to get on the vines from there.
The new B1 skip strategy is fairly easy to explain. You begin by dropping off the vines from the minimum possible height required to break the web, then shield the skulltula to get boosted away from the wall, and then jumpslash recoil down to the web. The inherent problem with this strategy is that since Link's landing animation lasts longer than the web takes to break, he will start falling again before you can correct his angle for the B1 skip, making this trick is useless by itself. However, during his animation, Link will still align with walls when targeted. So if you land on the very edge of the breakable part of the web and then target the wall, Link will turn enough so that his angle will just barely work for the B1 skip.
The angle that you get from this is unfortunately quite bad. Even when it’s optimized you still lose like 9-12 frames getting down to B2. For this reason, most of our time spent on this section was put into inventing crazy ideas of landing on the web with a better angle. The thing that came closest was to have the skulltula boost us from a little bit higher up, and then while falling, target the leftmost skulltula to change Link's angle in mid-air, and then jumpslash recoil off of the spiral pathway onto the web. This looked insanely cool and thus it's a shame that it never quite made it.

2-3-1 Room

This room was raped in all ways imaginable. No other way to describe it. I would have never imagined such a strategy to be possible in this room, it's like a miracle that it worked out that perfectly. Usually we hit the Scrubs with their own nuts they shot at Link. This way we always hit the middle scrub at first and then there was a massive delay until the other 2 finally got hit. But delays suck, we don't want delays in our runs. So why not use the nut of the middle Scrub to hit the right one? This is very hard to do because you have to avoid the nuts of the middle and right scrubs hitting each other. This requires precise positioning of Link and very well timing. Definitely impossible for a console run. After that I reflect the nut of the left scrub back to himself and last but not least the nut of the right scrub is used to hit the middle one. But now comes the most awesome fact about this strategy. The Scrubs get hit exactly like this: Middle Scrub on frame 60, Right Scrub at 63, Left Scrub at 66! All 3 frames apart! It can't be done any better. As I also made them shoot as early as possible, this isn't even theoretically improvable. I would have never imagined to get such a high level of optimization on such a complex section. We struggled for a long while with this room and best we had was like 12 frames faster than the old version and then out of a sudden came this. Nuff said, we went totally insane when we got this.
Sadly, the movement here was so precise that there was absolutely no time to get decent camera angles, which would have allowed to see all the scrubs getting hit almost exactly at the same time. I bet this would look badass, but not even a speed-entertainment trade off would have made this possible. Maybe I should upload a slow-motion version of this in the near future, sounds like a good idea to me.

Gohma

Gohma completely changed from a total trivial section to a pretty complex one due to the new Gohma clip. The lure of Gohma is pretty standard. You simply position yourself correctly all the time and Gohma will cooperate nicely and walk into the exact position you need here to be. If she is slightly to the left or right of that position, the clip usually doesn't work anymore. The whole trick itself is strange. You simply do one hover and when Gohma hits your shield again at the right frame while still being in the air, you clip through the wall. IIRC we did quite a few testing and it seemed as if the Stone Wall's collision had no effect on Link anymore for a few frames after you get the hit the first time and the only purpose of the 2nd hit is giving Link enough speed to fully clip into the wall. We were able to simply lock a certain speed after getting hit the first time by Gohma and Link was simply moving through the wall like it wasn't even there. Pretty strange, still.
The harder part to optimize was the killing Gohma after the clip. In order to be able to hit Gohma after the clip you have to make lure here a bit closer to the wall. For some reason Gohma always seemed to start to walk at different times. We simply did a shitload of slightly different Gohma Clips and changed some small stuff to get different manipulations and then looked at the frame Gohma started to walk. It was indeed totally random, but there seemed to be a limit to how fast Gohma will start walking. We came to that conclusion because at some point we had like 15 quickest attempts that all made Gohma start to walk at the same frame. We also had to get rather far away from here at first as well to even get here to start walking at all, that's why we instantly sidehop away after the clip. The rest is just goofing around for some entertainment and then killing Gohma frame perfectly.

Wrong Warp / Ganondoor

Since we agreed that Grunz’s last tune was hardly recognizable, I would take on the ocarina task! Grunz came up with the song, and I went ahead and made like 5 different versions using different keys. The lowest possible key came out the best. Hope you enjoy(ed) it!

Collapse Skip

Before reaching this part, we vaguely assumed that the first boulder always falls in the same spot and at the same time. Because of this we looked forward to it as it would pose us no problems, besides maybe a small bit of lag manipulation. Of course that was far from the case.
1) The timing of boulder varies slightly. It will always hit the ground within a small window of 4 visual frames, but only about 1 in 100 will land on the first frame.
2) The boulder can fall anywhere. You might think that the best boulder would be the one that fell the closest to Zelda, so that you could hurry over to Zelda and have minimal waiting time for the boulder. We thought this as well, and spent many, many hours searching for the theoretically optimal boulder. We finally got it, and it even landed on the first possible frame. Of course though, it was way too far away to reach in time. We were hoping we could roll into it from behind, and take advantage of the boulder’s ‘suction’ hitboxes to have it turn us around 180 degrees for the HISS. Turns out this ‘suctioning’ effect has a max of 90 degrees.
3) When manipulating the boulder, you must watch the movie back from before the WW to see what kind of boulder you actually got, because it will always be different after the playback.
So after 2-3 days of studying this section we finally got a boulder that we believe is about as optimal as possible. It’s one of the very rare case boulders that land on the first possible frame. Its position is also extremely good. If it were any farther away it would be unreachable, and if it were any more to the right the HISS angle would have been much worse. The lag right before the slide is also a little better than our other attempts.

Inside Collapsing Castle

The quickest you can do here is jumpslashing as early as possible. The rest looks like an easy sidehop combination, but we actually invested a lot of time into this section. We quickly got attempts that were 3 frames slower than what you saw in the final run and already wanted to move on, but by using MHS I saw that not many pixels were missing to save another 3 frames. After 2-3 hours of more attempts and saving pixel by pixel we finally managed to save those 3 extra frames. For some reason we celebrated those 3 frames more than some bigger time savings at other sections. Maybe because we came closer and closer after each attempt but didn't know that it was really possible until we finally got it.
No frames were saved in the following room. We came once again close, but it was not possible to save any frames, sadly. At least we got the kiss at the first gate of the room, which looks definitely better than runs without it.

Tower Collapsing Cutscene

TIME FOR THE ANNUAL RANT! This cutscene, it is the biggest fuck that I have ever seen! How can anything be such a bitch to TAS? In case you forgot, this cutscene never syncs and is affected by totally random input, so you have to watch it from before the WW to see the actual result. For some reason playing the run back from right before the WW is the same as playing the movie back from the very beginning.

Ganon

3 frames were saved by setting the jumpslash before the Ganon CS up differently.
Ganon Fight Coming Soon

Special Thanks

  • http://www.youtube.com/user/Glitches0and0stuff: GlitchesAndStuff is the original mastermind behind the new Gohma clip and the tower collapse skip. His recent findings are what inspired us to make this run.
  • http://www.youtube.com/user/sva161620: SVA found the new Gohma clip just after the hover method was found. It saves several seconds and also looks completely awesome.
  • Aktan: After I told him, that I finished this run he was instantly up for encoding this for me. Huge thanks to him, I really appreciate his awesome work. He also had the patience to upload the youtube encode 3 times for me until it finally got monetized. I bet I was quite a bit annoying for him within the last days, so sorry for that :)
  • Zeldaspeedruns.com: Without this awesome community Ocarina of Time wouldn't be what it is nowadays: A game without any limits for Speedrunning. I'm proud to see how far we got within the last few years.
In case we forgot anyone, please tell us and we’ll add you to the list.

Have fun watching and feel free to suggest some nice screenshots =)


Nahoc: Judging...
Nahoc: Accepting as an improvement over the previous movie.
Aktan: Will be doing this one...
Last Edited by adelikat on 10/7/2023 2:09 PM
Page History Latest diff List referrers