Started at the same time as the
Tails run, and worked on at the same time as its
twin run, this run has been years in the making. Like the Tails run, a disassembly of the game was used in order to squeeze the most of every trick. This run saves
03:47.28 in real time over its predecessor,
02:03.06 of which is saved in in-game time.
Every single level has been improved from the previous run.
Note that the rerecord count is an estimate.
Also note that Aglar contributed only indirectly to this run, through his work on the branchless run.
This movie starts from a savestate. Specifically, it is either this savestate (Gens 11a) or this savestate (Gens 11b).
WARNING: The awesomeness of Hyper Sonic may damage your eyes or trigger seizures in susceptible people.
Emulator used: Gens 11b + S3KCamhack + SolidityViewer + (partial)HitboxDisplay + LUA HUD for Genesis Sonic games
Game objectives
- Ignores delays caused by bonus effects
- Aims for fastest (primarily in-game) time
- Takes Damage to save time
- Abuses death
- Abuses programming errors
- Counts time spent dying
- Manipulates luck
Note: Comments by Marzo.
Savestate and SRAM
A savestate was used instead of SRAM because of a few reasons:
- GMV format does not allow embedding SRAM
- GMV file format does not allow an SRAM dependency
- Gens defaults to clearing SRAM when loading a movie
- GMV file format allows a savestate dependency
These reasons make using a savestate anchor the more fool-proof method, even though starting from SRAM would be better for a number of reasons. For the previous version of the run, a procedure was developed to generate the savestate that guarantees that the anchor would be consistent and equivalent to using SRAM. The explanation is in the
previous submission text, and I will not repeat it here. Playing the movie from a savestate generated in such a manner is equivalent to playing
this hex-edited movie using the SRAM you obtained midway through the procedure; for convenience, you can get such an SRAM
here. Note that the hex-edited movie differs from the submitted movie by one bit, the save-state dependency flag.
Since the SRAM does not have information that could affect synchronization (you know, other than the save file with all emeralds...), the movie is self-verifying: you can use the SRAM generated by playing back the movie to play it back again. The number of lives will be wrong, but that is about the only change.
This run was made with constant reference to the disassembly available at Sonic Retro. This disassembly was used to determine the exact positions where the camera locks, how bosses and badniks behave, how several glitches work, and so forth. All this information is being collected and revised, and will be released in the future.
Act | Time[1] | Previous[1] | Change |
---|
Angel Island 1 | 0:32::49 | 0:35::33 | -164 |
Angel Island 2 | 1:03::20 | 1:06::09 | -169 |
Hydrocity 1 | 0:18::37 | 0:32::26 | -829 |
Hydrocity 2 | 0:21::58 | 0:25::24 | -206 |
Marble Garden 1 | 0:44::54 | 0:25::53 | 1141 |
Marble Garden 2 | 0:03::24 | 0:35::36 | -1932 |
Carnival Night 1 | 0:30::52 | 0:34::50 | -238 |
Carnival Night 2 | 0:35::39 | 0:40::24 | -285 |
IceCap 1 | 0:54::54 | 0:59::57 | -303 |
IceCap 2 | 0:00::43 | 0:00::44 | -1 |
Launch Base 1 | 0:27::52 | 0:32::18 | -266 |
Launch Base 2 | 0:25::50 | 0:26::58 | -68 |
Mushroom Hill 1 | 0:32::17 | 0:36::15 | -238 |
Mushroom Hill 2 | 0:28::43 | 0:30::50 | -127 |
Flying Battery 1 | 0:42::49 | 0:56::16 | -807 |
Flying Battery 2 | 1:06::13 | 1:11::21 | -308 |
Sandopolis 1 | 1:10::13 | 1:27::51 | -1058 |
Sandopolis 2 | 0:43::20 | 0:48::52 | -332 |
Lava Reef 1 | 0:48::48 | 1:03::23 | -875 |
Lava Reef 2 | 0:20::53 | 0:21::42 | -49 |
Hidden Palace | 0:16::36 | 0:18::26 | -110 |
Sky Sanctuary | 0:52::13 | 0:52::25 | -12 |
Death Egg 1 | 0:51::58 | 0:53::16 | -78 |
Death Egg 2 | 1:37::15 | 1:59::23 | -1328 |
Doomsday[2] | 1:33::26 | 1:34::30 | -64 |
Total | 17:40::33 | 19:43::27 | -7374 |
---|
In-game time lost to deaths
Act | Time[1] | Previous[1] | Change |
---|
Hydrocity 2 | 0:05::21 | 0:05::21 | 0 |
Cut-scenes
Act | Time[1] | Previous[1] | Change |
---|
Launch Base 2 | 0:29::36 | 0:29::35 | 1 |
[
1] The value after the final colon pair indicates the in-game frame counter, and is restricted to the 0-59 range. It is updated every frame (except during lag frames), and increments the in-game second when resetting to zero.
[
2] The Doomsday timer
stops at this value; the last hit (i.e., the point where the movie ends) is at time 1:29::30 (66 frames of improvement). Moreover, the last time visible on-screen is 1:32::46 (64 frames of improvement).
Here we mostly only mention what's not obviously clear when watching the run, each other situation pretty much speaks for itself or has been used in earlier TASes of this game.
Angel Island 1
I had already improved the start a lot; Aglar went in and took it even further. The different stats of Hyper Sonic make the loop zip slightly slower to setup, but his much greater jump strength allows keeping much higher speed for much longer than any other character can. The second loop zip can also be done by regular Sonic, but he would need a lightning shield; Knuckles can also used, as seen by WST's TAS. Delaying a bit after the scenery burns down lets me bounce off the spring on the top and lets me carry on more speed
Angel Island 2
New zip first found by DMTM; I loiter about a bit after entering the ground to let the camera unlock enough so that the bubble monitor loads, letting me keep more speed.
Hydrocity 1
A 2-player variation of the stair clip is used here, which in this case was much harder to execute as the object that stops the horizontal movement resides quite far from the edge of the terrain. The quick death for the next act was setup at no cost thanks to Tails.
Hydrocity 2
Better camera management for the level wrap, plus a new way of getting into the boss arena that allows a frame-perfect kill.
Marble Garden
Tails moves as in the
Tails run, carries Sonic along. When landing, Tails touches down 1 frame before Sonic, so the flight timer is not set and allows Tails to pickup Sonic right away later. New ground entrance (instead of using the spring) was found by DMTM. Improved precision carries the rest of the level, with a surprise twist: Nineko's trick with solo Sonic or Knuckles of doing both acts at once
can actually be done as Sonic + Tails. The condition for it to work is that Tails must be off-screen at one specific frame; this is not normally possible if you don't know the condition, which was figured out through the disassembly. So it is absolutely crucial to allow Tails to respawn at that time, as he would be too late otherwise. The pattern at score tally minimizes the number of lag frames.
By the way, I was a bit sad about finding this trick: it is possible to use the route from the Tails TAS in act 2 and hit the boss above the ceiling; Sonic and Tails can deliver all 8 hits this way, but it ends up being a lot slower.
Carnival Night 1
As it turns out, Hyper Sonic can do the level wrap faster than getting Wheel glitch, and faster than regular Sonic can either. Entering the wall at the boss allows zipping out at at the right time, allowing for a nearly frame-perfect kill -- it is theoretically possible to beat the boss 1 frame faster, but his position relative to the spinning top at the time of the first hit actually makes it impossible. Balloon positions for next act were manipulated at the end of this act. The original version of the ground entrance was by DMTM and used a bubble shield; I proved it was possible to do it without the shield.
Carnival Night 2
Zip into Big Ring, catch a ride in zip-speed Tails, enter wall and save a ton of time.
IceCap
Ditch snowboard sooner, abuse solid object to push Hyper Sonic into the ground, get into sliding block from underneath and better precision all the way. 43 frames of "act 2" after the boss are now accounted; previous runs did not count this time, which made them 44 frames shorter in in-game time than they actually were.
Launch Base 1
Based on the Tails trick and on the Mushroom Hill 1 door, this trick is almost as old as the version with Tails. Better boss fight, together with extra setup for death right after signpost stops, allows skipping the score tally entirely.
Launch Base 2
Better boss fight from lodging Sonic inside the pipe. Unfortunately, it is not possible to speed up the transition, and it got longer by 1 frame.
Warning: If you watch this level with a camera hack, be sure to get the latest version of the S3KCamhack in the thread, or Gens will hang.
Mushroom Hill 1
It is theoretically possible to use Tails to enter terrain right at the start of the level, before the Knuckles cut-scene, and level wrap right away; but this does not work, and Sonic is teleported back to watch the cut-scene. And while he will still be on terrain and be able to zip right away, it ends up being slower overall. Anyway: new hyper ground entrance, which I previously thought was impossible. At the end, I setup the loop solidity for the next act in such a way I don't need to grab a shield.
Warning: If you watch this level with a camera hack, be sure to get the latest version of the S3KCamhack in the thread, or Gens will hang.
Mushroom Hill 2
Starting without a shield allows much faster Hyper. Backtracking into a new zip, and improved precision all the way make short work of the level.
Flying Battery 1
Tee-N-Tee's new zip for Tails can be used here, but it is slightly slower than this.
Flying Battery 2
Used the boss of the previous act to gain slope glitch, and bounced the signpost to obtain a lightning shield. The latter is crucial for this route, as Tails cannot follow Sonic on this route: CPU Tails despawns when off-screen with slope glitch. The speed of climbing at the end is irrelevant as long as you don't die.
Sandopolis 1
Yes, as it turns out, this zip is possible for Sonic -- it requires entering it at perfect pixel position with near zero speed. I had previously tried only with positions attainable within the wall (trying all subpixels), and thought it was impossible; Aglar proved me wrong.
Sandopolis 2
Improved light handle glitch, new ground entrances, and improved precision throughout. One frame is wasted between two hits on the boss to save 30 from glitching his invulnerability counter.
Lava Reef 1
The Tails route can't be followed by Sonic, so we had to improvise a bit. The two characters can then team up to descend faster and setup a zip left, which locks the screen further left for the cut-scene. The idea of going through the drill came about by watching Amy do it in WST's TAS.
Lava Reef 2
Level wrap is now perfect: using spindashes to keep camera as far right as possible while zipping left, then using a flame dash to nullify the camera lock right after the level wrap.
Hidden Palace
Improved precision up to the teleporter. It is possible to gain 1 frame more up to it, but the teleporter is the one object in S3&K that has a 4-frame frame-rule. Glitched the boss even more, so Knuckles is down before his music starts... and then broke the level.
Sky Sanctuary
Replayed the level entirely, and managed to gain 3 cycles of the teleporter's 4-frame frame-rule.
Death Egg 1
9 frames were gained in the first frame of input in the level. The Tails zip at the start seems impossible; so improved precision carried the day. Used Orkal's trick to break the level transition and die with the timer stopped.
Death Egg 2
Level wrap by gamble5688, with lightning shield by DMTM.
Doomsday
1 frame saved by the new route to the mid-boss. The missiles can be forced to turn faster by pausing the game like that, so they can hit the boss much faster at the cost of real time. Avoided all obstacles after to gain a couple more frames.
Thanks goes to Nitsuja and Upthorn for their Sonic runs;
to Orkal for his glitch videos;
to HHS for his explanation of the Angel Island/Hydrocity transition glitches;
to mike89 for his blooper videos;
to HDL for his general awesomeness at this game;
to the folks at SonicRetro involved in the making of the S3&K disassembly.
Potential improvements
There is a 1-frame pause at the middle of Death Egg 2 to manipulate the Death Ball.
feos: Acceblishing. Gonna take time...