Intro
Goals:
- As fast as possible
- Takes damage to save time
- Uses various amounts of players (1 and 2)
Tricks
Keeping jumpkick speed with Nightcrawler
Nightcrawler has a maximum of one down/diagonal/forward kick per jump. After the forward kick ends, the speed gradually decreases back to 0, quicker if you hold forward. If you press the kick button again after the jumpkick ends, the speed is preserved.
Dropping quickly
With Nightcrawler: If the kick button is pressed on the same frame as the kick ends, the gravity is increased.
With Wolverine: If the A-attack button is pressed on the frame after you stop holding the jump button, the gravity is increased.
This is used to drop quickly, or to adjust the length of a jump.
Ending level early
If you end up inside a wall, the game checks for collision with the end level area before ejecting the character. This is used in the first level and in the second sentinel factory level. The application of this trick in the second sentinel factory level was found by the speedrunner rggibson.
Fall through thin floors
Related to the trick above, if you fall at a high speed and an upkick ends at the same frame as you hit the floor, you can go through it. This is because of the different shapes of the hitboxes of the upkick and the falling animation. You need a high downward speed to perform this, around 16-18 pixels/frame. Used in Jungle 1.
Fall through thin floors near trees
Similar to above, but you do not need a high downwards speed. Coming out of a regular jumpkick is enough to make this happen. Used in Jungle 2.
Quick damage recovery
By being close to the ground and in an upkick on the same frame as taking damage, you regain control of Nightcrawler directly.
Temporary invulnerability
After scoring a hit on an enemy, you are invulnerable for a few frames. Besides being generally useful when kicking/slashing through enemies, this can be used to pass through the spiked pillars in the pyramid level, by kicking the barriers that drop down (which counts as enemies).
Slide
By pressing left every other frame, the character moves at walking speed to the left, locked in one frame of animation. It can be used for example to duck-slide along the ground, but mostly it’s used for entertainment.
Hang in the air after teleport
By holding B after doing an aerial attack and then teleporting, you can infinitely float in the air. It doesn’t really save time, so it’s mostly used for entertainment. Enemies receive 2 damage if they touch you while you are floating.
Corner boosts
When jumping off a ledge or hitting your head against a corner, your position can be shifted several pixels. This is used throughout the movie.
Movement
All characters have different speed when walking, jumping and attacking. They also have different gravity (Magneto has the lowest, Nightcrawler/Psylocke/Gambit the highest), which gives makes each character handle differently. This was thoroughly researched before starting. As is often the case, each pixel consists of 256 subpixels.
The most important speeds are Nightcrawler’s jumpkick (8:252, no acceleration) and Wolverine’s lunge (6:68, no acceleration). Walking speed varies between 2:194 (Magneto) and 4:20 (Nightcrawler).
Attack damage
The characters have different damage for their attacks. This was also mapped beforehand. Generally, all characters get a stronger A-button attack when the health is in the yellow. For the characters used, the damages look like this:
- Nightcrawler
- Regular attacks: 2
- Teleport without yellow health: 1
- Teleport with yellow health: 4
- Wolverine
- Regular attacks: 2
- A-button attack (lunge) with yellow health: 8
- Beast
- Regular attacks: 4
- A-button attack (ground pound): 8 (regardless of health level)
Nightcrawler does not need to fully charge his special bar to do full damage, unlike Cyclops and Gambit. The charge only determines how far he will teleport.
Lag and hex-editing
The built-in lag detector in Gens does not detect the lag in this game. That does not mean that there isn’t any. We built our own (very simple and inaccurate) lag detector in Lua for this.
Hex-editing works surprisingly well with this game, except for stages that are laggy. In those stages we needed to find where the lag frames differed and insert/remove extra frames. Other than that, this game is very non-random.
Start Level
The game uses a cold open (hah, snow level), similar to a Bond movie. The action starts immediately when you turn on the console. You are assigned a random starting character, but since this the emulator is deterministic, you are always given Beast or Wolverine depending on the type of controller connected. However, we noticed that some button combinations affect this, and managed to get Nightcrawler instead.
The level is a good example of what the game is going to look like. The trick to preserve kick speed saves a lot of time.
When the level ends, the regular SEGA logo and game intro is shown. After this you get to select characters between most levels.
Factory 1
Not that much to say. You need to destroy the consoles throughout the level, so that electrical shocks are sent into the security doors. Some consoles can be reached through the ceiling with Nightcrawler’s upkick.
Factory 2
This level works similarly to the previous one.
The level ends early with the trick mentioned above. The jumpkick sprite is wide and and low. the standing sprite is high and narrow. When switching from the first to the second close to the floor, it’s possible to touch the goal area, below the floor.
Sentinel Boss
Not that much to say about this boss. You destroy the plates circling the core, the boss shoots stuff at you. The time between hits is long, we can afford to goof around.
Factory 3
This is just Factory 2 backwards, without enemies. You do not get to choose a new character before this stage starts.
There was no reason to avoid damage like the previous run did since your health is automatically refilled in the next stage. So we abuse damage as much as possible to get through the walls of fire.
Space Base 1
We take the top route rather than the bottom as it’s a much straighter path. Other than that, there’s not much to say about this level other than... it’s fast.
Space Base 2
The guys with sticks damage you if you touch them, and are invulnerable while holding their stick. Since they don’t throw it until they have been in view for a good while, they need to be avoided.
There is a nice shortcut when going up, by jumping off the wall and teleporting diagonally it is possible to reach the side of a hole you are supposed to jump over later.
There isn’t much to say about the boss, Cortez. We use mostly yellow-health teleports (4 damage) instead of stomps (2 damage) to kill him almost twice as fast.
Falling Level
You fall painfully slowly in this level, to give the player a chance to steer away from the electric fields. To hell with that, full stomp speed towards the bottom!
Exodus
The only level which is unimproved over the previous movie.
Wolverine is the optimal character in place of Beast here, because 1) he can do 8 damage in the air, and 2) the invulnerability period of the boss is very long.
Magneto
The first part is just a run to the right and break some blocks. Then there are some sturdier blocks which you have to get Magneto to break (funny, since his regular attack only does 1 damage). At the end, you have to hit Magneto from the left side so he ends up in the swirling energy field.
After this level, you can play as Magneto. Unfortunately he suffers from playable boss syndrome, and therefore blows. He is slow and his attacks are weak. He can cheese a lot of the bosses though, by flying and shooting.
Pyramid Climb
The previous version used Wolverine here because he can kill the boss very quickly. We use (who else) Nightcrawler, and indeed, lose around 460 frames on the boss. This is made up by the rest of the level, which is improved 1340 by faster movement speed and two shortcuts with the teleport. The screen has problems keeping up when we change directions.
There was a user in the thread of a previous submission, who suggested that it is possible to skip floors with the teleport. He was unable to figure out how he did it, and we have not had any luck either. Until we see some indication otherwise, we are skeptical that this is possible.
(Addendum: three years after writing that, I found that it is possible, and how to do it. See
this post.)
Inside Pyramid
This is a pretty laggy level, with lots of enemies.
The spinning spiked columns do 3 damage, unlike basically everything else in the game, which does 1. By hitting buttons strewn about, you can make the columns reverse their direction. That, or you can just teleport through them.
There are several new tricks regarding the pillars that fall down.
1) With the right hitbox and a properly timed kick, you will just BARELY get past a pillar before it falls down.
2) If you destroy a pillar right next to a column, then you will go right through it! You are given a short period of invincibility when you deal damage. This is just enough to get us through the column unscathed.
Apocalypse
The boss works like this:
Apocalypse drops a pattern of spikeballs, which go three rounds. When all balls are destroyed, the next pattern starts. Some of the patterns contain explosive balls. After destroying three of these, Apocalypse appears and fights you for a while. If you fail to kill him, he starts throwing balls again. (If you avoid him during the fights, and destroy enough exploding balls, the generator in the middle shuts down and Apocalypse comes out to fight you constantly.)
The main way to speed up the fight is to take damage from the spikeballs, so that the pattern ends sooner. You need to have Wolverine in yellow health when Apocalypse appears, or he will just do 2 damage per hit instead of 8. By taking damage from the correct balls, this level was improved 500 frames.
Apocalypse has 60 HP and is invincible until he stops in the middle to fight you. He groans when hit otherwise, but does not actually take any damage. This took a while to figure out.
It is possible to finish this level about 750 frames faster by using two characters, and using the one who isn’t Wolverine as a meatshield to detonate all the balls quickly. Unfortunately, even if the second player is killed off before the stage ends, the game is then stuck in two-player mode and the frames are quickly lost in the following stages.
Jungle 1
This and the next level has lots of thin floors which are supposed to be impassable, but can be broken through with enough speed and changing your hitbox as you touch them.
Jungle 2
There is a falling glitch that happens mid level. This is just because of our hitbox changing very close to the ground. So the game forced us to the bottom.
Purple Base 1
This and the following stage have green slime which slowly fills the level from the bottom. You wouldn’t know it from watching this TAS. You need to navigate the platforms and move upwards to a door while crazy aliens fire at you.
The door at the end has blocks that needs to be destroyed before the level ends. The fastest way to attack when there is no invulnerability time is rapid diagonal kicks.
Purple Base 2
Just more of the same.
Beast to the rescue! The boss has short recovery time and is on the ground, which fits Beast and his ground-pound move very well.
We take damage here for two reasons: if you have less than yellow health, the high-damage ground-pound move is slightly faster, and if you pick up the leftover health after the fight, there is less lag when the boss explodes.
The boss’ final form is tricky to manipulate and doesn’t always go where we think it should. It also has a death animation which doesn’t start until the current action is complete, so killing it sooner does not necessarily mean an improvement.
The explosions cause lots of lag and it’s best to keep away from the boss during this time for that reason.
Yellow Base
We decided to switch from Wolverine to Nightcrawler. As in the pyramid level, Nightcrawler can do the level a lot faster (around 1600 frames) but loses time on the boss. Not that much, though...
The boss has 50 HP, and a very short invulnerability time (20 frames). For this reason, the teleport hits twice if done right. The boss continues its current action until it isn’t hit on the first frame possible, so it’s possible to make it walk across the room without transforming. It’s also possible to keep hitting it after it has reached 0 HP, which the previous version did. It only dies after you stop hitting it on the first frame possible.
We use a strategy of upkick (2 HP) and doublehit teleport (2x 4HP) for 10 damage every cycle. The boss needs to be kept in hitstun. If there is too much delay between hits, the boss goes invulnerable and teleports to the right side of the screen.
After killing the boss, the level fades out directly if you go outside of the screen to the left, without waiting for the boss to finish exploding. Pretty weird. Saves about two seconds.
Elevator
This is the most boring level in the game. Feel free to fast-forward through it. After some time, a boss which goes down in two hits appears, and the background takes LSD.
Blue Base
This is where invisible lag struck heavily in the movie. No problem for us though. Since we’re moving at twice the normal speed, the savings come from having less lag in addition to the increased movement speed.
Green Base
Falling sections mixed with green gooey rooms, filled with organic enemies. Not much to say about the level.
Bug Boss + Clones
Time for some two-player madness!
The big bug can be killed in one round (three hits) with Wolverine - it has 24 HP and every A-slash does 8 damage. Since the rounds are very long, this saves lots of time. A similar strategy with one player can kill the boss in one round. The strategy is performable in real time, but usually means you take damage after the first A-slash.
The bug boss behaves slightly different when there are two players. The wall is slightly further to the left, which means Wolverine can duck under the last attack. Also, the player’s temporary invulnerability after scoring a hit is longer, which means that we don’t take damage despite ending up inside it. This means we can attack sooner, and the boss fight is about 100 frames faster as a result.
The game runs at half framerate with two players. This is compensated by the players moving twice as long every other frame, so the action continues at the same pace. This actually means the game is MORE lag-tolerant when there are two players, since it already updates every other frame. However, the input precision is halved. For some reason, the running scene is twice as long if you are two players. Because of this, we kill off Beast.
The clones have 32 HP each and retaliate with regular attacks when they get hit. Psylocke and Gambit have especially long range, and can hit you even if you are behind them. After about half their health is gone, they start to turn into formations of yellow balls for special attacks, and are then invincible. For this reason the two last hits need to come in quick succession.
The clones also have a rather long death/explosion animation, and normally the screen scrolling isn’t unlocked until it is complete. If you scroll the dying boss far enough outside the screen however, the dying boss object is removed and the screen scrolling is unlocked directly. Only Beast and Psylocke have boss rooms wide enough for this.
Sonikkustar: At first I was a little skeptical that I could do any sort of run for this game:
“I wonder if the run is even improvable though.”
But after experimenting around, I discovered the jumpkick glitch. It was from that point that we were able to make some serious & I mean SERIOUS improvements to /*-’s movie. While not really a movie that stands out among the other big Genesis movies, I had a fun time making this run. Not only was it incredibly fast paced, It had a lot of room for me to fool around & be entertaining (something that I love to do during waiting times). I hope you enjoy watching this run as much as we had making it!
Truncated: I’ve wanted to do this run for quite a while. It has an interesting moveset and several characters on top of that. When Sonikkustar said he was thinking about doing it, I jumped at the opportunity. And after he found a way to keep jumpkick speed the whole time, I knew it would be great. Progress was pretty good, we did not get stalled for that long on any specific section. See you next mission!
We would like to thank:
- /*- (slashstardash) for his previous TASes of this game
- rggibson, for his speedruns of this game
- feos, for helping us with finding RAM addresses and making maps of all stages
- Heidman for tipping us off about a bug rggibson found
- Aqfaq for installing popcorn
adelikat: Accepting for publication as an improvement to the current movie.