This is Donkey Kong Country for the Gameboy Color, released in 2000, completed as quickly as possible. This video highlights the unique physics and exploits present in this version of the game to traverse a familiar levelset in potentially unfamiliar ways. The emulator used is BizHawk 2.6.2 with Gambatte core, and the goal is to defeat K. Rool from a new file (any%). The original document, written in LaTeX and compiled to a PDF, is available here: https://drive.google.com/file/d/1KjmLqxJ_sOY89qQUhjphrlvQ7DPGtd_B/view?usp=sharing.

Intro

Starting sometime in early 2021 I came back to my childhood Donkey Kong Country game, the 8-bit Gameboy Color remake of the original. As strange as this game probably seems to everyone who grew up with the original Super Nintendo version, or even the Gameboy Advance port, I have many fond memories of the Gameboy Color game and I always enjoyed it. I spent about 3 months running the game RTA on emulator and keyboard, and after achieving a run to be proud of I decided to start making a TAS. I had found some interesting possibilities and wanted to put some strats together to see what would come of it. I remember one of the first inspirations being that I found that it was possible to roll off the tires in Mine Cart Madness but it was quite difficult, and I wanted to see what the speedrun could look like if I could put these kinds of strats together. I had never made a TAS before, my only experience was some messing around with Celeste's TAS tools. I had no idea what I was getting into.
What began as an experiment to find cool strats turned into a project to make a masterpiece. For over a year I worked on this thing. There were a couple long breaks, but I legitimately put hundreds of hours into it. My first draft of the TAS which defeated K. Rool was fast, but there were many suboptimal strats and the bosses and autoscrollers were boring. I couldn't settle for a mediocre video, I had to make it perfect. I went back, discovered new tech, saved every frame I could find and tried to make every idle moment interesting. In this document I'd like to share all the frame data and tech I've found, as well as some detailed commentary about each level. Some of the information here can be relevant to RTA runners as well. I hope you enjoy the video, and find the information useful and interesting as well.

Basic Frame Data

A note about units: Lengths are stored in two separate bytes measuring pixels and subpixels. There are 256 subpixels per pixel. For position in the level which requires more than 256 pixels, another byte is used to store superpixels. When I started working on this TAS I made the decision to keep my subpixel and pixel addresses separate and measure as a sort of a 256-decimal. This has the advantage of making the significant figure easier to see and reference, but the disadvantage of making computations and comparisons harder. Furthermore, with the subpixel value unsigned, to read leftwards and upwards speeds you have to add the negative pixel value to the positive subpixel value, making them harder to think about. In hindsight I probably should have switched to using subpixel only measurement, but I got set in my ways. In this document I primarily give measurements as pixel_subpixel, these units will be denoted with an underscore to separate the place values. In the following table I will give measurements in these units as well as in pixels as a rounded decimal, and pure subpixels, to make them easier to think about for anyone who prefers those units.
I included a lot of values for anyone who is curious, but some are not super relevant so I highlighted the important ones in bold. Animal buddy speed and acceleration values are the same as the Kongs' when not mentioned. For some reason, Expresso and Winky also get their speeds set to 0 when they land from a jump.
Measurementpixels_subpixelspixels decimalsubpixels only
Walk Speed1_511.20307
Run & Air Speed2_02.00512
Ground Accel.0_1280.50128
Air Accel.0_640.2564
Ice Accel.0_160.0616
Roll Speed2_1932.75705
Roll Boost Per Hit0_1440.56144
Crawl Speed1_01.00256
DK Jump Speed-6_0-6.00 -1536
DK Jump From Roll-6_128-6.50-1664
Diddy Jump Speed-6_36-6.14 -1572
Diddy Jump From Roll-6_164-6.64-1700
Jump From Tire Speed-8_64-8.25-2112
Bounced By Tire Speed-5_0-5.00-1280
Stomp Enemy Speed-7_0-7.00-1792
Gravity Accel. (Normal)+0_128+0.50+128
Gravity Accel. (Floating)+0_80+0.31+80
Terminal Fall Speed+7_255+8.00+2047
DK Swim Horizontal Speed1_01.00256
DK Swim Down Speed+1_69+1.27+325
DK Water Jump Speed-2_69-2.27-581
Diddy Swim Horizontal Speed1_511.20307
Diddy Swim Down Speed+1_134+1.52+390
Diddy Water Jump Speed-2_7-2.03-519
Water Downwards Base Speed+0_128+0.50+128
Water Horizontal Accel.0_160.0616
Water Vertical Accel.0_320.1232
Enguarde Speed1_2401.94496
Enguarde Stab Speed3_1273.50895
Enguarde Accel.0_160.0616
Rambi Ground Speed2_1482.58660
Rambi Ground Accel.0_960.3896
Rambi Jump Speed-6_38-6.151574
Rambi Stomp Enemy-4_0-4.00-1024
Rambi Buck Vertical Speed-3_128-3.50-896
Winky Ground Speed2_1282.50640
Winky Jump Speed-7_128-7.50-1920
Winky Bounce Speed-8_0-8.00-2048
Expresso Ground Speed3_03.00768
Expresso Jump Speed-6_128-6.50-1664
Expresso First Flap-3_227-3.89-995
Expresso Subsequent Flap-1_22-1.09-278
Expresso Flying Gravity+0_80+0.31+80
Expresso Flying Terminal Fall+1_233+1.91+489
Rope Climbing Speed1_911.36347
Rope Climbing Speed (B Held)1_1941.76450
Rope Climb Accel.0_640.2564
Rope Jump Horizontal Speed5_05.001280
Rope Jump Vertical Speed-3_243-3.95-1011
Mine Cart Carnage Base Speed3_03.00768
Mine Cart Madness Base Speed2_1362.53648
Steel Barrel Speed4_04.001024

Memory Addresses

AddressMeaningComments
0802Status2-byte HEX value denoting current state of the player, see "Status Table."
0811X SubspeedDisplay as 2-byte to show subpixel only value.
0812X Speed
0813X Subposition
0814X PositionDisplay as 2-byte to show pixel only value.
0815X Superposition
0818Gravity
081AY SubspeedDisplay as 2-byte to show subpixel only value.
081BY Speed
081CY Subposition
081DY PositionDisplay as 2-byte to show pixel only value.
081EY Superposition
0825Animation Timer
082EExtendThe sixth bit (64) counts the extended roll "credit." Other bits seem to hold other information (for example, 5 = "inside barrel cannon").
0832Speed Lock
0836StaminaThis value is inverted, 0 denotes full stamina and 10 is empty.
0474Camera FrontX position of the right side of screen.
0300RNG LSFR3 bytes.
031BBananasWhen viewed as a HEX variable, displays the banana count in decimal.
031CBananas CountingThis holds bananas as they move towards the counter. If this value is nonzero when hitting a level transition, it causes a "banana block."
031DLivesWhen viewed as a HEX variable, displays the life count in decimal.

Status Table

