Submission #3411: MUGG's NES Kirby's Adventure "glitched" in 05:44.57

Nintendo Entertainment System
game end glitch
(Submitted: glitched)
(Submitted: Kirby's Adventure (U) (PRG0) [!].nes USA PRG0)
FCEUX 2.1.5
20708
60.0988138974405
18020
Unknown
Submitted by MUGG on 12/28/2011 12:01 AM
Submission Comments

About the run

  • Takes damage to save time
  • Uses a game restart sequence
  • Abuses glitches
  • Removes lag like a boss
  • Genre: Platform
Used emulator: fceux-2.1.5-win32
This run goes to the credits 30 minutes and 57.30 seconds faster than JXQ's run, by using a new glitch. (In the comparable sections, I saved about 5~6 seconds.)
This video which I found some years ago started it all! I deemed the stone glitch in 6-1 as shown in the video useless because in my initial tests I could make FCEU only crash and there was nothing more to it. Also, the player used either Nestopia or Nintendulator (I cannot remember which), so I considered it an emulation bug.
Just a few days ago I looked at the video again, and tried testing it on FCEUX. I almost concluded it to be useless again, but by pausing the game at the same frame it crashes I could get different results and often it went to the credits sequence! So I posted about this in the forum topic to start up some discussion on it. Inzult and CoolKirby console-verified the glitch and I did quite a bit of glitch hunting in order to find a way to do the glitch early in the game. Luckily, I did find a way:
There is a very tight passage Kirby can move into, at the bottom of the screen. By moving back into the water - from the side - he can do the glitch. There are a lot of places like this and 2-3 just happens to have the first such place so it's the level the glitch is used in.

About the stone glitch

The glitch happens if you transform into stone kirby at the same time you are underwater. This can only happen when moving into a body of water from below or from the side. The glitch thereupon crashes the game or makes it go to the credits sequence, rarely it can warp you to random places. I had it play the world 1 intro and then warp me into world 5, level 1, room 2. And I had it warp me into the level end sequence, then I got out of world 1, level 1's door and nothing was unlocked...
Due to the nature of the glitch it will send you to the credits screen (by pausing on the same frame it crashes) almost all the time, or it won't at all. I got the credits glitch to work by taking the savegame from JXQ's run when he arrived at 6-1, mixing for stone in one of the previous levels and then doing the glitch in 6-1. I noticed the glitch doesn't work very well when you played through a sequence of levels beforehand - which might be why my initial tests on FCEU didn't bear fruit because I didn't reset the game back then. When the game is freshly reset, the credits glitch could be performed quite reliably.
So this TAS needed to reset the game somewhere prior to entering 2-3, which is the level the credits glitch is done in. But no matter how it was planned, quite a lot of time would be lost.
If I had reset after 1-3, 1-4 or 2-1, I would have lost UFO and there weren't any opportunities for quick mixes right at the next stage's beginning. I just figured that going to 1-1 after finishing 2-2 and mixing for stone there, then doing the glitch in 2-3 was the fastest. Of course it would save quite some time not having to reset the game, but the credits glitch just never happened in any of my no-reset tests I did in this TAS.

Memory addresses

addresspurpose
01A5Lag flag (FCEUX' lag counter doesn't work well with the game)
05B9X Speed Low-byte
05BAX Speed High-byte
05BDY Speed Low-byte
05BEY Speed High-byte
0083X Position Low-byte
0095X Position High-byte
0071X Position subpixels
00B9Y Position Low-byte
00CBY Position High-byte
00A7Y Position subpixels
The lag flag address 01ED JXQ posted about in the topic doesn't work at all. I don't know if this is due to erroneous memory search or due to the PRG0 and PRG1 difference.
I wrote a Lua script that shows X/Y Position, speed and lag on the screen. When loading a state using F1~F10, the lagcount is cleared. There are two problems with my script though: When holding F1~F10, lag occuring when currently not in frame-by-frame mode isn't counted. And sometimes when pressing F1~F10 too quickly, it doesn't register and the lagcount isn't cleared.

Thanks to

Inzult: For console-verifying the credits glitch
CoolKirby: For having someone to talk to in the forum topic, and also console-verifying the glitch
Everyone else who posted in the forum topic and was interested


Mukki: Judging...
Mukki: Accepting for publication as a separate "glitched" category.
Nahoc: Processing...
Last Edited by adelikat on 9/23/2023 6:07 PM
Page History Latest diff List referrers