Starting from SRAM giving all chaos and super emeralds, and with his game-wrecking sidekick tagging along, Sonic destroys the game utterly, shattering all speed records.
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.

Game objectives

  • Emulator used: Gens 11b (but synchronizes perfectly on Gens 11a) + S3KCamhack + SolidityViewer + (partial)HitboxDisplay + LUA HUD for Genesis Sonic games
  • 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
  • One player controls two characters
  • Starts will all Chaos and Super emeralds

Generating the savestate anchor

First of all, lets start by linking in the verification movie. This movie plays through the game normally (a good deal of it in real time), gathering all Chaos and Super emeralds and finishing the game. The latter is required so that the present movie can begin from Angel Island zone. There is an innate arbitrariness on where exactly to generate the savestate anchor for a movie; depending on where exactly it is done, you can have a more favorable random number generator, for example.
To counteract this, I developed a procedure for doing such which eliminates this arbitrariness and allows consistent generation of the savestate anchor. It has several other advantages too, which I will explain after the generation procedure:
  1. Play the verification movie until the end; make sure to go until after the last input and stop the movie. This will generate SRAM. Note: This movie, particularly the first half of it, is terribly unoptimized since I played most of it in real time.
  2. Make sure that you do a soft reset and go to the starting menu to make sure that the SRAM has been properly generated (there should be a save with all emeralds).
  3. Close Gens so that SRAM is written to disk. Then go into the SRAM directory and make a backup copy of the S3&K SRAM. We will need this shortly.
  4. Reopen Gens and the S3&K ROM, and make sure to PAUSE the emulation.
  5. Start recording a new movie; do NOT check "Record from now and make a savestate". The movie name is irrelevant; if you paid attention to the above step, emulation will be paused.
  6. Make a savestate.
  7. Advance one frame.
  8. Load the savestate you just made. These last 3 steps ensure that the movie has an empty input list.
  9. Stop the movie.
  10. Go to the SRAM directory and replace the S3&K SRAM with the 'dirty' backup copy you made in step 3.
  11. Open the movie you created in step 5. Make sure that "Clear SRAM" is UNCHECKED, and that emulation is paused.
  12. Start recording a new movie; make sure that "Record from now and make a savestate" is CHECKED. The movie name is irrelevant.
  13. Gens will prompt for the state file name; select one you will remember: this is the anchor savestate.
Applying this procedure yields the savestate anchors linked to above: for Gens 11a, for Gens 11b. Warning: Gens 11b will complain about the Gens 11a savestate, but it works; Gens 11a will crash with the Gens 11b savestate.

Advantages of the method

  1. The generated savestate anchors are all consistent. There is some slight variation, probably due to the PSG, but it does not affect synchronization of the movie.
  2. By hex-editing the savestate dependency away (change byte 0x16 of the movie from 0x5f to 0x1f) and using the "dirty" SRAM from step 3, the movie will still synchronize -- if you make sure that "Clear SRAM" is UNCHECKED when you load the movie.

Comments

Due to the use of an anchor savestate, this movie should probably go into the Starts from a saved state or SRAM section if it gets published.
If there is a glitch in the game which makes it faster, I have used it; no silly restrictions of any kind. Several levels are identical to those of the latest S3&K run; some of these (virtually all improvements in the latest installment of that run) I actually discovered while I was working on this submission.
You will notice that Tails is almost always right there when I need him; that was very hard to pull off: Hyper Sonic is so fast that Tails can barely keep up. Still, I am happy about the results.

Time table

