Submission #3259: Comicalflop, Dooty & Umihoshi's SNES Donkey Kong Country 2: Diddy's Kong Quest in 39:06.68

Super Nintendo Entertainment System
(Submitted: Donkey Kong Country 2 - Diddy's Kong Quest)
baseline
(Submitted: Donkey Kong Country 2 - Diddy's Kong Quest (U) (V1.1).smc USA v1.1)
Snes9x
140801
60
85717
Unknown
Comicalflop, Dooty
(Additionally: Umihoshi)
Submitted by Comicalflop on 8/14/2011 4:02 AM
Submission Comments

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.
Last Edited by adelikat on 9/22/2023 6:52 PM
Page History Latest diff List referrers