CoolKirby's Adventure is a great game. If you have a spare minute, watch our TAS. This is the result of an extensive frame war where 6 TASers participated, namely (in alphabetical order): CoolKirby, Masterjun, MESHUGGAH, mugg, TASeditor and TRT.
Note: Submission text is subject to change.

Game objectives

  • Emulator used: FCEUX 2.2.1
  • Uses Old-PPU (the only thing is changes on different PPU is the credits glitch which can be remanipulated)
  • Aims for shortest input
  • Entertains without losing a frame
  • Uses reset button
  • Abuses game-breaking bug
  • Manipulates luck
  • Manipulates game

The story of this movie

TASeditor demonstrated a wall clipping trick on slopes. The next day, CoolKirby submitted #3976: CoolKirby's NES Kirby's Adventure "glitched" in 00:39.07 that abused the same bug from the previous TAS but now at the very first possible place: the 3rd room of level 1 using TASeditor's discovery. And another frame war had begun.
In the spirit of [2208] N64 Super Mario 64 "all 120 stars" by mkdasher, Nahoc, sonicpacker, Jesus, Kyman, MoltovM, SilentSlayers, snark, ToT, Bauru, Eru, Goronem, Mokkori, Nothing693 & pasta in 1:20:41.52 (as feos suggested), the 6 authors: MESHUGGAH, CoolKirby, Masterjun, MUGG, TASeditor, and was0x submit this movie as a team, since everyone made improvements and improved others' efforts. MESHUGGAH is the main author because he found the last improvements for this run.

How do you complete the game under 36 seconds?

You rush to the first possible place where you can abuse a game breaking glitch which triggers the ending credits (or various scene related subroutines) by using the Stone ability in water. While Stone Kirby will turn back into Kirby upon touching the surface of the water, entering a pool of water from below or from the side causes the game to crash. However, on the last frame before the game crashes, you can press Start and a few other buttons to manipulate the game to jump to the credits instead.
Other than that, there were various little tricks thrown in by the 6 TASers like subpixel positioning, removing enemies at lowest cost to save lag frames, dashing at cliffs, bunnyhopping to maintain movement speed, optimizing jumping lengths and inhaling, comparing different routes (sometimes you need to be slower to be faster) and rolling suitable RNGs.

MESHUGGAH's comments

Hi guys and girls. Do you wanna know what I implemented in order to shorten this TAS?
Optimizing sub pixel positions and jumps
using MUGG's lua script, later Masterjun's lua script, I could optimize the route to make it as fast as possible. To understand how much the game lags, in the movie it was faster to run down from the hill instead of jumping over it with a higher movement speed.
Inhaling three creatures instead of two
this way I lost position but saved lag frames, so I could continue the route faster.
Dashing through sparky
killing sparky removed many lag frames.
Delaying the leaving of a room
when you improve a "lag frame", the next occasion a lag appears will be different (of course this has other factors like objects on screen). Using TASeditor's idea of sacrificing frames to start the next room and combining this with slowing down at the early part of room 2, I could keep my improvements without losing them (except 1 frame which was otherwise impossible to make faster or even as fast as this way does). This saved much more than 10 frames alone instead of 1 frame (or even 0 frame).
Jumping through room 2 gap with 1 jump and breath
looks a bit funny, but this is 2 frames faster than any other strategy.
Wallclipping
you can clip over a slope if you time your jump's peak point to go through 1-2 pixels long walls. Movement speed and lag frames can fool you.
And for entertainment,
Glitch the ending graphics
this is input- and PPU clock/CPU cycle dependent. The reason I used this is to destroy the game after tedious TASing sessions.
I would like to thank CoolKirby for starting this madness, TASeditor for his great ideas and advice that helped me a lot, MUGG and Masterjun for their precious lua files and route strategies as well as was0x, and others who answered my questions on both forums and IRC. I hope you like this movie, as much as I hate the game now.
See you until my next frame war TAS =)

