Submission Text Full Submission Page
Once again Link goes on a journey to save Zelda, but the circumstances let him not do that.

Game objectives

  • Emulator used: FCEUX
  • Heavy glitch abuse
  • Luck Manipulation
  • Uses damage to save time
  • Uses game restart sequence
  • Executes arbritray code

Comments

Route

The first thing that needs to be done is get the flute in dungeon 2. It almost starts as the published 2nd quest TAS, but with two differences: Using the first savegame and not collecting bombs.
After dungeon two a single rupee is collected, not to spent it on anything, but to do some memory manipulation of course. On the way to the graveyard nothing interessting happens.
On the graveyard all 10 ghosts need to be spawned in order to glitch the game. The ghost which is already there and the last spawned ghost need to be at the right position at the right time.
If everything is done correctly, the item glitch will happen and have a lot of powerful new items.
Now going to level 9, because the credits load into memory when entering this dungeon, using the warp bombs.
In dungeon 9 the warp bombs are used to get to room 0x00, from there to the next room and use another item to call the credits depending on the X positions of Link and the next two enemies.

Technical explanation

Using saveslot 1
The current saveslot is stored in $16 and using the 1st slot gives value 0x00. Using the 3rd saveslot, which is faster when typig in the name, gives value 0x02. That is bad, because that would crash the game when the PC runs over this instruction. That's why the 1st slot is used, the opcode 00 does nothing.
Collecting a rupee
The rupee is collected, because of the nice sound it makes. After the sound played, address $0618 will be 0x4C, with the next 2 bytes that results as an JMP $0000.
Waiting for the random numbers
It is crucial to get from $18-$24 into somewhere where the memory can easily manipulated, because at $59 there will be always a 0x02. In this case a branch BNE $5F at $23 to the Y positions is taken. I made a list with the numbers of the RNG to see when a branch would happen.
Positioning the enemies
To get the item glitch, the area around $EC6E needs to be executed. It is possible to use a direct jump, but it turned out to be slower, because of the last enemy that spawns. So a indirect jump is used. Link will be at Y position 0x6C, the ghost which is already there will at Y position 0x9A and the last spawned ghost will be at Y position 0xB3. All this together will result in JMP ($B39A) wich jumps to $EC69. After positioning the enemies a long pause is used to wait for the random numbers.
Playing the flute
Because every slot for objects on screen is already used, the ghost AI will jump to $0602. From there it will execute the memory which is set up.
Item glitch
The item glitch overwrites that area where the items, collected rupees from caves and opened caves are. To use the glitch items the item index $0656 needs to be greater than 8 and the area where the item index is needs to be filled with something not equal to 0, or else the item index will be set back to 0 if there are to many zeroes between two addresses. In this case the item index is set 0x6E and the whole area from $0602 to $0701 is overwritten. Besides the glitch items the cave to level 9 needs to be opened, $067F needs to be greater or equal to 0x80.
Preventing a crash
The game would crash after the item glitch, but when visiting the menu and closing it again at the right frame, the crash can be prevented.
Warp bombs
Item index 0x66 refers to the warp bombs. It makes the screen scroll and warps to the last visited screen in the screen history. The warp happens instantly, so a room can be load instantly without moving.
X position ACE item
Item index 0x76 executes $1870, where a copy of the X positions are. So an opcode which jumps to the credits $B7C7 is needed. Again an indirect jump is used again, man I love these. Link is at X position 0x6C, the first enemy at 0x7C and the next at 0x9A, which will result in JMP ($9A7C), that makes the PC jump to $B7C4.

Thanks to...

  • RAT926 for finding the item glitch.
  • Sockfolder for documentation on the glitch.
  • Masterjun for documentation on the glitch and finding the credits glitch. Although he doesn't have any inputs on this run, he still is a co-author, because I would be a bit helpless on the credits glitch.
I hope I blew your mind.

Nach: I'm told there's going to be an immediate improvement, so rejecting.


