I managed to get ahold of Shinryuu on Discord. Even though he's retired, so to speak, he's been more than willing to talk shop, answer questions, make suggestions, and all that good stuff. It's been a ton of help. Thank you, Shinryuu!
Persuant to these conversations, I tried some new stuff, much of which ended up saving no time, but much of which did. I'll go stage by stage and tell you what's new.
A frame perfect menu on the title screen which I was previously unaware of lets me get into the action one frame sooner. It throws off RNG (and some other stuff) though, so say goodbye to all those extra lives :(
Another small optimization in the fan fiend section lets me get to the end even sooner, for a total of 2 frames saved...but I had to throw it all away to RNG. The rest of the run doesn't even desync if you paste in the old inputs. But in case it does later, I've decided to swap out the time/entertainment tradeoff (which doesn't actually lose time) for a perfect segment. You never know!
The stage is the same, but the boss fight plays out a little differently. Shinryuu pointed out that these fights don't end on a timer, but rather, as soon as Mega Man teleports fully offscreen. As such, it saves time to end the fight as high up as possible.
By ending the fight on the upper ledge, I manage to make the previous frame rule and save 8 frames. I actually sacrifice a frame to get up there, but the frame rule is indifferent to it.
Most NES Mega Man games have some property like this.
The Item-2 section has been updated. By using the Item-2 lower down, I'm able to hit the ground sooner and save some time. A slick mid-air weapon switch allows me to dispatch the scrubbing bubble guy quickly, rather than waste frames jumping over him.
Metal Man himself doesn't put up much of a fight. Actually, I discovered some interesting properties of his AI.
Metal Man will jump in two situations:
- When you get too close, he jumps to the other side of the room (I call this violating his personal space).
- When you press B (a bullet does not necessarily have to spawn), he jumps at a height determined by RNG.
What happens when these two conditions occur on the same frame? Well, it turns out the B press one takes priority! So, with frame perfect shots, you can keep him on one side of the arena no matter how close you get. This is probably already known, but it's nice to put it into writing.
In addition to these improvements, there are two new stages for you to enjoy! Once again, these comparisons are to my Zipless v1.0 TAS.
Stage save: 38 frames
Boss save: 18 frames
Total save: 56 frames
Where did all this come from? Well, for starters, there's the terrible double frame rule for Bubble Man's health bar. It's already been discussed on I think finalfighter's website, so I'll briefly summarize it: health bars tick up every 4 frames, but being underwater makes that not happen every 5 frames. It's easy enough to manipulate once you know about it, but I did not get lucky on v1.0.
However, this only accounts for 4 frames. The rest is simply due to sloppy play. For instance, in 1.0, I did a jump with a Metal Blade and let the throwing animation play out after I landed...just holding right. I also killed the hermit crab in the first room instead of taking damage from it (the faster method), improperly dealt with a throwing animation at the end, and let a bit of lag through at various points. Plus, I didn't know that double death saves time, so I didn't look into it; that accounts for 16 of the 18 frames saved in the boss fight!
In this version, I'm particularly proud of the part before the second angler. There I'm able to jump (the timing is frame perfect) and shoot the shrimp, completely avoiding the throwing animation which we resign ourselves to in realtime runs.
As I write this comment, I've discovered a 4-frame save in Bubble. However, I need a 7-frame save to beat the next frame rule. Still seems worth pursuing, though.
Stage save: 50
I didn't finish this one yet. I kinda didn't feel like doing the boss fight... But I managed to save 50 frames in the stage, which is kind of hard to believe! Here's how I account for that:
- Poorly timed jumps and weapon switches
- Wasting time before shooting the Item-2 at the 3rd pillar
- Wasting an Item-2 energy early on kills 19 frames of super fast movement
- Sprite flicker during the switch to bubble.
Note that, for whatever arcane, terrible reason, the underwater lag actually persists from Bubble Man's stage, but only during the teleport-in animation. As luck would have it, I got a lag frame on the first jumpable frame for this stage...so I can probably save that. I'm actually right on the cusp of a frame rule for the Bubble fight, to the point where I cannot afford to waste a single frame.