Submission #7998: Tuffcracker's GBA Sonic the Hedgehog Genesis in 16:46.89

(Link to video)
Game Boy Advance
baseline
BizHawk 2.8
60139
59.7275005696058
14264
PowerOn
Sonic The Hedgehog - Genesis (U) [!].gba
Submitted by Tuffcracker on 1/27/2023 8:43:51 PM
Submission Comments
This run aims to complete the game as fast as possible, while optimizing for in-game time and minimizing lag throughout the run.

Game Objectives

  • Complete the game as fast as possible
  • Optimize for In-Game Time (IGT)
  • Reduce lag as much as possible

Comments

Before I delve into what I did in the levels, let me give a brief overview of the game and how it works.

Information About the Game

Sonic the Hedgehog Genesis (also widely known as Sonic 1 GBA) is a remake of Sonic the Hedgehog 1 for the Sega Mega Drive/Genesis brought to the Gameboy Advance. This game was released in North America to celebrate Sonic's 15th Anniversary back in 2006, along with the much more infamous Sonic the Hedgehog 2006, or Sonic '06. It is notorious for its buggy graphics, extreme slowdown and lag, wonky physics, and camera crunch, which makes for a frustrating experience. The game has two modes to play the game in:
  • Normal Mode is just base Sonic 1.
  • Anniversary Mode adds the Spin Dash from Sonic 2, which allows for very fast gameplay. However, you can only charge a spindash once, which is usually called a "one-tap."
The physics are not at all what they were in the original Sonic 1. If you have high speed and jump before you hit a wall, and if you end up going over or under the wall, you will preserve the speed you had before you hit the wall. You can also preserve your speed by performing frame perfect jumps against a wall or a moving object until you can go under, as seen in Marble Zone Act 1. Jumping does not take any momentum from you, and if you combine this with the fact that jumping on a downward slope gives you a boost forward, you can get some insane speed and even go off the screen! This is the most abused part of the physics, as... well, this is a speedrun.
Now we talk about the lag. The absolutely insane amount of lag. This was probably one of the most frustrating parts of the run, as minimizing lag also saves real-time (RTA) and makes the run look less sloppy. There are several things that make the game lag, such as the following:
  • Running on the ground with high speed makes the game lag very heavily, but this can be negated (for the most part) by staying airborne by jumping. There are some cases where moving will cause lag, in which case the only thing you can really do is stand around doing nothing.
  • Having a lot of sprites and objects on screen, like falling platforms and enemies also lags the game badly. Your best bet is to try to avoid encountering as many of these objects as you can.
  • The music can cause the game to lag in certain areas, such as at the end of a level. This can also be dealt with by turning off the background music (BGM) and sound effects in the options menu on the title screen, but I opted not to do so just so the run doesn't feel barren and empty.
  • Sometimes even walking on ledges will cause the game to lag heavily. This can usually be avoided by jumping over ledges and avoiding them whenever possible.
  • The game in general just randomly lags sometimes and there's nothing you can do about it. :v
Because of the lag reduction methods I used in the run, entertainment is often sacrificed for speed.

Stage by Stage Comments

Green Hill Act 1

The famous Green Hill Zone returns! In this level, we get our first taste of poor programming, as seen by the heavy amount of lag. After spindashing, I try to jump off of as many downward hills as possible. This allows me to slowly build up speed and hop my way through to the end of the level. I also showcase it's possible to clip right through loops if you have enough speed and you jump at the right spot. This is also used in Green Hill act 3, but with a lesser amount of speed.

Green Hill Act 2

Nothing of note here.

Green Hill Act 3

The springs that bounce you upwards were programmed very strangely in this game. If you aren't holding any D-pad direction when hitting it, your speed will be dropped to 0 and you will come to a dead halt. However, if you speed cap and continue holding right (or left) before hitting the spring, you will bounce off the spring with some of your momentum. Hitting the spring in this way also temporarily gives you a higher speed cap while you're in the air, meaning it is possible to go faster without a spindash using a spring. You also may notice that after landing, I can come to a dead stop and immediately spindash. This is performed by facing the opposite direction of where you are heading (example: press left if you are going right, and vice versa), and then pressing the direction you ARE heading as soon as you land. This is abused for a good majority of the run in order to get spindash speed. At the end of the third acts (except for Scrap Brain Zone), Robotnik will show up in his floating vehicle and a boss fight will begin. Hitting the boss will bounce you back depending on where you hit him. This can allow you to get on top of the boss and completely cheese several fights. But where's the fun in that, especially in a TAS? After defeating the boss, you can head right, hit the capsule, and end the level! On to Marble Zone!

Marble Act 1

After abusing slope collision to barely make an early platform cycle, you may notice I do not opt to push the block onto the button. That's because it's actually a LOT faster to hit the button to bring the chandelier up, then slip under with a spindash and damage boost at the other end, as it saves time over pushing the block and it also reduces lag! At the falling block section, I jump across the lava and sk- wait, jump across the lava? And not take damage either?! That's right! There is one frame after landing on the lava where you can jump out without taking damage. And you can do it again, and again, and again.

Marble Act 2

Nothing of note here.

Marble Act 3

This level initially was done glitchless, which involved going through a VERY slow section with a block riding across the lava. But in the middle of making this run, a person named MilsTailsPrower (MTP) showed me a route that involved abusing damage boosts to clip into the floor using a falling block near the beginning of the level. I also had to grab extra rings since a ring was also needed to damage boost past an obstacle in the wall. This new route ended up saving roughly 20 seconds over my previous time. Unfortunately, due to the precision needed in both timing and positioning, this is not currently viable for realtime speedruns. The boss has nothing of note here, so we can move on to Spring Yard Zone.

