Tool-assisted game movies
When human skills are just not enough

Submission #6786: WarHippy's GBA Dragon Ball: Advanced Adventure in 32:27.56

Console: Game Boy Advance
Game name: Dragon Ball: Advanced Adventure
Game version: JPN
ROM filename: Dragon Ball - Advanced Adventure (J).gba
Emulator: BizHawk 2.4.2
Movie length: 32:27.56
FrameCount: 116323
Re-record count: 64900
Author's real name: Scott M.
Author's nickname: WarHippy
Submitter: WarHippy
Submitted at: 2020-06-20 06:32:49
Text last edited at: 2020-07-09 20:20:47
Text last edited by: ThunderAxe31
Download: Download (78804 bytes)
Status: judging underway
Submission instructions
Discuss this submission (also rating / voting)
List all submissions by this submitter
List pages on this site that refer to this submission
View submission text history
Back to the submission list
Author's comments and explanations:
What would happen if Goku lost his childlike charm? Well, Dragon Ball: Advanced Adventure of course! From start to finish Goku turns it up to the max and destroys all enemies in the blink of an eye. Try to keep up as Goku makes his way from novice to hero. This run beats my previous submission by 3841 frames (or 63.31 seconds).

(Link to video)

Game objectives

  • Emulator used: BizHawk 2.4.2
  • Aims for fastest time
  • Uses Hardest Difficulty
  • Heavy Luck Manipulation
  • Activates Killer Ultra Instinct


The Story Mode follows Goku as he goes on the adventure of his lifetime. Most of the Dragon Ball story arcs are here; the only one noticeably missing is the Piccolo Junior storyline from the end of the series. There are many items to collect in the game, most of which are hidden. Items can include those that increase the player's health and/or ki, the Dragon Balls, or objects such as Master Roshi's sunglasses and Mercenary Tao's cyborg headgear. Since this run aims for fastest time we only collect the ki upgrades to give us a more powerful kamehameha.

Story Mode Controls

D-pad = Movement
D-pad (double press) = Run (can press B during it for a dash attack)
A-button = Jump (hold to affect height)
B-button = Basic attack (press successively for combos on the ground). Can combine with directions such as up or down and in midair for other moves
UP + B on ground = Spinning Staff. Hold B to increase duration. Can reflect projectiles and causes minimal, repeating damage. Can't be cancelled out of.
UP + B in mid-air = Upper cut kick. Quick start-up. Can reflect projectiles. Can be cancelled out of. Used extensively in the run.
Down + B in mid-air = Dive kick. Hold B to keep diving. Large start-up time. Can be cancelled out of. Frequently used for movement optimization.
Throw = While near an enemy in hit stun you can press B + Left or Right to throw. High damage, but very large start-up and cool-down time.
L-trigger button = Super Attack
R-trigger button = Special Energy Attack (Hold to charge up; can walk, run and jump while charging but with much slower movement until released)
R+L trigger button = Rush attack into ultimate combination when you connect with an enemy. Used frequently for movement optimization.

Technical Stuff

Movement Optimization

Walking speed - Accelerates 64 units per frame up to 512 speed
Walking speed (mid-air) - Accelerates 64 units per frame up to 544 speed
Running speed - Accelerates 48 units per frame up to 768 speed
Running speed (mid-air) - Accelerates 64 units per frame up to 768 speed
L + R rush - Instantly sets speed to 640 and lasts for 25 frames.
Jumping - Hold A for 23 frames to achieve maximum height. Holding it for 24 frames will set his y-speed to a lower value and he won't rise quite as high
Wall Jump - Press against a wall and press the opposite direction + A. It has a 4-frame startup.
Dive Kick - 7 frames of start-up and moves you 1440 sub-pixels backwards and 1464 sub-pixels upwards. Your x-speed then gets set to 928 for the duration of the move.

Using the L+R rush into a running jump is the fastest method of movement from a standstill. If you can't use the L+R rush (usually because an enemy is in the way), then doing a running jump is the next best option. If jumping isn't an option, then walking up to 512 speed and then into a run is the fastest.

