Tool-assisted game movies
When human skills are just not enough

Submission #5226: Arc, Inzult & Rising Tempest's NES Zelda II: The Adventure of Link in 45:35.36

Console: Nintendo Entertainment System
Game name: Zelda II: The Adventure of Link
Game version: USA
ROM filename: Zelda II: The Adventure of Link (U).nes
Emulator: FCEUX 2.2.3
Movie length: 45:35.36
FrameCount: 164392
Re-record count: 29056
Author's real name: Arc
Author's nickname: Arc, Inzult & Rising Tempest
Submitter: Arc
Submitted at: 2016-09-18 01:31:37
Text last edited at: 2016-09-22 19:54:27
Text last edited by: fsvgm777
Download: Download (26203 bytes)
Status: published
Click to view the actual publication
Submission instructions
Discuss this submission (also rating / voting)
List all submissions by this submitter
List pages on this site that refer to this submission
View submission text history
Back to the submission list
Author's comments and explanations:

(Link to video)

This TAS improves the current any% warpless Zelda II run by 407 frames. Although 7 seconds may not seem large for a 45-minute run, every frame saved was hard-earned. The previous movie was well-optimized and well-planned, and this run visits all of the same screens. (Although I certainly spent a long time researching potential route ideas.) Improvements required unforgiving precision, extremely long-term planning, and investigation of the game mechanics. The project took me about 250 hours over the course of 3.5 months. This chart shows the frames saved over the course of the run:

Before I get into it, let me take a paragraph to praise Inzult. First, while comparing my version with his while creating the movie, I appreciated the high level of technical skill that he demonstrated. Second, whenever I posted in the Zelda II thread, Inzult was always around to post some useful feedback. He provided notes, tips, tools, and whatever else he could. Inzult is a real man and worthy of much respect. Also, although Rising Tempest did not directly participate in this TAS, I give him a legacy credit.

I put in extra effort to make the run look more aesthetically pleasing, and so here are some entertainment notes before I get into the improvements. When Link has some free time, he enjoys dancing to the music. When Link walks through towns, he avoids running into anybody, if possible. Most importantly, Link visits Zelda 9 times during the run, and he does a different form of "training" each time to prepare himself for the upcoming section:

  1. Whirlwind: To train for Death Mountain enemies.
  2. Jump: To train for jumping over enemies in the cave.
  3. High Jump: Because he's supposed to have the Jump spell to get downstab in Mido.
  4. Downstab: To train for downstabbing Horsehead.
  5. Low Attack: To train for breaking blocks.
  6. Walk: To train for moving in a straight line to the magic container.
  7. High Attack: To train for Rebonack.
  8. Spin: To train for Carock.
  9. Spin Whirlwind: To train for Thunderbird.

Here are the frame differences throughout the run. If you studied the chart above, you can see that there are 6 major improvement leaps. You can also see my complete notes in spreadsheet form.