The "status" of the game is stored in memory variable 0800 in 4 bytes. The first 2 bytes seem to store general information like whether we're in a level or on the overworld, while the second 2 bytes describe the status of the player. Below is a list of many relevant values of 0802 as 2-byte hex and what states they correspond to. There are other states relating to the overworld, the Kong Family, various menus and loading screens, and even Funky's Fishing and Crosshair Cranky, but these are less important so I didn't include them here.
StatusMeaning
4956Level Entry
4AA8Boss Entry
4AFFStanding/Walking/Running
4CFFJumping
4D4DDucking
4D94DK Hand Slap
4E0FDK Hand Slap Late
4E29Rolling
4EF8Crawling
4F5FDead Roll
4FABSwimming
5058Rambi
5183Rambi Jumping
521DExpresso
5325Expresso Jumping
536CExpresso Flying
53DCEnguarde
54BFWinky
55C7Winky Jumping
564CDead (Damage)
566DDead (Pit)
5690Dead
56A8Dead Late
56C3Spinning
5753Krusha Knockback
5765Barrel Holding/Walking
5863Barrel Jumping
58B7Barrel Picking Up
58ECBarrel Throwing
5953Barrel Putting Down
59B0Rope Climbing
5BCCBarrel Cannon
5C02Rope Swinging
63E6Mine Cart Riding
64A6Mine Cart Jumping
6554Steel Barrel Riding
670DLevel Exit
6728Victory/Defeat Fanfare
6F10Level Complete

Tech

Although this game may seem like a janky port to those unfamiliar, it actually has some pretty complicated movement mechanics. I discovered most of the following techniques myself while TASing. Many of these mechanics are useful for RTA running, and the rest are interesting for understanding how many puzzle pieces have to be put together to make the movement as fast and fluid as possible.

Character Differences

DK and Diddy are more balanced in this game than in the other two versions of it. They have the same running speed and initial rolling speed. DK has a bigger hitbox and can stomp Klump, Krusha and curled-up Army. He also has the hand slap attack and holds barrels over his head. Diddy is smaller, jumps slightly higher, and maintains slightly more speed during rolls. He holds barrels in front of him like a shield. For some reason DK also swims much slower than Diddy in all directions except up, where his water jump produces slightly more initial upwards speed. Diddy's advantages are small, but enough to make him the optimal choice throughout most of the run. However, DK has a few specific uses in the TAS, and RTA runners should not fear losing Diddy as much in this game because Donkey is generally not that bad.

Basic Rolling and Jumping

Like all DKC games, the fastest way to travel in this game is rolling. Rolls in this game are incredibly overpowered - they are much faster than running or jumping, last a very long time, and the speed and duration are greatly increased when rolling through enemies. For this reason, the general strategy for this game is to spend as much time rolling as possible, and roll through as many enemies as possible. Since the duration of a roll is very long, it's usually best to land early and roll immediately. It's possible to roll through barrels in this game without releasing B as long as right (or left) is also held. However, there are many interesting nuances and limitations to rolling, which are covered in the next 8 sections.
The other basic move is of course jumping. You can jump out of any roll even if you're in the air, and even casual players know that roll-jumping is the most effective way to achieve great mobility options while maintaining control. After jumping, your vertical speed immediately begins to increase at the rate of gravity each frame, giving you a simple parabolic jump arc. However, holding jump keeps gravity at a lower value, causing you to jump higher.

Speed Lock

Rolls normally decelerate every frame, but during the first few frames of the roll your speed does not change. The horizontal deceleration is 0_1 (1 subpixel) speed per frame, which is small but significant over the course of long rolls. Rolls also fall at the rate of gravity, but your vertical speed also does not change at the beginning of the roll. This is what allows you to "float" over gaps when you roll off a ledge. Rolling off flat platforms locks your vertical speed at 0_0, while rolling off slopes can cause the roll to slant donwards with a vertical speed of +0_64 or +0_128. Flat platforms can be slightly sloped or curved at the end, allowing slanted rolls, and either type of roll can be beneficial depending on the situation.
Speed lock lasts for 15 frames for DK, and 20 frames for Diddy. Horizontally, this causes Diddy's roll to go about half a pixel further for a full, normal roll. However, the vertical effect means that Diddy can float longer after rolling off platforms, which means he can cross wider gaps, and spend more time rolling during roll-jumps.

Dead Rolls and Stamina

If you let a roll expire on the ground without jumping out of it, this is called a "rollover." Sometimes when you rollover you can get a 10 frame penalty where you can't move or jump, this is called a "dead roll." Whether or not a dead roll occurs depends on a variable I call "stamina." You begin each level with full stamina, and when you rollover your stamina is depleted. Each frame spent walking or standing still recovers 1 stamina up to the maximum of 10, at which point it is fully recovered. If you rollover before recovering all 10 stamina you get a dead roll for 10 frames, and then your stamina is fully depleted again.
On flat ground, it's slightly faster on average to connect rolls with 10 walking frames than with 1 frame jumps (which move faster but last about 27 frames). Stamina does not have to be recovered immediately nor sequentially. Therefore, many levels present the challenge of finding the best places to recover stamina between rollovers, since there may be a more advantageous location to take the walking frames instead of immediately after the rollover. Since stamina is reset between level and bonus transitions, it's not necessary to recover it before exiting.

Extended Rolls

Rolls normally last for 47 frames unless canceled (usually by jumping), but they can be extended. On the final frame of the roll, the game checks to see if one of the extend conditions is met, and if so then the roll continues into an extended roll until canceled or the next end frame, where the process is repeated. The most natural way to extend rolls is by hitting enemies - this gives you a speed boost of 0_144 per hit and the roll will be extended as long as B is held through the entire roll. For DK, extended rolls gain an extra 41 frames, while for Diddy extended rolls gain and extra 43 frames.
Rolls can be extended multiple times, each adding another 41 or 43 frames. However, another enemy must be hit after each extended roll starts in order to get another extension. A roll that's extended into a double or triple roll gets named as such, after that I call it a "megaroll" and then a "gigaroll."

Box Boost

Throughout the game there is treasure hidden in the ground, both in visible item boxes which can be broken open by landing on them from a high place, and in hidden troves which can be unveiled this way and with DK's hand slap. If you roll onto hidden treasure from a high enough place you can break open the treasure, but instead of getting put into the "spinning" state as if you had jumped on it, you instead get a boosted and extended roll as if you had rolled through an enemy.

Extended Roll Storage

After rolling through an enemy or getting a box boost, you gain a "credit" telling the game to extend the roll at the next end frame if B remains held since the start of the roll. However, if you jump out of the roll, or release B and rollover, this credit is not reset and the extended roll can be stored and used later. You can only have up to one extended roll credit, hitting enemies when you already have one does not give extras, this applies both to normal and stored extended rolls.

Ledge Extend

If you're in the air on the end frame of a roll, it gets extended automatically. I call this a "ledge extend" since it can often be abused to extend rolls by simply timing them to fall off a small ledge on the end frame. Although ledge extends do not require an extension credit, they will consume one if you have one.

Reverse

You can change the direction of a roll by simply pressing in the opposite direction. This can be useful for stalling or for simply changing directions when necessary. This also resets the speed of the roll to the starting speed, which is usually undesirable for boosted rolls, but long rolls which have been extended using storage or ledges will lose so much speed over time that it can be beneficial to sacrifice 1 frame of rolling backwards in order to reset the speed. Reversing does not affect speed lock or change the camera, but it does consume your extension credit if you have one. Therefore it's necessary to reverse after the end frame if you need the extension.

Camera Lock

