Submission #2877: nitsuja, upthorn, marzojr's Genesis Sonic 3 & Knuckles in 29:51.20

Console Sega Genesis Emulator GENS
Game Version any Frame Count 107472
ROM Filename Sonic and Knuckles & Sonic 3 (W) [!].bin Frame Rate 60
Branch Rerecord Count 216964
Unknown Authors nitsuja, upthorn, marzojr
Game Sonic 3 & Knuckles
Submitted by marzojr on 10/11/2010 3:45:42 AM

Submission Comments
Undaunted by his Hyper counterpart, Sonic and Tails take Robotnik to task in record time. This run represents an improvement of 02:14.32 over its previous version in real time, and is now sub-30 minutes. In in-game time, the improvement is of 01:28.48 over the previous run. Note that although neither Nitsuja nor Upthorn were actively involved in this improvement, they are listed as co-authors because their input comprises part of the movie, albeit in altered form.
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
  • One player controls two characters
  • Contains (in-game) speed for entertainment trade-offs
  • Beats this joke submission


New tricks

Object placement manipulation

This technique debuted in the newgame+ run, but there it was done by luck instead of by design. But once HHS explained the principles behind it, I was able to perform it at will. The basic idea is to manipulate the next free object slot(s) so that a specific object loads into it. In most cases this won't accomplish anything useful; but in a few specific cases, this object may either be forcibly overwritten by another object (see Hydrocity 1 comments) or be mistaken for another object (see Angel Island and Carnival Night 2 comments).

Forced Tails Re-spawn

Once Tails' "despawns", you can press (or hold) any jump button in order to force him to re-spawn. This can save a considerable amount of time (up to 63 frames in the worst-case scenario), and it can be used even if you can't control Sonic. This can be done whenever RAM address 0xFFF708 (Tails CPU routine) is set to 2. This also applies to Sonic 2.

Flame dash slope glitch

This consists of using a flame dash into the ground to get stuck in it. It requires horizontal speed to get far enough in (and quickly enough) and sloped terrain of the type found only on Sandopolis. Sadly, despite being in several places in Sandopolis 1, none of them lead to useful shortcuts. Once stuck in the ground, Sonic will slide along the slope and zip once at the bottom, entering the slope. He will also most likely end up with an horizontal ground lock in place for a few frames, meaning left and right directions will only work on the air.

General Comments

As noted above, there is still input by Nitsuja and Upthorn in this movie. I have, however, edited all of it to match my personal 'style' of input.
Large amounts of real time were gained due to cut-scene skips, only one of which came with some in-game cost (see below). The new tricks mentioned above, as well as new uses of old tricks and several optimizations throughout the run all combine to the large improvements aforementioned.
This run is also the first one to put to heavy use the always present "(primarily in-game)" escape clause in the second objective; and this is related to the next-to-last objective, the "(in-game) speed for entertainment trade-offs". This trade off happened in Launch Base 2, where skipping the Knuckles cutscene and the mid-boss cause the full post-Launch Base 2 cutscene to run (albeit in glitched form) for its normal full length. The cutscene skip results in a net gain in real time over three times as big as the loss in in-game time from the longer cutscene. And it is a lot more entertaining to watch.
For this reason, there are two tables below: one with the in-game times, and the other containing the real-time savings.

In-Game Time Table

LevelNew time[1]Old time[1]Savings[2]
Hydrocity 10:30::260:33::05159
Hydrocity 2 death0:05::210:09::09228
Hydrocity 20:23::370:25::24107
Marble Garden 10:29::290:30::0738
Carnival Night 20:41::410:42::1130
IceCap 11:00::141:01::2571
Launch Base 10:31::550:37::03308
Launch Base 20:26::261:04::562310
post-Launch Base 2 cut-scene0:29::350:17::53-702
Mushroom Hill 10:32::500:46::15805
Mushroom Hill 20:34::050:37::39214
Sandopolis 11:39::161:45::51395
Sandopolis 21:09::471:28::201113
Lava Reef 11:03::231:04::2865
Lava Reef 20:21::400:21::411
Hidden Palace0:17::270:19::10103
Death Egg 11:04::031:04::4744
Death Egg 22:18::062:18::2620

Real Time Table