CoolKirby's comments

Hi, I'm Daisy CoolKirby! I started work on the original run after seeing TASeditor's new clipping glitch 53 minutes after he posted it. After a moment of decision, I spent the rest of my afternoon and night creating the 39.07 run, submitting it before I went to bed. This was definitely a challenge for me, as I had no experience with a game like this and didn't know how to optimize it quite as well as, say, MESHUGGAH did. I did the best I could though, and submitted it thinking it wasn't very improvable.
...needless to say, I learned a lot about advanced TASing techniques from my part in this frame war, especially from TASeditor and MESHUGGAH. While my hours and hours of trying to find an improvement myself but finding nothing were pretty discouraging, I did manage to save a frame once and establish my place in the frame war.
I'm really glad I was bested, because the run looks a lot better now with all the crazy new tricks and that wacky ending. And it couldn't have been done without all 5 of these other guys, especially MESHUGGAH (who must be a genius). Hope you all enjoy the run!

TASeditor's comments

Hi there!
How did I find the clipping glitch?
I actually was just playing a bit around, cause I was bored. Of course I did some pointless things, including jumping up a hill with turbo-fire button, then I accidentally found the clipping glitch. I was sure this could be used to improve the glitched TAS.
What have I achieved in the end?
Nothing! At the end I only shared ideas with MESHUGGAH, so he could squeeze out a bit more of the game. Thanks to MESHUGGAH for optimizing this run.

Masterjun's comments

Haha good job MESHUGGAH!
What did I do to be included here?
I actually just once saved 3 frames at the slope jump at the end, which was then sometime improved even more by MESHUGGAH (removing the lag by turning around instead of slowing down and creating laggy smoke). I also debugged the game and figured out how the RNG advances and how it determines the moves of the enemies. The lua script for it was already linked above somewhere...
How did I debug the game?
Well I... wait nobody actually wants to know this. It was easy by using the useful trace logging feature.
What else can I say?
Oh man I just love that glitched ending, haha. Also, lag frames can be a pain for every TASer! Seriously, how would anybody understand Slowing down to save time?

feos: Accepting too Moons. As for the alternate encode with regular ending, it must be added to the publication as a second YouTuber with a notice in the movie description explaining the second link.
Ilari: Processing...

