This run came from the discovery that there were two faster teams on both Chaos Angel 1 and Chaos Angel 2, with both saving at least 4 seconds per level. Also after doing both the 100% TAS and the previous any% TAS, I have learned a lot more tricks and techniques to apply to a new run; resulting in an improvement of 1363 additional frames of in-game time and 1408 frames overall compared to my previous submission.
This TAS was done with VBA-rr v23.5 svn421, with the "Auto-hold" function on R (to always charge a tag action). I only have to press R once to "release" the R button and use my tag action. I also run a lua script (kindly provided by Anty-Lemon) which details X/Y coordinates, X/Y velocity and a timer which also runs in the overworld.
The goals, in order of highest to lowest priority, are as follows:
- Completion of the game without playing any level twice
- Death abuse if it saves in-game time (I couldn't find any opportunities to do so though)
- Fastest in-game time
- Fastest real time
With these goals, which closely follow those of nitsuja's run (except the death part), more team diversity is encouraged, rather than racing through the entire game with one or two teams simply to avoid resetting and switching characters. The character switching no doubt adds a considerable amount of real time to the movie length, but I felt that better-optimised individual levels would add to the movie's appeal much more than an invisible "real-time".
Although there are 20 different teams from 5 different characters to choose from, not all of them are used in this run for two reasons: 1) Not all characters are unlocked from the start; 2) not all teams are fast and/or mobile enough to fit into a run aiming for speed. In this section I'll be detailing the various teams' moves and capabilities, starting with common actions:
- Spin dash: Crouching (tapping down) and following up with tapping A will charge a spindash. Upon releasing, the character will roll at a speed of 2296 (2 revs) or 1720 (1 rev). This is an essential move for instant acceleration, and is done at the start of almost every single level and boss.
- Jump: Pressing A makes your character jump. Throughout this TAS you will notice that I jump as much as possible when not in boost mode, because you accelerate faster in the air, and also because the maximum jumping velocity is higher than the maximum running velocity when not in boost mode. As with many other Sonic games, jumping downhill gives you more speed, and jumping uphill can give a lot of height.
- Roll: Tapping down when running will make the character roll. Depending on the situation, this can either speed you up (usually on downhill slopes), slow you down (in most situations), or let you sneak under certain obstacles. You cannot control your speed or change direction when jumping out of a roll.
- Trick: Both Sonic and Tails can do mid-air tricks when paired with the other character. The same applies to both Cream and Amy, although their tricks are irrelevant in this run. You can do a trick after hitting a ramp, a spring, or any other object which acts like a spring (like the Toy Kingdom balloons). As a minor bug, using a tag action after hitting any of the aforementioned objects will still allow you to do a trick after executing the tag action.
- Hammer attack: Any team with Amy as a partner can press B on the ground to perform a hammer attack (When Amy is the lead character, she can use her hammer attack in the air, and does not lose any momentum). This brings the character to an immediate stop. Hammering a spring will multiply both the horizontal and vertical speed given by the spring by 1.5.
- Tag action: All tag actions take 90 frames (1.5 seconds) to charge from scratch. The yellow circle which forms in front of your lead character only appears after 30 frames (0.5 seconds). If any action resets the charging while the yellow circle is visible, the tag action will take 60 frames (1 second) to charge.
- Tail attack: Pressing B on the ground makes Tails do a tail swipe attack. This doesn't actually make you come to a complete stop like in Sonic Advance, but it decelerates you at the same rate as if you were holding the other direction. The actual effect of damaging enemies is pretty useless and never used in the run.
- Flying: Pressing A in a jump makes Tails fly at whatever speed he is travelling at the time you press the button, and he does not slow down unless you hold the other direction. When done close enough to the ground, Tails will immediately land on the surface - this is how I scale steps (like the ones near the end of Twinkle Snow 2) without slowing down. With the two abovementioned effects, this makes Tails/Sonic the most broken team in the game, as they are able to maintain ridiculous speeds for prolonged period of time (Twinkle Snow 3 is an excellent display of this). The bigger downside to this flight is that you gain altitude very slowly, unlike when you fly with Cream.
- Tricks: All four of Tails' tricks, unlike Sonic's, have an annoying animation time to wait for.
- Up + R: Tails gains pretty considerable height (about a normal jump height), useful in a few situations.
- Left/Right + R: Tails jumps sideways in a curved angle. A boost is usually used instead of the sidetrick.
- Down + R: Tails immediately drops downwards, and you can control the landing with the left and right buttons. This seems completely useless, but when done close enough to the ground the animation is skipped entirely and Tails comes to a complete stop. I do this twice; once in Toy Kingdom 2, and once in Twinkle Snow 1.
- Slide: Pressing B on the ground initiates a slow sliding animation which damages enemies, slowing Sonic down until his velocity reaches 0. Completely useless for the most part as holding the other direction will slow you down much faster than the slide can. However, if you hit a booster or fall off a platform mid-slide, the sliding animation is cancelled when you hit said object. This trick was useful once in Ocean Base 2.
- Tricks: Aside from the downward trick, the other three of Sonic's tricks don't take up any extra frames to perform.
- Up + R: Same as Tails' upward trick, with less altitude and no amination time to wait for.
- Left/Right + R: Sonic does a side spin, preserving whatever horizontal velocity he is travelling at that point.
- Down + R: A slow downward bound attack. Similarly to Tails' downward trick, this can be used close enough to the ground to completely skip the animation. This trick was used once in Toy Kingdom 3.
- Slide: Pressing B on the ground activates a slide similar to the one Sonic does when Tails is his partner. Except this slide is considered a power attack (ie can break certain walls which non-power attacks can't), covers a lot more distance and has a much cooler animation.
- Upward flame burst: Pressing Up + B mid-jump activates a flame burst attack, shooting Sonic upwards and damaging enemies (or in this run, the Ocean Base boss). Not very useful in any of the levels, but since this attack doesn't require any charging (unlike a tag action), Sonic/Knuckles is put to good use in the Ocean Base boss.
- Downward bound: Pressing Down + B mid-jump activates this attack, which is identical to the down-trick listed in the Sonic/Tails paragraph above.
- Insta-shield: Pressing B mid-jump gives Sonic the insta-shield from Sonic 3 (Genesis) and Sonic Advance 2 (GBA). Doing this after a spindash jump is considered breaking out of a roll, which both increases Sonic's velocity to maximum jumping speed, and lets him regain control.
- Glide: Pressing A mid-flight activates the classic Knuckles glide.
- Spindashing on walls: Knuckles can only spindash on walls when paired with Amy. Spindash + jumping off a wall, then followed by the B attack (spin-jump) allows this team to do a lot of ninja-like wall movements.
- Hammer: Pressing B on the ground activates this attack, which is described above under "common moves".
- Spin-jump: Knuckles doesn't spin-jump by default when pressing A. Pressing B mid-jump will rectify this, and unlike a spindash-jump with a team like Sonic/Tails, this move is considered as breaking out of a roll, therefore letting you control directions and accelerating you faster.
- Downward spin: Pressing Down + B mid-jump activates this attack. Would be completely useless except if you do it close enough to the ground, Knuckles immediately comes to a stop. Very useful for charging a spindash on the spot without braking by holding the other direction.
- Hammer: Described above under "common moves", except Amy can do this mid-jump and save the animation time.
- Air dash: Pressing A mid-jump activates a slow air dash. I only use this to clip edges without wasting too much time.
- Hammer spin: Pressing Down + B mid-jump activates an attack which is similar to the downward spin with Knuckles/Amy. Also stops you immediately if done close enough to the ground.
- Hammer: Same as above, except Tails can use his hammer mid-flight which costs only 1 frame to perform.
- Fly: Tails gains a lot more flying altitude when paired with Amy, except he can only fly for 3 seconds as opposed to the normal 5 with Sonic.
- Spin-jump: Identical to Knuckles/Amy.
- Tail attack: Identical to Tails/Sonic.
As with the previous submission, I have annotated the Sonic Center maps with my commentary. I highly recommend you to check out the maps, as they show the exact route and can describe the run better than plain-text commentary. However, not all the levels' commentaries have details on the exact number of frames saved for each trick I used. The maps have been uploaded to 4shared here! You can also click the names of the individual acts in the table below to access the annotated map of that level.
The in-game times of the levels, with a comparison to my previous run's timings, are as follows:
|Stage||Current time||Previous time||Difference (in frames)|
|Route 99 1||0:27.97 (T/S)||0:28.72 (T/S)||45|
|Route 99 2||0:37.32 (T/S)||0:37.93 (T/S)||37|
|Route 99 3||0:38.77 (T/S)||0:39.15 (T/S)||23|
|Route 99 Boss||0:57.28 (T/S)||0:57.28 (T/S)||0|
|Sunset Hill 3||0:43.97 (S/T)||0:44.07 (S/T)||6|
|Sunset Hill 1||0:23.60 (T/S)||0:23.75 (T/S)||9|
|Sunset Hill 2||0:21.68 (T/S)||0:22.63 (T/S)||57|
|Sunset Hill Boss||0:33.68 (T/S)||0:34.15 (T/S)||28|
|Ocean Base 3||0:38.08 (T/S)||0:39.05 (T/S)||58|
|Ocean Base 1||0:33.55 (S/T)||0:33.70 (S/T)||9|
|Ocean Base 2||0:53.75 (S/T)||0:54.82 (S/T)||64|
|Ocean Base Boss||0:39.10 (S/K)||0:39.10 (S/K)||0|
|Toy Kingdom 3||0:54.47 (S/T)||0:54.97 (S/T)||30|
|Toy Kingdom 1||0:26.68 (T/S)||0:27.07 (T/S)||23|
|Toy Kingdom 2||0:30.97 (T/S)||0:33.87 (T/S)||174|
|Toy Kingdom Boss||1:23.43 (T/S)||1:23.45 (T/S)||1|
|Twinkle Snow 1||0:33.13 (T/S)||0:33.73 (T/S)||36|
|Twinkle Snow 2||0:45.88 (T/S)||0:47.63 (T/S)||105|
|Twinkle Snow 3||0:43.67 (T/S)||0:43.87 (T/S)||12|
|Twinkle Snow Boss||0:36.73 (T/S)||0:36.73 (T/S)||0|
|Cyber Track 1||0:30.70 (T/S)||0:30.75 (T/S)||3|
|Cyber Track 2||0:28.22 (T/S)||0:28.95 (T/S)||44|
|Cyber Track 3||1:10.87 (S/T)||1:11.65 (S/T)||47|
|Cyber Track Boss||0:46.62 (K/A)||0:46.62 (K/A)||0|
|Chaos Angel 1||0:54.32 (K/A)||0:59.13 (S/C)||290|
|Chaos Angel 2||0:50.77 (A/S)||0:55.12 (S/C)||262|
|Chaos Angel 3||0:28.25 (T/A)||0:28.25 (T/A)||0|
|Chaos Angel Boss||0:39.20 (T/S)||0:39.20 (T/S)||0|
|Altar Emerald||0:40.25 (T/S)||0:40.25 (T/S)||0|
Here are the boss notes, which are not on the maps:
Route 99 Boss
Bosses in Sonic Advance 3 are ridiculously difficult to optimise. I have to end the fight with Eggman as far right on my screen as possible, to reduce the delay of him slowly flying away from the map, while also ensuring that Tails is as close as possible to the right. Hitting the boss on the very first possible frame each time proved to be a huge challenge with Tails/Sonic as well due to their poor attacking range.
Sunset Hill Boss
I used the exact same input from the previous run, but due to the stupid RNG of this boss I regained control 28 frames earlier to finish with a much faster time.
Ocean Base Boss
Sonic/Knuckles is the only team I have at this point which can damage the boss shorter than its invulnerability period, hence I switch to it for this boss. I luck manipulated the boss to be on the far right of the screen for the last hit, and deal the final hit in a way to take damage on the same frame and knock myself back, hence regaining control much earlier due to the boss leaving the screen faster.
Toy Kingdom Boss
You can refer to nitsuja's commentary for more information on this boss. I fooled around quite a bit here as nitsuja did, and tried to always kill the 3 soldier enemies that kept popping out. I saved 1 frame here from a better finishing jump.
Twinkle Snow Boss
What happens is basically, at the beginning of the fight I wait for him to get into a position where I can do 8 consecutive hits without giving him a chance to attack. I then land just enough to the left such that the screen is scrolled to the left as much as possible, to reduce the delay when the boss is leaving.
Cyber Track Boss
K/A have the fastest exit from this map due to the their walljumping ability, hence my reason for choosing them. I reused the exact input from the previous run as I'm pretty confident that 46.62 cannot be beaten. This is due to the boss always shooting out balls at the exact same positions and intervals each time.
Chaos Angel Boss
Same input as the previous any% submission, as I'm sure it can't be improved; all hits are done on the first possible frame, and the boss is as far right as possible for the final hit.
Nitsuja switched to Tails/Amy here, but I realised that Tails/Sonic can defeat this boss 1 frame faster by jumping into the final boss arena with a boost-jump. This saved a reset and compensated for the additional reset to Tails/Amy at the start of Chaos Angel 3. A bit of luck manipulation was needed after the 3rd hit, to ensure that both his hands drop down and come back up at the earliest possible moment (this is because when his hands come back up, he starts shielding his face, adding 1 second or so to his invulnerability).
The "timer" address (0300094E), which shows the level timer in frames, also runs in the overworld acting like a "hidden timer". This helped me a lot in optimising the overworld navigations.
It is worth noting that due to the unavailability of some characters early on in the game, not all the levels in this TAS were done with their optimal teams; I simply use the team I have at that point which can beat the level as fast as possible.
I'm glad to have made this improvement, and I hope this will be my final revision.
Once again, my heartfelt thanks to nitsuja for creating such an incredible TAS of the game. I probably wouldn't even have gotten past the first level if it wasn't for him revealing so many tricks and techniques on this game.
Also a shoutout to Anty-Lemon for helping me write a lua script for this game. It was definitely indispensable in optimisation.
Thanks also to KirbyMastah, JAsh15 and Paused for giving me many ideas through my Sonic Advance 3 TASing journey.
Thank you for reading my commentary, and I hope you enjoyed the run!
Nach: Minor but significant improvement. Accepting as improvement to existing run.