In-game savings5309
Angel Island cut-scene skip284
Launch Base 2 cut-scene skip2962[4]
Launch Base 2 score tally-400[5]
[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 values given are in frames. Positive is time gained, negative is time lost.
[3] This is total in-game time. Which means that there are over 10 minutes (!) of level loading times, score tallies and cutscenes in the movie.
[4] Estimate. The estimate was obtained by counting how many frames the in-game timer remains stopped during the Launch Base 2 cut-scene (using the previous version of the run as reference), while the "others" entry is the residual time left from this estimate.
[5] Crossing the 1-minute boundary means 500 frames are needed to tally up the time bonus (instead of 100 frames).
[6] Improved capsule hit in Hydrocity 2, improved death in Launch Base 1, longer transition on Mushroom Hill 1 (need to grab a fire shield), an additional lag frame somewhere before Launch Base 1, 2 frames "lost" from the 1-frame pause at the start of Sky Sanctuary, plus other minor stuff I am probably forgetting.
[7] This is total real time difference, obtained by comparing movie length of this run with that of the previous run.

Stage by stage comments

Angel Island

The transition cut-scene to Hydrocity has been cut short by an object placement manipulation trick. This trick was stumbled upon by mike89 when doing an unassisted 2-player speed-run; HHS figured out how it works and I implemented it without losing any time. It works as follows: when Tails brakes before the boss, the braking pattern is chosen so that the dust kicked up fills the first few object slots, preventing boss-area objects from using them. When Knuckles and the switch are loaded after the score tally, they will be loaded into these slots. The switch is loaded, in fact, in the exact same slot that Knuckles used at the start of the level -- this causes the switch to mistake itself for Knuckles and fire as soon as it is loaded, returning control to Sonic.
It is possible to force Tails to appear earlier at the very start of the level, in the Knuckles cut-scene. This isn't useful, though -- either you move too fast and Knuckles will leave the screen through the left, or you won't have control of Sonic for longer.

Hydrocity 1

The entire level reworked: faster start, faster route, better zip (courtesy of jumping to enter the wall) and better boss fight. Oh, and an object placement manipulation glitch to cut short the death at the start of the next level. Once again, Tails brakes so as to force the boss to load at the same slot as the walk-on-water object that was loaded earlier in the level; was being the keyword here (it got deleted during the zip). When the score tally starts, the boss object (still alive in memory) gets killed by the act 2 walk-on-water object before he can set the new screen boundaries for the transition. This kills Sonic, who was on the death row anyway...

Hydrocity 2

Another trick found by mike89 and put to good use by me; mike89 found it on the aforementioned 2-player speed-run, and posted a video about it as one of the bloopers.

Marble Garden 1

An improvement found by MrSweed and relayed to me by Sonikkustar. It is basically the same trick used in Hydrocity 1 for the better zip, but on the horizontal.

Carnival Night 2

Those damn balloons forced me to replay this entire level twice over. But thanks to the forced Tails respawn, I get him to arrive right in the nick of time to grab Sonic at the Knuckles cut-scene. By the way: were it not for the fact that I skipped Knuckles earlier in the level, it would be possible to trick the switch into thinking it is Knuckles in said cut-scene, with similar results as from the Angel Island trick.


A slight optimization in Sonic' input saves 3 frames. The rest of the improvement is better use of Tails in the boss fight.

Launch Base 1

Faster entrance into the zip, much better boss fight and faster death. Sonic (or Tails) only needs to kill one of the Twin Hammer bosses in order to proceed, so you are treated to a glitched boss after.

Launch Base 2

Take the new zip courtesy of MrSweed and complement it with heavy off-screen work by Sonic and Tails: the result is that I glitch into the Knuckles' boss area, skipping the mid-boss, skipping the (extremely long) Knuckles cut-scene and glitching the hell out of the level. This is where the major speed for entertainment trade-off comes: the falling death egg cut-scene runs its full length (whereas it is glitched and faster in the previous version of the run), but the Knuckles cut-scene is about 4 times longer than this increase.
Warning: If you watch this level with a camera hack, be sure to turn it off by the time Sonic is reaching the start of the loopback, or Gens will crash.

Mushroom Hill 1

A more efficient version of the newgame+ zip. I use Tails (off-screen) to lift me over the last loop; I do this so that the loops in the next act will be broken in a good way.
Warning: If you watch this level with a camera hack, be sure to turn it off whenever Sonic is above ground level after the horizontal position underflows, or Gens will crash.

Mushroom Hill 2

There are several optimizations over the previous run in the level. The most notable is the use of Tails to maintain enough speed that I can skip the lifting machine at the end of the level. See, Hyper Sonic is not the only one that can do it...

Sandopolis 1

Traveling along the top of the level allows me to enter a wall and zip left, underflowing the horizontal position. Tails solo and Knuckles have a much better zip, but alas, Sonic can't use it. By the way: going faster or not waiting for Tails are both futile, because the sprite I must climb onto is too high up by the time Sonic gets there.

Sandopolis 2

I use extensive flame-dashing into slopes to create many new shortcuts. Sadly, I am temporarily without horizontal control of Sonic after each of these. Better use of Tails also gives quite an improvement at the end of the level, particularly at the boss: Robotnik's invincibility timer from the last hit I land before the Egg Golem closes up for the first time is still going when the Egg Golem opens up again. But on opening, it forces the hit box back on, and stops the timer at the current value, from where it will resume after the next hit.

Lava Reef 1

Same route for most of the level; the improvement comes from a different route at the very end, getting the bubble shield. This allows me to enter the ground and reach the boss faster. The bubble shield also allows me to kill the boss 13 frames faster.

Lava Reef 2

Talk about frame war with oneself...

Hidden Palace

Forcing Tails to respawn at the optimal time allows me to beat Knuckles before his music even begins.

Sky Sanctuary

There is a 1-frame pause at the start of the level to manipulate Mecha Sonic's pattern. The other option was a fight that was two seconds slower... Other than this, the level pause, the level is identical to the previous version of the run.

Death Egg 1

This level has changed due to small optimizations here and there, including forcing Tails to respawn earlier. The boss fight is also slightly faster.

Death Egg 2

Minor optimizations all around. I also save Tails at the end of the movie.

Other comments

This run is dedicated to Nach for nudging me into doing it.
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 MrSweed for the Marble Garden 1 and Launch Base 2 shortcuts; and to you for watching.
Suggested screenshot: frame 71270

Nach: Nice to see changes throughout the game. Excellent job on defeating the 30 minute time mark. Accepting.

OmnipotentEntity: Encoding.

Last Edited by TASVideoAgent on 8/18/2012 9:06 PM
Page History Latest diff