Dive kicking is the fastest form of movement, but due to the start-up time you need to be able to hold the move for at least 50 frames for it be beneficial (7 frames to start up and then 43 frames once you start moving). You can only hold it for 33 frames when using it on level ground, so you have to be dive kicking from an elevated area. You can preserve some of the speed for two frames after landing by not holding a directional arrow as shown in the next line. Pressing left or right early will result in your speed being set to 768.

Holding right after landing: 928→768

Preserving speed: 928→864→800→768

Sub-pixel optimization also plays a role in this game. Each pixel consists of 248 sub-pixels and can be manipulated in increments of 8. The y-sx position is most important for dive kick optimization. The closer your y-sx position is to 0 before jumping then the higher the chance that your dive kick can last one extra frame. It can be manipulated by modifying the height of any previous jumps. The x-sx position can be used to increase the chance of entering doorways and screen transitions one frame earlier. It can be manipulated by speeding up or slowing down your run or pressing up against the edge of the screen (your sx position cycles from low to high and back again when running against the front of the screen).

The Dash attack and the L+R rush special extends Goku's hit box in front of him which is frequently used to trigger fights and screen transitions one frame earlier.

Random Number Generator The RNG affects which attacks the enemy uses, which side of the screen the enemy appears from, the amount of damage your attacks do, and also what attacks the bosses will start with.
There are many things that can cause the RNG to change, such as:
Enemy appearing on screen - Advances the RNG counter by 1
Any enemy action (attacking, moving, stopping) - Advances by 1
Every 25 frames the enemy is in front of Goku and on-screen - Advances by 1 (but doesn't count any frames while the enemy is in the middle of an attack)
Most of Goku's attacks - Advances by 1

  • Neither the Up+B (spinning staff) nor the L-trigger special attack increment the rng unless you hit an enemy
Hitting an enemy and getting hit increment the RNG by 7

Fight Optimization

Damage Chart (Story Mode)
Attack Base Damage + RNG
Dash Attack 25 + 0-3
Standing B (1) 20 + 0-3
Standing B (2) 21 + 0-3
Standing B (3) 25 + 0-4
Standing B (4) 25 + 0-4
Standing B (5) 25 + 0-4
(mid-air) Up+B 21 + 0-3
(mid-air) Down+B 23 + 0-3
(mid-air) B 26 + 0-4
Throw ~100
Throw momentum ~20
L special (1-4) 13 + 0-5
L special (final hit) 77 + 0-5
L+R rush ~200
Ki Blast Lv. 1 ~40
Ki Blast Lv. 2 ~60
Ki Blast Lv. 3 ~135 over 7 hits
Ki Blast Lv. 4 ~200 over 10 hits

For enemies that have 120 HP (such as most of the ones in the first level) it was found that a 5-hit combo was the fastest way to finish them. The combo was Dash attack -> Standing B (1) -> Standing B (2)-> Jump -> (mid-air) Up+B -> (mid-air) B {this final hit was usually changed to a dive kick for better positioning}. The base damage for the combo was 110 which means that to get the extra 10 damage the RNG portion had to be above average for every enemy.

On top of needing above-average damage output I needed to make sure that the enemies were spawning from the correct side of the screen when possible. I wanted to be as close as possible to the right side of the screen when the last hit was delivered to the final enemy. I also wanted the final hit to be a dive kick or any attack that I could cancel into the L+R rush. I had to use a variety of combos with a variety of damage outputs to make sure I was positioned well at the end of a fight.

Boss Fights

Boss fights are generally much easier to optimize once you can figure out how to manipulate the best starting pattern. You just get in there and keep repeating the highest damage combo which is pretty similar to the combo used on regular enemies (Dash attack → Standing B (1) → Standing B (2) → Jump → (mid-air) Up+B → Dive Kick → (mid-air) B → Land and Dash Attack again). When fighting against bosses or enemies that can't be hit from the ground it's best to simply Dive Kick → Up Kick ad infinitum.

Regular sized bosses (such as Yamcha, Krillin, Devil Man, etc..) can only be combo'd for as long as they're in the air, and they can only be popped up once per combo with (mid-air) Up+B. The only other way you can keep them in the air is with the L+R rush attack. It initially seems like the L+R rush does a lot of damage, but due to its super long cool down time it ends up being faster to just continue with the regular combo as along as possible. For comparison the L+R rush does ~200 damage in 83 frames and the regular combo does ~240 damage in 91 frames.

The 'Area Clear' phrase only appears after the boss has reached his final resting animation on the ground. The L+R rush will sometimes be used as the finishing combination because the final hit will automatically set the enemy into a state very close to the final resting animation. But other times it will waste time by sending the enemy flying and bouncing against the wall.

Stage by stage comments

Goku's House

The journey begins. And it starts off on a very complex level, too. The second fight in this level on the bridge was the hardest fight in the game to optimize. And the second hardest in the game is the last fight of this level right before the boss. Hitting that perfect trifecta of getting the enemies to spawn on the correct side of the screen, getting high damage, and finishing the fight with the right positioning was a nearly impossible task. You'll often see Goku punching and attacking the open air before and during the fights. This is to manipulate the RNG wherever I can. I try the best I can to change the RNG without losing any time, which often means going back to the previous fight to add some punches.

Oolong's Village

Fight against the shapeshifter Oolong. You want to end the fight with Oolong as far to the right as possible, but every time you hit him he drifts to the left. The L+R rush is used to pop him out from the left side of the screen. Otherwise, he would go too far off screen and you would spend several seconds waiting for him to reset. All the attacks at the end are for manipulating the Yamcha fight coming up next.


The battle against Yamcha. I stumbled across a very rare starting pattern for him where he's already dashing halfway across the screen. I do have to wait for him to drop down a little bit before starting my attacks so that he doesn't get popped up too high from my up kick. After this fight we get access to the Kamehameha.

Pilaf's Castle

Any enemies that are on screen right before a fight starts don't actually need to be killed in order to advance. Only the ones that spawn after the yellow exclamation mark need to be killed (with one exception later on in the run). I always end up dealing with the extra enemies, though, for RNG purposes or so they don't interfere with my strategy.

The enemies in green coats have a good chance to throw a grenade as their first action. I always reflect these with the Up kick to do around 300 damage. It's faster to wait a few frames and reflect the grenades than it is to kill them with a regular combo, and it usually sets me up in a better position anyways. This holds true for nearly every grenade-throwing or rocket-launching enemy in the game.

Wall jumps provide a speed boost away from the wall which normally makes it impossible to do more than one in a row. But by immediately doing the L+R rush back towards the wall lets us scale the whole wall and bypass the whole section. Getting hit by the boulder pops up Goku just high enough to reach the wall. That particular maneuver makes use of another trick in which you can cancel the damage animation with another attack. It's done simply by pressing an attack button right after getting hit, but it can only be used after getting hit in the middle of a mid-air attack.

The twin robot bosses need to be killed at the same time in order to avoid an insane amount of lag from the destruction animation. I finished the fight earlier by ending with a ki blast instead of 2 extra attacks.

Island of Training

Master Roshi has thrown a rock deep into the jungle, and Goku and Krillin have to race each other to find it. There's only 1 mandatory fight in this level. Everything else is about optimizing dive kicks and general platforming. In the end Krillin tries to fight you for the stone and loses. He tricks Goku afterwards and still ends up getting the stone back to Roshi first.

The next level has Goku destroying falling boulders in a training mini-game. RNG determines where the rocks appear from which is important since you have very little time to maneuver before needing to jump to hit the next rock.

Battle Mode

D-pad = Movement (double tap left or right to dash in respective direction)
D-pad (opposite direction of opponent) = Block
A-button = Jump (cannot alter jump height)
B-button = Melee Attack (combine with directional buttons to make combos)
L-trigger = Unique action (example: L-button while knocked down uses up Ki for an Afterimage Technique)
R-trigger = Kamehameha attack (Hold to charge. Unlike in Story Mode, you can aim it up or down)
L + R trigger = Ultimate Attack (only usable with 4 ki bars, not used in the run)
D-pad UP + B-button = Parry (block a single hit without using up defense gauge, not used in the run)
D-pad DOWN + B-button = Sweeping Low Attack (Knockdown move)

Combos are very limited in this mode. Once you use an attack input in a combo (such as U+B) you can't use that same input again for the rest of the combo. You need to get back to a neutral position before you can use the moves again. Goku only has 3 different attack animations in the air, but there are 6 possible button combinations. It looks like I'm using the same move multiple times per aerial combo (which I am), but I'm using a different button combination to do it each time.

Damage Chart (VS mode)

Attack Damage Description
Dash Attack 14 Long range, high damage
B (1) 5 Normal attack
B (2) 5 Normal attack
B (3) 14 Heavy Knockdown
f+B (1) 8 Normal attack
f+B (2) 8 Normal attack
f+B (3) 11 Launcher
D+B 14 Low Attack, Knockdown
(mid-air) B (1) 8 Heavy Punch
(mid-air) B (2) 5 Kick
(mid-air) B (3) 14 Knockdown Punch
(mid-air) f+B 5 Kick
(mid-air) b+B 8 Heavy Punch
(mid-air) u+B 5 Kick
(mid-air) d+B 14 Knockdown Punch
Ki Blast (1) 10 6-8 hits
Ki Blast (2) 12 6-9 hits
Ki Blast (3) 14→10 Knockdown
Ki Blast (4) 160→192 Knockdown
Ultimate Attack 160 Must be mid-air

All of the attacks can be done in pretty much any order you want. The real limiting factor is that ground attacks cannot be cancelled into jumps. There's about a 20 frame cool down to return to a neutral position from a punch. When you land from a mid-air attack you immediately cancel into a neutral position meaning you can jump or attack again right away.

The green bar below the health bar is the guard gauge. While it's full you can recover from attacks very quickly. When it's depleted there occurs a long stun animation (36 frames) before you can start attacking again. It has 16 hit points and it acts very differently than the normal health bar. All attacks do varying amounts of damage to it, and the damage can change (usually it's more) if you're interrupting a move. Using a knockdown move to break the guard gauge is ideal because most of the damage will carry over to the enemy's health, and the stun animation will stop them from being knocked down.

It takes 7 frames to jump normally, and you cannot alter the height of it. If you jump during a dash, then it only takes 1 frame to jump. Jumping during a dash will retain your forward momentum. You can press Up or Back to instead jump straight up or immediately backwards. This is used extensively throughout every fight to maintain good positioning. Firing the ki blast too close to the opponent will result in very few hits. If you're too far away, then it will hit fully and the final hit will cause a knockdown. This is always avoided except in the final fight with Piccolo.

When two attacks collide there will be a 6 frame pause before the more powerful attack wins out.

The enemy's defense gauge will start regenerating once they get back to a neutral position (which can happen after every ki blast). To counteract this I manipulate the AI to attack me right away. Opportunities to change the rng are few and far between in VS fights, so I can't always get the ideal outcome.

The RNG changes far less often than in story mode, too. It tends to only increment in the time between combos when the CPU is in a neutral position. Hitting the opponent doesn't change rng at all.

Battle Mode Tutorial

The character names will also vary from the known story line. Sometimes quite drastically. I'm sure you've noticed by now how the MAIN CHARACTER of the game is Gokou instead of Goku.

In the first tutorial you need to break Krillin's guard gauge as quickly as possible and then do a 3-hit combo.

In the second tutorial you need to block 3 attacks. This was the fastest set of 3 I could manipulate.

In the third tutorial you need to perform a knockdown combo (not just a knockdown).

In the fourth tutorial you need to perform a launch combo into a knockdown. This is the only time you'll see this during the run since it takes way too much time to follow them up into the air and then fall back down.

21st World Tournament

1st opponent - Giran

His large hitbox made it much easier to line up the kamehameha blast

2nd opponent - Nam

The inspiration for my new VS. strategy. Due to the change in RNG of this run I was able to get Nam to jump just like the other enemies in the previous publication. After finding out that this strategy was in fact slower I worked on copying the jumpless strategy for all other fights. Several seconds were shaved off of every fight.

3rd opponent - Juckie-Chun (aka Jackie-Chun)

Silly Roshi, fights are for kids.

Muscle Tower

In the fight against Sergeant Metallic (aka Major Metallitron) I got him stuck in a loop in which he will either fire a missile, do a punch, or do a null input after every action. He can only break out of the loop once the null input action is taken, so naturally I manipulate him to fire a missile for every action which I reflect back for massive damage.

In the Murasaki Ninja fight against the 5 clones I was still not able to get all 5 of them into the same combo. Goku's movement certainly allows this to be done in a timely manner, but being able to manipulate all 5 ninjas to stay still and not block was too much. It was still improved, though, because I was able to manipulate the last 2 ninjas to be more towards the right side of the screen.

The final boss can only be damaged while he's frozen, so I have to destroy the block as fast as possible. Using the L+R rush halts the timer on the freezing beam. I have to use all 3 charges in order to kill him on the first cycle.

Underwater Cave

Most of the enemies in this level are bats which only have 1 health. In some fights they will not appear if you are too close to the edge of the screen. In the second half of the level I picked up a purple turtle shell which is a fantastically powerful item. It makes Goku invincible and any enemy I touch takes about 30 damage. By far the most powerful aspect of this item is that I can cancel an attack into another attack every other frame, and the new move will do its damage on the very next frame (even before the move animation starts). So I can do ~25 damage every other frame. I wait until the absolute last frame to grab it on so that it can last all the way to the mini boss. I do 1305 damage in the first 97 frames (partly because I also do 35 damage per hit against the boss). It takes another 150 frames to do the last 450 damage once the turtle shell wears off.

The last boss of the level is some punching bag called General Blue (might as well be General Black and Blue).

Land of Korin

First fight against Taopaipai. This is a mandatory loss. After he knocks you down (and if the RNG is right) he will keep using a ki blast as long as he has meter for it. I block or negate a few of his attacks in the beginning so that he can build up enough meter to do 3 ki blasts in a row which is just enough to K.O. me.

Up next Goku tickles a cat to get more powerful in the catch-a-kitty mini game. All of Korin's actions are dependent upon your position, the direction you're facing, and ,as a matter of course, RNG. The only way to manipulate rng in this mini-game is to press the B button (the capture button) which takes 31 frames to complete. All other buttons are disabled. After capturing Korin he will fade out and re-appear somewhere else. He will either fade-in in a position relative to Goku (usually a medium distance away) which can takes a long time to do, or he'll instantly appear in mid-air with several of his copies flying around. Manipulating him to appear instantly every time was the ideal strategy.

Rematch against Taopaipai. We get proper revenge on him this time around. The fight was perfect right up until the end when he does a dash right towards me. In order for the level 3 kamehameha to do max damage I have to be at exactly the right angle and distance away (especially since he's not against a wall). I wasn't able to manipulate him to do anything other action, and he was able to refill his defense gauge before I could get into position.

Red Ribbon Army Base (pt. 1)

The first half of this stage is the only auto-scroller in the game. Lots of fun had here just bouncing around with the cloud. Holding Up or Down changes the cloud's position even while off-screen (until he lands on a plane). This can significantly affect Goku's vertical movement. This is how he can jump from the bottom of the screen to the top very quickly or vice versa. The blue ships are usually the only enemies that need to be destroyed in the fights to move on (a couple times a gray one, too). The grey mechas never need to be destroyed. I just do it for fun.

Most of the difficulty in this part was optimizing the screen scrolling which means having the screen moved all the way forward by the end of the fight before the auto-scroll takes it over again. The truly difficult one was the last fight before the transition. Getting the final enemy to appear from the right side was a rare rng event, and the enemies that appear from the left and above had to stay in a very specific sequence so that I could be in the right position to maneuver to the right side of the screen in a timely manner.

Red Ribbon Army Base (pt. 2)

The second half of this level was pretty straight forward compared to earlier platforming levels. All of the standard soldiers had 131 health instead of 120, so I had to add in an extra hit to the combo to finish them off. This was actually a relief since I didn't have to go crazy making sure every hit did high damage anymore (for the most part). All of the Lieutenant Metallics were manipulated to fire missiles for me to reflect back. In some earlier testing it was found that the fight checkpoints extend all the way up to an invisible ceiling, but it looks like they don't extend below the ground. This was used to skip two fights in this level. The first one was by crossing the large gap underneath one of the bridges in the middle of the level. The second fight skip happens right before the stage transition. I use a pixel-perfect jump to span the gap beneath the small bridge without triggering the fight. This can be done in real time by instead jumping down to the small ledge with a 1-up on it.

I manage to get the boss to fire off two barrages of missiles, all of which I reflect back.

Baba's Palace

The first fight at Baba's Palace is against Spike the Devil Man in the Devil's Toilet arena. He starts with a laser attack, so I use the L+R attack to break his stance. Otherwise he only takes half damage while charging and firing his beam. I've seen videos of him starting with a different movement, but none of the RNG changes I tried would cause a different start. A little interesting trick at the end of the fight. Goku can go below the instant death barrier at the bottom of the screen as long as he's in the middle of a dive kick or L+R rush. But you die if you go too far out of bounds or if you stop the move.

The second fight is a One-on-One battle against Grandpa Gohan whom Baba is able to bring back to life for one day. It's in this fight that we start to see the A.I.'s guard gauge refilling even during movement.

City Street

Next is a fight against Shu and Mai in a giant robot combination. Both the upper and lower halves are manipulated to fire only missiles, all of which are reflected back for massive damage making for a quick fight.

22nd World Tournament

This tournament marks a noticeable increase in AI difficulty. They attack far more often, and their defense gauge can sometimes refill even during attacks.

1st opponent - Lord Emperor Chaoz (aka Chiaotzu)

Easily the smallest opponent in the game, but the new strategy is completely size independent.

2nd opponent - Klilyn (aka Krillin)

Very similar to the Chiaotzu fight.

3rd opponent - Tenshinhan (aka Tien Shinhan)

Even his third eye is useless against my barrage.

Above City

A boss fight against one of Piccolo's minions.

Yajirobe's Prairie

This is our first encounter with Piccolo. It is a required loss, and nothing I could do could make it happen faster other than just standing there.

Cave of Darkness

After Goku is defeated he goes to Korin for more training. There he drinks the Ultra Divine Water where he is transported the maze-like cave of darkness. He fights shadow versions of Yamcha and Krillin before obtaining the water item. This is also where the 4th and final Ki upgrade is collected.

Chow Castle

A wholesale butt whoopin' of some Namekian critters leading up to the fight against King Piccolo. The little flying monsters were extremely fickle enemies. They will always try to move and stay just out of reach, but they can be manipulated to drop down to the ground depending on the rng and your position relative to them. The two purple turtle shells sped things up greatly.

King Piccolo

King Piccolo is tall. Very Tall. So much so that all but one of my aerial attacks is able to hit him for a full combo. What's even better is that since he's standing on the ground my D+B knockdown move doesn't actually knock him down, and I get to hit him with it twice per loop (14 damage each whereas all other attacks do 5 or 8). The level 4 Kamehameha does a whopping 192 damage when positioned correctly which more than justifies the wait time of knocking him down. Piccolo can get back up by either standing up normally or using the after-image technique to teleport behind you. It actually takes an extra 10 frames to get into a good position for firing the Kamehameha if he uses the after-image, but I do an extra 5 damage during that cycle of getting him back into the corner. This gets Piccolo to exactly lethal damage with one fewer jumps in the end.

Level Difference Description
Goku's House 0 None
Oolong's Village 0 None
Wilderness +1 Extra Lag frame
Pilaf's Castle -18 Finished fight with a ki blast
Island of Training -14 The spears the push up from the ground are on a global timer. I get hit 2 less times from the better cycle for 6 frames a piece. Also a slight movement optimization in the evening time on the way back. I scale the platforms to do an extra dive kick for 1 frame advantage and 1 less lag frame.
Punching Rocks -11 Less lag
Battle Tutorial Part 1 -2 Less lag
Battle Tutorial Part 2 -20 Faster attack pattern from Krillin
Battle Tutorial Part 3 -4 Used Dash attack > sweep attack instead of Dash attack > punch > punch to do the initial guard break
Battle Tutorial Part 4 -4 Used sweep attack again
VS Giran -52 New strategy of using more ki blasts. I will attack as much as possible to build the energy gauge, and then I reduce the number of attacks so that I can land sooner to fire my ki blast
VS Nam -66 It's more efficient to fire the lvl 2 ki blast first
VS Juckie-Chun -79 The longer the fight the better the savings
Muscle Tower Part 1 -124 Reflected back one more grenade during the second fight 18 frames. 106 frames from better Lieutenant Metallic fight
Muscle Tower Part 2 -26 Improved attack pattern on a couple fights and less lag
Muscle Tower Part 3 -45 Reflected back a grenade for a double kill -42 frames. +17 frames of lag on the boss, but then -20 by finishing with a kamehameha
Underwater Cave Part 1 -112 1 better bat spawn. Utilized an off-stage spike way better by dealing the final blow myself instead of letting the stage obstacle do it. This drastically reduced the wait time until the next enemy spawn.
Underwater Cave Part 2 -316 Better mini boss strategy
Underwater Cave Part 3 -84 Didn't waste time destroying the two robots that fall from overhead and from finishing the boss fight with a lvl 3 kamehameha instead of a level 2 blast.
VS Taopaipai 1 +5 Extra lag frames
Land of Korin -66 Better pattern of Korrin appearing and disappearing
VS Taopaipai 2 -339 Because cat training
Red Ribbon Army Base (pt. 1) -18 Less lag and better rng on the last fight
Red Ribbon Army Base (pt. 2) -683 120 frames from more missile reflections during the level and on the boss, and 360 frames from the second fight skip
Baba's Palace Devil Man -1 Lag reduction
VS Grandpa Gohan -129 More ki blast ground combos
City Street -117 Manipulated more missiles to come out
VS Chiaotzu -232 His tiny size is no longer a problem with this new strategy
VS Krillin -176 Same with Krillin
VS Tien Shinhan -289 Long fight, lot of savings
Above City +5 Was stuck with slightly worse rng
Yajirobe's Prairie +6 More lag
Cave of Darkness pt. 1 -47 Used dash attack for every door so I can enter 1 frame sooner. In the room right before Yamcha I immediately re-enter the doorway I came through. Instead of going to the previous room, though, it sends me to the next door in the same room saving around 30 frames.
Cave of Darkness pt. 2 -24 I reflect an extra missile when I get the lvl 4 ki upgrade.
Chow Castle -162 Better control of enemy movement and general fight optimizations
VS King Piccolo -598 Utilized level 4 Kamahameha
Overall -3841 The end

Other Comments

This chapter has finally come to a close. There were still some things about this game that I didn't quite grasp, so maybe I'll spend a whole third year, lol no. I had a great time with this game and now it's time to move on. Thanks to everyone who supported me during this time.

Possible Improvements

So many possibilities for the VS fights. Any methods for not letting the opponent's guard gauge refill is well worth the time looking into.

Better sub-pixel optimization. There were always so many different things to keep track of that I often missed opportunities to improve sub-pixel positions.

Mapping out the entire RNG system and making a perfect run.

Suggested Screenshots (from left to right 15011, 73097, 107973, 112626, 113016)

ThunderAxe31: Judging.

ThunderAxe31: Setting to Delayed per author request.

ThunderAxe31: File replaced with a 180 frames improvement, and resuming.

Similar submissions (by title and categories where applicable):