Submission #6534: warmCabin's NES Mega Man 2 "zipless" in 27:16.17

(Link to video)
Nintendo Entertainment System
zipless
FCEUX 2.2.3
98332
60.0988138974405
100019
Unknown
Rockman 2 - Dr. Wily no Nazo (J).nes
Submitted by warmCabin on 10/15/2019 8:06:03 AM
Submission Comments
The first two Mega Man games are famously pretty busted, which makes them a ton of fun to TAS. This movie abstains from certain game-breaking glitches to present a more "authentic" run, while being no less optimized than the famous glitchy any% run.
It pains me that I have to zip this to submit it...but rules are rules :/

Game objectives

  • Emulator used: FCEUX 2.2.3
  • Forgoes time-saving glitches
  • Aims for fastest time
  • Takes damage to save time
  • Loses time to save time
  • Heavy luck manipulation

Man, this submission text really spiraled out of control! It's become a compendium of all my Mega Man 2 knowledge. I encourage you to use it as a reference; don't read it all in one sitting!
For judges and casual viewers, the "Introduction to the Category" section should be sufficient for your needs.
With commentary:
This commentary is over a dated version of the run, but almost all of what I said still applies. I'll update this at some point.
Suggested screenshots
It's possible I got a little carried away with these...
The dragon one (67704) is definitely a good choice. But I kinda like them all!
When I first set out on this journey, I thought it was going to be easy. Just a little warm-up, to get the hang of TASing. No zipping, no sliding, no charge shots, instant acceleration...how hard could it be, right? Oh man was I wrong!
Even without zips, there are all kinds of things to consider if you want to make a good Mega Man 2 TAS. Like framerules, lag reduction, Item 1 timers, quantum shots, double death, straggling throw animations, weapon hitbox persistence, flicker-elongated animation timers... not to mention the three incredibly close routes I considered!
I've learned a lot about this game, and even made a few friends along the way. I'd like to give a special thanks to Shinryuu for teaching me stuff and helping me with the parts I couldn't quite figure out myself. And also everyone in the Mega Man speedrunning community, who shared some good ideas like Visan's ride (which sadly didn't make the cut) and the two-platform jump in Wily 1.

Introduction to the Category

The Rules

  1. No zipping of any kind
  2. No delay scrolls
You can think of this as the "no major glitches" category, or maybe "in-bounds." But its name is "Zipless," and I believe that should be the branch name.
This game is full of ways to get yourself stuck inside a wall and pushed around at breakneck speeds; All of these methods are banned. These include:
  • the bad collision detection on Items 1 and 3 and other platforms
  • a yoku block spawning at your position
  • aligning yourself with a wall during a screen scroll
The delay scroll ban is to keep within the "in-bounds" spirit of this category. It didn't seem right to scroll the screen in the wrong direction, even if I'm not inside a wall!
Full disclosure: there's a little jump I do in Heat Man's stage to skip some of those disappearing blocks which may seem dubious to some. The RTA community has long considered this to not be a zip, and the people I asked in the TASVideos Discord seemed to feel the same way.

For those of you worried that zipless is just any% but without the zips...well, yeah. Duh. But I feel like there's a lot more to this category than that! You'll see a unique route through the game (robot masters and Wily stages), as well as a number of tricks and tactics that don't apply to standard any%.
Here are a few things you'll see here that aren't in the "zipful" run:
  • Going toe to toe with the toppling cans in Metal
  • Gunning down half of the mechs in the game (as opposed to none of them)
  • Wood Man's entire stage
  • Fighting the Mecha Dragon, for the first time in 13 years
  • All the wonderful screens that get zipped past!
I will say this: if Items 1 and 3 didn't work quite like they do, zipping would not be so prevalent, and this is roughly what the run would look like.

Similarity to Rockman Complete Works

I am well aware of the PlayStation port of this game, the differences, and the TAS of it. paosidufygth did an excellent job with it, and I studied his work closely.
For those who don't know: most zips are patched out in Rockman Complete Works, making the TAS of that version of Mega Man 2 very similar to this one. So why should you watch a run that accomplishes the same thing via self-imposed restrictions?
Well, for starters, vertical zips still exist in RCW, allowing paosidufygth to skip a few screens that I can't (or won't, I guess). There are also a few of what I call "minizips" in Wood and Wily 4. There's also instant weapon switching in RCW, whereas the NES version requires you to waste 40-50 frames for every switch. So, for better or worse, my run favors weapon loyalty. This difference leads to some interesting optimizations and challenges in both versions, but I can't say it fundamentally changes the nature of the run. Finally, I show off a completely different route, which I believe would be faster for the PSX version as well. I'm not sure how instant switching affects it, but I'm fairly confident.
I hope you're still willing to give this run a watch.

Routing

The classic zipless route is:
A Q M B H F W C
We start off with a relatively simple Air, and use Item 2 in every subsequent stage--even Quick, if you're fancy. You won't see Items 1 or 3 until Crash, which is very late in the run. This is the route that I started off with for this TAS.
The only problem is, Air first is SLOW.
It turns out that Item 1 (which you get from Heat) saves so much time in Air that it's worthwhile to make almost every other stage slower. aglasscage and I both came up with routes respecting the H→A constraint. His does Metal late, mine does Metal early, but they are otherwise identical. My route is faster mainly because Metal Blade speeds up the Flash and Bubble fights; I believe aglasscage's route would be faster for Normal mode.
My route turned out to be 90 frames faster than the RTA route, and 40 frames faster than aglasscage's. That's really close! Click here to see a comparison of all three routes.
For reference, the routes are:
warmCabin:  Q M B F H A W C
aglasscage: Q B F H A M W C
But of course, the game doesn't end after beating Crash Man. There's still half a game left to play!
I initially tried the RTA Wily route, which uses Item 2 in Wily 1 and refills it in Wily 2. But the 80-frame refill plus the ~50-frame extra pause outweigh the ~70 frames saved by riding Item 2. So, I kept Item 3 out for the entire first section, which ended up saving 30 frames overall.
There was only one problem: I no longer had enough Item 3 energy to do Wily 4 in an optimal way. So I had to go back and lose some time in Wily 1 (within the framerule!) to save 2 bars of energy. It still wasn't quite enough, but it got me to a position where I could switch to Item 2 and do the rest of the stage pretty fast; there is a single ladder climb that should use Item 3 but doesn't. With some optimizations in Wily 4, I was able to save time and energy, enabling me to do that ladder and the moving platform room with just a single sliver of energy. Even with just one use, Item 3 saves a lot more time on ladders than you might think. It's about a second faster overall.

