Attributes
- Aims for lowest real time / frame count
- Takes damage to save time
- Abuses minor glitches
Overview
This is an improved any% TAS of Hagane, which improves the currently published run by 3397 frames, or roughly 3950 frames after emulation differences of lsnes vs snes9x 1.43 are factored in. Record time was achieved through better general optimization, new boss fighting techniques and some minor tricks.
In this game, it's important to optimize both Hagane's positioning and the screen's positioning, as it sometimes triggers important events faster if the screen reaches certain area earlier.
Click here for a comparison spreadsheet of improvements with emulator differences roughly calculated
Movement, tricks & glitches
Movement speeds
- Sliding = 3 pixels per frame, lasts 32 frames. 1 frame of walking is required between slides. By far the fastest movement method, which the previous TAS failed to realize. Cannot be performed on upward slopes, so reverse tumbling is usually the best alternative for clearing those.
- Reverse tumbling = 3 pixels per frame, takes 3 frames to initiate.
- Spinjumping = 3 pixels per frame, lasts 48 frames. Loses variable amount of pixels before and after use depending on room structure.
- Walking = 2 pixels per frame BUT moves screen 4 pixels per frame if Hagane isn't at the edge of the screen. All 3-speed moves only move the screen 3 pixels per frame, so this is often used to shift the screen forward right before an auto-screen-scrolling cutscene.
- Tumbling = Same as walking.
- Midair = 1 pixel per frame.
Wall climbing & zipping
When Hagane is using the grappling hook and moving backwards, collision detection is disabled. This can be abused to quickly climb upwards by rapidly entering walls and jumping off of them before they eject Hagane out.
Alternatively, ejection can be used to quickly zip forwards during over-or-underhanging edges. Zipping is the fastest way to move, but is not the fastest way to advance the screen's movement, as the screen only moves 1 pixel per frame forward during zipping. Therefore, it is sometimes faster to not zip and maximize the screen's movement speed instead.
Ground zipping
Although very rarely useful, it is possible to perform a minimal zip forward by performing a midair downward kick on a declining slope, and then performing a frame-perfect ground slide as Hagane lands. This saved 1 frame in both stages 1-1 and 4-1.
Auto-scroll-cutscene trigger skip
An interesting mechanic that was only implementable in stage 1-1, as there's a certain height where the auto-scroll-cutscene will not trigger anymore. By spinjumping above the trigger in order to push the screen further much faster - with 3 pixels per frame speed as opposed to the usual 1 pixel per frame (auto-scroll) speed - a bunch of frames will be saved.
Stage ending cutscene skip
At the end of stages 3-1 and 3-2, the game disables inputs, so normally you would have to wait a while for something to happen. However, there's a way to get around this by performing precisely-timed tumbling attacks. Tumbling can be buffered, even if inputs aren't being received anymore. This is performed in stages 3-1, 3-2, and 5-1.
Lag reduction
Whenever lag would be caused by sliding, spinjumping usually reduces it, while also almost being as fast of movement. Other techniques include staying crouched and eliminating as many enemies from the screen as possible.
Stage by Stage comments
With the exception of 1-4 and 3-3 (both autoscrollers), every stage has been improved compared to the previous TAS. For a more detailed list of improvements, please view the spreadsheet linked earlier.
1-1: Improved quite a bit by sliding as much as possible and performing cutscene trigger skip before both airship sequences.
1-2: Sliding and spinjumping to completely eliminate lag near the beginning. The screen is positioned further forward before the miniboss. New miniboss fighting technique which allowed for 1-rounding it.
1-3: Optimized wallclimbing further, saving many frames.
1-4: Autoscroller. Boo, 0 frames saved...
Boss 1: Lag was reduced by crouching during the boss's rising animation. Second upwards kick was performed faster by sliding to the required position instead of spinjumping.
2-1: Surprisingly only 7 frames were saved here by having the miniboss perform a better pattern.
2-2: A million frames were saved through better optimization, especially regarding the screen's position which allowed for further zipping.
2-3: Frames saved through the screen's position and moving faster.
Boss 2: Seems simple, yet over 20 frames were saved.
3-1: Sliding, sliding, sliding... saving, saving, saving the frames. Cutscene skip at the end to reach under the surface quicker.
3-2: Spinjumping a bit here to reduce lag and to destroy the breakable walls due to blocking enemies. Improved elevator-climbing section majorly by not grapple wallclimbing as the setup for it takes too long. Improved miniboss by using 3 bombs before it is even visible (nice find Omnigamer). Finally, cutscene skip implemented to save half a second.
3-3: Autoscroller. Boo, 0 frames saved again...
3-4: Autoscroller again, but this time, 2 frames were saved by spinjumping at the right edge of the screen near the end, as that's what triggers the level to end.
Boss 3: Very RNG-dependent boss. The RNG loop is ~1700 frames long, from which I tested "only" 130. This was the best result among them, saving a million frames.
4-1: Sliding, sliding, sliding.
4-2: Further optimized and added 2 more brand new zips to save a million frames.
4-3: Sliding, sliding, sliding again.
Boss 4: Brand new tech all over the place to save almost 2 seconds.
5-1: Further optimized airplane kill and faster post-train cutscene.
5-2: Better.
5-3: Sliding to get into position to upwards kick 18 frames earlier.
5-4: More and better zips, more optimization.
5-5: Much faster first zip through the face and wall, along with screen manipulation for the auto-scroll-cutscene and faster destruction of the wall near the exit.
Boss 5: Better RNG - 3 x 50% chance for arm attack, and 50% chance for exposed piece to appear at either side which is required to 1-round the boss with upwards kick + bomb - saving a million frames. Not sarcastic this time - this was the largest time save of the entire TAS, a whopping 1355 frames.
Final Boss: Better optimization by using 2 bombs instead of 1 to save almost 10 seconds.
Potential improvements
- RNG could possibly be better in some places like Boss 3, but manually testing all of the RNG's ~1700 values would take a lot of time.
- A few frames can probably be saved in a complex stage such as 2-1 or 4-2.
Thanks to
- Omnigamer for providing various useful info about the game throughout the TAS and for creating useful lua scripts
- Previous TASers (Tiger & Heisanevilgenius) for having something to compare against
- ED
ThunderAxe31: Judging.
ThunderAxe31: File replaced with a 1 frame improvement.
ThunderAxe31: File replaced with a 31 frames improvement.
ThunderAxe31: Nicely done with the optimization! Accepting as improvement over the current publication.
feos: Pub.