Submission #4371: TASeditor's NES Zelda II: The Adventure of Link "warp glitch" in 05:35.93

Nintendo Entertainment System
warp glitch
FCEUX 2.2.1
20189
60.0988138974405
83509
Unknown
Submitted by TASeditor on 7/22/2014 4:40:48 PM
Submission Comments
Hello, you're watching a 31 frame improvement over the current published run.

Game objectives

  • Emulator used: FCEUX 2.20.1
  • Heavy glitch abuse
  • Luck manipulation
  • Uses a game restart sequence
  • Takes damage to save time
  • Uses deaths to save time

Comments

This movie was started after Inzult PMed me a 20 frame improvement, it was a simple overworld luck manipulation. He was sure there were five more frames to save. So I gave it a try, after a month.
The first one frame improvement came from doing the healer glitch faster. For no reason there was one frame delayed when talking to the lady, the delay did absolutely nothing. With that one frame improvement the overworld manipulation can be done faster, which lead to some more frames to improve. So in total 28 frames were saved until picking up the hammer.
Now there would be potential for more improvement after the game restart sequence, but the RNG destroyed everything in the Great Palace. There were 29 frames total until entering Great Palace - 35 frames maximum, but some where lost due to overworld manipulation. But the red knight wouldn't like to attack as quickly as in the published run, this means 9 frames were lost. Luckily the random numbers reset after a game restart sequence, so I used the inputs from the published run after the game restart sequence, changed them a bit to make this movie look a bit different.
The last three frames were saved on the Dark Link fight.

Glitches used in this run

Copy from old submission text.
Speed glitch
Whenever left+right is pressed simultaneously, Links top speed will break and is set to 127 or -128, depending on the direction Link travels. In case the value overflows/underflows Link will quickly change his direction of movement.
Healer glitch
The healer lady has a timer which counts down to zero, when she moves towards the entrance of the house. When Link talks to her one frame before she goes inside the house and the timer reaches zero, she will change her direction and goes into a wrong entrance. Then Link can then go into the healer house which sends him to a wrong location called Glitch Town.
Screen lock
The screen can be locked when Link enters the first house of Glitch Town several time. This sets wrong exits of screens and made it possible to literally warp around from one side to the other side of Hyrule.
Fairy glitch
Using the fairy spell when Link is on a ceiling, he will fall down to the screen below.
Wall climbing
The speed glitch is requires to go inside a wall. Doing this repetivly while jumping Link can get to places normally unreachable for him.
Split Link
After left+right is pressed at the same time, not left or right afterwards, the animation when Link does an attack will have a funny side effect. Normally it is not the case that left+right is pressed and then nothing, to actually press this button combination it is required to press down on the same frame too. It is also used to change the facing direction of Link. This glitch only moves his sprite not his hixbox and therefore is only used for entertainment.

Potential improvements

Screen wrapping

Screen wrapping is a glitch that allows using the right exit while exiting the screen on the left side, however it does not work for every exit for some unknown reason. As you can see in this movie it is sometimes used, sometime not. Inzult and I tried to figure out how it works, in order to be able to do it everytime, we weren't able to do more than in the published run. Mainly Inzult worked on this.

Luck manipulation

This is were I spent most of the time on this run. The RNG used for enemy behaviour in caves and palaces is a simple 9 byte long shift register.
It looks like this:
007134: A:00 X:FF Y:00 S:FB P:nvUBdIzc $C185:A2 00 LDX #$00
007134: A:00 X:00 Y:00 S:FB P:nvUBdIZc $C187:A0 09 LDY #$09
Breakpoint 0 Hit at $C189: $051A-0522:ECRW--
007134: A:00 X:00 Y:09 S:FB P:nvUBdIzc $C189:AD 1A 05 LDA $051A = #$15
007134: A:15 X:00 Y:09 S:FB P:nvUBdIzc $C18C:29 02 AND #$02
007134: A:00 X:00 Y:09 S:FB P:nvUBdIZc $C18E:85 00 STA $0000 = #$00
Breakpoint 0 Hit at $C190: $051A-0522:ECRW--
007134: A:00 X:00 Y:09 S:FB P:nvUBdIZc $C190:AD 1B 05 LDA $051B = #$77
007134: A:77 X:00 Y:09 S:FB P:nvUBdIzc $C193:29 02 AND #$02
007134: A:02 X:00 Y:09 S:FB P:nvUBdIzc $C195:45 00 EOR $0000 = #$00
007134: A:02 X:00 Y:09 S:FB P:nvUBdIzc $C197:18 CLC
007134: A:02 X:00 Y:09 S:FB P:nvUBdIzc $C198:F0 01 BEQ $C19B
007134: A:02 X:00 Y:09 S:FB P:nvUBdIzc $C19A:38 SEC
Breakpoint 0 Hit at $C19B: $051A-0522:ECRW--
007134: A:02 X:00 Y:09 S:FB P:nvUBdIzC $C19B:7E 1A 05 ROR $051A,X @ $051A = #$15
007134: A:02 X:00 Y:09 S:FB P:NvUBdIzC $C19E:E8 INX
007134: A:02 X:01 Y:09 S:FB P:nvUBdIzC $C19F:88 DEY
007134: A:02 X:01 Y:08 S:FB P:nvUBdIzC $C1A0:D0 F9 BNE $C19B

I'm not really good at debugging, but whatever.
The luck for enemy behaviour seems only to depend on the the time the enemy does an action, but the values change depending on the frame when Link enters a house, they don't just freeze, a completely new value is the result, I'm not sure if this counts for every exit Link takes. For example the on frame improvement with the healer glitch. When talking to the lady the RNG freezes, this means Link will enter the house with always the same values, but at a different time, which lead to different values when entering the next sectiion. I was not able to debug this, so I don't really know how it works.

Thanks to

  • Inzult for finding the biggest improvement of this run and trying to work on more.

Noxxa: Judging.
Noxxa: Accepting as an improvement to the published movie.
feos: Yeah.
Last Edited by adelikat on 10/11/2023 9:55 PM
Page History Latest diff List referrers