Basic Movement Tech

The Mega Man games already have a good game resources page, but there are a few interesting things not listed there. In this section, I'll list these things and summarize the relevant details from that page.

Grounded movement speed

Walking is faster than jumping, for some ungodly reason. It's important to keep your jumps short.
If you need to adjust your subpixels, extending a jump is a good way to do it.

Jump height

The highest jump in Mega Man 2 is 12 frames. 1-11 frames all result in distinct jump heights; 12 is substantially higher than all the others, so try to avoid full 12-framers if you can.

Avoiding tiptoes

When moving from a standstill, Mega Man will do a little tiptoe as he gets up to speed. This is incredibly slow, so be sure to do a 1-frame jump to cancel it whenever possible.
You can avoid it when landing from a jump by making sure you hold a direction for at least one frame in the air.
Tiptoeing is a good way to make small adjustments to your position when riding items or otherwise waiting for something.
Exception: at the beginning of Metal Man's stage, it's actually better to tiptoe because the conveyor belt is so fast.

Ladder Tech

Climbing speed

Climbing ladders is incredibly slow in the first two Mega Mans (Mega Men?). You want to spend as much time jumping up them as you possibly can. When VY=00.9F is the best frame to grab on.

Ladder snapping

If you hold up, you can grab ladders early and snap to their position. If you do this from low enough below, you'll get a really nice upwards boost. But if the ladder is within two tiles of you vertically, this vertical snap is actually slower than doing a full jump.
If you press up at just the right position near the top of a ladder, you will snap straight to the top without a single frame of climbing. If you're jumping from too low, this can be slower to set up.
There is horizontal ladder snapping as well, although it's not quite as potent.

Ladder fidget

In Mega Man 1, you can cancel throwing/shooting animations on ladders by dropping off and grabbing back on. But this ain't Mega Man 1; in Mega Man 2, those timers are persistent! However, by repeatedly dropping off and grabbing back on while the throwing/shooting animation plays out, you can gain a bit of height, even though you steadily descend during the process. This behavior is very mysterious to me.
Fun fact: I discovered this by accident about a year ago! I thought would be a funny thing to do during the waiting time, but I noticed I was getting mysteriously better positions afterward.

Offscreen ladder tech

Grabbing ladders offscreen is weird. If you press down when Mega Man is fully offscreen, you will get a vertical boost once you press up on the next screen. It's usually by 16 pixels, but it can actually be more depending on your Y position and the magical anime girls that Shinryuu tells me lurk offscreen.
For real, though. We've found that waiting on the platform for a bit and being at specific X positions can inexplicably give you better Y positions on the next screen. Super Mario Bros. has judges in its blocks, we've got anime girls on our ladders!

Turnaround subpixels

When you fall off a ledge and need to turn around, it may seem like you should brush up against the wall to get the best position. This is not always the case. Sometimes, you can actually be a few subpixels inside the block; that is, the ejection routine (which runs when you push in the opposite direction) puts you just a bit further out than the first position where you can actually fall. By moving past the wall on just the right frame, you can preserve this subpixel gain into the next area.
Sometimes, this maneuver may not be possible at all, and it will be better to brush up against the wall and get a X8.00. You just have to try it for each jump.
Note that this does not work if you encounter a left-facing wall (you are holding right) that transcends a screen border; you will be ejected to X8.00. Right-facing ones seem to be OK, though.
Optimal right-side subpixel: X7.00
Optimal left-side subpixel: X8.FC

Early switching

You can interrupt the teleport animation (when starting the stage or unpausing) with a pause 13 frames sooner than you can jump and shoot. This is free timesave, and often makes otherwise slower strats the better choice.

Throwing animations

When using F, M, 1, 2, and 3, you get locked into a throwing animation, during which you cannot walk, only jump. The only ways to truly cancel it are to take damage, or to switch to a "shooty" weapon (like P) and fire it; this overrides the throwing animation with a shooting animation. If this seems impractical, don't worry! It comes in handy!
In most circumstances, the best way to mitigate the effects of a throwing animation is to jump for its entire duration. Of course, you want to time it exactly. Wouldn't want to spend unnecessary time in the air!
When using one of these throwy weapons, do not use in on the first frame of a jump! Your velocity is set to 0 for a single frame, but you can't see it in-game. It's a common mistake and a sneaky way to lose a frame.

Using the Items

Throwing animations make this tough. Be sure to try different jump heights when getting on and off Items, especially Item 1.

Item 1

Can be shot as late as the 11th frame of your jump. That's great if you're maximizing height, but that's not always the case. Sometimes you're maximizing for distance, or trying to find the minimum height that's high enough. Be sure to try multiple possibilities to see if any of them come out ahead.

Item 2

Can be shot as late as the 12th frame of your jump. If you're using this as a poor man's Item 1, all of the above applies. But if you're using its full capabilities as a rocket sled, read on.
When Item 2 is at full speed, it's going too fast for you to walk off the front; you get a weird grinding effect if you try.
You're gonna be on this thing for a while, so you'll have plenty of time to optimize your position. Get to the very right edge and tiptoe until the frame you fall off; then, go back one frame so you don't.
Sometimes, falling off can realign your subpixels in a way that results in better positions. If you have the patience for this, absolutely experiment with it in your runs.

