Sonic blast was released in 1996 for the Game Gear and Master System. It features pre-rendered graphics and Sonic and Knuckles as playable characters.
This TAS beats the game as Sonic and is a 961 frame improvement over the published run.
Summary of Improvements
Timing Differences
It’s important to note that the previous TAS aimed for game time, whereas this TAS aims for real time minus time bonus. I chose this because game time is less meaningful in this game, given you don’t see it on screen anywhere while playing. Game time also behaves strangely, for example stopping the timer not once you hit the signpost, but instead once the signpost is on screen.
The only practical difference when optimising for real time is that I jump high over the signpost in this run. Jumping over it causes the screen to scroll to it quickly, rather than slowly. If you approach the signpost on the ground the screen does a slow scroll to it, costing you a lot of time. This time is only a factor in real time since the in game time stops just as the screen starts doing the slow scroll, making it quicker in real time but not game time to do the jump to the sign from above.
I also try not to get rings in this run, since getting sings causes a countdown on the bonus screen which would be faster to avoid.
Overview
I held off doing this TAS for a long time because I knew the game was very optimised and I respect the work that Challenger has done on it. After deciding to pick it up, it confirmed this thought as Challenger did a fantastic job optimising this game. While I did save some time on movement in some stages, the bulk of the time save comes from new routes in the water and red volcano levels.
Table Summary of Timesaves
Here’s a table summary. Usually if I lose time on the score screen, that means I either got more rings, leading to more score countdown time, or it means I got a faster time through the level resulting in a bigger time bonus. For that reason I’ve broken each level into the level itself plus its score screen. Positive indicates any time saved and negative indicates time lost to the published TAS.
Level | Real Time saved (frames) | Game time saved (ss:ff) |
---|
1-1 | 50 | 0:32 |
Score | 4 | |
1-2 | 78 | 0:59 |
Score | 0 | |
1-3 | 25 | 0:25 |
Score | -1 | |
2-1 | 4 | 0:07 |
Score | -4 | |
2-2 | 10 | 0:04 |
Score | 9 |
2-3 | 7 | 0:07 |
Score | -2 | |
3-1 | 11 | -0:07 |
Score | -4 | |
3-2 | 100 | 1:30 |
Score | -3 | |
3-3 | 20 | 0:20 |
Score | 10 | |
4-1 | 454 | 7:46 |
Score | 3 | |
4-2 | 179 | 3:07 |
Score | -9 | |
4-3 | 3 | 0:03 |
Score | 0 | |
5-1 | 0 | -0:09 |
Score | 0 | |
5-2 | 0 | 0:09 |
Score | -14 |
5-3 Into boss | 1 | 0:01 |
Boss Fight to last input | 2 | |
RAM addresses
Address | Info |
---|
0x1510 - 0x1512 | X Pos |
0x1513 - 0x1515 | Y Pos |
0x1516 - 0x1517 | X Vel |
0x1518 - 0x1519 | Y Vel |
0x153A – 0x153B | Current Speed Cap |
0x1262-0x1264 | Time |
0x125E | Rings |
0x1754, 0x1774, 0x17B4, 0x1734, 12C1 | Boss Fight Stuff |
0x12C5 | Spike wall timer |
Character Choice
This route is any% with sonic. I’m not sure yet whether Knuckles would be faster, but it is generally treated as a different category in speed runs due to the following character differences:
- Sonic has a faster spindash (0x400) compared to Knuckles (0x380)
- Sonic has a double jump button whereas knuckles gets a glide
These differences make sonic faster in platforming. However, Knuckles gains an advantage in boss fights due to glide being used to recover from knockback, saving some boss cycles.
Version Differences
I opted for Game Gear over Master System, as the current TAS and RTA runs focus on the GG version. I did a small test of the Master System version and it was slower. I suspect this is related to the extra lag around rendering more of the level due to the bigger resolution. Interestingly, this clip is possible on the Master System version, but not Game Gear:
https://youtu.be/SMHYMkOlyfs
Tricks and Techniques
Speed Management
The absolute speed cap is 0x500 and this can be reached usually by rolling down a hill. To get near this cap quickly, you can do a spindash as sonic, which puts you at 0x400. As soon as you spindash you begin losing speed, but this can be avoided by jumping. If you hold right while jumping you hover around the current speedcap. This current speedcap changes based on the speed you were going when you jumped. If you jump with a speed of 0x500 then the speedcap for that jump will be 0x500. Even if you slow down below that within the jump.
You can retain your speed cap across multiple jumps by holding down to roll when you land, then immediately jumping. For that reason, you pretty much hold down and right always through most levels (unless going left).
Every time you jump off the ground when holding down and right, you can increase your speed cap by a maximum of 0x00E above the previous value. This means you can do a spindash to get to 0x400 speed, then use many jumps to reach the actual maximum of 0x500 eventually. To always get the speed increase of 0x00E, you have to time out your jump spacing accurately. Sometimes you have to delay the next jump to get the full speed increase.
Of course, if there is a hill, it’s much faster to roll down this to gain speed. When you leave the holl you can briefly have a speed cap of 0x508, but this will wear off once you land. For that reason, any full speed jumps off hills should be held out for as long as possible, to keep that speed boost for longer. However if you have not yet reached the speed cap of 0x500, you should hold out your jumps for as short as possible, so that you can get more jumps in to increase your speedcap.
Turning around is painful in this game due to the slow deceleration. For that reason, I will often bonk walls to completely lose speed, then turn around from there. If I don’t have a wall available then the fastest way to decelerate is to be walking on ground and not holding any directions. This is counterintuitive, since normally holding the other direction would slow you down quicker.
Clipping
Not sure on the exact speed you need for this, but it’s somewhere between 0x400 and 0x500. You can clip on sloped ground. When you clip, you fall into the floor by one tile. Most of the time, the ground is solid, so you briefly clip in but can’t do anything. However, on some thin sloped platforms like in Green Hill 1, you can clip entirely through and fall through it. I couldn’t find any useful clips for the TAS as having such a thin platform is very rare. If there was going to be an application, it would likely be in Red Volcano 2 to skip the spin dash elevators.
Sign RNG
You can get a few different things on the end of level signposts. Most have a very long animation, making them not worth it. The only good ones are rings and robotnik. Rings and Robotnik take the same time to fade out, but rings gives you 10 rings, meaning you’ll take longer on the score screen.
The signpost seems to be based on what frame it landed on, so it can be manipulated by slowing down before hitting the sign, or even by pausing as the sign flies up in the air.
I optimise for real time on these signs. Often that means passing up a ring and waiting for a robotnik, but it depends what is quicker.
Individual Level Summary
1-1
This level starts with a boost then immediately gains speed down a slope. If I kept going I would hit the loop, so I double jump on a tree to get over. I briefly clip into the loop, allowing for an extra jump and hence extra speed gain. This is a pretty laggy level, so I strategically avoid this by keeping high up on the screen.
1-2
The hard part of this level is falling down through the tunnels with the circle loop corner on top. In the second one, I make sure to start my jump with a high speed cap since I need to keep it high when I land after. This means I could have got through that tunnel quicker but then I would have lost time later.
Taking the top route at the end of the level is faster since you avoid the water. The water doesn’t ruin your actual speed, but instead it essentially halves the frame rate of the game. You’ll move at full speed one frame, then 0 speed the next and so on.
1-3
The boss spawns in quicker if you jump. Knockback from the boss is unavoidable with sonic and makes the fight pretty slow.
2-1
After dropping through the big vertical tunnel, I need to hit the ground before the screen unlocks. If this wasn’t the case then I could preserve speed into here, but since I lose it anyway I just spindash as right as possible.
2-2
This level has slippery sand that speeds you up over the normal speed cap. Your speed is 0x500 but it pushes you forward beyond your actual speed. If I go too fast here I bonk the right edge of the screen, so I have to slow down a bit.
The circle bits follow a set path, so I can’t speed these up any more.
2-3
Since the priority here is moving downwards, I have some janky acceleration to optimise moving down.
The boss here takes a lot of hits, but you can usually get in a few per cycle.
3-1
There’s a few bits in this level with downwards slopes, so I make sure to catch these whenever possible. I get a huge jump off the first slope, including an enemy bounce which allows me to keep full speed off the slope for ages.
3-2
This is the first major difference over the published TAS. I do a clip + double jump into the first loop to get onto the top path. This saves me having to go through the second loop, saving over a second. I’m not sure why this wasn’t done in the last TAS, but I suspect it was thought that either the jump up was impossible, or getting through the steam without damage was impossible. It was difficult to get both of these things working.
I looked for a long time for a clip to skip the climbing sections, but had no luck. This is one of the most tightly optimised sections in the run due to the intricate jump heights and speed management to spin dash as soon as possible.
3-3
Very tight platforming up to the boss. I can get one ring without slowing down, but to get the second ring I have to sacrifice a couple of frames. I need two rings for the boss since you have to take damage on him and if you only have one ring then it flies into a spot where you can’t re-grab it.
4-1
The level which saves the most time over the published TAS. This is mostly thanks to a skip for the water current as I just enter the water. Usually you get sucked to the left then have to loop around to get into the desired pipe, but if you hold right and go into the wrong pipe a tiny bit, you can avoid this current and skip a huge chunk of this level.
After exiting the pipe, it saves heaps of time to get a jump out of it. The published TAS does this jump too.
4-2
This level has another reroute that saves a bunch of time. I double jump up into a pipe which zips me down to the bottom quickly. Usually you get sucked straight back into this pipe, but that is avoidable with a tightly timed jump out of the pipe. I suspect this sucking back in is why it wasn’t in the published TAS.
Apart from this, the rest of the level has a few more pipe jumps and platforming to optimise.
4-3
This level steps up the falling platform objects. You need to break two of them to have a big enough gap to get through, so optimising these involves hitting both of them as fast as possible, while still having a low enough speed to slow down and fall through.
Leading into the boss, you can double jump over the current to get into the arena quicker, but this messes with the camera and makes the boss spawn in later. The boss is underwater, so you run out of air gradually, but this isn’t an issue since I kill the boss before drowning.
5-1
This level is quite non-linear, but there’s only one proper path to get through. The level has sections where you’re chased by a wall of spikes and these are really difficult to optimise. The screen is locked until the spikes chase you, but they wont trigger unless you’re all the way down on the ground and until the camera x-position is in a particular spot. Once they trigger they count down a timer of roughly 40 frames before unlocking the screen.
5-2
Much of the same as 5-1 but a bit longer. I took the bottom path in the first room which was a bit faster. It was also fun to show off doing many quick jumps under the spikes to very quickly gain speed.
This level has a lot of yellow electric platforms which slow you down. These are avoided when possible.
5-3
The boss here moves left and right and you have to bounce off a laser to hit him based on whatever side he is on. The main strat here is ending inputs early, since if the last few shots are all on the same side you can keep hitting him without moving the bouncy platform at all.
The shot RNG is based on what frame the game polls for him to move. On some frames he goes right and on others he goes left. There’s also the option of a fake out shot which loses time.
The best chain I found was 3 shots in a row on the same side and in a lot of testing I couldn’t get 4. For that reason I end the fight by doing a shot on the right then 3 shots on the left. It means I can end inputs as soon as I spindash to move the platform to the left. I could delay entering the fight or use pauses to manipulate this. I opted to use pauses early on in the fight to avoid a fake out which doubled up to manipulate the last 3 hits to all be on the left.
Thanks
A special thanks to Challenger who made the excellent original TAS of this game. There’s a lot of subtle stuff I might have missed if not for this TAS and Challenger has been super supportive and excited around this submission.
feos: Claiming for judging.
feos: I made my own comparison table, where I counted frames from the fade in to sign icon appearance (and to fade out on bosses).
Challenger | | | The8bitbeast | | | |
---|
start | end | duration | start | end | duration | diff |
---|
1103 | 1996 | 893 | 1103 | 1945 | 842 | -51 |
---|
2822 | 4397 | 1575 | 2768 | 4266 | 1498 | -77 |
---|
5229 | 6611 | 1382 | 5097 | 6453 | 1356 | -26 |
---|
7381 | 8208 | 827 | 7225 | 8048 | 823 | -4 |
---|
9039 | 10782 | 1743 | 8883 | 10617 | 1734 | -9 |
---|
11614 | 13535 | 1921 | 11439 | 13353 | 1914 | -7 |
---|
14313 | 15156 | 843 | 14133 | 14966 | 833 | -10 |
---|
15988 | 18191 | 2203 | 15801 | 17903 | 2102 | -101 |
---|
18999 | 20851 | 1852 | 18715 | 20549 | 1834 | -18 |
---|
21626 | 23788 | 2162 | 21320 | 23018 | 1698 | -464 |
---|
24611 | 28497 | 3886 | 23838 | 27547 | 3709 | -177 |
---|
29299 | 31218 | 1919 | 28357 | 30274 | 1917 | -2 |
---|
31998 | 33453 | 1455 | 31054 | 32510 | 1456 | 1 |
---|
34280 | 37601 | 3321 | 33336 | 36657 | 3321 | 0 |
---|
38432 | 42360 | 3928 | 37474 | 41400 | 3926 | -2 |
---|
| | 29910 | | | 28963 | -947 |
---|