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/BossTimeTSC record
Neo Green Hill 10:12:85 [1]0:24:45
Neo Green Hill 20:30:050:45:55
Secret Base 10:26:370:39:98
Secret Base 20:37:101:12:05
Casino Paradise 10:15:520:36:82
Casino Paradise 20:38:520:53:42
Ice Mountain 10:12:320:47:63
Ice Mountain 20:44:621:04:03
Angel Island 10:14:721:11:67
Angel Island 20:37:871:06:93
Egg Rocket 10:53:25 [2]2:26:17
Cosmic Angel 20:42:781:14:53
X-Zone0:43:200: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


Joined: 7/28/2005
Posts: 339
Someone seed this.
Mitjitsu
He/Him
Banned User
Joined: 4/24/2006
Posts: 2997
I've played this game and completed it many times, but it was hard for me to picture where Sonic was most of the time. I'm surprised how slow zipping was. I can think of a few possible improvements but they wouldn't lower the ingame timer since the screen has to catch up with the goal sprite. I know how difficult it is when a character zips so fast that you can't see where he is, but a good job has certainly been done here. I'd much rather see the camera hack version. Egg Rocket 1 was the best stage I thought. Although its a yes its not a seal of approval.
Joined: 3/15/2005
Posts: 30
Location: Seattle, WA, USA
Any ongoing plans to release the cam-hack avi? Eager audiences await.
I ought not to tie the knot too taught.
Emulator Coder
Joined: 3/9/2004
Posts: 4588
Location: In his lab studying psychology to find new ways to torture TASers and forumers
Sastopher wrote:
Any ongoing plans to release the cam-hack avi? Eager audiences await.
As said on the previous page, if someone sends me what I need, I'll publish the cam hack too.
Warning: Opinions expressed by Nach or others in this post do not necessarily reflect the views, opinions, or position of Nach himself on the matter(s) being discussed therein.
Player (206)
Joined: 5/29/2004
Posts: 5712
Send Nach the chocolate cookies already!!!
put yourself in my rocketpack if that poochie is one outrageous dude
Player (37)
Joined: 9/9/2006
Posts: 388
I have just finished getting a "Sonic Cam Hack" recording. It is muted however so there is no audio. Could someone please provide me with a "How-To" on how to bind both IT and an original recording together to duel-display?
A whisper in the wind~~
Joined: 1/21/2006
Posts: 3
Screw the side by side. Just rip the audio from the non-cam hack, encode it into the cam hack, and post that. I really don't see the need to see the normal and cam-hack side by side, you're just going to be focusing on the cam-hack anyways.
Senior Moderator
Joined: 8/4/2005
Posts: 5777
Location: Away
And what's the point of ripping the audio from non-camhack version, since the audio tracks are 100% identical? BTW, could someone please encode the run? I take it no-one has interest in porting the camera hack for Linux, so could anyone on a Windows machine (Maza?) just encode it?
Warp wrote:
Edit: I think I understand now: It's my avatar, isn't it? It makes me look angry.
Former player
Joined: 9/1/2005
Posts: 803
moozooh wrote:
And what's the point of ripping the audio from non-camhack version, since the audio tracks are 100% identical?
nitsuja wrote:
OK, the camhack VBA (along with the changed source) is here. It's disabled by default. To enable it, go to Tools->Customize All Commands and you'll see a command called "SonicAdvance" in the list. Assign some key to it (I used Backspace) and then press it once after the movie has started playing to toggle the "sonic cam" on/off. You can record an AVI with it on, the only problem being that it will screw up the audio, so you'd have to combine the audio with a separate audio track that was recorded without the camhack enabled (it's not too big of an inconvenience, considering that the audio would need to be compressed anyway).
Senior Moderator
Joined: 8/4/2005
Posts: 5777
Location: Away
Oh, that I already forgot about, unsurprisingly.
Warp wrote:
Edit: I think I understand now: It's my avatar, isn't it? It makes me look angry.
Editor, Reviewer, Experienced player (980)
Joined: 4/17/2004
Posts: 3109
Location: Sweden
I agree with moozooh. The camhack version is way overdue, even though it could almost be considered the main version for this movie. The camhack cannot be viewed in VBA in full speed on almost any normal computer. Anyone up for it? Pretty please?
Emulator Coder, Skilled player (1311)
Joined: 12/21/2004
Posts: 2687
moozooh wrote:
I take it no-one has interest in porting the camera hack for Linux
That's mainly because Bisqwit already did that and posted it on page 3. I think Nach missed that post, but I PM'ed him about it recently so maybe he'll have time for this sometime soon.
Mitjitsu
He/Him
Banned User
Joined: 4/24/2006
Posts: 2997
I seriously doubt we'll ever see a cam hack of the full version, but did Nitsuja use it while making the movie, as anyone knows trying to optimize zipping glitches in any Sonic game is a nightmare never mind doing not being able to see Sonic for 90% of the game and unless you have a bot that brute forces every input then you'll never trully know if what you've done is optimal.
Former player
Joined: 9/1/2005
Posts: 803
AKA wrote:
I seriously doubt we'll ever see a cam hack of the full version, but did Nitsuja use it while making the movie, as anyone knows trying to optimize zipping glitches in any Sonic game is a nightmare never mind doing not being able to see Sonic for 90% of the game and unless you have a bot that brute forces every input then you'll never trully know if what you've done is optimal.
Obviously he did, otherwise the movie wouldn't have been as crazy as it was. I have an avi (for myself) of the camhack version, it's damnwell crazy I tell you, not to mention generally blindingly fast.
Emulator Coder, Skilled player (1311)
Joined: 12/21/2004
Posts: 2687
The only time I didn't use the camera hack was on the first act, which I already know is optimal because getting to the goal faster won't make the goal sprite load sooner. And I usually turned it off when Sonic was onscreen.
AKA wrote:
I seriously doubt we'll ever see a cam hack of the full version
At least one person has already captured it, and if that doesn't work out soon then I think Nach is able to encode it as well.
AKA wrote:
trying to optimize zipping glitches in any Sonic game is a nightmare
How do you mean? The ejection algorithm is simple and it usually doesn't put Sonic offscreen for very long. Of course it's easier when you can see what you're doing at all times, but it's not something that can't be tested methodically.
Mitjitsu
He/Him
Banned User
Joined: 4/24/2006
Posts: 2997
Could you elaborate on the ejection algortithm a little more, becuase what I've noticed is that if you hold left, sonic goes into his skidding animation at the speed he would normally skid at if he was at full speed, but the actaul speed that most people notice is when he leaves the wall, the only way to maxize the speed travelled is by hold left while he's stile in the walls, then letting go when he's outside and hold right and a full jump when he's touched the ground, of course there's usually a few more complications to it than that, I take it you're wanting to do Sonic 1 w/spindash, glitching in the marble zones would certainly be useful, if you can manage to glitch into the wall in Marble 1 then you can complete the stage within 18 seconds.
Emulator Coder, Skilled player (1311)
Joined: 12/21/2004
Posts: 2687
I would think jumping when you touch the ground would be bad in general, because being near the peak of a jump slows you down a lot compared to being on the ground without pressing any directions. And in Sonic games after Sonic 2, they fixed the problem where holding in the direction you want to go will slow you down. Finding the first frame to stop holding left is easy because if you let go too early then Sonic will still be in the wall. Maybe the hardest part to optimize is that the speed you leave the wall at can vary depending on the position (and probably subpixel position) before starting to zip, so even if you test all possible input while zipping you could still miss the optimal speed you could have gotten if you had entered the wall a little differently. Obviously a speed display or memory viewer makes it a lot easier to tell. In this particular run, there isn't a lot of zipping because spindashing is usually faster. Sometimes (such as in act 1-2) I stop to zip through a wall to purposely slow down, otherwise the game would forget to load the collision for the rest of the level and Sonic would die shortly thereafter.
AKA wrote:
Could you elaborate on the ejection algortithm a little more
There is a little more information about it here, but it's probably incomplete.
Post subject: Finished duel-display movie
Joined: 11/11/2006
Posts: 1235
Location: United Kingdom
First of all, first post to the forums for me, but I'm a long time viewer of TASVideos, so hi :) I have created a duel-display AVI of this SA run, with unhacked emulator on the left, hacked cam on the right, with a 4px white border separating them. I have encoded it two ways: XViD and X264, and it has audio from the unhacked emulator. Unfortunately, I have nowhere to upload it to (its about twice the size of the original movie, give or take a few MB). I'll keep looking, and if required I can upload it to my own webspace for an admin or someone to download. Oh yeah, and Nitsuja, this and all your other runs are absolutely awesome.
<adelikat> I am annoyed at my irc statements ending up in forums & sigs
Joined: 11/11/2006
Posts: 1235
Location: United Kingdom
Thanks for the links, I'll begin uploading to Badongo now :) Update: Uploaded, heres the link: http://www.badongo.com/vid/236235
<adelikat> I am annoyed at my irc statements ending up in forums & sigs
Emulator Coder
Joined: 3/9/2004
Posts: 4588
Location: In his lab studying psychology to find new ways to torture TASers and forumers
Raiscan: I guess that elliminated some effort for me :) I'll see about adding the appropriate messages to that AVI and publishing it.
Warning: Opinions expressed by Nach or others in this post do not necessarily reflect the views, opinions, or position of Nach himself on the matter(s) being discussed therein.
Emulator Coder
Joined: 3/9/2004
Posts: 4588
Location: In his lab studying psychology to find new ways to torture TASers and forumers
Okay, an AVI created by Raiscan and myself for showing normal with sonic cam side by side has been released. Note this AVI was not easy to make so show your appreciation by downloading it. Note my upload is slow, so it'll take a while till you get it, also I'm seeding 3 other runs I published today so please be patient. Raiscan also has this AVI, and he'll hopefully begin seeding it too when he wakes up.
Warning: Opinions expressed by Nach or others in this post do not necessarily reflect the views, opinions, or position of Nach himself on the matter(s) being discussed therein.