Submission #2894: Mukki's GBA Sonic Advance in 10:46.52

System Game Boy Advance Emulator VBA-rr
Game Version USA Frame Count 38791
ROM Filename Sonic Advance (U) [!].gba Frame Rate 60
Branch Rerecord Count 52114
Unknown Authors Mukki
Game Sonic Advance
Submitted by Mukki on 10/29/2010 2:34:00 AM

Submission Comments
The Sonic series is one of my most favourite to TAS and I have long considered contributing something from it to TASvideos. A few months ago I decided to make a run of Sonic Advance that did not use the ultra-spindash glitch because I felt that the full potential of the game was not realised in the current run. However, as I learned more about the game I started to hypothesise (to myself) about tricks and routes that could improve the current run and when these ideas proved to be correct I ultimately decided to improve it. This run of Sonic Advance is a 33.13 second (in-game) improvement to the currently published run by nitsuja. I'd like to thank nitsuja for his fantastic run and for making the camhack emulator. I hope to get back to the less glitchy run at some point.
Neo Green Hill 10:12:850:12:670:00:18Optimised camera scrolling.
Neo Green Hill 20:30:050:29:150:00:90Better route avoided camera stopping.
Secret Base 10:26:370:19:030:07:34New route through top half of the level.
Secret Base 20:37:100:32:020:05:08New zip to skip most of level.
Casino Paradise 10:15:520:13:950:01:57Slightly new route in the first half.
Casino Paradise 20:38:520:34:250:04:27Completely different route.
Ice Mountain 10:12:320:10:430:01:89Glitched through wall to avoid spring.
Ice Mountain 20:44:620:42:370:02:25Slightly different route allowed better glitching into boss chamber.
Angel Island 10:14:720:13:580:01:14Better ultra-spindash into wall.
Angel Island 20:37:870:36:530:01:34Slightly different route in the first half.
Egg Rocket0:53:250:52:710:00:54Precision.
Cosmic Angel0:42:780:35:680:07:10Completely different route.
Important Note: This run was made using nitsuja's camhack emulator and the run does not make much sense without it. You can find it on Raiscan's site. It plays back very slowly if you are watching straight out of the emulator so, hopefully, perhaps one of our wonderful publishers could make an encode using this too?

In Depth

Tricks and Optimisation

Spindashing: By holding down + A Sonic can perform a spindash. This spindash can be 'revved' by pressing A multiple times. In this game you have anything from a 1 rev dash to an 11 rev dash (and sometimes a 12 rev). The 11 rev and 12 rev are glitched (to put things in perspective the Xvelocity given by dashes 1 through 10 is in the 3000s, but 11 and 12 gives 16000s). Let's refer to those as ultra-spindashes. The 12 rev is slightly faster than the 11 rev (discovering this is what inspired me to do this), but it is mostly useless because it takes an extra 2 frames to use by which time the 11 rev will have covered the required distance. If a glitched spindash is not desired a 2 rev dash + ground dashing is the fastest method.
Ground Dashing: I don't think that this was intended by the programmers. It is a method of jump dashing but on the ground. After a spindash one can press -> for a frame followed by A to cause Sonic to come out of his rolling animation and into his running one. These can be chained togther to build huge speed (see Neo Green Hill 1). This trick does not always work and one must alternate directional presses before dashing or hitting the ground in order for it to work. It usually takes 3-4 frames to 'manipulate'.
Jump Dashing: When one presses a direction twice in the air Sonic will dash in that direction. Sometimes this provides the extra speed required to glitch through a wall, or sometimes it stops the glitch occuring. It is also good for optimally grabbing platforms. I found an interesting glitch (used in CP1) where by dashing forwards in the air by pressing opposite directions at just the right time before Sonic hits a wall he will be zipped downwards.
Somersault: This run uses far fewer somersaults than its predecessor mainly because in many situations it is faster to come to a natural halt, or to deliberately clip a wall to bring Sonic's speed down to 0. It is used mostly to bring Sonic to a halt when he is moving at glitch speed or to bring him to a halt on a slope which is slower if he is moving quickly. Another way I found to avoid this is if Sonic hits the edge of a tile at high speed from an angle he stops instantly.
Passing through Walls: Despite what it looks like I cannot glitch through anything I want as there are certain rules. If you are entering a wall directly from a horizontal surface you will continue horizontally through the wall. If you enter from the air you will drop vertically through the wall until you hit a certain point from which you will begin to move horizontally. Where this point is depends on your positioning when you enter the wall. The tiles of different levels allow for different things. The green walls in Casino Paradise act like boxes which must be glitched into and then glitched out of. This is slow. The black pillar-like tiles in Angel Island behave in a similar way. When offscreen, enemies, springs, monitors etc. are ineffective and so Sonic sometimes needs to wait for these things in order to proceed. Certain walls can be passed through entirely by skidding before you hit them.
Graphic Layer Glitch: If Sonic is on a surface that connects with an overlying graphical layer and reaches ultra-speed he can get stuck on this layer. If other level objects are on the other layer Sonic will pass through them. This is the glitch used at the end of Egg Rocket. I was able to initiate this glitch in both AI 1 and 2 but couldn't reach the goal before falling through the floor.