Item 3

Item 3 is best used close to a wall, but not too close. Shoot it on the 4th frame of a full jump, then time that jump so you have the highest possible position when you land. It's not an early-as-possible or a late-as-possible scenario; it's parabolic. There's a sweet spot in the middle that you have to search for.
If there's a gap between the wall and the floor (as is the case in Heat), shooting in on the 4th frame won't cut it. Try it on the 5th frame instead.

Ice physics

Here's something you don't hear every day: I wish all stages had ice physics!
Ice physics in this game are very abusable for a TAS. When moving right, holding left will slowly decrease your velocity. But as long as you haven't completely reversed direction, your velocity will instantly snap back to full speed when you hold right again (this applies when moving left and pressing right as well). Using this technique, you can manipulate your subpixel to be precisely what you want. This enables you to get perfect turnaround subpixels every time, and saves a frame or two throughout Flash Man's stage.
I know this is pretty standard TASing stuff, but it's a breath of fresh air compared to the rest of the game.

Fractional energy

There are three weapons in the game that have fractional energy: Quick, Metal, and Bubble. This means that it takes more than one shot to drain a single bar of energy; that's 2 shots per bar for Bubble, 4 shots per bar for Metal, and 8 shots per bar for Quick. What's interesting here is that the fractional part is reset when you switch weapons, even if you switch to the same weapon (I guess the initialization code is always called). So, for example, by firing up to 3 Metal Blades (which costs 0 energy) and then switching weapons, you can essentially create infinite Metal Blades.
I don't really have the patience for that, especially not in a TAS! However, this property does become relevant in the context of a speedrun. If you fire 4n - 1 Metal Blades before you switch, you've saved 3 blades for the next time you pull them out. Watch my ammo during Wily 2 and the refights to see this in action.

Advanced tricks

Here are a few tricks and techniques that are a little more advanced. Try them out once you get the feel for basic movement.

RNG

RNG is a global variable that cycles every frame, even during lag. It is directly affected by your X subpixel position, which makes RNG manipulation an absolute joy in this game! You can almost always get exactly what you want without losing any time.

Quantum shots/shot entanglement

You'll notice that I apparently waste ammo during some boss fights and enemy encounters. This is deliberate: sometimes, the mere presence of additional projectiles on screen can make unrelated collisions happen a frame sooner or later. This behavior was known, but not named, so I decided to name it after quantum entanglement (aka "spooky action at a distance") due to the spooky correlations between seemingly unrelated things. I believe this has to do with the parity of the frame count and the sprite slot.

Flicker-elongated animations:

When Mega Man is flickering, his animations last longer. This usually manifests harmlessly as a slower walk cycle, but can cost time when you're unpausing/teleporting or getting knocked back. This has nothing to do with lag.

Ending the fight up high

When a boss fight ends, you have to wait for Mega Man to reach the top of the screen. As such, it is optimal to end the fight as high up as possible. This is pretty simple compared to some of the other Mega Man games!

Double death

A super flashy trick that optimizes fight end height. I believe this is the only Mega Man game where a double death counts as a victory.
It's not necessarily frame perfect, but it's still pretty tight. Certain fights seem to be more lenient than others, particularly the Bubble fight.

Straggling throwing animations

Normally, when a boss fight ends, Mega Man stands around blinking for a bit before he teleports away. But when you execute a double death, things are a little different: he remains in his current pose until he teleports away. The animation never gets a chance to reset, so it is carried over to the next stage. So if you happened to end the fight in a throwing animation, you've got a problem: a straggling throwing animation. It must be canceled as described above.
This is where the pause and switch method comes into play. If you fire a buster shot (or any shooty weapon), you can cancel this throwing animation, suffering only one frame of its effects. This actually comes up twice throughout the run, with the same two weapons: Metal → Quick.

Crash Bomb damage transfer

When a Crash Bomb is exploding, colliding with an enemy can sometimes cause that enemy to take damage as though you were the bomb! The valid positions for this are determined by your position the last time you took damage. I have no idea how this works, but finalfighter sure seems to; check out his crashbombglitch lua script, which helpfully draws boxes that show you precisely when and where you can execute this glitch. Using this script, you should be able to try different damage boosts until you get sufficient values.
This effect can sometimes be observed with other weapons, but it's not as well-understood or useful.

Framerules

  • Whenever a boss health bar ticks up, that's a 4-frame rule.
  • Whenever you get a health or energy refill, that's an 8-frame rule.
  • The GET EQUIPPED text is responsible for another 8-frame rule.
  • After Mecha Dragon and Guts Tank, the explosion is responsible for a 16-frame rule.
  • On the Wily's Castle map screens, the paths being drawn are responsible for a 4-frame rule.
The frame counter doesn't increment during lag, so a lag frame can actually push the framerule pattern backwards. This means that, if you think you've saved time in spite of lag, maybe you haven't.
There's also an interesting interaction involving double death that's unique to the dragon fight, and in fact, is an improvement to the any% movie.
For much, much more detail on this, checkout my writeup.

Underwater lag

Mega Man 2 implements underwater slow-mo physics by intentionally lagging out every 5th frame. Like most lag frames, underwater lag causes the game to freeze and ignore your inputs. But unlike regular lag, the frame counter still advances. Because of this, it seems like underwater lag shouldn't affect framerules; however, it interacts with Bubble Man's health bar in an annoying way, causing its own unique framerule.
This behavior is controlled by a counter at $FC.

Bubble Man framerule