When starting a roll, the camera moves forward and locks in place, positioning you towards the back of the screen. However, "forward" is defined by whichever direction you're facing (or turning towards) before starting the roll. By pressing left for 1 frame before pressing right and B, you can lock the camera behind you, putting the Kong at the front of the screen. Since most entities spawn based on the camera's position and not the Kong's position, this can be used to manipulate entities to spawn later in any situation where it would be beneficial. For example, this can be used to stop Zingers or Mincers from getting in the way, or to prevent Kritters from jumping out of the way so you can roll through them. It can also be used to re-position ropes and moving platforms, sometimes making cycle skips possible. It can even be used to simply reduce lag frames. The one significant exception to this manipulation is Mini-Necky, for some reason he seems to shoot based on the player's position rather than the camera's. However, it seems to be barely possible to manipulate him with the camera in a couple critical locations.
The first application I found for this tech was to delay the rope above the K in Forest Frenzy to allow jumping over the gap without waiting. I found a total of 3 RTA uses of this tech before I started working on the TAS. Originally I though this would be a niche mechanic with a few uses, I had no idea how overpowered it would turn out to be. At the cost of a small slowdown for 1 frame, you can manipulate spawns to create much more favorable routes. The TAS currently abuses camera locking over 80 times, up to 8 times in some levels.

Gravity Glitch

During normal platforming, gravity can be one of two values: 128 or 80. This represents downwards acceleration per frame in subpixels while airborne. 128 is standard gravity, while low gravity occurs after pressing A to jump and while holding the initial A press during the jump, and also during the "spinning" state 56C3 after bouncing off enemies or being shot out of a barrel cannon. If A is released during the jump, it's not possible to regain low gravity by re-pressing A in midair.
If you hold A through an entire jump, the gravity variable will not be properly reset to 128 and can get stuck at 80 after landing. You can then release A and it will persist while walking and through the next roll, causing this roll to be more floaty than usual. This can be useful for setting up rolls to cross extra wide gaps, or for connecting descending platforms with a single roll. Since it requires a maximum height jump to set up (and therefore spends lots of frames in the air and not on the ground rolling), it has a cost associated with it. However, in situations like jumping out of pits or waiting on moving platforms, this cost can reduced or negated.
Gravity glitch does not only apply to rolls. It's possible to run off a platform with gravity glitch active and fall slower, although this isn't really useful at all. Normal jumps can also have their upwards starting speed increased by 48 = 128 - 80 if gravity glitch is active, indicating that jumps are essentially applying gravity on the first frame. Since the Kongs are automatically put into the "spinning" state with low gravity after bouncing enemies, holding jump does not affect how high they bounce, and it's not possible to get gravity glitch after landing from spinning even if A is held the entire time. Landing from spinning also sets your speed to 0. However, holding jump can cause Rambi and Winky to bounce higher off enemies. Interestingly, gravity glitch applies to mine carts as well, causing them to fall down off the tracks slower.

Switch Glitch

If you exit a level from standing, you can press select on the exact same frame that you touch the exit and switch Kongs during the fadeout. This saves the 31 frames of switching, although it can sometimes generate a few extra lag frames during the level exit. It's not possible to do it in water levels or at the end of bosses.

Krusha Roll

When you go into an extended roll, your hit priority changes from your rolling hit priority to your jumping hit priority for some reason. For Diddy this is a pure nerf since it means he can't roll through Klump during extended rolls. For DK on the other hand it's a pure buff since it means he can now roll through curled-up Army, and strangely enough, green Krusha.

Krusha Klip

When getting bounced off Krusha, you get put into the "Krusha knockback" state 5753 where you are invulnerable and follow a fixed backwards trajectory for 20 frames. By turning around before getting knocked back, the trajectory can be turned to the forward direction and you can clip through him during the invulnerability frames. The Krusha knockback state also occurs when getting bounced off Klump (as Diddy), curled-up Army, and bosses.

B Buffer

If you press and hold B during the "spinning" state 56C3, you will roll the moment you touch the ground. The spinning state occurs after bouncing enemies or getting shot out of barrel cannons, hence the name "bounce buffer" or "barrel buffer." In the rare situation that you need to run after coming out of spinning, you have to press B before bouncing or entering the barrel cannon, and hold it until you land in order to not get a B buffer. You can also buffer rolls out of rollovers if you have full stamina.

Banana Block

After touching a level exit, the "level exit" state 670D usually only lasts for 1 frame, but if bananas are being collected and moving towards the counter, this state lasts until the bananas are counted which delays the level exit and loses time. There are a few situations where bananas are tactically positioned near exits, and it's faster to avoid them to prevent this from happening.

Enguarde Mechanics

Enguarde is much faster than the Kongs in water levels, so he's pretty important to the run. He's the only animal buddy that appears in the TAS, and he's used in all 4 water levels. Repeated stabbing is the fastest way to travel horizontally, but there are some strange technicalities with this mechanic.
The cooldown of the stab depends on the animation timer, but this timer is reset at the end of the stab rather than at the beginning. Since the animation timer typically goes through a 5-frame cycle with Enguarde, this means that the cooldown varies within a 5-frame interval, which turns out to be between 28 and 32 frames. Since the animation timer resets after the stab ends, that means that if the next stab is started immediately it will have a 32 frame cooldown, but it can be started any time within the next 5 frames and it will still end at the same time. Since 32 is not divisible by 5, this means the phase of the animation timer can be offset by stabbing, and it can also be offset by turning around. This can be useful to manipulate the animation timer during vertical sections to set up the next stab to have a short cooldown.
Stabbing gives Enguarde an initial speed of 3_127, which decelerates by 0_16 each frame to his base speed of 1_240, which is maintained until the cooldown is reached, regardless of if left or right is pressed. However, if you press A or B to stab without having left or right pressed on the frame before, you can cause Enguarde to enter a state which I call "slow lock." During this state he decelerates to 1_207 instead, at which point he is free to move. If the next stab is initiated immediately after the cooldown ends he will remain in slow lock, which means that a long sequence of perfect stabs stuck in slow lock can lose a lot of distance. This is usually easy to fix by simply pressing left or right before starting a stab sequence, but if you stab immediately after spawning out of the box, you get slow locked for one cycle and must delay the next stab by at least 1 frame to break slow lock.

Necky RNG

