Donkey Kong Country 2 - Diddy's Kong Quest Any% TAS

This is an improvement to my Any% run of Donkey Kong Country 2. Overall, we saved 5,883 frames or 1 minute, 38.4 seconds. I thought I was done with this game, but as it turns out there are some major warping glitches involved with the 1.1 version of this game. Umihoshi came out with a full Any% TAS on the Japanese version of the 1.1 ROM, and it was faster than my run. However, Dooty and I looked it over and noticed that there was still more improvements to be made, as well as some mistakes (for instance, there was a missed shot on King Zing Sting.) Dooty and I also wanted to "translate" the run and have it on the U ROM; before we did that, we had to make absolute sure that this was the right move.
Dooty noticed a few differences between the J and U ROM. There's slightly more lag on the US version, some stages have more enemies, and the stages have longer loading times (by 1 frame). When Dooty first made a test run, splicing all of Umihoshi's input using the U ROM, and adding a few improvements, the total time was only 1 second slower than the J TAS. We therefore decided that yes, using the J ROM would be faster.... by a marginal fraction. We decided that U ROM was the best scenario, since there isn't enough improvements to warrant using the J ROM.
The input in this movie is a combination of all three of us. Umihoshi reused most of my input when he made his run (much of the routes in the "normal" stages are still mine); however as you'll see he came up with some interesting new solutions, new routes, and new optimizations for the glitchy levels. Dooty redid a couple of stages, as well as redoing many of the bosses, due to errors or due to luck manipulation from all the hexing we did. I made a few couple improvements on my own, trying even the stupidest little things that could possible save time. For instance, the same glitch that let's the camera move fast in the 102% run in Jungle Jinxes works in Hornet Hole as well. I fully tested that route, and it saved 28 frames... but the camera can't get unstuck for further progression without sacrificing a Kong, thus sacrificing 66 frames. I thought of every single one of these possibilities, and we tested them all.
So the reason this run uses the 1.1 ROM is because of the holding air glitch. In all versions of the game, it's possible to hold invisible air. There are a few methods to do this, but in the 1.1 version, you can use that trick to alter the parameters of warp barrels and bonus barrels. There are two noticeable side affects of an "altered" barrel; one, it can blast you to the top of the level; and two, it can warp you the level fades out.... but the level is considered completed, and you can move on the next one.
How does this work? It's very complicated. When you perform the trick (most often in this run is using the klick-klack beetles, bouncing off one when trying to throw one) the "invisible" object you are holding has a sprite address, which is keyed to one of the sprites currently on screen. There's a tiered system of the 'order', as it were, of the sprites on the screen. If you see a beetle, and keep going and see another beetle, the first beetle will be in the 'first slot' position, and the second beetle will be in the 'second position'. these positions change as new sprites enter the screen and are spawned, or leave the screen. When you hold air, the invisible object is tied to one of these sprites. You want the air to be the sprite of the object you're going to change. If you are holding the memory address of a throw-barrel, and the next sprite in line is a neek, and you throw the air, the neek gains the properties of the throw barrel and moves at super speed. In this run, we are creating invisible air, and we are holding the memory address of the warp/bonus barrel. We then throw, the "purpose" (so to speak) of the barrel changes, we enter it, and voila! Stage is done. This also works for the bonus cannons.
This will cause happiness: changing the sound to stereo helped the luck on the first Krow boss fight! So now the run is in lovely stereo sound goodness.

New tricks

One new trick that saved time in a few areas is the crouch-double jump. Dooty explained "Stomp on the nose or tail of a small enemy like Neek the rat or Klampon the small croc then press down+B and then you will jump, but since you're crouched you can jump again in mid air. The double jump also work on Click-Clack the beetle, but on Click-Clack you must wait for him to recover from a bump, so it's kinda useless to use him. Sometimes you can press B for just one frame to stomp on the enemy, but on Lava Lagoon it's necessary to jump higher for it to work. It's not possible to roll, pressing any directions cancels the trick." (More will be added later)

Frame Comparisons