Health bars increment every 4 frames, but what happens if there's underwater lag? Well, if the health bar would increment (frame counter is a multiple of 4), but there's a frame of underwater lag, it will not increment. If you watch Bubble Man's health bar fill up in slow motion, you'll see this manifest as a stuttering and inconsistent tempo where most bars take 4 frames to appear, but a few of them take 8.
You want to line up the multiples of 5 with the multiples of 4 such that you start the fight as soon as possible:
  • The first bar of HP should appear when the frame counter is red.
  • You should be able to jump 2 frames before a red frame
  • There should be a 133-frame difference between the first HP bar appearing and the first frame you can jump.
To manipulate this, you can delay your entry or exit from the water, or your entry into the fight. For the Bubble refight, you have to take this into account all the way back in Wily 3.
Bubble Man is the only underwater boss in this game, so this framerule is unique to him.

Item 1 values

Item 1s rise every 4 frames. This behavior is controlled by a series of timers in memory. Problem is, they're actually general purpose variables that are reused by several other weapons, and critically, not reset. This means that randomly shooting quick boomerangs in one stage can save you time two stages later.
Weapons that are known to affect these values are:
  • A: random fluctuations. [1]
  • B: random fluctuations. Sets value to 0 when it disappears against a wall.
  • Q: random fluctuations.
  • M: random fluctuations, diagonal shots only.
  • 1: Used to determine what frame to rise.
  • 2: Doesn't use them, but can sometimes set value #3 to 0 if you shoot it in a wall.
  • 3: Random fluctuations. Used to determine when to move sideways...I think.
Item 3s are controlled by a similar, separate set of values, in addition to the Item 1 values. These Item 3 values are affected by the weapons in different ways. I haven't studied those ones as closely; watching just the Item 1 values seems to be sufficient.
FinalFighter has written a series of Lua scripts that help you track all of this. They can be found here (and here in English).
[1] By "random fluctuations," I mean nobody has bothered to study the code of this particular weapon ._.

Weapon hitbox persistence/lenient crash bombs

Similarly to Item 1 values, weapons store their hitbox sizes in a series of variables in memory. They are properly set by all weapons except one: Crash Bomber. Crash Bomber properly sets the size for the bomb itself, but not the four little explosion particles, so they read from uninitialized memory!
The upshot of this is that Crash Bomb explosions will have differently sized hitboxes depending on what weapons you fired earlier. For example, Quick Boomerangs create size 1 hitboxes (bullet-sized) and Leaf Shield creates size 4 hitboxes (leaf shield-size). This is the cause of the so-called "lenient" and "strict" Crash Bombs in the Boobeam fight; lenient ones can save a few frames in a TAS. Check out the sections on Wily 3 and 4 for more details on the specific hitbox manipulation I do in this run.

Insights

I don't have a previous run to compare to, but I can give you some insight into some of the techniques and decisions involved in each stage.

Quick

It's possible to get through all the hotheads without stopping for a single frame. I extend a couple jumps by a frame or two to facilitate this.
It's just barely faster to gun down the mechs; 20 shots is a lot, even for a TAS. It's usually faster to just take the hit, but Quick Man kindly provides us with two counterexamples to this rule. The first mech is faster because Mega Man is on the left side of the screen when it spawns rather than the middle. The second mech is faster because that ledge he stands on blocks your way after the hit.
There's an interesting optimization when I take damage from the second mech operator. By jumping into him, I'm able to gain just enough height for my invinciblity to run out in midair, meaning I don't have to hop out of a tiptoe.

Metal

Switching to Q at the very beginning of the stage saves 13 frames, but it's worth it to keep P out until later. The Buster's infinite range allows me to shoot the drill on the fast belt, and saves a good amount of time when dealing with the toppling can guys. Although it's weaker against the clowns and gears, requiring more turnarounds (5 vs 3).
Buster is 11 frames faster overall, lag included.
It should be noted that, if you can somehow kill that drill without jumping using Q, you will save 7 frames. You should be able to copy/paste the remainder of that section from this submission; it saves 2 frames over my demo. Then, with intense optimization of the toppling can section, you might just beat the frame rule with early Quick. You'd need to save 3 non-lag frames overall in order to make the next boss entry rule.
Bonking the underside of a conveyor belt actually applies its velocity to you for one frame, gaining you a pixel each time.
I only let go of right for one frame during the toppling can section.

Bubble

The beginning is actually a couple frames faster if you stick to Buster, but not 13 frames faster. If it weren't for that 13-frame quirk, I'd probably switch when taking damage from the hermit crab.
Frogs are super laggy. It's important not to let more than 3 babies get on screen at a time, as that will really ruin your day. Keeping one alive to prevent the next mother from barfing more babies is a good way to ensure this. It's also important to make sure nobody drops any pickups, as that can push you over the edge into a lag frame.
When fighting the first lantern fish, I do a 2 frame jump to take out its shrimp babies, which is the smallest jump that cancels a throw animation underwater. But I once stumbled upon an incredibly lucky scenario where I could do a 1-framer, refrain from shooting, and the shrimps would all politely avoid me. I tried every possible frame, with different subpixels and after wasting different amounts of time, but I could not recreate this incredibly rare occurrence in my new run. It barely saves time, but I'm sad I don't get to show it off :c

Flash

Yes, it really is faster to switch to Q! I was just as surprised as you. In my initial attempt, I switched straight to Metal, forcing me to take the hit from the one mech and do the classic slippery ledge jump to dodge the one at the end. It turns out that killing these guys with Quick is just barely worth the extra switch it takes! I reach the boss door 10 frames sooner than the straight Metal strat.
By making extraneous shots with Q and M, and timing the necessary ones carefully, I am already preparing for the next two stages. See Item 1 values above.

Heat