Necky and Master Necky are the only instances of RNG in the entire game (not including Funky's Fishing and Crosshair Cranky, of course). The random number generator is stored at address 300 in 3 bytes as a linear shift feedback register (LSFR) which generates on every frame of the overworld. The RNG sits still during most levels which is great because it means that saving time anywhere does not disrupt the boss pattern. The exceptions are during the Necky bosses where it generates once each boss attack phase to choose a position, and during water levels where this memory address seems to be repurposed entirely. In these levels it ceases to be an LSFR and instead takes other values, but after exiting the level it resumes its function from whatever value it ended at. Changing the movement in water levels does seem to change this address, even if the level is completed in the same amount of time. Therefore, assuming perfect overworld movement, Necky's pattern is determined by Coral Capers, and Master Necky's pattern is determined by Poison Pond. Perfect overworld movement is actually easy to achieve RTA since you can hold directions to move and hold A to enter levels immediately.
I realized afterwards that the victory fanfare might start sooner if you get a low position on the last phase. I got the high position on Necky's Nuts and the victory fanfare starts 20 frames after the last hit, but I got the low position in Necky's Revenge and the victory fanfare takes only 13 frames to start. If this is indeed the case, then some RNG manipulation could speed up this boss by a few frames, but while I was working on it I was under the impression that it made no difference so I just took whatever pattern I got.

Levels

1-1 Jungle Hijinxs

The first level of the game - although this level is pretty straightforward to beat, it actually turns into a pretty complex roll puzzle to optimize. I went back and improved this level several times after discovering new tech or noticing a new route. This level includes a variety of tech and is a good introduction to the type of movement seen throughout the rest of the run.
The major routing decision in this level is to take the first DK barrel. My original route for this level skipped the DK barrel and played the first three levels with Donkey, but once I realized how slowly he swims I knew I had to have Diddy in front before Coral Capers. This DK Barrel turns out to be the fastest one to take of the 6 we pass in the first 3 levels. We need to keep DK in front here to roll through the Klumps, but we can conveniently switch glitch him out at the end of the level to save a few frames with Diddy in the next two levels.

1-2 Ropey Rampage

In contrast to the first level, Ropey Rampage is a pretty straightforward level with an obvious route that's easy to optimize. Army is usually not a problem for Diddy to roll through because we can hit him before he curls up. We take the bonus in the middle of the level which warps us past a big portion of it. The bananas acquired on the way into the bonus cause us to get banana blocked for 28 frames which delays the fadeout, but this is unavoidable. Turning left after rolling off the ledge in the bonus saves 1 frame in this bonus only, for some reason.

1-3 Reptile Rumble

This level kicks off a trend found throughout the cave levels in this game: they are some of the most complicated levels to TAS. The first factor contributing to this difficulty is the curvy platforms. These make it so that a small difference in position, sometimes even just a few subpixels, can cause you to land, fall off, or need to jump a frame earlier or later. This causes subsequent changes to position, causing the route to diverge, which means that a small change early in the level can require a long re-syncing process and can gain or lose several frames over the rest of the level.
Another issue in cave levels is the crawlspaces, which can't really be skipped in this game. Crawlspaces have a barrier blocking rolling, if you would pass the barrier on the next frame then instead you don't move at all. Since roll speeds are typically over 2 px/f, this means you can be 2 or more pixels behind the barrier, and therefore 2 pixels behind the optimal position after jumping into the crawlspace. Since crawl speed is 1 px/f, this would lose 2 frames. To mitigate this we sometimes need to slow down a little to control our position without sacrificing time. Usually the best way to do this is to time stamina recovery walk frames, since we need to recover that stamina at some point anyways.
The megaroll at the end is an RTA strat that's possible with both Kongs, the camera lock isn't necessary but it lets us hit the last Kritter. It's about a 2-3 frame window to hit the roll, it has to be done from the right side of the tire.

1-4 Coral Capers

The original route waited until this level to pick up DK, the reason being that this is the first floating DK barrel in the game, and taking a floating DK barrel avoids the animation of picking up and throwing it. However, DK swims so slow that he loses about a full second before reaching the barrel. This alone means that we pretty much need Diddy before entering this level. This combined with the discovery of switch glitch causes this route to save about 100 frames over the DK route.
There isn't much going on in the rest of the level, once we grab Enguarde we just mob to the end, stabbing optimally and taking corners as tight as possible. In this game the fastest routes around the Croctopi are all the opposite directions of what they are in the other versions of the game.

1-5 Barrel Cannon Canyon

Another relatively straightforward level, but I always slapped myself on the forehead when I found frames to save, which happened quite a lot. There's still even a saveable frame that I know of. After the first barrel cannon shortcut we need to run a few frames to the edge of the tree before rolling, so we need to hold B through the entire barrel cannon sequence in order to avoid getting a B buffer upon landing.

1-B Very Gnawty's Lair

This is a pretty boring boss, just hit him on the first frame he becomes vulnerable. I messed around with some moonwalking here but kept the idle movement simple, saving the more interesting stuff for later.
Gnawty has only one real tech: you can get a quick kill on him. Normally when you get the final hit he goes through his defeat animation of panting and falling over before the victory fanfare starts. However, if you get the last hit before he leaves the ground, the victory fanfare will start immediately. This can be done consistently RTA, it's a 5 frame window to hit, and it saves an additional 166 frames. Since we're just hitting him on the first possible frame in the TAS anyways, there's nothing special we have to do to optimize this.

2-1 Winky's Walkway

This level was lengthened in the GBC version, and I personally like the extra gameplay. This level has many short and sloped platforms at various heights, requiring precise rolls and jumps to connect them. No rolls are greater than doubles here, but there is some usage of extended roll storage. This level went through several iterations of optimization and it feels to me like the first level that truly "looks like a TAS."

2-2 Mine Cart Madness

The way to go fast in this level is to jump up the uphills and off the downhills. Uphills slow you down and downhills speed you up. Jumping preserves your current speed, but unfortunately landing resets your speed, which means you can't bunnyhop to keep speed.
This level only went through a couple optimization passes, and was one of the first levels I finished. I found out later that gravity glitch actually applies to the mine cart and I was inadvertently already using it, but I could probably save a few more frames by paying closer attention to the effect it has in certain spots.
This level is pretty much my only opportunity to collect the KONG letters without losing time, so we get them here to show off the KONG sequence. The K and O are in the way of the optimal path, and the N and G can be collected or skipped for free. This level is also the only chance to hear the entire loop of the Mine Cart Madness song, which actually appears in 5 levels in this game since it replaces Misty Menace. I think it's pretty funny that the level has been optimized exactly to the point where the cadence gets cut off at the final note.

2-3 Bouncy Bonanza

The second cave level in the game, this one is no simpler than Reptile Rumble. This level has many curved platforms and any changes to the movement usually require redoing the rest of the level, possibly gaining or losing some frames. There are a lot of rollovers in this level, and we have to properly set our X pixel to jump optimally through the crawlspaces. We actually take the top route in this game since the crawlspace is shorter and there are Kritters to roll through. There is a sneaky stamina recovery right before jumping onto the pushable tire to go up there. We use gravity glitch on the last gap to spend slightly more time rolling in order to clear it 1 frame faster than without. Gravity glitch makes this jump considerably easier RTA.
We manage to roll through every single Kritter in this level. All the Kritters are red except the turquoise one at the beginning and the green one after Winky.

2-4 Stop & Go Station

The only level that's skippable in all three versions of the game, this level is just as short and uneventful as its counterparts. We only need to press left for a single frame at the beginning to enter the warp. In this game we can't roll through the Rock Krocs, so it's actually optimal to jump up high to touch the stop barrel near the end to prevent having to jump over them later. I originally hit the second to last stop barrel instead of the last one, but found a new route using the last one instead which is 5 frames faster.

2-5 Millstone Mayhem

This level is an interesting and technical roll puzzle, we need to find the best ways to chain together rolls and maintain speed through extensions. There is a complex stamina recovery route, plus multiple uses of other roll tech to go as fast as possible. In this game it's possible to bounce through the Millstones but not to roll through them, however this ends up not being used in the TAS. Some of the camera locks are used to set up the Millstones' positions so we can jump lower over them and spend less time in the air, but one is used to position the moving platform, and another before the lag pit mostly just for lag reduction.

2-B Necky's Nuts

I had to TAS this boss twice since his pattern changed after I optimized Coral Capers, but it's a pretty short and straightforward boss. To go fast, all we have to do is hit him on the first frame he becomes vulnerable. For idle movement, this level is the first demonstration of what I call "infinite rolling," where we repeatedly make ourselves airborne on the end frame of each roll using the tire in order to ledge extend over and over again. Again, the idle movement here was meant to just be one flavor, I didn't want to go crazy and do everything when we're still at a pretty early point in the run.
There may be frames to save here by getting a different pattern by manipulating the RNG address in Coral Capers. I'm not sure if the first 4 phases matter but it seems that getting a low position on the last phase might save a few frames. I got kind of an ugly pattern here, he appears in the same spot on 4 out of 5 phases, but I dealt with it.

3-1 Vulture Culture

Another straightforward level, the main timesave here was realizing that instead of jumping clear over the Mini-Neckys that we should instead jump over the nut and roll through them. Even though we sometimes have to release right and slow down a bit, the boosted rolls are so much faster that they save time, about 54 frames across the level. Camera locking is used only once at the beginning to put a Necky further away, which allows us to cover more distance after bouncing on him, keeping the barrel cannon speed for longer. Every barrel cannon except one is fired immediately or as soon as it's pointed in the right direction. Gravity glitch is used to get the roll to connect to the O platform without having to jump out of it, preserving this boosted roll for longer.

3-2 Tree Top Town

The second barrel cannon level, this one is all about launching from the barrel cannons as early as possible. At the very beginning of the level we rollover, recover 3 stamina, and don't recover the rest until after the star barrel. We stall the roll under the K for 2 frames in order to ledge extend it. There is a brief camera lock right before the second bonus barrel which allows us to shoot the barrel cannon immediately instead of having to wait for the cycle. Near the end, there is a long camera locked roll through three Kritters which begins by using a stored extension. It would be faster to reverse to reset the speed before hitting the first Kritter, but this generates a lot of extra lag for some reason which ends up losing more frames than it saves.

3-3 Forest Frenzy

This level went from being a boring autoscroller to a really fun dance level, where the movement is synced to the music. Unfortunately the tempo is at an awful ratio to the framerate, it's approximately 33.625 frames per beat or about 107 beats per minute, which means the beats have to be rounded in a certain way. Fortunately some of the movement works well with this tempo, for example switching sides on the rope takes only 31 frames. The funny climbing moves are done by alternating up and down every frame to "smooth slide," or alternating up or down with neutral every frame or two frames to "twitch slide."
It turns out there were a lot of ways to cut autoscrolling sections and save time here. This level has the most time save of any level in the TAS, at over 4.5 seconds. There are several camera manipulations used to skip or shorten autoscrolling sections. The camera lock used to delay the rope by the K and jump straight over the pit is the first application of camera locking I ever discovered, it's an RTA strat I call "The K Roll." At the double rope section with the Zinger, we can jump off the first rope to push the camera forward to spawn in the second rope early, saving about 48 frames. After jumping off vertical ropes (not swinging ropes), your speed is set to 5_0 and decreases at the normal rate of air acceleration (0_64 per frame), regardless of what direction is held. This means you can hold the opposite direction for up to 12 frames to change the camera without losing speed. This, as well as gravity glitch, is used after the O to position the Kritters so we can roll straight through them.
Finally, the skip at the end to bounce off the Neckys and go straight to the end without entering the bonus barrel is the biggest "TAS strat" time save in the entire run. The bonus would be fast if it weren't for the fact that it's a "find the item" game where you have to wait for the item to stop and then go through the defeat animation. Although this skip is pretty easy in the other versions of the game, the Neckys are positioned poorly in this version and simply holding right does not work, the final Necky just spawns too late and is too slow to catch. In order to make this skip possible I had to find the exact camera positions where each Necky spawns, then turn left to turn the camera around at precise positions to delay the spawns of specific ones to create a bounce chain. I spent an entire day trying to find this and almost gave up, thinking it was impossible, until I finally managed to reach that last bird and make it to the end. In total this saves about 221 frames over taking the bonus, more than 3.5 seconds.

3-4 Temple Tempest

This level has a lot of long platforms and several opportunities to get long extended rolls. We get our first true gigaroll here, starting with the box boost through the N and completing all 5 cycles. There are also a few extremely precise tricks: The roll over the pit with the Zinger in it is precise to 209 subpixels (about 0.8 pixels), and being able to jump up to the platform before the giga without bouncing on the tire requires rolling a certain distance over it without losing too much height, which feels random whether the game gives it to you or not. We again route our stamina recovery frames to line ourselves up to the correct positions for both of these maneuvers.

3-5 Orang-utan Gang

What started as an Expresso level turned into one of the craziest camera locking levels in the TAS, using camera locks to hit every single rollable enemy in the level. This level holds the record for most camera locks, tied with Blackout Basement at 8. Due to the camera techniques, the steel barrel route in this level is just barely slower than without. The Expresso route is about 33 frames slower, assuming you damage boost off the Kritter and into the giga, which is an RTA strat. If you get a fresh B press after landing and run into him while holding B, the roll buffers after taking damage.

3-6 Clam City

"Cycle City" is all about routing around the Clambo bullets without slowing down. It's the shortest water level in the game, it looks cool but it's not very complicated. The turning back and forth is not a camera manipulation, but instead done to manipulate the animation timer to reduce the cooldown of the first stab, which saves a couple frames throughout the level.

3-B Bumble B Rumble

Not much to optimize here, just hit the boss on the first frame she becomes vulnerable. In this level we have the barrel to play with, so I decided to design the movement around "twitching" back and forth by alternating left and right on every frame. For the first two phases, we set the barrel up like a bomb in the location where the boss will be, then roll into it and pick it up in one frame to hit her. In the third phase we hold the barrel and run around twitching with it, and in the final phase we assault the bee with the barrel over and over until the final hit. I was stuck for a while on what to do with this boss, but I think I came up with something entertaining in the end.

4-1 Snow Barrel Blast

Welcome to the first level with ice physics! In these levels ground acceleration/deceleration is reduced from 0_128 to 0_16, but this only applies to walking, not while rolling or in the air. This means you slow down much less after rollovers and so it is much faster to walk for 10 frames immediately after rolling instead of jumping out of rolls or recovering stamina later. This level also has a fair bit of lag, and so camera locks are used in several places before entering barrel cannons just to reduce lag.

4-2 Slipslide Ride

The only level in the game with its own unique song is unfortunately also the only other level in the game with a warp barrel, so we don't get to hear much of this great tune. You can check out a Donkey Kong Land run if you want to hear it. After exiting the warp barrel, we see that ice physics also apply while running in the air. Jumping off ropes gives 5_0 speed which is quite a lot. It's possible to turn around for up to 12 frames after jumping off the ropes without losing speed. This can be used to manipulate the camera, but here it's only done for swag. At the end, jumping off the rope is slightly faster than rolling under.

4-3 Ice Age Alley

This level got many revisions and improvements, it's quite a complicated level to route based on the curvy platforms of varying heights, tricky enemy positions, and of course ice physics. It is completely impossible to take Expresso across the gap with 2 swinging ropes so he's totally useless here, but that's fine because rolling is faster anyways. Once again this level contains lots of sliding stamina recovery and many camera locks, including one of only two situations in the game where camera locking is effective against Mini-Necky. The Mini-Necky right before the star barrel seems to be only (barely) possible to hit if we approach him with a camera locked roll. I'm aware that it's possible to save about 6 more frames by hitting the Klaptrap with an uppercut instead of jumping up and landing on him.

4-4 Croctopus Chase

This boring underwater autoscroller is not any more interesting in this game, although I tried to keep the movement fresh by bouncing to the music and twiddling during the vertical sections. Version 1 of the TAS did not include Enguarde because I was not able to save time with him during RTA testing, but after testing him with TAS tools and finding out he saved about 140 frames I started working on Version 2. Fortunately we still have another water level before the next RNG boss, so changing the RNG seed in this level did not mess up the Master Necky pattern because Poison Pond put it back.

4-5 Torchlight Trouble

This is the shortest and least complicated cave level, but it's still a challenge to optimize. Squawks does not create any lag that I know of, so he's not specifically avoided for any reason besides that bouncing off the box to unlock him is slow. There aren't many enemies to roll, but there aren't any long rolling sections either since platforms are covered by oil drums, Krushas and Mincers. We get an extended roll after hitting the third Klump but don't have anywhere to spend it until after the N. Near the end of the level there is a Krusha blocking the way but we can precisely set up a Krusha klip to pass through the Mincer during I-frames and roll off the ledge in a 1-frame, 1-pixel window. This saves us from having to switch to DK in this level.

4-6 Rope Bridge Rumble

The first bonus here saves about 33 frames, while the second bonus is about a second slower than doing the section normally and waiting on the tires. However, by doing a long camera locked roll we can reach the final tire and bounce across without waiting, saving at least another second. The first part of this level is just chaining rolls together, and even though the platforms are curved there is generally only one path so there aren't too many candidates for the optimal route. In the second part of the level we zig-zag around the tires to reach and bounce off them optimally. Note that in this game you can't roll off tires (only off the edges of platforms which tires are placed on), and that your Y-speed will continue to increase while on top of them as if you were falling. This is why you suddenly fall like a rock when you roll over them.
After the set of 4 bananas near the beginning, we don't collect any more bananas until the end. We jump over the last banana in order to set up switch glitch and also avoid getting banana blocked, the final banana picked up gets collected just in time.

4-B Really Gnawty Rampage

We can take damage during the last phase of the boss to skip his attack cycle and have him immediately become vulnerable again. In the first version of this TAS I almost skipped taking the damage boost here because switching to Donkey, getting hit, and collecting another DK barrel lost almost all the time that the damage boost saved. However, I found that you don't need to wait for him to start jumping, you can take damage immediately after scoring the fourth hit. This combined with the discovery of switch glitch caused the damage route to save around 140 frames. We spend the short duration of the fight monkeying around with DK but don't worry, he'll be back for more.

5-1 Oil Drum Alley

This is one of the most technical levels in the TAS. This level holds the record for most enemies hit by rolls at 25, tied with Misty Mine, although the tie is broken by the 3 box boosts taken here. We grab gravity glitch at the start to score a long extended roll through the first four Kritters. The twiddle off the first rope is just swag, but the second twiddle while jumping under the K is a camera manipulation to stall Gnawty so we can roll through him. Although Rambi runs slightly faster on average than the Kongs can roll, we're able to use camera tricks to plow through the Mankys which causes Diddy to be about 138 frames faster in this level. In one section we use 4 camera locks plus a turned-around jump in a row.

5-2 Trick Track Trek

The longest and most boring level in the game becomes our second chance to mess with idle movement, this time we have a small, slow moving platform to play with. The first half of the level is spent dancing with movement synced to the music. The music is exactly 64 frames per beat, or 56.25 BPM. The big roll to the midway platform is position-and-frame perfect and took a few hours to find, there is an invisible wall blocking us to the right and gravity glitch plus a sloped roll is required to reach an exact position. However, it's possible to wait a little longer for the platform to go further right and under the invisible wall, to a position where the strat is RTA viable. The second half of the level is spent monkeying around with infinite rolls and other "twitchy TAS movement." I generally try to avoid as many sound effects as possible so that the music can be heard in all its 8-bit glory, since sound effects use up one of the audio channels which cancels the long bass note, but I get a little more relaxed with it in the second half in the interest of fun movement. I made sure to show off Diddy's ducking and idle animations near the end. Turning around at the exit not only looks funny, but also saves 1 lag frame.

5-3 Elevator Antics

This is a very fast paced and technical cave level with many tricks on display including some camera locks and gravity glitches. Bouncing on Slippas under crawlspaces allows us to travel further at air speed. It's necessary to hit Klump with fresh rolls as Diddy, otherwise he will bounce you off if you hit him during an extended roll (it's the reverse scenario which makes Krusha rolls possible with DK). During the big zig-zag elevator sequence, we time when we turn to look at the third elevator shaft so that the platform is in place to catch us as soon as possible so we can roll earlier.

