(Link to video)

Goals

  • Fastest completion (any%)
  • Takes damage to save time
  • Speed/Entertainment tradeoff
  • Genre: Platformer
Done on BizHawk 2.2.2 with mGBA core. The Japanese version only saves 3 seconds in this speedrun, so I chose to go with the English version instead.

Context

I'm currently making a 200% TAS. I'm currently 40 minutes into a run that should be roughly an hour and 10-15 minutes long. I have all the parts with DK done in the 200% TAS, so I thought that making an any% out of inputs I already have would be good. Since this TAS is mainly made out of these inputs, I manually added the rerecord count of every room in the game according to what I have in the tasproj files that I used for testing routes and strats. Without those rerecords added, this movie would have 5143 rerecords.
The biggest thing that was found since PiePusher's TAS is the discovery of "speedgrinding", which is a technique used throughout the entire TAS to go faster. By alternating between L and R on every frame, you get the speed of the first frame of releasing a hand, but for every frame where L and R are alternating. Outside of that, there's been some more strategies found, and they will be discussed in the level-by-level description.
You guys asked it, you guys get it. In PiePusher's TAS, he takes a hit off of an enemy early on in his run, and it makes it so that you could hear the beeping sound of having low health for the majority of his run. People complained about it when his TAS got published, so I chose to not do that in my TAS, at the cost of losing half a second.

Banana usage

here are the differences in the banana usage between PiePusher's run and my run.
PiePusher
  • Puzzling Pyramid 2 (10)
  • Cactus Woods 3 (20)
  • Necky's Canyon 3 (20)
  • Engine 1 (30)
g0goTBC
  • Ship of Souls 2 (20)
  • Underwater Ruins 3 (20)
  • Engine 1 (20)
My run uses 20 less bananas for the lack of fast bananas in the early game, and the lack of good boosts in the late game. I tried finding 20 fast bananas for a boost in Artillery 2, but I wasn't able to find enough bananas to save time with it.

Level-by-level comparison

Tutorial

Same thing really.

Banana bungalow

Middle route made better from speedgrinding. New jump to the end platform, very precise.

Contraption Caves

We can now beat the kremling in the first screen, making the 5 bananas slow. Tire bounce all the way to the orange pegboard in the 2nd screen, more direct way.

Puzzling pyramid

I don't go for a damage boost that would save half a second to not hear the heart beeping sound in the first screen. We pass by the kremling on the third screen so that he gets to crank the switch for us!

Tropical Treetops

Same thing really

Congazuma

New quick kill that was found during the Diddy any% TAS. By going to the right of Congazuma after hitting him, he tries to go to the right, but can't do it since he's already on the right edge of the screen, the phase where he bounces one way while being invincible is skipped.

Cactus Woods

My run goes through the top of second screen. Very precise movement, and saves 0.3s over going under. No more boost in the third room.

Madcap Mine

No more cranking of the third switch in the first screen. No more cranking of the 2nd and 3rd switch in the third screen.

Treacherous Twister

Same thing really.

Necky's Canyon

We use the left route in the second room since we can beat the bird with speedgrinding.
No more boost in the 3rd screens, strats were found to make the boost save less than a second.

Fire Necky

Pie's TAS was waiting for all 7 rocks to be shot for whatever reason. 4 rocks is enough.

Tropical Treetops

Same thing really.

Ship of Souls

New boost in the second room to reach a hidden barrel that was recently found.

Risky Reef

Swapping Risky Reef and Kremling Kemp doesn't save nor lose time, PiePusher's TAS simply needed bananas from Risky Reef to boost in Kremling Kemp. Other than that, it's the same thing really.

Kremling Kemp

Same thing really.

Davie Bones

Got more damage in the first cycle, this allowed me to have a shorter 2nd cycle.
Getting 3 hits from the bottom-left spike is surprisingly tricky, it took me a long time to figure out a way to do it without having an extra rotation.

Raging Ravine

Major route change in the first room.
Even with better movement, it's still faster to wait for the kremling to shoot his bomb in the third room.

Ice Castle

Sliding on ice is much faster than speedgrinding. Not landing in the second room is faster.

Underwater Ruins

Despite the first room being an autoscroller, I save a second there.
New skip requiring a boost in the third room, saves 6 seconds over intended route.

