Introduction

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.

Movie objectives

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".

Team/moves analysis

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:

Common moves

  • 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.

Tails/Sonic

  • 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.

Sonic/Tails

  • 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.

Sonic/Knuckles

  • 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.

Knuckles/Amy

  • 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.

Amy/Sonic

  • 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.

Tails/Amy

  • 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.

Level notes

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 [EDIT: dead link removed]! 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:
StageCurrent timePrevious timeDifference (in frames)
Route 99 10:27.97 (T/S)0:28.72 (T/S)45
Route 99 20:37.32 (T/S)0:37.93 (T/S)37
Route 99 30:38.77 (T/S)0:39.15 (T/S)23
Route 99 Boss0:57.28 (T/S)0:57.28 (T/S)0
Sunset Hill 30:43.97 (S/T)0:44.07 (S/T)6
Sunset Hill 10:23.60 (T/S)0:23.75 (T/S)9
Sunset Hill 20:21.68 (T/S)0:22.63 (T/S)57
Sunset Hill Boss0:33.68 (T/S)0:34.15 (T/S)28
Ocean Base 30:38.08 (T/S)0:39.05 (T/S)58
Ocean Base 10:33.55 (S/T)0:33.70 (S/T)9
Ocean Base 20:53.75 (S/T)0:54.82 (S/T)64
Ocean Base Boss0:39.10 (S/K)0:39.10 (S/K)0
Toy Kingdom 30:54.47 (S/T)0:54.97 (S/T)30
Toy Kingdom 10:26.68 (T/S)0:27.07 (T/S)23
Toy Kingdom 20:30.97 (T/S)0:33.87 (T/S)174
Toy Kingdom Boss1:23.43 (T/S)1:23.45 (T/S)1
Twinkle Snow 10:33.13 (T/S)0:33.73 (T/S)36
Twinkle Snow 20:45.88 (T/S)0:47.63 (T/S)105
Twinkle Snow 30:43.67 (T/S)0:43.87 (T/S)12
Twinkle Snow Boss0:36.73 (T/S)0:36.73 (T/S)0
Cyber Track 10:30.70 (T/S)0:30.75 (T/S)3
Cyber Track 20:28.22 (T/S)0:28.95 (T/S)44
Cyber Track 31:10.87 (S/T)1:11.65 (S/T)47
Cyber Track Boss0:46.62 (K/A)0:46.62 (K/A)0
Chaos Angel 10:54.32 (K/A)0:59.13 (S/C)290
Chaos Angel 20:50.77 (A/S)0:55.12 (S/C)262
Chaos Angel 30:28.25 (T/A)0:28.25 (T/A)0
Chaos Angel Boss0:39.20 (T/S)0:39.20 (T/S)0
Altar Emerald0:40.25 (T/S)0:40.25 (T/S)0
Total19:52.9120:15.591363

Boss notes

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.

Altar Emerald

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).

Miscellaneous notes

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.

Conclusion

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.
feos: Pub.