Pirate Panic -7 frames faster. Did the team up earlier instead of jumping up onto the barrel. This requires very precise maneuvering.
Mainbrace Mayhem -189 frames faster. The first warp-glitch level. It's possible to team throw your way up there, but going up the rope is faster by a couple of frames.
Gangplank Galley -13 frames faster. Since there's no goal switch in Mainbrace Mayhem, we start off as Diddy, which saves a few frames. We did the team up later, rather than sooner because of the BBABB jump trick (thus having a faster jump speed overall when making the last jump to get to the warp barrel.
Lockjaw's Locker -12 frames slower. We did a goal switch here to use Dixie for Topsail; that way we won;t lose 66 frames if we enter Krow as Diddy.
Topsail Trouble -284 frames faster. This route is different from Umihoshi since we use Dixie instead. It's possible to activate the invisible air and drop down sooner, but doing it the way we did caused a certain scrolling of the camera that allowed us to throw the barrel higher up, rather than having to land on the ground and jump up again at the ledge.
Krow's Nest -94 frames faster. Entering as Dixie instead of Diddy. I think something in the 1.1 vs. 1.0 ROM differences caused it to be over a second faster.
Hot-Head Hop -254 frames faster. This is a little confusing. There's a warp glitch here, but it took a lot of different testing to get it optimal. This version was one of my older WIPs, and I noticed that Umihoshi ran into the barrel kroc, but the kroc didn't start running as fast. In my version, I manipulate the kroc to bounce the smallest distance and start running ASAP. Once I did that, I optimzed the exact location of where to jump on him that would 1) cause the invisible air and 2) be close enough to the wall where I could throw the barrel, team up, and jump up to the wall without losing any speed. It took a lot of testing, but I finally got that optimized. You have to throw the barrel at a specific spot (the Lua script helped immensely with this) for the warp barrel to gain extra properties. A lot of effort went into this stage.
Kannon's Klaim -120 frames faster. Rather than go in the barrels, we use the hook and the kannon kroc to take a much more direct route. When I tested this in my old movie, the warp barrel wasn't spawning for some reason.
Lava Lagoon -13 frames faster. Dooty used the crouch-double jump trick to save time here.
Red-Hot Ride -Same
Squawks's Shaft -2 frames slower. Nothing's changed, the hexing and version differences are the likely cause of the frame loss.
Kleever's Kiln -12 frames faster. Same old, same old. We had to redo this fight due to luck.
Barrel Bayou -Same
Glimmer's Galleon -29 frames faster. There's a slight route change at the end.
Krockhead Klamber -13 frames slower. The hitboxes of the brown krocheads that bounce you up is different from 1.0 ROM. You can't roll through them without triggering them. Umihoshi just landed on one of the last ones. I thought it should be fixed, but only get it once frame faster than his attempt.
Rattle Battle -10 frames faster. Minor optimizations
Slime Climb -1349 frames faster. The beginning is all about setting up the fastest way to get Diddy and Dixie to the 2nd pair of beetles. The super jump out of water glitch was done at a different spot to optimize the attainment of the DK barrel and for Kong management. Once we got the invisible air, we just jumped back down to the first bonus barrel.
Bramble Blast -2 frames faster. Slight optimizations.
Kudgel's Kontest -3 frames faster. Same old. Version differences probably caused the savings.
Hornet Hole -43 frames faster. Slight optimizations. I tested a camera glitch route, and while it was faster at first, it would lose frames and a Kong in the end. One noticeable difference is Umihoshi climbs honey differently, rather than trying to grab onto the honey again as soon as possible, he spends more time in the air.
Target Terror -2 frames faster. Slight optimizations.
Bramble Scramble -4 frames faster. Slight optimizations. One important thing with Squawks is that you may see some missed shots; this is actually Umihoshi using one of my older tricks. When you are turning direction, you can save some subpixels by letting go of the left/right arrows. Umihoshi lets go of Y when he does this to optimize the turns more, and this causes Squawks to shoot an egg. There's one more seemingly missed shot in a later level, I'll explain that one in that stage.
Rickety Race -5 frames faster. Slight optimizations.
Mudhole Marsh -702 frames faster. Umihoshi used the bonus cannon to warp glitch. The setup takes some time as you can see.
Rambi Rumble -35 frames slower. You can;t skip Rambi in 1.1, since the changes in the physics for team up jumping removes the possibility of squeezing past the zinger like in the 1.0 old run. Umihoshi made a few improvements in spite of that.
King Zing Sting -26 frames faster. Version differences probably account for the faster time. In Umihoshi's run, he hits one of the mini zingers instead of the main zinger, which is why his run was slower than my old one.
Ghostly Grove -8 frames faster. Slight optimizations.
Haunted Hall -42 frames faster. Doing a teamup to get onto the kart saved time since the kart doesn't start moving until the second Kong lands on it. if you land on it as a teamup, it starts right away. Umihoshi made some other optimizations as well.
Gusty Glade -16 frames faster. Slight optimizations.
Parrot Chute Panic -13 frames faster. Slight optimizations.
Web Woods -69 frames faster. Overall improvement of optimizations, and Dooty didn't need to waste as much time as I did in my old run in order to manipulate luck for Kreepy Krow.
Kreepy Krow -226 frames faster. Umihoshi came up with the team up throws after each hit of Kreepy Krow. Dooty luck manipulated a better setup of the barrels.
Arctic Abyss -19 frames faster. Slight optimizations.
Windy Well -51 frames faster. Slight optimizations.
Castle Crush -102 frames faster. Activated the goal-pull glitch sooner. For those not in the know, when you hold invisible air (in this level, holding a barrel inside the wall, dropping it inside the wall, and picking up before it'd get naturally destroyed) somehow causes the goal target at the top of the level to somewhere appear where you are. I had tested it previously and that area is the lowest where the target spawns... possibly because the goal target exists at the moment.
Clapper's Cavern -36 frames faster. Slight optimizations.
Chain Link Chamber -2081 frames faster. Doing another warp glitch here, using the cannon bonus. Again, like Mudhole Marsh, the setup takes a little bit of time. Dooty tested a different method, but said that way caused more lag.
Toxic Tower -73 frames faster. Some good optimizations here. Using the crouch-double jump in the beginning, and various improvements in other places.
Stronghold Showdown -1 frames faster. Woo!
Screech's Sprint -6 frames faster. Slight optimizations. The last egg shot at the end is done to squeeze against the vines even closer and not get hurt.
K. Rool Duel -9 frames faster. Dooty did this boss, and I really like what he's done with it. Funny story, when he sent me the .smv originally, it was incomplete; the input cut off before the last throw. I was able to save one frame over what I imagine Dooty wanted. I tested some other methods of throwing to end it sooner, but couldn't come up with anything.

DarkKobold: Judging. Nach: DarkKobold is busy, so I'm taking this run over. I'll try to have a verdict within a day or so.

Nach: Other than the first two worlds being mostly actionless, and some seizure inducing flashing, this run was amazing. I apologize that you had to wait so long to have it judged. Accepting as improvement to existing run.

Brandon: Publication underway.


TASVideoAgent
They/Them
Moderator
Joined: 8/3/2004
Posts: 15577
Location: 127.0.0.1
Joined: 3/17/2011
Posts: 24
Can't wait to see it. I'll vote after an encode.
Player (100)
Joined: 3/20/2008
Posts: 466
Location: Montreal, Quebec, Canada
Whoa, this sure came out of nowhere. I managed to sync with snes9x-1.43-rerecording-svn146. Anyway, yes vote that requires no explanation.
Active player (279)
Joined: 4/30/2009
Posts: 791
1.43. Yes vote is obvious.
ALAKTORN
He/Him
Former player
Joined: 10/19/2009
Posts: 2527
Location: Italy
yes, finally! can’t wait for encode how much easier is the J version? how many less enemies? less lag alone is written in the rules as being a sufficient reason to change ROM, so if it even saves time I think it should be used
Editor
Joined: 3/31/2010
Posts: 1466
Location: Not playing Puyo Tetris
It's starting to be Pokemon esque. Glitchin' it hard.
When TAS does Quake 1, SDA will declare war. The Prince doth arrive he doth please.
Synahel
She/Her
Former player
Joined: 1/19/2011
Posts: 260
Location: France
This glitch for skipping levels is amazing. As the rest of the run. Oh how I love this game, and how I enjoy this!
Post subject: DKC2: youtube
Joined: 3/18/2006
Posts: 971
Location: Great Britain
ALAKTORN
He/Him
Former player
Joined: 10/19/2009
Posts: 2527
Location: Italy
another marvelous TAS :) edit: oh wow, I never knew about that final secret dialogue XD
Brandon
He/Him
Editor, Player (191)
Joined: 11/21/2010
Posts: 914
Location: Tennessee
I think I'll produce the official encodes for this. As TASBlend is still slightly controversial, do people think I should use it for this run? Primarily, does it have any flicker? Is the flicker excessive?
All the best, Brandon Evans
Onyx3173
She/Her
Joined: 5/30/2010
Posts: 76
Location: Oregon, USA
How did you get the goal thing to appear in Castle Crush? Was that the glitch you had been using elsewhere? I think I blinked and missed something important there.
I am a figment of my imagination.
Joined: 9/12/2009
Posts: 42
I love how fast paced all of the levels are... even moreso now. First world completed soooo fast.
creaothceann
He/Him
Editor
Joined: 4/7/2005
Posts: 1874
Location: Germany
Brandon wrote:
I think I'll produce the official encodes for this. As TASBlend is still slightly controversial, do people think I should use it for this run? Primarily, does it have any flicker? Is the flicker excessive?
When one character dies, the other character starts flickering (2 frames on, 2 frames off) and takes over. Apart from that it doesn't have much flicker (iirc).
Editor, Expert player (2329)
Joined: 5/15/2007
Posts: 3933
Location: Germany
I really like the glitching in this movie, even if I haven't played the game. I hope there will be a comparison video..
Active player (500)
Joined: 11/19/2007
Posts: 128
This'll probably be answered in the individual level comments, but why did you lose time in Rambi Rumble? Is skipping Rambi not possible on the 1.1 ROM, or is there some other reason I missed? I loved the run, of course. I haven't been following dkc2 much, so it was really nice and refreshing to see all the new tricks. Great work to all of you! :)
Editor, Experienced player (734)
Joined: 6/13/2006
Posts: 3300
Location: Massachussetts, USA
NxCy wrote:
This'll probably be answered in the individual level comments, but why did you lose time in Rambi Rumble? Is skipping Rambi not possible on the 1.1 ROM, or is there some other reason I missed?
Correct. This is due to 1.1's changes in the physics of team jumping. Once you do your first team jump, all the momentum from your jumps are lost. So even though you can have the other kong thrown upwards, and land on top of you, and press B at the correct frame, you won't gain any more height. This is crucial in the 'skip over the bee' part of skipping Rambi.
ALAKTORN wrote:
how much easier is the J version? how many less enemies? less lag alone is written in the rules as being a sufficient reason to change ROM, so if it even saves time I think it should be used
Umihoshi's original J TAS was 39 minutes, 9 seconds. The first USA TAS 'translation' was 39 minutes, 10 seconds. The combination of lag and loading times (1 frame saved in the J ROM from loading each level) only amounted to 1 second. I do not believe that warrants a change. There's only a few stages where there's a difference in enemies, and it's really only by a small amount
Homepage ☣ Retired
Brandon
He/Him
Editor, Player (191)
Joined: 11/21/2010
Posts: 914
Location: Tennessee
creaothceann wrote:
Brandon wrote:
I think I'll produce the official encodes for this. As TASBlend is still slightly controversial, do people think I should use it for this run? Primarily, does it have any flicker? Is the flicker excessive?
When one character dies, the other character starts flickering (2 frames on, 2 frames off) and takes over. Apart from that it doesn't have much flicker (iirc).
Are there any instances of 30hz flicker (1 frame on, 1 frame off)?
All the best, Brandon Evans
Active player (279)
Joined: 4/30/2009
Posts: 791
No
creaothceann
He/Him
Editor
Joined: 4/7/2005
Posts: 1874
Location: Germany
Brandon wrote:
Are there any instances of 30hz flicker (1 frame on, 1 frame off)?
fixed ;)
Brandon
He/Him
Editor, Player (191)
Joined: 11/21/2010
Posts: 914
Location: Tennessee
Well, I'm going to try encoding with the technique regardless. Nothing really to lose.
All the best, Brandon Evans
creaothceann
He/Him
Editor
Joined: 4/7/2005
Posts: 1874
Location: Germany
Brandon wrote:
Well, I'm going to try encoding with the technique regardless. Nothing really to lose.
There will be a bit of blurring though; maybe encode a few minutes of
AVISource(...)
StackHorizontal(ChangeFPS(FrameRate / 2), TASBlend)
... and preview the result?
Brandon
He/Him
Editor, Player (191)
Joined: 11/21/2010
Posts: 914
Location: Tennessee
creaothceann wrote:
Brandon wrote:
Well, I'm going to try encoding with the technique regardless. Nothing really to lose.
There will be a bit of blurring though; maybe encode a few minutes of
AVISource(...)
StackHorizontal(ChangeFPS(FrameRate / 2), TASBlend)
... and preview the result?
Preview? That's for smart people. Nope, I'm going to let this encode finish and hope it all came out great. ETA: 27 hours. Edit: Downloadable Encode / 512kb are both done, but too big to upload to MediaFire. Will be added to an archive upon acceptance.
All the best, Brandon Evans
Joined: 4/3/2006
Posts: 269
That is very nice! Thank you for the TAS! Voting yes!
Brandon
He/Him
Editor, Player (191)
Joined: 11/21/2010
Posts: 914
Location: Tennessee
I've determined that it is acceptable to upload runs to archive.org so long as I remove them if they don't get accepted. I'm willing to bet this one will be accepted, so as such, here is the Archive entry. The YouTube video will come shortly hopefully, and we can determine if the blurring was a good idea.
All the best, Brandon Evans
creaothceann
He/Him
Editor
Joined: 4/7/2005
Posts: 1874
Location: Germany
Mmmh. The 512Kb one has higher quality?