5-4 Poison Pond

The final Enguarde level consists of mostly just straight sections dodging Mincers, the reason I had so much time save on this level is because when I first TASed it I got tired of writing Enguarde movement and decided to just play out the rest RTA. You can see this happen in Version 0, my movement goes from perfect and robotic to sloppy and human halfway through the level. Furthermore, after finishing TASing it properly I had gotten "slow locked" during a long stab sequence which lost quite a bit of time.
There is a slightly laggy section in the middle of the level but otherwise no lag frames. To keep the movement interesting here I played Funky's Fishing and tried to hit every fish I could which didn't lose time, I got a grand total of 19!

5-5 Mine Cart Madness

Unlike in the first mine cart level where the fastest route requires jumping to preserve speed, the fastest way to travel in this level is to jump as little as possible. When jumps are requires, the optimal times to press and hold A seem to vary in a nonlinear fashion with no discernible pattern. I found jump timings through some trial and error, just trying numerous options and picking the one that gave the most distance. Although you can't affect your position in the air, holding left or right will change your X speed value. This speed carries over for one frame when entering the cart, so it's important to hold right to get speed before landing in the cart. Gravity glitch in the mine cart is possible here again, and it's used once at the beginning. It's important to jump over the last two bananas before entering the bonus in order to not get banana blocked. The rolls off the tire platforms are only possible by landing on the edge, you need to press B before stepping on the tire, and they allow you to roll into Krash which saves even more time. This trick was one of the original inspirations for making this TAS in the first place.