Big thanks to Shinryuu for letting me steal borrow his inputs from any%! I tweaked the Buster shot timings to get some extra lives just for fun, but otherwise, the first portion is directly copied from his work. Why mess with perfection?
Normally the pillars are skipped by doing a you-know-what overhead, so I did this section myself. Optimal Item 3 throws involve getting very close to the wall, so anywhere you see a gap, my climb is less than perfect.
Watch carefully at the 4th pillar: I jump, throw, land, then jump again to reach the Item 3. Throwing Item 3 in this way actually enables me to land on it slightly higher than a standard jump-n-throw. However, my X position is worse, so it's not usually worthwhile. This pillar happens to be tall enough to make X position irrelevant; you're gonna wait on that Item 3 no matter what. Thanks to paosidufygth for discovering this tech!
The big yoku block gap was another section I stole from Shin. I jumped for an extra frame on the weird floating ledge to sync up my subpixels with his so I could pull off the heist. He gets through those blocks real fast, faster than I'll ever be able to. The harder I try, the more frustrated I get, and the more I admire my friend. He tweaks his subpixels so that every block appears precisely as soon as it needs to, which isn't necessarily as soon as possible. It'll likely go unnoticed by the average viewer, but it is a FINE piece of TASing!

Air

An even bigger thanks to Shinryuu for directly contributing inputs here. I was overwhelmed by the cloudy guys; I just couldn't seem to get past them without a lag frame or holding still for a frame or two. So Shin agreed to tackle it for me and made this super fast version in a couple of hours. It saved about 7 frames over my crappy attempt. Truly phenomenal work! This section is the crux of the major route overhaul, so I really can't thank you enough!
After turnaround spawning the bird in preparation for the fan fiend despawn, I let it drop its egg, which unavoidably creates 3 frames of lag. This lag can be eliminated if I turn around and shoot the egg on its way down, as seen in the 2010 and current any% run. So...why didn't I do that? Well, lag affects frame rules in a complicated way. Since the frame counter doesn't increment during lag, the entire pattern gets shifted back a frame. This usually loses time, but it can gain time, depending on how things line up. In this case, I saved some "green time" by not turning around, so I was able to enter the boss fight on the previous frame rule (4 green frames sooner--1 actual frame), which enabled me to leave the boss room on the previous frame rule (8 green frames sooner--5 actual frames). See my framerules writeup if this confused the hell out of you.

Wood

It's Weird Wood! This strat took heavy inspiration from the PSX TAS.
I start with Item 2, like the PSX run and realtime any%. This section is constantly on the cusp of lagging; sometimes just facing a different direction or moving your foot around is enough to prevent (or cause) a lag frame.
Without zipping, it is not possible to spawn block all 3 dogs. Even the PSX TAS can gain a bit of a boost inside the wall, which is just enough for this. I, unfortunately, must switch to Atomic Fire to take out the first dog.
When entering the first dog room, you can grab the ladder at the last possible frame to reset your fall velocity without latching on. This lets you avoid clipping the ledge and get your shot in sooner. And if that wasn't enough, it also moves you to a set X position, so you can hold left beforehand to manipulate RNG! I love this ladder.
I switch to Flash at a specific spot to avoid a flicker-elongated teleportation animation. This is a subtle but important thing to be aware of.
I accidentally wasted a frame here!!! I'd like to claim it was deliberate, but it wasn't. It was sloppy workmanship on my part, and I was able to save 4 frames off that section. However, for whatever unknowable reason, I got 3 more frames of lag no matter what I did. Well, that's still a 1-frame improvement, right? Wrong. The way the framerules play out, those improvements save 0 frames. So I would face the full penalty of those 3 lag frames if I used the faster inputs. I can't decide if this is really lame or really cool.
That damage boost on the bat is paosidufygth's trick. It's super slick.
Speaking of lag, those birds and monkeys are awfully laggy, as are Item 1s. I found that having Mega Man jump off the top of the screen eliminated a good chunk of lag, but 10 frames still made it through.
Switching at the top of a ladder is optimal, so that's what I do. I bother all the bunnies and roosters with my air shooter mostly because it's funny, but also because it manipulates Item 1 values.

Crash

Nothing too special, here. I tried a couple of different Item 1 routes, but none of them were faster. I also felt compelled to try the old Item 2 clash crime. It's about 2 seconds slower, but 2 times cooler.
Compared to a previous attempt, I was able to save about a second from this stage just from a better understanding of on- and off-screen ladder grabs. I'm particularly proud of that!
By switching weapons inside the fight, I'm able to start it 1 frame sooner. Sometimes it's faster to switch weapons before the boss fight, so you have to try both possibilities if applicable.

Wily 1

You can jump and shoot all the eggs in the beginning portion of this stage. Instead, I do a 1-frame turnaround to get the second bird to spawn behind me. It turns out that all the time you would spend in the air jumping and shooting is slower than a 1-frame turnaround, which costs just 2 frames.
The first two Item 3 jumps are slow, but they only use 2 energy each. I am carefully managing my Item 3 energy for Wily 4, and this is the solution I arrived at.
That one gray bacon strip can really screw you if your subpixels are bad. I got lucky this time, but I've had to slow down by like an 8th of a pixel in previous attempts.
The famous triple Item 1 jump can actually be done with just two. I use the third one purely to get a boost onto the next screen.
Yes, it really is faster to switch to 2 on the long ladder screen! I was just as surprised as you. I initially attempted this climb with Item 3, which was still faster than just holding up; neither was enough to beat the framerule. However, the Item 2 version is enough to start the fight a bit earlier, which lets me end it a bit higher up. This saved 4 frames going into Wily 2 and then Wily 3, which was just enough to squeeze out another framerule and save 16 frames on the Guts Tank fight!
As if that weren't enough, it also saves that Item 3 energy for somewhere else. That energy didn't help beat the framerule in Wily 1, so I decided to use it in Wily 4, where it saved an additional 16 frames. And so, that Item 2 trick saved half a second over my previous attempt. I'm really happy about that!
In the dragon block section, I switch from 2 to P once the screen has already started scrolling. This makes the screen move during the one frame where Mega Man can't.
You can stand on the blocks for one frame as they fall off the screen, which is really cool! Shinryuu did that back in 2006, but all the encodes of that TAS are in 30 Hz, so you can't see it through all the flicker. I wanted to make sure this trick saw the light of day.
Why P and not Q for the dragon fight? There are several reasons:
  • Q is slower to menu to (barely)
  • Quick Boomerang's arc is a pain in the ass
  • Having 4 shots on screen doesn't save time over 3