Level Analysis

Neo Green Hill Zone 1: The trick to this level is to get offscreen as fast as possible to make the camera move as one needs it for the goal to load. I found that a 2 rev spindash + ground dashing achieved this faster than ultra-spindashing did. The rest of the level went well, although it doesn't really matter. I found a nice little glitch where I hit the bouncing pads at the very edge offscreen causing me to zip underneath. This meant that I didn't have to slow down to make the gap.
Neo Green Hill Zone 2: In the previous run Sonic had to double back on the platform with the shield to make it to the upper level. I found a way to achieve this by hitting the left side of the platform with the right speed. This meant that the camera didn't catch Sonic and so I only needed to worry about getting offscreen as fast as possible. I didn't use 2 rev + GD because I couldn't build up enough speed by the time I reached the loop. If you wonder why I take the upper route it is because the lower one hasn't loaded yet. I actually found a way to take this route and reached the boss screen in 4 seconds (!), but it required starting the level with a 12 rev rather than an 11 and so by the time the boss loaded I was 2 frames behind.
Secret Base Zone 1: I began by going down the zip line rather than glitching into the wall as it was slightly faster. I had to hit the zip line in a very specific way so that I could use a B roll just before leaving it. This provided an optimal ultra-spindash position. I varied my position on entering the wall so that I was ejected at a slightly different point. At this position Sonic would leave his rolling animation and enter his running animation as soon as he hit the platform. This is essential as the skidding glitch I used required Sonic to skid from a specific position.
Secret Base Zone 2: I took the lower route at the start of the level which I found to be faster. The glitch I used I firstly gave up as impossible, but then I later accidentally discovered it while going back to make some optimisations. I had to manipulate Sonic's position so he would start to zip at the right height; not too high or he is obstructed by the spring, not too low or he can't reach the boss screen. Just right.
Casino Paradise Zone 1: I found a slightly different route at the start that avoided having to bounce off of stuff. I skidded so that I could regain control of Sonic when he hit the wall and so I could move into the best spindash position quickly.
Casino Paradise Zone 2: I have a slightly slower start so that I can ultra-spindash across the top of the level. I have to delay slightly for the teleporter to load. I then use ultra-speed from the slope to pass into the boss chamber. I use the somersault to get out of the wall because otherwise he enters a weird walking animation that costs time.
Ice Mountain Zone 1: The first half of this level is the same, but I noticed that using the spring costs time so I set out to find a way to avoid it. This one was all about geometry; I had to use the slope to glitch into the sloped ramp tile and then from there I could glitch through the wall. This is another level where I had to slow down for the camera to catch me.
Ice Mountain Zone 2: I gain more height to avoid stopping for the loop. This put me in a position much higher than I needed to be. Thankfully there was a sloped gradient here and I was able to use it to glitch diagonally into the boss chamber.
Angel Island Zone 1: Not a huge amount has changed here. I began with an ultra-spindash and I was able to alter my position so that I did not get stuck in the ramp. This saved some time. I then saved more time by deliberately hitting the wall after the loop to allow myself to ultra-spindash as soon as I hit the ground.
Angel Island Zone 2: I saved a little time by finding a way to zip vertically thus avoiding the fans. I saved more time by getting stuck half-in-half-out of the wall allowing an ultra-spindash without having to fall into the sandslide. I did find a way to glitch straight through this area which was faster still, however the optimal route from there forced me to use the graphic layers glitch which rendered the level unbeatable.
Egg Rocket: This is almost entirely the same as nitsuja's due to timed objects and cutscene triggers. There is a delay at the start to allow the timed objects to move into place. I saved about 30 frames up until the fan + platform but lost it all as the platform was not in the right position. From there I saved some bankable time by getting to the ramps more optimally. I then found a faster way to initiate the ending glitch by barely grabbing the ledge after the previous zip, and then somersaulting onto the ramp allowing me to spindash as soon as it became solid.
Cosmic Angel: I allowed myself to barely grip the first platform so that I could immediately spindash downwards to glitch through the level. I then saved good time after the fans by using very very precise positioning to pass through the platform with the monitor and to hit the ramp in the right way to allow Sonic to maintain his running animation. I was able to carry this momentum to the loop. In a similar way I was able to keep Sonic in a running animation while ascending the next slope and I had enough speed to glitch through the cannon things. Strangely you can glitch through them but not under them.
X-Zone: I hated the final boss with a passion as it took me a while to figure out how to manipulate him. I eventually (after a couple of days) discovered that he behaves in certain ways depending on when and where Sonic skids.

DarkKobold: What a great submission to have as my first judging project. Looking forward to judging this!
Flygon: Added YouTube module.
DarkKobold: Wait, is this a Sonic game? I think I may have seen him once during the run! Accepting as an improvement to the published movie.
Mister Epic: An SD camhack encode has yet to be done, then I'll publish it.
Flygon: I'm whacking up an SD camhack encode as soon as possible.

Last Edited by Ilari on 11/7/2011 12:05 AM
Page History Latest diff