Why play the game when you can just play the first level?

General Information

  • Emulator: Bizhawk 2.6.1
  • Version: USA 1.0
  • Objective: "Defeat" King K Rool as quickly as possible
  • Categories:
    • Uses death to save time
    • Takes damage to save time
    • Heavy glitch abuse
    • Corrupts memory
    • Major skip glitch
    • Final boss skip glitch
    • Executes arbitrary code
    • Genre: Platform

Funky Start

A relatively new glitch was discovered where pressing down immediately after Start at the beginning causes the kongs to start in a funky barrel instead of as solo Donkey Kong. This saves a little over a second by not loading the world map music and moving slightly faster.

Split-up Glitch

The split-up glitch causes allows the player to control both kongs at once, in addition to having both kongs interact with objects as if each was the active kong.
There are a few ways to trigger this, but the fastest way is to do the following:
  • Pick up a DK Barrel
  • Bounce on an enemy to drop it
  • Before the DK Barrel breaks, pick it back up again
  • Get hit and die (note: while in this state, you can only die from falling in a pit, so you must get hit over a pit)
  • Break open a DK Barrel
You will now be controlling both kongs at once. Needless to say, being able to do this causes all manner of glitches to occur, including the one we're interested in.

Invisible Animal

Using the split-up glitch, you can ride an animal buddy with both Kongs at the same time. This causes weird graphical effects, and the animal buddy object can despawn if you travel too far in either direction.
Notably, this allows applying the "jump" logic to an invalid object like a bonus, which causes an infinite loop. The infinite loop fills the stack until it eventually overwrites the source of the infinite loop, corrupting many pointers in the process.

BRK is your friend

The most obvious effect of these pointers being corrupted is the Kongs will now fall through the ground. However, it is also possible to execute invalid behavior 3F, which quickly BRK's. This sends the program counter to $7003.

Open Bus Strikes Again

If you don't know what Open Bus is, you can find a high level explanation here.
Suffice it to say, $7000-$7FFF is all Open Bus, and it ends up doing 70 70 over and over again.
It then reaches $800b, which quickly results in another BRK back to $7000 or $7003.

HDMA to the rescue

This would normally result in some sort of infinite loop, but while all this is going on, HDMA is still actively trying to send data during certain windows for graphical effects.
I won't go into too many details here, but these commands can overwrite what Open Bus would normally spit out, and vary wildly in effect.
By finding an extremely unlikely command through a very specific timing, it is then possible to reach the controller registers located from $4218 to $421F.

The Payload

Unfortunately, the path I took to get here ended up clobbering both the data bank and direct page registers, and we can't beat the game without resetting them. Thus, the payload looks like this:
  • 5B 20728C 80FA
  • 80F8 48 AB 22D784B8
The first frame fixes the direct page register and continually calls a lengthy function in the game until the controller data is updated. This last bit is important because the controller data isn't filled instantly, so we need to stall after the process starts without knowing when it started.
The second frame fixes the data bank register and jumps to $B884D7. This location is called very early on when loading the level after King K Rool is beaten, and conveniently sets all the necessary flags as well.

What about Wrong Warping?

It is entirely possible on Bizhawk to do the same jump using the controller registers by doing a wrong warp to level FFE9. This is both significantly easier to do and faster, but it has a fatal problem: It doesn't work on real hardware.
The way Bizhawk updates the controller registers in this instance is flawed, and as such reads data that is basically a bunch of 0's or thereabouts on actual hardware. This will always be the case if the ACE is attempted during a level transition, and as such is not viable anywhere.
Thankfully, the HDMA ACE is done in the middle of the level, and there's no reason to believe the controller registers should be disabled.

Notes

For more details on some of the movement done here, please refer to the explanation video.

Special Thanks

p4plus2 and Ilari: For helping me to better understand why the wrong warp method doesn't work on real hardware, and for helping me to better understand the magic of HDMA.
SnakPak: For confirming that the BRK is triggered on console.
Everyone on the DKC speedrun, TASVideos, and TASBot discord servers who gave advice or encouragement. It's much appreciated!

Suggested Screenshot