The timing of the double death here is crucial. Like, extra crucial. As mentioned in my framerule writeup, dying on the exact frame the frame counter reaches a multiple of 16 causes the explosion timer to decrement and saves another 16 frames. I discovered this very recently; it actually needs to be implemented in any% as well.

Wily 2

I start off by doing the Item 2 section without collecting the refill, which accounts for half the timesave of this Wily route. I end the ride with 4 energy, precisely the amount I need for Wily 4.
Time Stopper is lame here, but nothing is lamer than going slow! It's faster purely due to menuing. Leaf Shield is the standard choice in any% because it can defeat the shotmen as well as the drills. In zipless, we take the left path, so we only have to deal with the drills.
Metal Blade is another good choice for this section. In zipless, it gains 2 frames of menuing, but loses them due to all that jumping around. In any%, it actually saves 7 frames, despite waiting to dodge a bullet and the jumping! Unfortunately, we can't afford that many Metal Blades in either category, so alternatives must be used. For those that don't know, most fans of this game consider Metal Blades to be virtually limitless. So using them all up, productively, is quite the feat!
I use only one Item 1 to climb the tall wall. I use two Item 1's to climb the tall wall! Even though the highest one you can place isn't much higher than the highest one you can land on, it still saves 22 frames to use two. I had an extra Item 1 after a frantic post-submission reroute, and this was the best place to use it.
Full disclosure: there are 3 frames of timesave in this section. I can shoot that Item 1 at the optimal height one frame sooner, and with better Item 1 value manipulation, I could save 2 on the rise. But these 3 frames are not enough to break the Boobeam health bar framerule--and even if they were, those 4 frames would not be enough to break the Guts Tank explosion framerule. To manipulate these values, I'd have to go all the way back to Crash Man's stage. Item 3 only allows me to manipulate the third slot, so I'd have to switch to Air early and fire off a couple of extra tornadoes to essentially shuffle all three values. I may come back to this someday, but I'm happy with it for now. Call it a time-entertainment tradeoff if you like ;)
Fun fact: A slight optimization I found when jumping over the mashy spike plates actually made its way into any%! As did a trick I found where you can fire Leaf Shield without stopping.
The Picopico fight is fairly lenient. The next wall chunk will only come to life after a multiple of 31 frames has passed (and the previous chunk is dead), so there's a massive frame rule here.
By timing my very last Metal Blade throw, I am already preparing for a jump in Wily 4.

Wily 3

A straightforward itemless stage. I tried grabbing a refill and using Item 2 to skip over the long section with the fish, but it was slower, especially when leaving enough energy for Wily 4.
The first shotman is pretty tough to kill quickly. At one point in the run, he cost me 3 frames over a previous attempt, which was enough to kill the framerule and lose me 16. It bugged me to no end, but I was forced to accept it...until I found that Item 2 strat in Wily 1. That saved me 11→8→0→4 frames, which was just enough to get me out of the Guts Tank fight in time and earn those 16 frames back. I'm really happy about that!
You may have noticed something odd in this stage: I limit myself to only 2 Quick Boomerangs on screen at a time, even though I can have up to 4. This neither saves nor loses time. So why do I do it?
Well, this is an example of hitbox preservation, as described above. I'm trying to preserve a Metal hitbox from the last stage all the way into Wily 4 to help me with the boss fight. The way these variables line up, I can preserve a single Metal Blade hitbox if I only allow up to 2 Quick Boomerangs on screen at a time; the third boomerang would overwrite it. I was worried this would lose time, but it doesn't cost a single frame. No timesave like free timesave!
That little tantrum in the boss room is to manipulate Item 1 values. I am only able to alter the first value when subject to the two shot limit.

Wily 4