5-6 Blackout Basement

This level has lots of long empty platforms, it holds the record for most rollovers at 19. It also has the tied record for most camera locks with Orang-utan Gang, at 8. It's important to get extended rolls to travel as far as possible, which usually means getting right up close to the enemies before rolling. We use a camera lock to position the first Kritter slightly further back, making this roll through him go just far enough to reach the second Kritter, extending and boosting it again. After the Enguarde token, gravity glitch is used to get the roll to reach the tire platform. The next triple roll must be positioned perfectly so that we reach the first end frame immediately before hitting the last Kritter, allowing us to get the extension into the third roll. Through all the small platform sections and moving platform sections there are different possible routes and it took some trial and error to find the fastest route. Entering the bonus to get and ride the steel barrel is almost the same speed, only about 8 frames slower if you exit the level normally, but more time is lost setting up switch glitch since the Klaptrap will be in a less favorable position.

5-B Boss Dumb Drum

We have another chance to mess around with Donkey here, the movement is focused on slow walking/running by alternating left or right and neutral each frame to control speed, as well as moonwalking, all while dodging the boss's attacks. DK only saves about 56 frames here, which is enough to make him worth it since we can switch glitch him in at the end of the previous level. All we have to do to optimize this level is stomp the second enemy in each phase on the first frame when it spawns. After we stomp the first enemy and are in the "spinning" state we can collide with the second enemy anywhere and it will get stomped, we don't need to be on top of it. We can't use switch glitch to get rid of DK yet, but it's okay because we'll be using him later.

6-1 Tanked Up Trouble

This was basically the last level I worked on before releasing Version 1. This level was a nightmare to TAS because it's extremely laggy, I have to make fun idle movement while also avoiding lag which is all trial and error. Lag frames are hard to control and small differences can cause them to change. My "no optimization" run of this level had 70 lag frames which got reduced to 11 and I'm very happy with how it turned out. After finishing the level, saving time anywhere in the first 5 worlds could desync the lag frames and mess up all my progress, meaning I either had to just sacrifice some lag frames (which can snowball into a lot) or redo most of the level. Therefore, while working on Version 2 my process became: save frames somewhere, check if this level synced, and if it didn't then go back and look for more time save. Fortunately I managed to get it to re-sync eventually, which is when I decided to move on to World 6 and wrap up Version 2.
There is a camera manipulation before the midway platform, we roll forward to spawn in the Kritter early so that he will move out of the way, allowing us to land next to him and roll through him. The only other real routing here is staying away from laggy areas to reduce lag as much as possible.
DK loses about 11 frames here since he has to wait longer before jumping off the platforms, but we're going to need him in Manic Mincers, so we keep him through this level and don't swap him out at the end. It's nice that he gets some screen time during an autoscroller to show off his moves. In contrast to Trick Track Trek, I tried to hit every enemy, oil tank and banana here. A couple oil tanks have to be skipped in the interest of saving lag frames, though. For some reason DK's minimum ducking time is only 17 frames compared to Diddy's 22, so he can duck dance faster. I made sure to include a lot of DK hand slaps as well, and show off his ducking and idle animations at the end.