Screen Frames saved Total frames saved Comments
Saria 2 1 1 I saved 1 frame healing at The Red Woman's house because of subpixel position. In the current run, Link is at X-position 129.128. I used X-position 129.000.
Death Mountain 10 6 7 I saved time fighting the first orange daira. After the first whirlwind attack, I walked through it and did the second whirlwind from the right side. Doing so killed it 6 frames faster.
Death Mountain 13 30 37 Major improvement: I changed the experience route. I got a small p-bag drop way back at the Jump Cave. Doing so allowed me to skip the second orange daira rather than kill it. I also improved the death at the hammer.
Death Mountain 13 6 43 I discovered the existence of the death cycle. When Link dies, the death screen has a 21-frame rule. I was able to save enough frames to get on the good side of the death cycle.
Water 2 2 45 I maintained maximum speed despite the annoying enemies. I also did Up+A 1 frame earlier.
Parapa The Rapper 5 1 46 I maintained maximum speed against the stalfos.
Parapa The Rapper 8 2 48 I stayed lower against Horsehead.
Midoro Overworld 1 49 Walking in the swamp.
Midoro 6 3 52 I grabbed the magic jar quicker. At the top, I did a max jump instead of a min jump for greater gravity acceleration. Then I optimized subpixel position. At the bottom, I did a max jump instead of a min jump to grab the jar earlier.
Midoro 9 73 125 Major improvement: I manipulated the ironknuckle to deliver a deathblow at the perfect time so that I could die at the Power Glove. See the .gif at http://i.imgur.com/741QE9p.gif
Midoro 9 8 133 I was also on the good side of the death cycle again, and so I saved 8 additional frames.
Midoro 10 1 134 I saved a frame at the moa elevator because the screen exit shifted a pixel to the right in the previous movie. Why the exit shifts by a pixel in certain rooms is the biggest unsolved mystery in Zelda II.
Midoro 14 10 144 I used the long downstab (dongstab) technique to improve the p-bag pickup.
Midoro 16 17 161 I optimized the Helmethead fight. He's very similar to Horsehead.
Midoro 16 1 162 The game let me Up+A 1 frame earlier.
Island Overworld 5 167 Real interesting one here. You can manipulate the enemies that appear on the island overworld by delaying Link's exit from the 'fairy required' room. But, at first, it all seems to balance out. Delaying 1 frame in the fairy room means waiting 11 frames on the overworld for the enemies to get out of the way, for 12 frames total. Likewise, delaying 6 frames in the fairy room means waiting 6 frames on the overworld, for 12 frames total again. Every delay between 1-6 frames ends up being 12 frames total. But, when you delay 7 frames, you get fairies on the overworld instead of enemies. And you don't have to wait at all for them. So the net result is 12-7= 5 frames faster.
Island 2 9 176 I improved the fights against the helgooma and paltamu.
Island 5 11 187 I grabbed the key quicker and moved through the helgooma smoothly.
Island 6 9 196 In addition to dealing with the elevator paltamu better, I came up with the novel idea to stab the floor to slow my rightward momentum.
Island 9 8 204 All of my previous savings allowed me to just barely get on the good side of the death cycle. Not only was it by a single frame, but it was by a single subpixel. This run was 1 subpixel away from being 21 frames slower.
Island 8 (2) 2 206 I was 2 frames faster in the key room.
Island 13 4 210 I intentionally went into the Rebonack fight 301 XP away from a magic level up. Rebonack gives only 300 experience. But, there's a glitch that causes all enemies that should give 300 experience to actually give 301. I had trouble finding any radical ways to improve the Rebonack fight. It's a 3-part fight. Phase 1 is getting him off the hoverhorse. I didn't see any alternative to the 'ride the dragon' method of maintaining the downstab until he starts to turn around. Then jackhammer him. Any change in movement ruined the jackhammer. Phase 2 is the race to the bottom right corner. I stayed a pixel lower, but any change to the fighting style failed in the long run. Phase 3 is getting him to move left for the finishing blows. The slight improvement came here.
Reflect Trek 54 264 Major improvement: I consider this part to be one long interconnected sequence. Changing the timing at one point changes the overworld enemies that appear later. The only way to perfect this part would be to completely solve the overworld enemy patterns, which is about as difficult as completely solving chess. The main improvement here came because I achieved the mythical fairy trap. See the .gif at http://i.imgur.com/1eUhoUB.gif I also avoided the obvious 32-frame loss from the step up and back down to escape a random battle in the published movie.
Maze 3 10 274 On the screen before this one, I didn't improve the frame count, but it does look much more aesthetically pleasing. On this screen, I improved the jar pickup from the ironknuckle.
Maze 8 3 277 I improved Carock by 3 frames, even though I needed to delay entry to the room by 1 frame to get a usable spawn pattern.
Maze (2) 2 279 I don't understand this one, but I'll take it.
Sea Overworld 6 285 I took a path that had less lag.
Sea 16 -1 284 There are some timing differences earlier in the Sea Palace, but they're negated in the end by the death cycle. I lost 1 frame here delaying entry to the room because a mago blocked the elevator.
Sea 14 (2) 1 285 I improved the movement on the elevator.
Sea 17 -1 284 Since I have swordbeam, there's a lag frame.
Sea 18 -16 268 Getting a magic jar drop from the orange ironknuckle here is a part of my larger plan to save much more time.
Sea 19 3 271 I slightly improved the Gooma fight.
Sea 19 79 350 Major improvement: I changed the experience route in the Sea and Rock Palaces. I realized that the previous movie lost a lot of time waiting for magic to refill at the Sea crystal. I was able to finish the Sea with full magic and still make the drop count in the Rock Palace work.
River Devil -14 336 I knew that the river devil trap manipulation would be a pain. I spent a long time on it. In the end, my options were to take the high route and lose 18 frames or take the low route and lose 14 frames. The published movie got basically a perfect enemy spawn. Like the Darunia overworld sequence, it's beyond the limits of human patience to test every possible combination.
Southeast Trap 2 -1 335 There is nothing you can do about the randomness of the rock gerus.
Southeast Trap 3 1 336 I lost 1 frame at the first rock gerus, and then I gained 1 frame back at the other rock gerus to balance it out.
Kasuto Overworld 6 342 I got a perfect overworld walk (no frame delays) to Kasuto.
Kasuto Cave 2 (2) -6 336 Killing this geru was essential to making the new experience route work. It took only 5 frames. I delayed another frame to manipulate later screens.
Rock Overworld 16 352 I also got a perfect overworld walk (no frame delays) to the Rock Palace.
Rock 4 9 361 I know how to get in a hole.
Rock 5 1 362 I'll take it.
Rock 6 1 363 Again I'll just take it and not ask why.
Rock 7 -2 361 Well, there they go. I had to delay 2 frames to get a usable wizzrobe spawn.
Rock 10 2 363 And they're back.
Rock 11 25 388 Major improvement: I found a new method that annihilates Rebonack II. I did have Attack 6 instead of Attack 5 at this point because of the experience changes. But, the new method was crazy quick. I don't think it would work on Rebonack I, though. Link has to attack Reb I 12 times after Reb I dismounts, whereas it takes only 4 attacks after dismount for Reb II. Reb I would survive the attack and fall backward.
Rock 12 1 389 I don't know.
Rock 13 1 390 I don't know.
Rock 14 5 395 I saved 5 frames against Volvagia, but Inzult was aware of his mistake. The movie before the published one was also 5 frames faster.
Old Kasuto 3 1 396 I optimized the subpixels while talking to Old Man Thunder.
Valley of Death Entry -29 367 The first trap of the Valley of Death (Trap 18) is the most dreaded part of the game, because it depends on luck that is mostly unmanipulable. See the map for trap references at http://i.imgur.com/Q2G8xHr.png Like any trap square, you need overworld enemies to run into Link as he is walking onto the trap square in order to overwrite the forced encounter with a shorter random encounter. You need the same thing at Trap 17, but that one is easier to manipulate. You can keep creating extra delay frames during the walk from Trap 16 to Trap 15 in order to change the random enemies that appear in the graveyard between Trap 15 and Trap 17. Eventually, you get a result that works. The result that I got lost 2 frames compared to the current movie. However, here's why the Valley of Death between Trap 17 and Trap 18 is so notorious. You have to deal with 3 sets in a row of 3 enemies that you cannot change with overworld movement delays. And you get only one step down to avoid an enemy that appears in front of Link. But I found that you don't have to completely accept the 3 sets of 3 enemies that you're handed. You can create delays at Trap 15 and Trap 17 to change the timing. But, it's limited. In my case, I was limited to only 6 possible combinations. Any additional delay at Trap 15 changed the enemies in the graveyard to an unusable grouping. If you get a set of enemies that surround Link, you can pretty much forget about using that option at all. So I narrowed it down to 2 options that actually had a chance of working. The first option decided to throw in yet another degree of difficulty by not letting enemies rise up from below Link. And nothing is coming from the left, leaving the top as the only possibility. Nothing worked. Fortunately, after many hours, I found that there was one way to make the second option work without an ugly winding path. It still lost 27 frames. But, if that last option hadn't worked, I would have been faced with much greater losses, probably in the 60-90 frame range. So, despite losing 29 frames total here, it's the best possibility of a bad situation.
Valley of Death Cave 2 2 369 I had better luck with the enemies in the cave.
Valley of Death Overworld 7 -4 365 But then the overworld enemies screwed me one last time.
Great Palace 6 1 366 It's the first block screen. I just kept chugging forward.
Great Palace 7 1 367 I don't know.
Great Palace 13 22 389 Major improvement: It's the second block screen, which I like to call the MothaFokka screen. I am very pleased with this room. It's beautiful. I couldn't do it on the first block screen because Link's shield doesn't deflect the arnels' fire.
Great Palace 15 6 395 The wall. Inzult did an excellent job formulating the concept. I squeezed in a low attack instead of a slower high attack.
Great Palace 20 11 406 My goal was to improve the movie by 400 frames. I had thought that I had fallen just short of the goal. But then Inzult found a way to get better X-axis positioning from the fall. It goes in increments of 16. In this case, we needed to get it from 80 to 96. I gave up when I was getting only 91 or so, but Inzult demonstrated a precise combination that boosts it all the way beyond the required 96 threshold.
Dark Link 1 407 On the screen before this one, I'm pretty confident that Thunderbird was and is optimal. Dark Link has 56 frames of invulnerability, so it's impossible to improve against him. However, I improved the fight anyway by saving 1 frame on the last attack.

Mothrayas: Judging!

Mothrayas: Submission file replaced with an 11-frame improvement.

Mothrayas: This is a nice, well-executed and thoroughly planned run. Good improvement. Accepting as an improvement to the current warpless movie.

fsvgm777: Processing. Removed the branch as well (after consultation with Mothrayas and feos on the matter).

Similar submissions (by title and categories where applicable):