LevelTime
Angel Island 10:35::33
Angel Island 21:06::09
Hydrocity 10:32::26
Hydrocity 2 pre-death0:05::21
Hydrocity 2 post-death0:25::24
Marble Garden 10:25::53
Marble Garden 20:35::36
Carnival Night 10:34::50
Carnival Night 20:40::24
IceCap 10:59::57
IceCap 20:00::00
Launch Base 10:32::18
Launch Base 20:26::58
Launch Base 2 cutscene0:18::06
Mushroom Hill 10:36::15
Mushroom Hill 20:30::50
Flying Battery 10:56::16
Flying Battery 21:11::21
Sandopolis 11:27::51
Sandopolis 20:48::52
Lava Reef 10:52::41
Lava Reef 20:21::42
Hidden Palace0:18::26
Sky Sanctuary0:52::25
Death Egg 10:53::16
Death Egg 21:59::23
Doomsday1:34::30[1]
Total19:42::43[2]
The table shows the in-game timer values. 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.
[1] The Doomsday timer stops at this value; the last hit (i.e., the point where the movie ends) is at time 1:30::36. Moreover, the last time visible on-screen is 1:33::50.
[2] This is total in-game time. Which means that there are over 11 minutes (!) of level loading times, score tallies and cutscenes in the movie.

Stage by stage comments

Hydrocity 1

The extended zip on this level causes Sonic to be far ahead of the camera; this causes the game to delete the walk-on-water object. By avoiding the creation of new objects, the mini-boss gets loaded in that same slot. On transition to Hydrocity 2 (when the score tally starts), Hydrocity 2 deletes the mini-boss, replacing it again with Hydrocity 2's walk-on-water object. Since the last function of the mini-boss was to unlock the camera, it stays locked and causes Sonic to die much faster than in the latest S3&K run. I literally stumbled into this trick, and HHS later explained it; it seems impossible to replicate it with regular Sonic.

Hydrocity 2, Marble Garden 2, Flying Battery 1, Flying Battery 2, Lava Reef 2

All those levels are identical to the latest S3&K run. I had actually found those improvements while working on the present run and back-ported those improvements.

Carnival Night 1, Sky Sanctuary, final Death Egg 2 boss

The only levels with wholesale lifting of input from the latest S3&K run. Credit goes to Nitsuja for them.

Launch Base 2

A few minutes after the submission had been accepted for publication, Mr_Sweed sent me a video showing an improvement of 10 seconds for Launch Base 2 over the submission, and about 32 seconds faster than the latest S3&K run; that improvement turned out to be suboptimal by about 5 seconds. Splicing the improvement made the following cutscene longer by 15 frames, and nothing I did made any difference. The resulting luck differences also ended up costing me 2 frames until the last hit in Doomsday, although the level timer still stops at the same value.

Sandopolis 1

Annoying timed objects force me to go topside. Without losing time, only Hyper Sonic can get there, and only with the help of Tails. The way I do it, I actually gain time from it.

Hidden Palace

This features a 44-improvement on the fight versus Knuckles. I only had the idea for this improvement after the latest S3&K run was already published, sadly. I managed to land 15 hits on Robotnik in this level too, and needed every last one to get Tails in the right spot.

Death Egg 1

This level features a slightly different route than the 100% S3&K Sonic run; this is because I gain enough frames from Tails and improved precision that there is a light bridge closing the 100% S3&K Sonic run route. If I wait for the bridge to disappear, I lose almost everything I gained this far; the new route allows me to keep most of it.

Doomsday

It is actually possible to collect all rings in this level. This ends up being 22 frames slower, because the level is not a fixed-length autoscroller.

Other comments

Thanks goes to Nitsuja and Upthorn for their Sonic runs, Orkal for his glitch videos, HHS for his explanation of the Hydrocity transition glitch and you for watching. Also, thanks to Mr_Sweed for the Launch Base 2 improvement.
Suggested screenshot: frame 2064.

Flygon: Added YouTube module, note that when MisterEpic's HD encode is made, the module should probably be replaced.
Truncated: Submission file has been replaced with an improved version, 13 frames faster. Marzojr will update the submission text to describe the changes.
marzojr: Updated text with the new times
OmnipotentEntity: A little update, Mister Epic had some issues with encoding this in HD, so I'm doing a little experiment, :) I'll be handling publication of this movie if it is accepted.
Nach: I'm accepting this with the same remarks as #2812: MUGG's GB Super Mario Land "hard mode" in 12:14.77. Publishers please remember to mark the game as 'impure', and copy the note from [1607] GB Super Mario Land "hard mode" by MUGG in 12:14.77.
OmnipotentEntity: Setting to publication underway.
FractalFusion: Setting to delayed as the author is made aware of an improvement in one of the stages.
Truncated: Submission file has again been replaced with an updated version. This one is just above 15 seconds faster, thanks to the suggestion of a yet unnamed contributor. marzojr to spill the beans.
marzojr: Updated text explaining new improvement
adelikat: Accepting for publication.
Nahoc: replaced removed YT module by a new one.


