Sonic The Hedgehog TAS by JXQ (v2)
This run satisfies the following criteria:
- Aims for fastest time
- Takes damage to save time
- Abuses programming errors
- Ignores delays caused by bonus effects
- Emulator used: Gens 9Z
- Suggested Screenshot:
Armed with the ability to watch Sonic's speed (and other values), I set to improve my previous run. Sonic has the paradox of accelerating faster in the air, but losing speed during his ascent. Having direct access to this value made things much simpler to optimize, and I'm surprised at how much time I was able to squeeze out of this run.
I worked on this run and my Knuckles run concurrently. The games were similar enough that doing them together helped keeped things fresh in my mind, yet different enough that it didn't get too repetitive.
I suggest watching this run first before the Knuckles run, because this run shows how the game was meant to be played before watching Knuckles break that mold.
|Level||Time||Frames Improved over v1|
|Green Hill 1||0:24||0|
|Green Hill 2||0:17||19|
|Green Hill 3||0:31||11|
|Spring Yard 1||0:22||17|
|Spring Yard 2||0:28||12|
|Spring Yard 3||0:58*||27|
|Star Light 1||0:21*||24|
|Star Light 2||0:16*||64|
|Star Light 3||0:43*||62|
|Scrap Brain 1||0:32||38|
|Scrap Brain 2||0:41**||133|
|Scrap Brain 3||0:18||20|
Bolded times have been improved from the previous run. A star is an improvement of one second; two stars is an improvement of two.
Altogether, 768 frames were gained in the levels. However, due to extra bonus countdowns and retarded baby seals, 122 of those frames were lost. Thus, the overall improvement is 646 frames.
If Sonic is running or jumping and has velocity over 1536, his velocity will be capped at that speed if forward is pressed. Slopes give Sonic velocity beyond his "maximum" of 1536 when jumping at a decline. By seeing this in the memory viewer, I refrained from holding forward until the speed returned to it's normal maximum.
Sonic accelerates faster in the air than on the ground, but every time his jump peaks, his speed lowers temporarily. (This can be avoided by running into a ceiling during the jump) Thus it's necessary to determine the best way to accelerate to maximum speed based on the environment and current speed.
When rolling, Sonic has a speed cap of 4096 (approximately 2.5 * max running speed). If Sonic is forced into a running animation, he can run faster than this, though he will be decelerating toward his maximum running speed (since -> cannot be pressed). This technique gained a bit of time during very fast segments.
Points of Interest:
- Green Hill 2 - New strategy to eject from the wall after bouncing off the bee just before the speed shoes. Credit to nfq.
- Marble 1 - The two main improvements here come from using an enemy to push the block faster, and rolling through the spikes afterwards instead of jumping. This was enough early improvement to make it to the moving platform before it entered the wall.
- Spring Yard 1 - Taking this top route allowed for less jumping.
- Spring Yard 3 - I paused at the beginning in order to get through the first part of the level without delay. It doesn't make a difference time-wise, but it looks a lot cooler.
- Labyrinth 1 - I was able to get inside the wall by ducking on the very left of the first rising platform. Unfortunately, there was no time-saving application to be found.
- Labyrinth 2 - The final jump out of water is delayed because the water level is too high for Sonic to jump to full height at first.
- Star Light 2 - New strategy to control velocity and fall through the final platforms faster. Credit to AKA.
- Scrap Brain 1 - I really should have found this jump over the second pair of fire things when I first did this run. I tried to improve the level to get 0:31, but was unable to do so.
- Scrap Brain 2 - My favorite level in this run :)
- Upthorn, for going above and beyond helping with Gens memory watching and even coding a special version for use in this run.
- Xebra, for watching my progress and giving encouragement and ideas for improvement.
Enjoy the run!
adelikat: Accepting as an improvement to the current run.
adelikat: Setting this to delayed while the author attempts improvements.
Truncated: Setting back to accepted. Including the new trick would force a complete redo, which it seems isn't about to happen, but there is no reason to keep our current run instead of accepting this one.