TASVideoAgent
They/Them
Moderator
Joined: 8/3/2004
Posts: 15544
Location: 127.0.0.1
Editor, Skilled player (1438)
Joined: 3/31/2010
Posts: 2107
That was pretty rad.
Tompa
Any
Editor, Expert player (2214)
Joined: 8/15/2005
Posts: 1941
Location: Mullsjö, Sweden
Back in the days, Nintendo claimed this would take 100 hours to complete. Where are the remaining 99 hours 56 minutes and 25 seconds? Yees.
Skilled player (1784)
Joined: 5/7/2008
Posts: 187
Location: Japan
The world of Zelda is shortened once again, so I'm glad. Yes vote.
Amaraticando
It/Its
Editor, Player (159)
Joined: 1/10/2012
Posts: 673
Location: Brazil
WTF means Yes vote here.
ALAKTORN
He/Him
Former player
Joined: 10/19/2009
Posts: 2527
Location: Italy
What the fuck. 7/8.5
Gfx
He/Him
Joined: 7/16/2014
Posts: 18
Location: Bishkek, Kyrgyzstan
Nice :)
Synahel
She/Her
Former player
Joined: 1/19/2011
Posts: 260
Location: France
Very nice!
Player (26)
Joined: 8/29/2011
Posts: 1206
Location: Amsterdam
This should be called the Legend of Patra!
Joined: 5/14/2007
Posts: 525
Location: Pisces-Cetus filament
lol
AzumaK wrote: I swear my 1 year old daughter's favorite TASVideo is your R4MI run :3 xxNKxx wrote: ok thanks handsome feos :D Help improving TASVideos!
Joined: 7/2/2007
Posts: 3960
Man, Zelda's a little more blue and eyeball-y than I remember her being. That was pretty awesome. I do wonder if there was room for one more damage boost en route to the flute though, since you end that section with 1 full heart. Anyway, great work!
Pyrel - an open-source rewrite of the Angband roguelike game in Python.
Experienced player (583)
Joined: 2/23/2008
Posts: 266
Location: CA, USA
wow lol crazy stuff
mklip2001
He/Him
Editor
Joined: 6/23/2009
Posts: 2227
Location: Georgia, USA
Awesome. That is one of the more entertaining setups for game-end glitching. Why is the run on the FDS version? Does the NES cart not have these glitches? It seems you lose time on the loading screens for dungeons.
Used to be a frequent submissions commenter. My new computer has had some issues running emulators, so I've been here more sporadically. Still haven't gotten around to actually TASing yet... I was going to improve Kid Dracula for GB. It seems I was beaten to it, though, with a recent awesome run by Hetfield90 and StarvinStruthers. (http://tasvideos.org/2928M.html.) Thanks to goofydylan8 for running Gargoyle's Quest 2 because I mentioned the game! (http://tasvideos.org/2001M.html) Thanks to feos and MESHUGGAH for taking up runs of Duck Tales 2 because of my old signature! Thanks also to Samsara for finishing a Treasure Master run. From the submission comments:
Shoutouts and thanks to mklip2001 for arguably being the nicest and most supportive person on the forums.
ars4326
He/Him
Experienced player (775)
Joined: 12/8/2012
Posts: 706
Location: Missouri, USA
Nice job! The payoff at the end was about as crazy as the 'Palace of Four Swords' publication. The loading times for the FDS took some getting used to, but it didn't detract from the entertainment value at all. Yes vote!
"But as it is written, Eye hath not seen, nor ear heard, neither have entered into the heart of man, the things which God hath prepared for them that love him." - 1 Corinthians 2:9
Editor, Skilled player (1535)
Joined: 7/9/2010
Posts: 1319
Derakon wrote:
I do wonder if there was room for one more damage boost en route to the flute though, since you end that section with 1 full heart.
That wouldn't save time though. 227 frames are delayed for waiting for the random numbers.
mklip2001 wrote:
Why is the run on the FDS version? Does the NES cart not have these glitches?
Yes, the glitch when playing the flute is fixed.
Favorite animal: STOCK Gt(ROSA)26Sortm1.1(rtTA,EGFP)Nagy Grm7Tg(SMN2)89Ahmb Smn1tm1Msd Tg(SMN2*delta7)4299Ahmb Tg(tetO-SMN2,-luc)#aAhmb/J YouTube Twitch
Joined: 2/27/2011
Posts: 69
Location: Calgary, Alberta
You are great. You have an amazing wisdom and power. Also I love the key counter with 158 keys after the graveyard glitch is done which probably means you could go anywhere in the game
d-feather
He/Him
Joined: 2/12/2015
Posts: 152
Location: Everett, WA
You did indeed blow my mind. Yes vote.
:shrug: I'm more active on Twitter nowadays: @HunterCoates5
Player (13)
Joined: 6/17/2006
Posts: 506
Wow, ACE in Zelda 1! And while I did not understand the technical details much due to the bad English, the results are quite impressive! Congratulations TASeditor and Masterjun! :D
Skilled player (1737)
Joined: 9/17/2009
Posts: 4979
Location: ̶C̶a̶n̶a̶d̶a̶ "Kanatah"
Skilled player (1784)
Joined: 5/7/2008
Posts: 187
Location: Japan
By the way, the memory address that a file name is stored is $0638 and $0640 and $0648. You can write it freely there more than 16 characters. ($#00-64) If you avoid $0618 and run a file name, is it shortened?
Joined: 9/22/2014
Posts: 33
Location: New Taipei City, Taiwan
OMG That's awesome.
TAG
He/Him
Joined: 2/9/2014
Posts: 407
Location: In Oblivion
I say hell yes. This is a cool TAS! A cool game broken to it's limits.
I’m sorry. Really I am... I am so sorry for what I did. Forgive me.
Editor, Skilled player (1535)
Joined: 7/9/2010
Posts: 1319
pirohiko wrote:
By the way, the memory address that a file name is stored is $0638 and $0640 and $0648. You can write it freely there more than 16 characters. ($#00-64) If you avoid $0618 and run a file name, is it shortened?
Well, only 16 characters. The file name for the used save slot needs to be "ZELDA". But 16 characters should be enough to write a routine that writes the glitch items directly. The problems are first to get to $0638 without crashing and second writing the instructions. I look later into it...
Favorite animal: STOCK Gt(ROSA)26Sortm1.1(rtTA,EGFP)Nagy Grm7Tg(SMN2)89Ahmb Smn1tm1Msd Tg(SMN2*delta7)4299Ahmb Tg(tetO-SMN2,-luc)#aAhmb/J YouTube Twitch
Techokami
He/Him
Joined: 6/23/2008
Posts: 160
WHAAAAAAAT. Yes vote!
Lord_Tom
He/Him
Expert player (3142)
Joined: 5/25/2007
Posts: 399
Location: New England
Great find! Why is 2nd quest played...is that needed or is it just because the flute is much more quickly accessible?