Reviewer, Active player (288)
Joined: 12/14/2006
Posts: 717
mklip2001 wrote:
I haven't yet watched this movie (and probably won't get to it for a couple days), but I would like to point out that I second Derakon's idea, namely that this could obsolete the current Hyper Sonic run. Nobody wanted to see the emerald collecting anyway, and even though this run does use horizontal underflow, the avoidance of horizontal underflow doesn't seem like a big enough reason to me to keep around the current Hyper Sonic run. Anyway, will watch later.
I'd agree to this only if we keep the emerald hunting in the Knuckles run because I enjoyed watching the bonus stages.
Player (156)
Joined: 4/7/2008
Posts: 217
So awesome. Best idea for a TAS ever... obvious yes vote. I agree that there should be an encode that takes out the Super Sonic music and the flashing whenever you use the spindash
Editor
Joined: 3/10/2010
Posts: 899
Location: Sweden
I would prefer a pure encode here.
GabCM
He/Him
Joined: 5/5/2009
Posts: 901
Location: QC, Canada
Sorry, but you will have to wait until at least next Monday before you get my encode. There was a connection problem and tonight, I will be in a place where the connection is better. The file size is 5 GB. Until then, I may make more HD encodes, but from smaller TASes.
Joined: 7/2/2007
Posts: 3960
arkiandruski wrote:
I'd agree to this only if we keep the emerald hunting in the Knuckles run because I enjoyed watching the bonus stages.
Heh. Fine by me. Weren't the bonus stages for the first Hyper Sonic run taken straight from the Hyper Knuckles run anyway?
Pyrel - an open-source rewrite of the Angband roguelike game in Python.
GGG
Banned User
Joined: 12/11/2009
Posts: 57
Location: USA
encoding ... first I'm doing it by parts to youtube, then it does in a single party for TASvideos. Takes one or two days Note: Sorry for taking so long, but I have to start over because I have a problem with the coding
Post subject: glitch with YM2612 in this run
Joined: 11/11/2006
Posts: 1235
Location: United Kingdom
For some reason, in Gens 11a using the 11a savestate and playing back with YM2612 high quality unchecked makes the sound that comes from it play at a much higher pitch. It's really fuggin' trippy/weird.
<adelikat> I am annoyed at my irc statements ending up in forums & sigs
GabCM
He/Him
Joined: 5/5/2009
Posts: 901
Location: QC, Canada
Ok so I've uploaded Part 1 and 3. I will upload part 2 tonight and you'll get my HD encode tomorrow.
Player (52)
Joined: 4/10/2009
Posts: 226
would this sync with an sram that had 85-99 lives? some people might enjoy seeing the life counter glitch. of course it might be more trouble then its worth to make the verification movie. and most people who watch the movie probably already know about the life counter glitching. (if I'm not mistaken having 85 lives would give you the 100th life on the DE1 boss.)
mklip2001
He/Him
Editor
Joined: 6/23/2009
Posts: 2227
Location: Georgia, USA
Now that I've watched this, I can conclusively say it is awesome. It should also obsolete the Hyper Sonic 100% run since it has less boring stuff (bonus stages) and more HolyCrapWhereIsSonicOMGFlashyGoodness. Along the lines of what arkiandruski pointed out, the Hyper Knuckles run does a good job demonstrating the bonus stages, as well as Knuckles's path through the game.
Used to be a frequent submissions commenter. My new computer has had some issues running emulators, so I've been here more sporadically. Still haven't gotten around to actually TASing yet... I was going to improve Kid Dracula for GB. It seems I was beaten to it, though, with a recent awesome run by Hetfield90 and StarvinStruthers. (http://tasvideos.org/2928M.html.) Thanks to goofydylan8 for running Gargoyle's Quest 2 because I mentioned the game! (http://tasvideos.org/2001M.html) Thanks to feos and MESHUGGAH for taking up runs of Duck Tales 2 because of my old signature! Thanks also to Samsara for finishing a Treasure Master run. From the submission comments:
Shoutouts and thanks to mklip2001 for arguably being the nicest and most supportive person on the forums.
marzojr
He/Him
Experienced player (762)
Joined: 9/29/2008
Posts: 964
Location: 🇫🇷 France
FuzZerd: I see no reason why it wouldn't synch; as far as I know (which includes looking at a S3&K disassembly to look where the number of lives is used), there are very few places where the value is checked (as opposed to changed), none of which should affect synch -- the only values checked for are 0 (can't pause if you have 0 lives), if it becomes zero after a death and if it is more than 99 when saving. In the SRAM, the number of lives of a save is also handled by a single byte (for each save), and SRAM saves no information which could conceivably cause such a desynch. After I looked this up, and I verified that, in a way, the movie in this submission can be used as its own verification movie :-) If you take the SRAM you get at the end of playing this movie, and play the hex-edited movie without savestate dependency, it will still synch. Edit: or, of course, if you apply the anchor savestate procedure described in the submission to the SRAM you get from playing the submission to the end and use the anchor savestate generated this way to play the movie. Also: what score counter glitch? Side note: I hadn't noticed before, but I gain exactly 2616 lives in this run, doubling the number of lives I had at the end of the verification movie and ending with exactly 42 lives. Nice :-) Edit: fixing math fail. Note to self: no more posting at 2AM.
Marzo Junior
Player (52)
Joined: 4/10/2009
Posts: 226
er... meant life counter glitch..... I always seem to make stupid mistakes in my posts. also maybe its 75 lives that would make you gain the 100th life when defeating the boss lol.
GabCM
He/Him
Joined: 5/5/2009
Posts: 901
Location: QC, Canada
Joined: 6/23/2009
Posts: 150
It was a little close to the regular Sonic run, but I really liked the addition of hyper sonic in a lot of areas. Plus I didn't have to wait through all those bonus levels for it. Overall a very nice run.
GabCM
He/Him
Joined: 5/5/2009
Posts: 901
Location: QC, Canada
I think it's the Speediest TAS of 2010 right now. Unless some TAS beats it.
Joined: 10/20/2006
Posts: 1248
Well, this run just had to be done sooner or later. xD I hope there's going to be a link to this movie in the description of the any% run, as that's the way I'd like to see it published. The run wasn't too exciting to watch for me because I had already seen most of the strategies, but it's still an obvious yes-vote. I have to critisize one very minor flaw in my opinion though, and that is that you didn't showcase stuff like the spindash cancel during the awkward wait in FB2. Has it been confirmed that you can't cross the leftmost level border in the Sandopolis Zone by letting yourself eject from the wall btw? It doesn't work because Sonic's hitbox is too tall? Just asking because I'm not sure iirc.
marzojr
He/Him
Experienced player (762)
Joined: 9/29/2008
Posts: 964
Location: 🇫🇷 France
@Kugawa: I tried to eject Sonic from that wall in Sandopolis 1, and failed utterly -- I even tried using a LUA script to write to RAM, directly setting pixel/subpixel position to all values that would be possible to attain normally. So I don't think it is possible. I think it doesn't work because Sonic is too wide and too tall.
Marzo Junior
Joined: 10/20/2006
Posts: 1248
I see. Good to know you've tried everything possible. ^^
mklip2001
He/Him
Editor
Joined: 6/23/2009
Posts: 2227
Location: Georgia, USA
Out of curiosity, would it be better to make this movie start from a snapshot (i.e. SRAM, I think) instead of requiring a savestate? I'd prefer one standalone movie file that can be played in the emulator, rather than requiring both a movie file and a separate savestate file. If this isn't possible, that's fine; I don't know particularly much about this kind of stuff at this point.
Used to be a frequent submissions commenter. My new computer has had some issues running emulators, so I've been here more sporadically. Still haven't gotten around to actually TASing yet... I was going to improve Kid Dracula for GB. It seems I was beaten to it, though, with a recent awesome run by Hetfield90 and StarvinStruthers. (http://tasvideos.org/2928M.html.) Thanks to goofydylan8 for running Gargoyle's Quest 2 because I mentioned the game! (http://tasvideos.org/2001M.html) Thanks to feos and MESHUGGAH for taking up runs of Duck Tales 2 because of my old signature! Thanks also to Samsara for finishing a Treasure Master run. From the submission comments:
Shoutouts and thanks to mklip2001 for arguably being the nicest and most supportive person on the forums.
Joined: 6/4/2009
Posts: 570
Location: 33°07'41"S, 160°42'04"W
mklip2001 wrote:
Out of curiosity, would it be better to make this movie start from a snapshot (i.e. SRAM, I think) instead of requiring a savestate? I'd prefer one standalone movie file that can be played in the emulator, rather than requiring both a movie file and a separate savestate file. If this isn't possible, that's fine; I don't know particularly much about this kind of stuff at this point.
If I remember correctly, unfortunately it is not possible to embed savestates of any kind into a GMV movie (like, it was possible instead, for the Hard Mode Super Mario Land movie which is in the workbench right now). External savestates are required. The only way this could work without savestates is if you have a gigantic movie with this movie attached at the end of the old movie, resulting in two game completations in a row.
marzojr
He/Him
Experienced player (762)
Joined: 9/29/2008
Posts: 964
Location: 🇫🇷 France
Currently, it is possible to embed neither a savestate nor SRAM into a GMV file; but there are plans for both for GM2. So whichever is chosen makes no difference, and a separate file is required in either case -- either a savestate anchor or a compatible SRAM. I decided to make the movie depend on a savestate instead of SRAM because:
  1. GMVs do not have a flag for SRAM dependency. This means that Gens neither knows nor cares about the SRAM dependency of the movie, and will not ask for the SRAM file.
  2. 'Clear SRAM' is checked by default. Thus, supplying the SRAM does not guarantee that the movie will synch when playing because it is very easy to forget to uncheck it. And because any other S3&K movie you play will overwrite SRAM.
  3. Gens will refuse to play the movie if you don't supply the savestate, giving an error message. This already gives feedback to the user that he is forgetting something.
For these reasons, the natural choice until GM2 is a savestate dependency, using the procedure I developed to guarantee that starting from the savestate anchor is equivalent to starting from the "dirty" SRAM. An alternative would be to make custom version of Gens that uses a derived GMV format that allows embedding of SRAM or savestate. This would break Microstorage, the TASVideos site and the TAS Editor (unless the change is 'approved', and the required code changes are implemented) and would require shipping the custom emulator. In all cases, another file is required to play the movie.
Marzo Junior
Joined: 5/14/2007
Posts: 525
Location: Pisces-Cetus filament
This run is very fast and it entertained me. Several tricks used in it are awesome. Marzo, you have earned your Hyper Sonic avatar. :P
AzumaK wrote: I swear my 1 year old daughter's favorite TASVideo is your R4MI run :3 xxNKxx wrote: ok thanks handsome feos :D Help improving TASVideos!
marzojr
He/Him
Experienced player (762)
Joined: 9/29/2008
Posts: 964
Location: 🇫🇷 France
I submitted a slightly improved version (13 frames) to a judge to replace the submission file.
Marzo Junior
GabCM
He/Him
Joined: 5/5/2009
Posts: 901
Location: QC, Canada
marzojr wrote:
I submitted a slightly improved version (13 frames) to a judge to replace the submission file.
Does it mean I have to reencode the whole thing? If so, I think I'll pass.
marzojr
He/Him
Experienced player (762)
Joined: 9/29/2008
Posts: 964
Location: 🇫🇷 France
The submission file has been replaced, and the text changed accordingly. Thanks to Toothache for the idea for the DEZ2 improvement, and for Truncated for updating the submission. And my apologies go our hard-working encoders :-)
Marzo Junior