6-2 Manic Mincers

There were several route options to compare and choose between in this level. First we have to decide at the beginning of the level whether to use DK, Diddy or Rambi. The Rambi option is the slowest by around 2 seconds. We can get Diddy for free by using switch glitch in the previous level. However DK turns out to be fastest at the beginning of this level since we can exploit the Krusha roll glitch to plow through the Krushas by hitting them during extended rolls. During the long empty section under the star barrel we keep a stored extended roll which we space perfectly so that it extends right before hitting the next Krusha. We also reverse the roll for one frame after it extends to reset the speed, and ledge extend it again before reaching the pit.
The next routing decision comes at the moving platform after the N. Rambi can take a damage boost to bypass the second Mincer, but this isn't enough to make up for the time he loses earlier. DK cannot roll under the Mincer, so our options are to either damage boost through, switch to Diddy, or wait it out. Damage boosting is fastest by about 13 frames but this time is lost when we eventually reach Necky and are forced to pick up a DK barrel, losing about 40 frames to unlocking our buddy (buddy unlocks usually take 31 frames, but it seems to take longer here for some reason). The next fastest option is switching to Diddy and doing the skip, this saves about 3 frames over keeping DK and waiting. That makes this the only place in the run where we switch Kongs without using switch glitch. DK still saves enough time in the beginning of the level to make up for the switching time here. At the end of the level we get a hexakill through the Gnawtys, making this the fastest boosted roll in the run, achieving 5_205 speed after the last hit.

6-3 Misty Mine

This level is basically hitting lots of enemies and extending lots of rolls, the route is pretty straightforward overall. The first rope can be skipped by bouncing off the Gnawty, it's fastest to hit him with an uppercut. The bonus saves about 2 seconds. This level has a unique tech which I call the "dead roll bounce" where a roll ends on a tire which is able to cancel the dead roll frames in some way. I haven't figured out exactly how it works though, it just seems to work here. Camera locking at the end causes the first Slippa to spawn twice so we get a pentakill for a lot of speed.

6-4 Necky Nutmare

The Gameboy Color's unique level! This level is a mix of different entities and obstacles, as well as an interesting mix of tech. There is a unique tech which I call the "barrel crawl," by picking up the barrel and entering the crawlspace we can delay crawl speed and also block the bullet from the Mini-Necky. The barrel is automatically thrown when we enter, but we still get to travel further through the crawlspace at running speed. This turns out to save exactly 0 frames due to the time taken picking up the barrel, but I think it looks cooler than doing it normally. By camera locking through the next gap and optimizing our position entering the crawl space we're barely able to get through and have exactly 1 frame to jump over the nut, saving 40 frames. This is the only other place in the run where camera locking works against Mini-Necky. Unfortunately, we can't do it through the next crawlspace because the Mini-Necky is positioned higher up. It's slightly faster to go up top over the N than to take the barrel cannons below the map. At the end, it's slightly faster to use gravity glitch to roll under the Neckys instead of bouncing off them.

6-5 Loopy Lights

The Klaptraps in this level react to A presses, not jumps. This means you can press A while still in the air to make them jump. Therefore the routing in this level is mostly about deciding whether to go over each Klaptrap, or to jump in front of them and press A before landing to make them jump again and then roll under. You can also use pause buffering to jump without the Klaptrap jumping, but this means not moving for 2 frames which is slower. We make sure to roll under the Klaptrap at the end, since there is a banana above him which would banana block us.

6-6 Platform Perils

We save the best for last! This level is an absolute gauntlet of tech, including multiple uses of nearly every main trick in the game. This level holds the record for most gravity glitches at 6 (excluding autoscrollers), for connecting rolls between platforms and crossing gaps. After hitting the second Army we actually release B to rollover in order to fall down to the moving platform and prepare to roll off it. On many of the moving platforms it's faster to run for a few frames instead of rolling immediately. It was hard to find the best places to roll and it's probably possible to find more frames here. We can Krusha klip through all 3 Krushas to avoid having to pick up any barrels, this is also faster than doing the "suicide jump" over the first one. The area around the second Krusha is quite laggy so we turn around and look away from the lag in order to reduce it. We need to stall for a moment at the end to refresh our roll in order to not get bounced back by the Klump.

6-B Necky's Revenge

In this boss we combine different idle movements used throughout the other boss stages to create fun movement, including slow running, moonwalking, twitching and infinite rolling. Optimizing him is pretty straightforward, just hit him on the first frame he becomes vulnerable. As mentioned before, I didn't know if the pattern mattered so I just took what I got, but at least we got the low position on the final phase this time.

7-B Gang-Plank Galleon

This boss actually has some nontrivial optimizations. During the first and third cannonball phases there would be another cannonball firing at the end if you go to the far end of the stage away from K. Rool, but by going towards him we prevent this cannonball from spawning which causes him to throw his crown earlier and end the cycle faster. This doesn't seem to work during the second phase if you try to run away from him. After the fake victory fanfare, the camera has to scroll over to a specific location before the kredits start, but by turning at an exact moment after getting the seventh hit we can position the camera to be in the correct location, starting the kredits immediately. Finally at the end we use dead roll tech to release input earlier and save TAS frames! Dead rolls don't cancel speed, you continue moving once it ends, so we can first burn our stamina, then precisely position a roll and release inputs to coast into a dead roll and then skid into K. Rool, taking damage and allowing DK to score the last hit. He even punches him in the face before he goes down. Good job Donkey! The Cranky cutscene and real credits scroll automatically with no inputs so the TAS is legitimately finished after this roll.

Level Data Table

I collected some info about what the TAS does in each level, which I find interesting. Only frames and framesave are counted for boss levels, other stats aren't tracked.
  • Frames (seconds): The time spent in each level, assuming a framerate of 59.7275 Hz. This is measured in IL timing, from the A press to enter the level to the frame when the exit is touched or victory fanfare starts (for bosses), so overworld movement is not counted here.
  • Framesave Since v.0: The amount of frames saved since the first ever completed version of the TAS. I kept pretty complete records of this, but didn't track all the lag frame adjustments. In the end I just opened both versions and computed the time differences between levels so the lag frame adjustments are here as well.
  • Enemies Rolled: The number of enemies rolled in each level. The number added is box boosts, since they function like rolling through enemies. In water levels, fish stabbed by Enguarde are counted here, even though they don't boost our speed, and they aren't added to the total.
  • Rollovers: The number of times a roll ends without extending or jumping out of it, consuming stamina or in a few instances getting a dead roll.
  • Camera Locks: The number of times a camera locked roll is performed. The number added represents a camera manipulation via another means, usually turning around while standing or jumping.
  • Gravity Glitches: The number of times gravity glitch is used to get a floaty roll. It's used a lot in the platform autoscrollers during the idle movement so only the nontrivial uses are tracked. Mine Cart Carnage is also not tracked since it's used on most of the jumps in this level.