AnS
Emulator Coder, Experienced player (723)
Joined: 2/23/2006
Posts: 682
Publication text wrote:
The 2nd Youtube encode has been edited to have ending using proper graphics instead of glitched mess.
Now this text suggests the encoded video was edited in After Effects to include normal ending, because only garbled ending could be achieved after using the glitch.
Site Admin, Skilled player (1234)
Joined: 4/17/2010
Posts: 11251
Location: RU
Better now?
Warning: When making decisions, I try to collect as much data as possible before actually deciding. I try to abstract away and see the principles behind real world events and people's opinions. I try to generalize them and turn into something clear and reusable. I hate depending on unpredictable and having to make lottery guesses. Any problem can be solved by systems thinking and acting.
mklip2001
He/Him
Editor
Joined: 6/23/2009
Posts: 2224
Location: Georgia, USA
I'm fine with how this was published. I did a first cleanup of the publication text, but I like how it's been fixed up now. It's important that the phrase "deliberately glitched" is included.
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.
MESHUGGAH
Other
Skilled player (1884)
Joined: 11/14/2009
Posts: 1349
Location: 𝔐𝔞𝔤𝑦𝔞𝔯
If anyone interested, I made an overlay of the 2 different endings (had to trim the glitched one a bit). I used Spikestuff's encodes. edit: thanks feos for noticing, video is now unlisted Link to video As you can see, in the glitched one, nearly all of the pallettes are one of kirby's graphic frame. And as the youtube comment says on Spikestuff's encode, kirby has "THE END" "power up" in the end. Also it gets a bit off sync around ~50 sec.
PhD in TASing 🎓 speedrun enthusiast ❤🚷🔥 white hat hacker ▓ black box tester ░ censorships and rules...
Site Admin, Skilled player (1234)
Joined: 4/17/2010
Posts: 11251
Location: RU
Unlimit the video.
Warning: When making decisions, I try to collect as much data as possible before actually deciding. I try to abstract away and see the principles behind real world events and people's opinions. I try to generalize them and turn into something clear and reusable. I hate depending on unpredictable and having to make lottery guesses. Any problem can be solved by systems thinking and acting.
Editor, Player (68)
Joined: 1/18/2008
Posts: 663
Console DEVERIFIED Syncs all the way up until the glitch, but the glitch performs differently; instead of credits, I get a gray palette (maybe the same one as the gameboy level), a normal statusbar, and a glitched play area with a constant loud tone. This was run with a PRG0 romset on a TKROM donor board created from a file with the same hash matching the submission. (so it is not PRG difference) Edit: I added R to the last frame of movie (as is the opposite of instructed to get non-glitched ending? maybe I'm not understanding) and I get this, which is basically exactly what I see on console. I didn't confirm the noise yet. http://i.imgur.com/ymlCUG1.png Edit 2: I understand what to do now. I re-ran with non-glitched ending - same result as above.
true on twitch - lsnes windows builds 20230425 - the date this site is buried
Patashu
He/Him
Joined: 10/2/2005
Posts: 3999
You could probably reproduce the glitch by just fuzzing the last few frames of input until it happens on console. It is very volatile.
My Chiptune music, made in Famitracker: http://soundcloud.com/patashu My twitch. I stream mostly shmups & rhythm games http://twitch.tv/patashu My youtube, again shmups and rhythm games and misc stuff: http://youtube.com/user/patashu
MESHUGGAH
Other
Skilled player (1884)
Joined: 11/14/2009
Posts: 1349
Location: 𝔐𝔞𝔤𝑦𝔞𝔯
Only the last input need to be modified. Removing A at last frame gives highly similar to the "console" result To recreate your result (not the above mentioned), I had to remove "R" on 2144th frame. I've uploaded a movie I think it should sync on console: http://tasvideos.org/userfiles/info/13598421770779436
PhD in TASing 🎓 speedrun enthusiast ❤🚷🔥 white hat hacker ▓ black box tester ░ censorships and rules...
Editor, Player (68)
Joined: 1/18/2008
Posts: 663
MESHUGGAH wrote:
I've uploaded a movie I think it should sync on console: http://tasvideos.org/userfiles/info/13598421770779436
Crashes with similar / same screen as before on console.
true on twitch - lsnes windows builds 20230425 - the date this site is buried
MESHUGGAH
Other
Skilled player (1884)
Joined: 11/14/2009
Posts: 1349
Location: 𝔐𝔞𝔤𝑦𝔞𝔯
So, the glitched TAS on console is something around 2~13 cycles farther compared to the emulated one.
Glitched TAS
c64281102 $FB2A:40 RTI A:FF X:FF Y:62 S:F9 P:NvUBdIzc 
c64281108 $3CBF:DA UNDEFINED A:FF X:FF Y:62 S:FC P:NvUBdizC

Recreated console outcome on emulator
c64281115 $FB2A:40 RTI A:FE X:FF Y:62 S:F8 P:NvUBdIzc 
c64281121 $7E4E:01 01 ORA ($01,X) @ $7F00 = #$F8 A:FE X:FF Y:62 S:FB P:NvUBdizC 
The stack is vastly different, probaly one of the undefined instruction got executed on console. Or... ...the "glitched TAS" with NewPPU gives the same result but with colors: So, here's the NewPPU "normal" credits movie.
PhD in TASing 🎓 speedrun enthusiast ❤🚷🔥 white hat hacker ▓ black box tester ░ censorships and rules...