TASVideoAgent
They/Them
Moderator
Joined: 8/3/2004
Posts: 15577
Location: 127.0.0.1
This topic is for the purpose of discussing #5036: Dashjump's GBA Sonic Advance 3 in 35:02.10
WST
She/Her
Active player (489)
Joined: 10/6/2011
Posts: 1697
Location: RU · ID · AM
Yes
S3&A [Amy amy%] improvement (with Evil_3D & kaan55) — currently in SPZ2 my TAS channel · If I ever come into your dream, I’ll be riding an eggship :)
Dashjump
He/Him
Experienced player (578)
Joined: 8/18/2012
Posts: 82
WST wrote:
Yes
Thanks for giving me a yes like two minutes after I made the submission :D Jokes aside thanks for your support, hope you'll enjoy the run!
Editor, Player (44)
Joined: 7/11/2010
Posts: 1029
This game was run in a recent GDQ, and I noted that they used some sort of IL game mode in order to switch teams faster and have access to all teams. (Presumably it would only be available after the game was completed.) This gets me wondering about which teams would be fastest under IL restrictions. Would it change the run significantly?
Dashjump
He/Him
Experienced player (578)
Joined: 8/18/2012
Posts: 82
ais523 wrote:
This game was run in a recent GDQ, and I noted that they used some sort of IL game mode in order to switch teams faster and have access to all teams. (Presumably it would only be available after the game was completed.) This gets me wondering about which teams would be fastest under IL restrictions. Would it change the run significantly?
Indeed, the runner (KirbyMastah) used the game's time attack mode to go through all the levels to encourage more team diversity. That would require all characters to be unlocked from the start. Though, since this run aims for fastest in-game time over overall frame count, almost all the levels are done with their optimal teams, except those where the optimal team can't be played on the first playthrough. If the TAS were to be started with all characters unlocked, it would probably be slower in terms of overall frame count (due to more character switching), and only slightly faster in combined level times.
Skilled player (1003)
Joined: 10/13/2014
Posts: 409
Location: nowhereatthemiddleofnoone
ok verry good job, it's yes for me
GAW sms... Totally destroyed
Site Admin, Skilled player (1254)
Joined: 4/17/2010
Posts: 11475
Location: Lake Char­gogg­a­gogg­man­chaugg­a­gogg­chau­bun­a­gung­a­maugg
Screenshot suggestions?
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.
Dashjump
He/Him
Experienced player (578)
Joined: 8/18/2012
Posts: 82
feos wrote:
Screenshot suggestions?
Frame 100107 perhaps? (again, thank you for processing another of my submissions!)
Site Admin, Skilled player (1254)
Joined: 4/17/2010
Posts: 11475
Location: Lake Char­gogg­a­gogg­man­chaugg­a­gogg­chau­bun­a­gung­a­maugg
Eh?
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.
Dashjump
He/Him
Experienced player (578)
Joined: 8/18/2012
Posts: 82
I'm pretty sure I was referring to a later frame with Knuckles using the hammer attack... (will edit this post after checking) Edit: Yeah, it's this shot
Site Admin, Skilled player (1254)
Joined: 4/17/2010
Posts: 11475
Location: Lake Char­gogg­a­gogg­man­chaugg­a­gogg­chau­bun­a­gung­a­maugg
Frame 100679 in my dump for whatever reason.
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.
Post subject: Movie published
TASVideoAgent
They/Them
Moderator
Joined: 8/3/2004
Posts: 15577
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. ---- [3100] GBA Sonic Advance 3 by Dashjump in 35:02.10
Noxxa
They/Them
Moderator, Expert player (4124)
Joined: 8/14/2009
Posts: 4090
Location: The Netherlands
feos wrote:
Frame 100679 in my dump for whatever reason.
VBA-rr's frames do not match real (video) frames. Sometimes what VBA-rr considers one frame is actually longer than that, and appears as multiple frames in an encode (or can be noticed to take longer than an usual frame in real time). For example, when a game does a lot of loading, VBA-rr considers it as one frame, even though it's actually longer than that. This is probably what's causing the difference between the frame numbers in your dump and the one in VBA-rr given by Dashjump.
http://www.youtube.com/Noxxa <dwangoAC> This is a TAS (...). Not suitable for all audiences. May cause undesirable side-effects. May contain emulator abuse. Emulator may be abusive. This product contains glitches known to the state of California to cause egg defects. <Masterjun> I'm just a guy arranging bits in a sequence which could potentially amuse other people looking at these bits <adelikat> In Oregon Trail, I sacrificed my own family to save time. In Star trek, I killed helpless comrades in escape pods to save time. Here, I kill my allies to save time. I think I need help.
Joined: 5/9/2005
Posts: 752
Finally have had the chance to fully watch this. Fantastic work Dashjump. Has been a joy to see you pop up running a game thought to be pretty well pushed somewhere near it limits, and just smash the previous times through, for the most part, optimisations alone. And again, doing so at such a rapid pace. I realise as you have said elsewhere that a re-do the 100% run is not on the cards at the moment (and who can blame you, you've done alot of Advance 3 for the last few months.) But I do hope at some point in the future you consider coming back to it, purely looking at the jumps in quality of the submissions demonstrating how much more you know of the game. But regardless, best of luck on your next project what ever it ends up being, and if it is TAS related at all I look forward to following it. Thanks again for the great runs!
Dashjump
He/Him
Experienced player (578)
Joined: 8/18/2012
Posts: 82
Paused wrote:
Finally have had the chance to fully watch this. Fantastic work Dashjump. Has been a joy to see you pop up running a game thought to be pretty well pushed somewhere near it limits, and just smash the previous times through, for the most part, optimisations alone. And again, doing so at such a rapid pace. I realise as you have said elsewhere that a re-do the 100% run is not on the cards at the moment (and who can blame you, you've done alot of Advance 3 for the last few months.) But I do hope at some point in the future you consider coming back to it, purely looking at the jumps in quality of the submissions demonstrating how much more you know of the game. But regardless, best of luck on your next project what ever it ends up being, and if it is TAS related at all I look forward to following it. Thanks again for the great runs!
Thanks for your feedback! No need to thank me really, as it has been equally rewarding for me to TAS a game I like and receive positive feedback. The 100% TAS was a "test-run" of sorts, to get myself used to TASing Sonic Advance 3. After doing two full any% runs subsequently, I know that my 100% can stand to be improved by a lot. The only thing holding me back from doing another run really, is the Sunset Hill boss. Twice now I have managed to pull off miraculous time cuts from each previous run, and doing it a third time would probably be insanely difficult. I won't say that I will never redo it again, but if nobody tries to improve it I'll probably do it myself in the coming months. As for future projects, I'll probably be doing a few ring attack TASes (those are surprisingly fun to do, contrary to what I expected). For anyone who would like to check out my complete playlist of Sonic Advance 3 TASes, it's right here.
Joined: 10/23/2009
Posts: 545
Location: Where?
Dashjump wrote:
As for future projects, I'll probably be doing a few ring attack TASes (those are surprisingly fun to do, contrary to what I expected). For anyone who would like to check out my complete playlist of Sonic Advance 3 TASes, it's right here.
I love Ring attacks TAS(Especially the TAS from TheYogWog.) I hope that there will be other Ring attacks TAS! I watched some of yours and I loved them. And again, good work with Sonic Advance 3.