LevelFrames (Seconds)Framesave Since v.0Enemies RolledRolloversCamera LocksGravity Glitches
Jungle Hijinxs1474 (24.68)-4213 + 14
Ropey Rampage1538 (25.75)1273
Reptile Rumble1674 (28.03)212033
Coral Capers3281 (54.93)146(6)
Barrel Cannon Canyon1907 (31.93)184 + 12 1
Very Gnawty's Lair687 (11.50)-2
Winky's Walkway2366 (39.61)22174
Mine Cart Carnage4943 (82.76)29 lots
Bouncy Bonanza3327 (55.70)9712156 + 11
Stop & Go Station585 (9.79)4 3
Millstone Mayhem3168 (53.04)4015 + 195
Necky's Nuts1464 (24.51)0
Vulture Culture3561 (59.62)577511
Tree Top Town3194 (53.48)491524
Forest Frenzy5548 (92.89)2721162 + 53
Temple Tempest3601 (60.29)4921 + 113
Orang-utan Gang2239 (37.49)432058
Clam City2603 (43.58)29(7)
Bumble B Rumble2890 (48.39)8
Snow Barrel Blast3674 (61.51)20994
Slipslide Ride921 (15.42)13 2swag
Ice Age Alley2675 (44.79)17081161
Croctopus Chase6821 (114.20)143(3)
Torchlight Trouble1777 (29.75)12321
Rope Bridge Rumble2545 (42.61)1668921
Really Gnawty Rampage1014 (16.98)140
Oil Drum Alley3111 (52.09)8325 + 387 + 21
Trick Track Trek15176 (254.09)10961021 + lots
Elevator Antics3404 (56.99)911564 + 12
Poison Pond3696 (61.88)223(19)
Mine Cart Madness4794 (80.26)3871 1
Blackout Basement3418 (57.23)42161982
Boss Dumb Drum2596 (43.46)31
Tanked Up Trouble9017 (150.97)87742 + 1lots
Manic Mincers3313 (55.47)29201351
Misty Mine3463 (57.98)782563
Necky Nutmare3330 (55.75)7711631
Loopy Lights3685 (61.70)27567
Platform Perils3442 (57.63)6021636
Necky's Revenge1967 (32.93)42
Gang-plank Galleon7876 (131.87)128
Grand Totals1417652661348 + 719285 + 1023

slamo: Cutting off ~17000 frames of blank input, and judging!
slamo: Awesome job on this, you're very familiar with this game and it shows. I appreciate you trying to make the idle sections as entertaining as possible as well. Really impressive first TAS, and I hope we see more from you. Accepting!

despoa: Processing...


TASVideoAgent
They/Them
Moderator
Joined: 8/3/2004
Posts: 15569
Location: 127.0.0.1
This topic is for the purpose of discussing #7613: DeathKontrol's GBC Donkey Kong Country in 41:47.66
DeathKontrol
He/Him
Player (106)
Joined: 11/3/2021
Posts: 12
Sorry about not having much written on the submission page right now, I intend to fill it out later but I just wanted to get it submitted so it doesn't have to wait any longer. I should honestly probably just translate the TeX document to whatever formatting the site uses so that it's visible right here. But it's 23 pages, is it too much?
Fortranm
He/Him
Editor, Experienced player (878)
Joined: 10/19/2013
Posts: 1121
I watched the v1 encode when it came out. Glad to see this finally being submitted. Yes vote.
Site Admin, Skilled player (1251)
Joined: 4/17/2010
Posts: 11475
Location: Lake Char­gogg­a­gogg­man­chaugg­a­gogg­chau­bun­a­gung­a­maugg
DeathKontrol wrote:
Sorry about not having much written on the submission page right now, I intend to fill it out later but I just wanted to get it submitted so it doesn't have to wait any longer. I should honestly probably just translate the TeX document to whatever formatting the site uses so that it's visible right here. But it's 23 pages, is it too much?
Should be fine.
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.
Darkman425
He/They
Editor, Judge, Skilled player (1290)
Joined: 9/19/2021
Posts: 263
Location: Texas
It's amazing how faithful the levels were made in this port, which makes the unique strats with different physics both surprising and exciting. Yes vote!
Switch friend code: SW-2632-3851-3712
Alyosha
He/Him
Editor, Emulator Coder, Expert player (3811)
Joined: 11/30/2014
Posts: 2829
Location: US
Wow really good looking game, pretty impressive. A little on the shaky side but still watchable. Lot's of neat tricks, great work on this.
Experienced player (691)
Joined: 11/23/2013
Posts: 2232
Location: Guatemala
Glad to see this finally finished and submitted. Also didn't expect such a detailed college project-like document of information about this TAS. This really had a lot of time and effort put into it, and the movie itself did not disappoint either, so of course I'm giving this a Yes vote.
Here, my YouTube channel: http://www.youtube.com/user/dekutony
Pixiuchu
She/Her
Player (146)
Joined: 9/27/2015
Posts: 106
Finally got around to watching this... The gameplay feels sluggishly slow sometimes (which is none of your fault, of course), but it was still entertaining overall. GG! Very cool to see that you finished this project of yours. Yes vote from me :)
DeathKontrol
He/Him
Player (106)
Joined: 11/3/2021
Posts: 12
Alright I translated all the info into the site's formatting so it's more accessible, it's actually not that bad cause the page is much wider than a standard LaTeX article page. With that, I think the submission is more or less complete.
DeathKontrol
He/Him
Player (106)
Joined: 11/3/2021
Posts: 12
I have a couple notes/questions for the judges: * The final input frame is 149777, I included lots of blank space to roll credits during the movie, so the final time is a good bit less than 46:33. * I started this project on Bizhawk 2.6.1 and eventually transitioned over to 2.6.2, I had to start a new file and copy the inputs in. I had 89735 rerecords on that file so the true number of rerecords is 89735 + 108350 = 198085. * I was reading the submission guidelines and it said you could put your real name to protect your work, is that still relevant? I couldn't find a field to enter it.
Site Admin, Skilled player (1251)
Joined: 4/17/2010
Posts: 11475
Location: Lake Char­gogg­a­gogg­man­chaugg­a­gogg­chau­bun­a­gung­a­maugg
DeathKontrol wrote:
* The final input frame is 149777, I included lots of blank space to roll credits during the movie, so the final time is a good bit less than 46:33.
We'll remove the blank input upon judging.
DeathKontrol wrote:
* I was reading the submission guidelines and it said you could put your real name to protect your work, is that still relevant? I couldn't find a field to enter it.
Updated! Real name is not used anymore.
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.
Alyosha
He/Him
Editor, Emulator Coder, Expert player (3811)
Joined: 11/30/2014
Posts: 2829
Location: US
I converted the movie to work in bizhawk 2.8 and in GBA mode in gambatte. I tried to console verify and it fails. Tried both floor and ceiling in the dump script. I also made sure SRAM was set to 0xFF. The movie also syncs in dev build. It desyncs in the first level, donkey kong gets hit by an enemy shortly after collecting the 'K'. I'll try and see if I can narrow down what's going wrong at all, would really like to see this one verified. Turns out I was initially using a wrong version of the script. Using the correct version it still fails though, desyncs at loopy lights. Console verified! Link to video
DeathKontrol
He/Him
Player (106)
Joined: 11/3/2021
Posts: 12
Alyosha wrote:
Console verified!
Awesome!
Post subject: Movie published
TASVideoAgent
They/Them
Moderator
Joined: 8/3/2004
Posts: 15569
Location: 127.0.0.1
This movie has been published. The posts before this message apply to the submission, and posts after this message apply to the published movie. ---- [4809] GBC Donkey Kong Country by DeathKontrol in 41:47.66