Spring Yard Act 1

Nothing of note here.

Spring Yard Act 2

Nothing of note here.

Spring Yard Act 3

There's a part where I have to jump twice in order to get onto the slanted surface up top. It is possible to get up there with one jump, but I was unable to get it to work, so I had to cut my losses and use two. Other than the game going 30 frames per second, the boss has nothing of note here, so let's move on to Labyrinth Zone.

Labyrinth Act 1

If you go above water after spindashing underwater, you will have an insane amount of speed when you jump out. It's most likely another case of poor programming, but either way, it allows me to jump straight across to the shortcut without needing to go underwater, which saves quite a bit of time.

Labyrinth Act 2

After going down the waterfall, instead of going left, I continue going right, and jump into the spring. After the spring boings a second time, I end up walking up the wall into the ceiling. This is also used in a realtime run, albeit a lot slower since runners use a more consistent method. I am not fully aware of how it works, but it most likely has to do with the slope and the spring. Anyways, after making my way through the ceiling, I end up on top of the entire level and can spindash my way to the end. I jump down into the water, spindash, and jump out of the water to save a bit of time due to the higher speed.

Labyrinth Act 3

After hitting the switch, I actually don't go the normal route. I instead go back down, and somehow I'm able to jump above the screen and go over the level again. This is because vertical wrapping was not handled properly since you're not supposed to be able to go back up top, so now it allows me to jump above the screen and skip the entire level, like Labyrinth Act 2. I can go back into the level by jumping down into the last waterfall before the ascent area. After getting to the top of the area where the boss is, I have to wait for the boss to catch up. If I had gone and hit the capsule immediately, the game would softlock due to the camera glitching back to the left and making Sonic get stuck against the edge of the screen, making the score tally not show up. So I have to wait for the boss to finish his path, then I can hit the capsule on the first frame after he finishes the path. Now on to Star Light Zone.

Star Light Act 1

After going past the first big slope, I'm able to hit a specific part of the staircase thing and jump past, allowing me to skip having to wait for it to come down. This is also used in Scrap Brain Act 1.

Star Light Act 2

Nothing of note here.

Star Light Act 3

The seesaws in this game are very janky, and sometimes don't work properly. I abuse this by doing what I like to call a "super jump." It's done by jumping within a few frame window of the spike ball launching you up. This will send you super high in the air, and allows you to skip the three loops. This also gives you the higher speed cap like with the springs earlier in the run. I purposefully land on top of the level so I can get enough speed falling down to fall right through the elevator and save a bit of time. Now more avid fans may notice that towards the end of the act, one of the badniks that was supposed to spawn didn't. From what I can gather, I abused lag and sprite slots in such a way that I managed to prevent the Orbinaut from spawning, saving time over having to damage boost past. When you get to the boss, you can literally score three free hits since he stands there for a moment and does nothing. It's like even Robotnik got sick of this adventure, aye? Anyways, after beating him, we can move on to Scrap Brain Zone.

Scrap Brain Act 1

Nothing of real note here, besides the fact that Act 1 on the Gameboy Advance is easier than the original, since the electrical objects near the end are missing.

Scrap Brain Act 2

Nothing of note here.

Scrap Brain Act 3

Nothing of note here.

Final Zone

I had to delay entering the boss room, since if I had gone in as soon as possible, the boss wouldn't have spawned and I would be softlocked and forced to reset. I showcase a bit of RNG manipulation by making the boss come out of the same crusher three times in a row. There also isn't a lot of heavy movement in order to reduce lag. It's possible to hit the boss so fast that you can get a second hit in on every cycle, greatly reducing the amount of time needed to kill the boss. This is what is usually called a "4-cycle fight."
And with that, Sonic the Hedgehog Genesis is completed in 16:46.89! We've come a long way through this laggy adventure, but was it worth the pain?

Other Comments

I want to thank four people:
  • AlecK47 for his RTA speedrun guide, without which I probably would have a much slower run than this.
  • MTP for showing me that Marble 3 route that ended up saving a massive amount of time!
  • BahnDaten for his Sonic 1 GBA TAS that was used as a routing reference.
  • rodonic1 for creating a temporary encode for this run!
There are definitely improvements that can be made, like better lag reduction and different routing in the levels.

Technical Information

Emulator Used:

  • BizHawk 2.8

Sync Settings (in case of desyncs):

  • Skip BIOS: True
  • RTC Use Real Time: True
  • RTC Initial Time: 1/1/2010 12:00:00 AM
  • Save Type: Autodetect
  • RTC: Autodetect
  • Rumble: Autodetect
  • Light Sensor: Autodetect
  • Gyro: Autodetect
  • Tilt: Autodetect
  • GB Player Detection: False

ROM Checksum:

  • SHA1: 31b9dee3b9289a32218f0e39667a6c2504e3f3d0

BIOS Used:

  • GBA BIOS (J) (TS2 Version).bin (CRC32: 81977335)

GoddessMaria: Claiming for judging.
GoddessMaria: Hello, my apologies for the delay! To start, I have to say that this is very impressive work in breaking an already unstable mess of a game into something entertaining while also keeping the speed flowing as much as allowed by the wonky physics! On first glance, it doesn't seem like it's optimized well... but that's due to the game itself rather than anything on the author's end. The lag management was well done also. Good stuff!
Accepting~

EZGames69: Processing...
Last Edited by EZGames69 on 4/28/2023 1:07 PM
Page History Latest diff List referrers