Cold Cold Forest

Using the middle route in the third room is faster.

Sassy Squatch

Same thing really.

Booster Barrel Skyway

Also same thing really.

Artillery

New canon bounce in the first room. Faster, and gets the 10 bananas.

Hull

Left path in third room is faster by 4 seconds.

Engine

New way of skipping the first room: "Hoo haw skip skip", less than a second slower than the original strat, but skipping 10 bananas makes it worth to do.

K. Rool

Attacking K. Rool during the race makes him go quicker. The speed ratio is roughly equal speedgrinding vs not speedgrinding.
2nd made faster by not letting a chance to K. Rool to attack, allowing us to attack him immediately after his invincibility runs out.
I aim for faster coin grab (RTA timing end), with minimal extra input time.

Shoutouts

Huge shoutouts to the DK: King of Swing community for being awesome and for the strats that have been found over the years, and I'd like to give these special shoutouts to these people:
PiePusher11: Amazing speedrunner and rival at this game. He helped with some of the earlier levels, as well as revising my work when I was showing some WIPs to the community.
Jeane: Found the "Hoo-haw skip skip", which saves many runs due to its easier difficulty.
FryingRyan27: Please come back, we love you.
Blunderstab: when's publishing a Jungle Beat TAS? ;)

ThunderAxe31: Judging!
ThunderAxe31: Although it could seem to lose time to che current movie in a couple of sections, it's due to different routing of banana usage and damage abuse, which turns out overall faster in this submission. Accepting as improvement over the current movie.
Spikestuff: Swiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiing.

