Sonic Advance is the first in the GBA series of Sonic games.
Apparently it received a lot of criticism for being too slow.
I didn't think it was too slow, but what do I know?
Emulator used: VBA re-recording v19.2. You might want to set the
frame skip to 0 (choose "Options->Speed->Frame Skip->skip 0"),
otherwise the scrolling will be choppier than it should be.
This run beats Sonic Advance with Sonic+Tails, aiming for the
fastest in-game time on each level, then fastest real-time.
(No emeralds.) Sonic+Tails isn't a normal character option, they
are selected by pressing Up,Down,L,R on the other characters, so
technically this uses a cheat code. It makes it more interesting
to have a second character, I think, with manipulating a second
character on boss fights being good for a TAS. Besides boss fights,
Tails has no effect at all (he just gets left in the dust
immediately).
This was quite difficult to make because so many precise actions
have to be made while the character is far offscreen in order to
beat the levels as fast as possible. I worked around that by
watching Sonic's position in VBA's memory viewer, and eventually by
[/Forum/Topics/3938&start=13|hacking a "sonic cam" option into VBA]
to keep Sonic always onscreen (this was pretty complicated to do
without desync because the camera position drastically affects the
gameplay). It's possible to make an AVI with this of what it looks
like when you can actually see Sonic all the time, for example,
this AVI of the first act
(but I didn't encode it very well...)
.
There are a lot of opportunities for glitching this game in a TAS.
Most of the glitches involve doing an ultra spin-dash
(hold down and press the A button 11 times as fast as possible)
and are mainly good for horizontal movement, making vertical stages
relatively slower. You might be surprised at how well Egg Rocket 1
turned out, though (if you've ever played it before, you'll know
how ridiculous a sub-1-minute time on it is), and I was definitely
surprised by how that level ended...
Depending on the path, it's possible to skip the loading of the
collision boundaries for the rest of the level. Usually that's bad
because it means you fall through the level to the bottom and die,
but I manage to take advantage of this in Egg Rocket 1. That glitch
required extremely precise positioning, by the way (it needed to be
literally subpixel-precise, and was very unlikely that I found it).
Interactive objects in the level, such as springboards, enemies,
item boxes, or the goal, don't have any effect offscreen. Thus,
I can't bounce off of springs, be harmed by enemies, get items,
or complete the level until I allow the camera to catch up. Loops
and other places where Sonic is supposed to pass behind part of
the level also don't work offscreen (they count as walls then,
completely halting Sonic although they can be glitched through
like other walls). When an interactive object is onscreen, it makes
it impossible to glitch through it into a wall (the game teleports
Sonic back to where he started a little while after going through).
Somewhat surprisingly, rings can be collected offscreen like normal.
In Angel Island 1 and (more noticeably) Cosmic Angel 2, I'm able to
move up or down a small amount by spin dashing or attacking while
inside a wall. Normally this doesn't work, but it worked there
because I had entered the wall directly from a sloped surface (which
is rarely possible).
Different wall tiles have different properties for glitching. The
Angel Island ones were especially bad for having lots of the tiles
that cause you to get stuck. The hardest levels to do were:
Egg Rocket 1, Casino Paradise 2, Cosmic Angel 2, Angel Island 1.
Besides exploiting programming errors in the game, this run also
manipulates randomness on most of the bosses. The final boss in
particular was a pain to manipulate.
Here are the in-game times achieved:
Level/Boss | Time | TSC record |
---|---|---|
Neo Green Hill 1 | 0:12:85 [1] | 0:24:45 |
Neo Green Hill 2 | 0:30:05 | 0:45:55 |
Secret Base 1 | 0:26:37 | 0:39:98 |
Secret Base 2 | 0:37:10 | 1:12:05 |
Casino Paradise 1 | 0:15:52 | 0:36:82 |
Casino Paradise 2 | 0:38:52 | 0:53:42 |
Ice Mountain 1 | 0:12:32 | 0:47:63 |
Ice Mountain 2 | 0:44:62 | 1:04:03 |
Angel Island 1 | 0:14:72 | 1:11:67 |
Angel Island 2 | 0:37:87 | 1:06:93 |
Egg Rocket 1 | 0:53:25 [2] | 2:26:17 |
Cosmic Angel 2 | 0:42:78 | 1:14:53 |
X-Zone | 0:43:20 | 0:49:78 |
Total in-game time: 6:49:17
The TSC record times are going by different rules (fastest time
using any individual character), should be current as of this
submission, and are only listed to give a better sense of how
long these levels are "supposed" to take.
[1]: I cross the goal of Neo Green Hill 1 in 9.57 seconds, but get
a level time of 0:12:85 because I have to wait for the camera to
catch up for the goal sprite to load. Since I outran the camera at
the earliest possible moment, and stayed offscreen until the level
ended, I believe 0:12:85 is the fastest time possible on that level.
Note that time bonus on this and several other levels actually takes
longer to count down than the entire level took to complete (too bad
the countdown is unskippable).
[2]: The game doesn't display this time because it replaces the timer
with a 5-minute countdown at the first rocket transition. To see that
the time was 0:53:25, I hex-edited the completed level into the
"time attack" mode of the game on that level. I did find a way to
skip the first transition and beat the level before the rocket even
takes off, but it was slower overall.
adelikat: excellent run, excellent response, accepting