I was able to steal a few ladder-climbing inputs for this stage, obviously without the zips. I added some personal flair where I could.
After submitting, I noticed a neat trick in the PSX TAS that enabled me to save 6 frames in a way that cost 0 energy. Using that same trick, I was able to save 2 energy in a way that cost me 4 frames. It's kind of a weird tradeoff, but I came out 2 frames faster with 2 slivers of energy leftover, which I took full advantage of.
This section is where I run out of Item 3. I have exactly enough Item 3 energy to do everything I want to! Having 2 energy leftover is incredibly useful, since it allows me to skip a good bit of climbing in the next room. Item 2 no longer makes a surprise appearance, which makes me sad :(
I handle the moving platform rooms in the classic RTA way. But with only 1 energy left, the Item 3 strat in room 2 is extremely precise; it's actually a frame perfect jump before it disappears, assuming you time the throw correctly. I'd recommend doing the Item 2 placement if you're attempting this route RTA. It's only 3 frames slower when done optimally! RIP that trick, btw. It was the coolest jump in the game :(
Using Item 2 in the third room is actually 5 frames slower than Item 1. Although in this route, I already have Item 2 equipped, so it's much slower to do the extra switch. But more importantly, Item 1 energy is precious, and these two are much more useful elsewhere, even in the best case. 2 Item 1's for 5 frames is horrible!
It's possible to dodge the final Sniper Joe with an Item 1. But getting a rightwards damage boost isn't too bad; that Item 1 was better used elsewhere. Plus, the hit gives me really good values for the damage transfer glitch coming up, which the mandatory hit beforehand does not.
The Boobeam fight plays out a bit differently than any%, since I enter on the ground. I need an Item 1 to reach the upper ledge and do a decent fight. Beyond that, it's pretty much identical to what you'd see in any%, except that I added plenty of entertaining stuff during the waiting periods. I'm able to do two damage transfers and leave the fight with 3 bombs to spare. I did not need to borrow inputs for this fight.
Here's where that Quick Boomerang thing comes into play. In the Picopico fight, I set all the explosion hitboxes to size 2 (blade-sized). If I'd allowed any more than two Quick boomerangs on screen at a time, all the hitboxes would've been overwritten with size 1 (bullet-sized). Having just one size 2 hitbox makes all the difference: it happens to blow up the bottom wall 26 frames sooner! Unfortunately, I still have to wait for the bomb to finish exploding, so the only benefit is that I'm further to the right by the time that happens. This means that the new bomb latches onto the wall 6 frames sooner, which makes the fight 6 frames faster, 4 after the framerule. That's an incredibly complicated setup for an extremely small timesave... But at this point in the run, all framerules are 4 frames, so every bit counts!
There's another interesting alternative to this that could save 40 frames. Leaf Shield sets all four hitboxes to size 4, which is huge. As big as, well...a Leaf Shield! This enables you to place the second Crash bomb much lower, and therefore shoot it from all the way to the left. Luckily, Leaf Shield is a viable alternative to Time Stopper in Wily 2, so you could use it. But since the Picopico fight overwrites the first three slots with size 2, you would need that size 4 hitbox in slot 3, which means you would not be allowed to fire a single Quick Boomerang. This means you would need to fight the tank with another weapon, presumably Buster. Using Leaf Shield in Wily 2 is slow, but still fast enough to be viable. The Buster Tank fight, though...that loses a full second on its own, despite saving a pause. So this isn't really viable without a substantial improvement to the Buster Tank fight.

Refights

This is where any% and zipless really converge. If I spliced in footage of Shinryuu's run into my encode, you probably wouldn't even notice! Not that I would ever do anything like that...
I was actually able to copy/paste the Heat, Bubble, and Crash fights with only small tweaks for RNG. I tried to do them myself just to confirm, but I was always 3 to 4 frames slower than Shin's excellent inputs. I was able to get the rest of them down myself, using a ghost to confirm that I was on par with Shinryuu.
There's some interesting tech involving the teleporter room and the teleporters themselves.
At the very beginning, I'm able to reach the Air fight by jumping under a block. This must be a 1-frame jump; a 2-framer is enough to make you bonk the ceiling and fall down. But a 1-frame jump over a 2-block gap isn't possible unless your subpixels line up juuuuuust right, so I had to do a slightly higher jump when teleporting in. This is an old, old trick, but I like it a lot.
Teleporters teleport you to a set position, but they do not set your subpixels, meaning you can preserve them between rooms. I really really like this mechanic. It means that I can enter the boss fights precisely when I want to and get precisely the RNG I want. All I have to do is jump before entering and my subpixels will be different!

Air

A fairly straightforward fight. One of the two that we switch weapons during.
An interesting optimization comes from pressing left and right simultaneously. The movement code reads that as a left press, but the leaf shield code reads that as a right press, so it's possible to shoot a leaf shield to the right while moving to the left.

Heat

Let's take this fight as an example of how good Shinryuu's TASing is. You'd think the optimal strategy would be to get up close, shoot him 4 times with the optimal 69-frame delay, then retreat to the teleporter and shoot him over there. Nope! That wastes time. Instead, you want to get up close, do 4 shots that are 5 frames longer than optimal, then let him charge across the room at you. This saves 4 frames over the greedy strat. I guess that's just what happens after 10 years of playing Mega Man 2.

Wood

Starts off very similar to the one in his native habitat. I need to get up close so I can dink a few tornadoes through his shield. Once he shoots it, I'm able to fire off some decent double hits and a final blow that pushes the hitboxes to their absolute limits.

Bubble

I was able to get a decent fight with a few quantum shots, but due to fractional metal blade ammo, I can't afford to waste a single one (7 shots = 1 ammo = 4 shots, 8 ammo = 2 ammo = 8 shots). Somehow, someway, Shinryuu was able to get a fight with the exact same time without a single quantum shot. I still don't get it, but I was able to steal it, so I'm happy about it.

Quick

Spares are for squares! For years, the TAS strat here was to use pure Air, and that bugged the hell out of me. What were they holding on to those bombs for!? I mentioned this to Shinryuu, and he said it wasn't really viable, but he'd give it another go. Then on that very day he came up with this excellent fight that saves 28 frames! It's too volatile to copy/paste, so I had the opportunity to execute his strategy myself. It was an absolute pleasure.
The most efficient way to deal damage with air shooter is to pin Quick Man against the wall and repeatedly do double hits, so that's just what I do. I've never seen a triple hit (if you have, please show me!!), so it's important to make sure that the third projectile despawns as soon as possible. It would take forever to reach the ceiling, so it's important to be close to the wall.

Crash

Copypasta! I technically have enough ammo to do this without a precise double hit, but it's just too cool not to. Instead, I waste that extra ammo before the Wood fight for Item 1 value manipulation.

Metal

Trivial. Just for funsies, I optimized it for TAS timing: it's 12 frames :p

Flash

This actually loses 2 frames to Shin's inputs. It's because the floating metal blade he puts out serves as a quantum shot for more hits than mine does. But those 2 frames weren't enough to lose a frame rule, and to be honest, I was getting sick of stealing inputs.

Wily Machine

Consists of 100% stolen inputs!
This fight is surprisingly finicky. With slightly different Item 1 values, the same inputs might kill him in record time, or leave him at like 8 health. I have 3 extra metal blades to fire off, so it's not a big deal.
And just like that, my metal blade ammo is gone. I really like this fight!

The End.........?

I face left and shoot bubbles on the way down for shits and giggles. Unfortunately, I can only afford two left presses; the third one actually costs me a frame. But that's OK, because it's all leveled out by the final framerule.
...which is just the alien's health bar. Really not that special.
Have you ever been driving somewhere with Google Maps, and it suggests to you an alternate route that's 3 minutes slower? And you think to yourself, "Thanks for being thorough, I guess, but why are you showing me this?" That's how I feel about the alien fight right now.
Previously, I saved an Item 1 so I could get on top of the weird ledge and do the fight optimally, figuring it saved 1 or 2 seconds. But it turns out this is only viable in any%, where they already have it out. In my run, I was able to save 28 frames by not using it...so I essentially saved an Item 1 till the end of the game just to lose time. I found a better home for it in this new version, which helped saved 20 of those 69 frames.
This is why you never, ever make assumptions in TASing. Ask questions. Test everything. And when you're done testing, test some more. This entire movie came about from questioning assumptions about the realtime strats I'd learned.
Thanks again to Shinryuu for figuring out the first half of this fight. He was able to get him down to 13 health, one better than the PSX TAS and two better than my initial proof-of-concept. But let it be known now and forever that I was able to save 5 frames off the second half!
Funny story: At one point during my old Item 1 fight, Shin thought he had found a 19-frame improvement to my work; turns out he had accidentally downloaded the wrong movie file! Wouldn't be a TAS if no one accidentally did work in the wrong movie file.
And with that, I end my run on frame 98,331, which is a 27:16.14. That's 1 second faster than my initial submission, 3:23 slower than any%, and 1:29 faster than the corresponding human world record. Thank you for reading this far into the submission, and I hope you enjoyed the run!

Special Thanks

Shinryuu
A friend of mine and an excellent TASer. As mentioned above, I was able to steal a lot of inputs from him and even convince him to make some direct contributions. His advice was invaluable to me when I was first learning this game at a frame-by-frame level, and he's always there to give his unique brand of encouragement as I post about my findings and setbacks.
He has this to say:
It was interesting to see a certain someone appear and start poking me via private messages. This person was widely known as warmCabin. He contributed and actively talked about strategies while I was still doing my any% version. He's the one who got me up from the abyss. I was able to gather our group again not too long after that. I made my own Rockman Discord server, aimed at tool-assisted speedruns where we can track our progress much easier. I'm not a big fan of graphical and modern interfaces so it took some time for me to get used to this stuff. warmCabin joined the group sometime after that. I contributed a bit when warmCabin had issues or wanted to confirm something. I didn't want to be part of this project that much but I'm impressed to see this game can be played like this as well. Heatman's block and Airman's cloud areas use my inputs. warmCabin seems to have a lot of interest about the inner parts of the game. He's a coder by a nature and he understands optimization quite well. He came up with some crazy ideas and had a different kind of perspective for handling the gameplay. I've also learnt something new from him.
aglasscage
A longtime speedunner and fellow TASer of Mega Man 2. He knows this game incredibly well, and is the master of the elusive delay scroll technique.
Last year I showed him my old Air first route. On December 30th he said to me, "The cloud section is so slow. Much slower than heatman's block section. Have you tested other routes?" What a message that was! It precipitated a rigorous rerouting process that set me back by 5 months, but it was all worth it. I absolutely would've pushed forward with that slow route if it weren't for him, and I'm so glad I didn't.
finalfighter
While he didn't contribute directly to this run, his research into this game and his incredibly handy Lua scripts were invaluable. It'd be a crime not to mention him here.
paosidufygth
The author of the PlayStation TAS, which is full of excellent tricks and optimizations. I studied his work very closely and drew several ideas from it. I just wish he'd written a submission text!
The Mega Man speedrunning Discord
TASers aren't the only people who know this game well! The Mega Man RTA community was always interested to see my progress and swap cool ideas with me. For instance, the big Item 1 jump in Wily 1 came about when I heard coolkid saying, "Don't be a baby," in that section, and I asked everyone what the heck he was talking about.

Maru: Judging.
Maru: Replacing with truncated input file.
Maru: Setting to delayed pending more improvements per request from the author.
Maru: Replacing file with 69 frame improvement.
Maru: Great work with this TAS. It is apparent that a lot of effort was put into the routing and optimization. The feedback was mostly positive. TASes of Mega Man 2 that do not zip through everything have been in demand for quite a while.
In the thread, there were some questions about whether this should be accepted considering how similar it is to the PSX version of this game or even if it should obsolete that PSX TAS. I took it upon myself to watch both TASes side by side, taking note of the differences.
The instant item switching, in my eyes, is a very significant difference and allows for a wider variety of routing possibilities. While the author believes that his route would have been faster for the PSX version, it is also possible that there are even faster routes that would work only in the PSX version due to the nature of instant item switching.
When we compare the goals of both runs, the PSX TAS is essentially aiming for fastest completion. It's not a zipless run by any nature, even if some of the zips were patched in that version. Vertical zips are still possible in the PSX version. This run aims to beat the game as fast as possible without using zips. So, the two movies have different goals.
When looking for publishing different versions of games, we are looking for either approximately 50% of unique content and/or significant in-game differences (such as in the route or in the gameplay). A zipless run of NES Rockman 2 has enough significant in-game differences (routing, gameplay, etc.) compared to the TAS of the PSX version.
As a result, I'm accepting this as a new branch. Accepting to Moons.
fsvgm777: Processing.
Last Edited by adelikat on 11/1/2023 10:42 PM
Page History Latest diff List referrers