TASVideoAgent
They/Them
Moderator
Joined: 8/3/2004
Posts: 14853
Location: 127.0.0.1
This topic is for the purpose of discussing #6582: g0goTBC's GBA DK: King of Swing in 17:34.47
Player (238)
Joined: 9/27/2018
Posts: 23
Location: Uchiura's Diving Spot
Man. I gotta say, this is one hell of a good TAS! So much optimization! Better than PiePusher's. I like that you pressed left and right each pegboard you were climbing for each frame. Therefore, Instant YES vote! Keep up the good work.
I remember 3 years ago when I was new here, and kept PMing people thinking that was the only way to send replies in the discussion forums. Also thought my SCD++ TASes were legit. All 3 of them are flukes. I was an idiot. XD
EgixBacon
He/Him
Player (181)
Joined: 4/15/2013
Posts: 331
Location: In the attic
You guys asked it, you guys get it. In PiePusher's TAS, he takes a hit off of an enemy early on in his run, and it makes it so that you could hear the beeping sound of having low health for the majority of his run. People complained about it when his TAS got published, so I chose to not do that in my TAS, at the cost of losing half a second.
I was aware of the old run but never got very far with watching it, and this was probably why^ It's a yes from me.
FanFiction|Youtube Still on Win7! Take that, Microsoft!
RetroEdit
Any
Editor, Reviewer, Player (165)
Joined: 8/8/2019
Posts: 131
g0goTBC wrote:
You guys asked it, you guys get it. In PiePusher's TAS, he takes a hit off of an enemy early on in his run, and it makes it so that you could hear the beeping sound of having low health for the majority of his run. People complained about it when his TAS got published, so I chose to not do that in my TAS, at the cost of losing half a second.
I have a solution for this tradeoff: make two encodings, one which is normal for accurate representation, and a separate encoding that uses a custom ROM where the beep sound doesn't play. To show this is possible, I encoded an alternative version of this movie where the beep noise is disabled (the beeping would have normally started at 15:41 in this particular movie): Link to video This is not unprecedented in my opinion: http://tasvideos.org/6314S.html added an alternative encoding for out-of-bounds display (though they used an overlay to accomplish the effect, and it served a pratical purpose for routing). As long there's an authentic version of the movie that people can watch if they're interested, I see no reason why an additional alternate version with minor tweaks shouldn't be acceptable. I also tested my custom ROM on PiePusher11's old TAS. Of course, I wouldn't rely on it for reliable re-recording when constructing a TAS, but I think it will be sufficient for alternate encodings so that optimal strats can be pursued without the viewer having to suffer through the beeping.
g0goTBC
He/Him
Experienced player (755)
Joined: 6/11/2018
Posts: 110
Oh, that's an excellent idea! I personally do not have any experience with rom hacking or scripting, so I didn't even consider doing something of that sort. I'd be happy to try something like that once I finish the 200% TAS, as it will contain some amount of heart beeping all throughout the run. I only need to learn how to do it.
Banjo-Tooie runner, DTC 8, 9, 10, and 11 winner, but more importantly, "When's GR?" Current projects: Banjo-Kazooie: Grunty's Revenge - 100% (50 minutes) Mario Party 1 - All Boards (est: 4-6 hours) Mario Party 3 - All Minigames (est: 40-50 minutes, not sure) "Ooooh, I saved some more subpixels. Look at those sweet subpixels. You can't look at them, because they're subpixels, but they look so good." - The8bitbeast "It's as if I knew what was going to happen. It's as if I had the plan written in front of me and I was reading it. I mean, I do have it in front of me, but I'm not reading it." -garagedooropener
Post subject: No more beep sounds
Judge, Skilled player (1278)
Joined: 9/12/2016
Posts: 1645
Location: Italy
Making a Lua script would be more appropriate and lead to the same result. I'll try to write one in the close future. Edit: turns out it's even simpler than that: just freeze address 4EE8, IWRAM to zero. Done!
my personal page - my YouTube channel - my GitHub - my Discord: thunderaxe31 <Masterjun> if you look at the "NES" in a weird angle, it actually clearly says "GBA"
RetroEdit
Any
Editor, Reviewer, Player (165)
Joined: 8/8/2019
Posts: 131
Very nice! I thought my custom ROM idea was a bit hokey, and a LUA script or address freezing would definitely be more straightforward. I'll be curious to look at that address you froze to understand why it works. EDIT: you mentioned writing a LUA script would generally be an available option, and I guess I underestimate the power of LUA scripts. How could a LUA script affect something like sound effects playing if it can only indirectly observe the execution model through frame-by-frame memory snapshots? Is it just a general rule of thumb that loading something like a sound effect will leave some usfeul trace in memory somewhere along the line? Or I assume in this case you might have looped into the beep timer, or something similar?
Judge, Skilled player (1278)
Joined: 9/12/2016
Posts: 1645
Location: Italy
In this case, the very first thing I decided to check was to look for addresses that changes once that the player gets to 1 HP remaining. That didn't help much, as the only result was the HP address itself. Then, I looked for addresses that change each time the beep sound is played... And I found a bunch of them. Among these, only the one I've posted is directly responsible for the beeping sound. Specifically, its value changes twice for each time the beep sound is played. Forcing it to stay to zero prevents the game from being able to play that sound effect altogether. Regarding Lua, even if it can read and edit game memory once for frame, it could allow to many neat possibilities with a bit a logic. For example, take a look at this Cam Hack script I wrote: http://www.youtube.com/watch?v=cYonwsY-VsE source code here: https://github.com/E-Sh4rk/KururinTAS/tree/master/OoB%20Viewer
my personal page - my YouTube channel - my GitHub - my Discord: thunderaxe31 <Masterjun> if you look at the "NES" in a weird angle, it actually clearly says "GBA"
g0goTBC
He/Him
Experienced player (755)
Joined: 6/11/2018
Posts: 110
I'm actually surprised doing something of that sort is that simple. I wonder if preventing a sound to play is that simple for every game, or if it happens to be easy with just this game.
Banjo-Tooie runner, DTC 8, 9, 10, and 11 winner, but more importantly, "When's GR?" Current projects: Banjo-Kazooie: Grunty's Revenge - 100% (50 minutes) Mario Party 1 - All Boards (est: 4-6 hours) Mario Party 3 - All Minigames (est: 40-50 minutes, not sure) "Ooooh, I saved some more subpixels. Look at those sweet subpixels. You can't look at them, because they're subpixels, but they look so good." - The8bitbeast "It's as if I knew what was going to happen. It's as if I had the plan written in front of me and I was reading it. I mean, I do have it in front of me, but I'm not reading it." -garagedooropener
Post subject: Movie published
TASVideoAgent
They/Them
Moderator
Joined: 8/3/2004
Posts: 14853
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. ---- [4101] GBA DK: King of Swing by g0goTBC in 17:34.47