Samsara: Judging.
Samsara: Congrats on finding a working strategy for this! Reception to the run is excellent, the submission text was a great read and the video was an even better watch. Accepting to Moons as a new category!
EZGames69: Processing


TASVideoAgent
They/Them
Moderator
Joined: 8/3/2004
Posts: 15558
Location: 127.0.0.1
Challenger
He/Him
Skilled player (1688)
Joined: 2/23/2016
Posts: 1061
That was surprising! Yes vote
My homepage --Currently not much motived for TASing as before...-- But I'm still working.
Alyosha
He/Him
Editor, Emulator Coder, Expert player (3809)
Joined: 11/30/2014
Posts: 2828
Location: US
That's crazy. How long did it take you to work everything out? yes vote.
Doomsday31415
He/Him
Active player (298)
Joined: 8/28/2018
Posts: 75
Location: United States
I found the original wrong warp almost immediately. Without realizing it wouldn't work on console, I went to the trouble of fully optimizing it before going to the TASBot discord to have them verify it. So that was a nice red herring. As for the HDMA route, it was already known that you could fall through the floor by using the invisible animal glitch. All I had to do was experiment with it a little to find out that it caused a BRK. From there, it took a week or two to understand why it was randomly doing non-Open Bus commands while on Open Bus, and then decide to actually pursue this route that probably won't be verified on console due to what that would require. After optimizing the rest of the route and checking the various discords to see if they spotted anything off, I spent dozens of hours going through hundreds (thousands?) of different input combinations in order to find one that actually did what I wanted. I wasn't actually prepared for it to corrupt my data bank and direct page registers, so it took several hours beyond that to figure out a way to fix it... But now that's done, and it works great!
Patashu
He/Him
Joined: 10/2/2005
Posts: 4042
Nice new ACE, yes vote.
My Chiptune music, made in Famitracker: http://soundcloud.com/patashu My twitch. I stream mostly shmups & rhythm games http://twitch.tv/patashu My youtube, again shmups and rhythm games and misc stuff: http://youtube.com/user/patashu
Alyosha
He/Him
Editor, Emulator Coder, Expert player (3809)
Joined: 11/30/2014
Posts: 2828
Location: US
Doomsday31415 wrote:
... From there, it took a week or two to understand why it was randomly doing non-Open Bus commands while on Open Bus, and then decide to actually pursue this route that probably won't be verified on console due to what that would require.. ...
Oh so this probably can't be console verified without some new technology? That's a shame, oh well, maybe someday.
Senior Moderator
Joined: 8/4/2005
Posts: 5777
Location: Away
The annotations made my day. Honestly the most entertaining part of the run. Yes vote.
Warp wrote:
Edit: I think I understand now: It's my avatar, isn't it? It makes me look angry.
EZGames69
He/They
Publisher, Reviewer, Expert player (4457)
Joined: 5/29/2017
Posts: 2761
Try and beat THAT, Kranky Kong.
[14:15] <feos> WinDOES what DOSn't 12:33:44 PM <Mothrayas> "I got an oof with my game!" Mothrayas Today at 12:22: <Colin> thank you for supporting noble causes such as my feet MemoryTAS Today at 11:55 AM: you wouldn't know beauty if it slapped you in the face with a giant fish [Today at 4:51 PM] Mothrayas: although if you like your own tweets that's the online equivalent of sniffing your own farts and probably tells a lot about you as a person MemoryTAS Today at 7:01 PM: But I exert big staff energy honestly lol Samsara Today at 1:20 PM: wouldn't ACE in a real life TAS just stand for Actually Cease Existing
Editor, Player (174)
Joined: 4/7/2015
Posts: 331
Location: Porto Alegre, RS, Brazil
A run to E X P A N D E V E R Y T H I N G Hell yes, great job on this brilliant game end glitch, a good ol first level one
Games are basically math with a visual representation of this math, that's why I make the scripts, to re-see games as math. My things: YouTube, GitHub, Pastebin, Twitter
Zinfidel
He/Him
Player (206)
Joined: 11/21/2019
Posts: 247
Location: Washington
As with a lot of ACEs, the actual gameplay is not that entertaining, but the companion commentary is brilliant and made the entire video a good watch. Yes vote!
Pixiuchu
She/Her
Player (146)
Joined: 9/27/2015
Posts: 106
didnt beat the game without dying, noob, no vote (this is sarcastic)
EZGames69
He/They
Publisher, Reviewer, Expert player (4457)
Joined: 5/29/2017
Posts: 2761
Oh btw I’m 100% claiming this for pub.
[14:15] <feos> WinDOES what DOSn't 12:33:44 PM <Mothrayas> "I got an oof with my game!" Mothrayas Today at 12:22: <Colin> thank you for supporting noble causes such as my feet MemoryTAS Today at 11:55 AM: you wouldn't know beauty if it slapped you in the face with a giant fish [Today at 4:51 PM] Mothrayas: although if you like your own tweets that's the online equivalent of sniffing your own farts and probably tells a lot about you as a person MemoryTAS Today at 7:01 PM: But I exert big staff energy honestly lol Samsara Today at 1:20 PM: wouldn't ACE in a real life TAS just stand for Actually Cease Existing
Spikestuff
They/Them
Editor, Publisher, Expert player (2632)
Joined: 10/12/2011
Posts: 6436
Location: The land down under.
EZGames69 wrote:
Oh btw I’m 100% claiming this for pub.
But this is "game end glitch".
WebNations/Sabih wrote:
+fsvgm777 never censoring anything.
Disables Comments and Ratings for the YouTube account. Something better for yourself and also others.
EZGames69
He/They
Publisher, Reviewer, Expert player (4457)
Joined: 5/29/2017
Posts: 2761
flips spike
[14:15] <feos> WinDOES what DOSn't 12:33:44 PM <Mothrayas> "I got an oof with my game!" Mothrayas Today at 12:22: <Colin> thank you for supporting noble causes such as my feet MemoryTAS Today at 11:55 AM: you wouldn't know beauty if it slapped you in the face with a giant fish [Today at 4:51 PM] Mothrayas: although if you like your own tweets that's the online equivalent of sniffing your own farts and probably tells a lot about you as a person MemoryTAS Today at 7:01 PM: But I exert big staff energy honestly lol Samsara Today at 1:20 PM: wouldn't ACE in a real life TAS just stand for Actually Cease Existing
Joined: 5/8/2010
Posts: 177
Location: Entropy
Somehow we already new that DK didn't loose his stash it was there all along, he just had to do some mystic dance to make it appear. That's a nice Yes vote!
Acumenium
He/Him
Banned User
Joined: 6/11/2020
Posts: 73
Yes vote. It's so chaotic and just comes to a crazy end after a bizarre but entertaining setup. The annotations/documentation during the video also help it massively, IMO. This should have the "executes arbitrary code" tag when it is submitted though since it seems to be reaching the end of the game the same way that it is done in Super Mario World, which has it.
Doomsday31415
He/Him
Active player (298)
Joined: 8/28/2018
Posts: 75
Location: United States
Acumenium wrote:
This should have the "executes arbitrary code" tag when it is submitted though since it seems to be reaching the end of the game the same way that it is done in Super Mario World, which has it.
Funny you should mention that, because I based the category list off that submission, which I also did. The reason the other tags aren't included is because they don't exist on this page: http://tasvideos.org/MovieTokens.html It would appear the page is missing certain, new ones.
Post subject: The Abridged Adventures of Dong and Ding
GamesFan2000
He/Him
Joined: 1/4/2019
Posts: 84
Location: Canada
Good morning fellow bananas. I AM THE GAMESFAN2000! Not that anyone cares, I am merely a plebian who loves watching TAS runs. In this new TAS of the legendary SNES classic Dong Country, the holy trinity of Dong, Ding, and Rang give the bird to science itself and make it to Crang's house in a minute and three seconds. I always love these ACE showcases, because it's hilarious when the game is forced to do a smart person's bidding. I am contractually required to give this one a yes vote.
Post subject: Movie published
TASVideoAgent
They/Them
Moderator
Joined: 8/3/2004
Posts: 15558
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. ---- [4457] SNES Donkey Kong Country "game end glitch" by Doomsday31415 in 01:03.70