TASVideos

Tool-assisted game movies
When human skills are just not enough

Submission #7002: Shinryuu's NES Mega Man 2 in 23:38.98

Console: Nintendo Entertainment System
Game name: Mega Man 2
Game version: JPN
ROM filename: Rockman 2 - Dr. Wily no Nazo (J) [!].nes
Branch:
Emulator: FCEUX 2.3.0
Movie length: 23:38.98
FrameCount: 85279
Re-record count: 118012
Author's real name: Timo Taipaleenmäki
Author's nickname: Shinryuu
Submitter: Shinryuu
Submitted at: 2021-01-16 20:41:05
Text last edited at: 2021-03-08 21:20:59
Text last edited by: fsvgm777
Download: Download (11444 bytes)
Status: published
Click to view the actual publication
Submission instructions
Discuss this submission (also rating / voting)
List all submissions by this submitter
List pages on this site that refer to this submission
View submission text history
Back to the submission list
Author's comments and explanations:

Game objectives

  • Aims for fastest time
  • Takes damage to save time
  • Heavy RNG manipulation
  • Uses death as a shortcut
  • Abuses frame rule

Frame table

Length: Frames:
00:23:38.98 85279 frames
Savings: Frames:
00:00:05.53 332 frames
Record count:
118012

Stage Frames Total saved
Flashman 0 0
Heatman 1 1
Airman 7 8
Crashman 196 204
Quickman 16 220
Metalman 16 236
Bubbleman 40 276
Woodman 6 282
Wily 1 -8 274
Wily 2 16 290
Wily 3 32 322
Wily 4 5 327
Wily 5 4 331
Wily 6 1 332

Encodes

Technical data version

(Link to video)

Ghost script version:


(Link to video)
(Link to video)

Some basic information

Walking and jumping

It's always wise to walk instead of jumping because subpixels suffer as a result if you do. When you do the fullest jump while reaching something, don't do it at the first possible frame. It will make your subpixels lower. If you want to keep your precious subpixels do it a bit later. I always check the first frame and use the second possible frame instead or something else as long as it's not the first one.

Ladders and climbing

It's possible to cancel shooting animations on ladders by dropping and grabbing furiously. Timers are still going to be with you but you gain a bit of height each time you do. I truly have no idea what's going on. I think warmCabin was the first person ever talking about this. You can grab ladders offscreen and it's possible to gain vertical boost by pressing down while you grab on ladders and press up on the next screen. Boost is usually around 16 pixels but it's possible to get that even higher. I still think that there are anime girls lurking offscreen preventing my work. It's also important to do some wiggling so you gain access to higher Y position sooner. There is a timer that reduces every time you do wiggling. Crashman is a good example when you look at that ladder section. It might look like some ADHD-spam movement but it's actually more deeper than that.

Turnaround subpixels

When you jump down off a ledge I recommend against touching the wall. It's possible to be a few subpixels inside a block if you optimize your movement correctly and save some subpixels when you press left or right (depends where you're going to) at the correct time without touching the wall. This is apparent at Flashman's stage but I also did some wiggling for further optimizations.

Frame rules

This game doesn't have its own time so frame rules are tied into the objects instead. That makes this game quite an interesting one to be optimized. Door frame rules are 4 frames and stage rules are 8 frames. Wily 1 and Wily 3 are expectations because their frame rule is 16 frames. It's also possible to shift frame rules by adding lag before DelayScrolls. This happens because lag affects frame rules' behavior but it won't affect music code at all. This needs to be adjusted correctly, too minimal or too large amount of lag will have a negative effect. This is mostly trial and error because of other surroundings and rules. I found this while we were working on our previous run.

For a reference, here's a trace log for refill rule:

DelayScrolls

Useful resources

These are some old links from FinalFighter but they're somewhat valid and they contains a lot of interesting material. I wish there was some kind of repository for everything. I miss the old days.

I highly recommend checking warmCabin's zipless submission text out.

Also, TASVideos' site offers a good amount of basic information.

About my work

Long story short; I cannot leave this game alone if I find something new. This game is also time consuming one and I'm not even getting paid for it. I finished several different, yet full movies before this version. One of them was 72 frames faster compared to the published one. I used them as a reference material to understand frame rules and other places better. I still had motivation to go further on with this game and I'm glad that bizarre things just kept popping up. I also set myself in a mode where I wanted to understand the whole picture better. I haven't needed both FinalFighter's and pirohiko's help for quite a while and they've encouraged me because I have learnt to perform their magic tricks by myself. There are still a few people who are interested in these two first games in general and they also motivated me to finish this project.

Stages

Flashman

Mostly stylistic changes and trying to find what is entertaining and what is not. There isn't anything to gain because you need a good amount of frames to break another frame rule. I can at least mention that this is the only stage with an icy and unique floor.

Heatman

I'll be collecting some 1UPs but for what purpose? Well, I don't need them for anything but someone might need in the future. I started to inspect Item 3 values more in depth here. I managed to find a way to perform Item 3 zip a bit faster with correct RNG seed and Item 3 speed value. This didn't help me to gain anything but I found a way to use those frames to eliminate one lag frame off the stage which was satisfying enough for me. I've also tried to find a constant way to manipulate Heatman's vulnerability timer without success. I know that RTA people tend to get close to him but that's fully understandable because you need to react. If you're interested to see how Heatman behaves, look at $B2 value. Heatman timers goes like this: 31 and 62 and 93 frames.

Airman

Main concern with this stage was to find a gameplay that is indeed optimal in my terms. Item 1 values were not allowed to go wild and manipulating them was getting harder and harder every step I took. I can say that the cloud area was the most evil of them all. I needed a correct amount of lag before DelayRightScroll to make proper frame rule shifting. As a bonus I needed Item 1 values that worked with my zip method at the end of the stage. I found a method to use a pause buffer with Item 1s to make even faster initialization for the zip. I also wait for one frame to manipulate 'perfect' values for Crashman's stage. I was well inside a frame rule so I didn't break anything. This new gate zip trick won't work on many values. I also use this at the Metalman stage and I had to go back and forth quite a lot to get desired results.

Crashman

After polishing the beginning as much I could I continued to go further on. I struggled for weeks, then months just to pick one refill up. My frame counter value was inside a range where I lost a lot of time. I was getting frustrated which was pretty rare for me when TASing this game. I was quite happy that at some point I found a way to perform DelayDownScroll with Item 2 instead and that meant I didn't have to pick that poopy (shitty) refill anymore. Later I also found a way to perform DelayLadderTech from the right side of the screen. It wasn't so easy to do because after performing that glitch you'd have to position yourself correctly while you drop offscreen. In the next screen after that a shot was required so you could continue climbing inside walls. It's possible to jump on Item 2 and reach the correct Y position to enter the screen with gate(s). This is not possible with Item 1 because it keeps rising. After performing DelayDownScroll I wanted to perform a trick to allow zipping at the fight. That attempt was successful and it reminded me about old runs. I also manipulated Item 1 values for Quickman beforehand.

Quickman

Stage starts with Item 1 manipulations. I needed a good pool that carries to the end of Metalman and Quickman contains the best values you can get as well. I have to do these manipulations through trial and error so copy-pasting, TASEditor and playing segments again was my best bet. On top of that I was not allowed to lose any frames. The value I have for first Item 1 at the beginning allows me to perform leftward zip even faster. At the black area there are some movement tweaks to gain actual frames and a quarter of a pixel that RTA runner fastatcc found out. I gotta thank both paosidufygth and warmCabin for these movement changes as well. At the final long room and after entering the door; I also did some manipulation for Metalman beforehand.

Metalman

Okay so, the stage starts with pretty good values. After that my values are still great and so on. This always doesn't mean everything's going well. I did a large amount of testing and manipulation back from both Crashman and Quickman to reach this conclusion where I'm actually getting best outcomes out of the box without losing any time. To define a best outcome; I've had manually test different setups for everything I do. Item 1 height script allows you to cheat on that a bit because you can change values. It's a good tool to have around. That was the main key to beat 2*8 frame rules. I also did the second last zip differently but with same timing to allow gate zip to work properly. I also had to use correct RNG seed manipulation back from Heatman's stage for this. Boss fight contains movement tweaks that allows me to eliminate that one pesky lag frame off the charts! Oddly enough I found out that if I do an extra jump in this stage, final dog scroll would fail again at the end of Woodman. I'm certain that there's a bank for sprite processing order because there are other things already tied to the frame parity mess.

Bubbleman

At the beginning I found a new method to start a zip faster. You need a good amount of luck (correct Item 1 manipulation). I'll tell you how it works; you need to be able to jump from first Item 1 so your isn't one pixel too high. When you jump on the second one, you must make manipulation so you get on that third one without falling off. Then there's a bit of waiting until one of those Item 1s explodes, when that animation is gone you shoot another Item 1 to initiate zip faster. This saved a bunch of frames (5 if my memory serves right) and it allowed me not to wait for so long at DelayDownScroll section anymore. Actually I was able to perform DelayDownScroll 40 frames faster this time. I had to be careful how I shoot Metal Blades around because they seem to make first and last DelayScrolls to fail at Woodman. This had something to do with frame parity, first Item 1 speed and pixel processing. I noticed this with my previous run but I had this haunting me all day long this time. I think it's worth to note that if I change some shots back from Flashman, they will make the last doge scroll fail as well. I've seen some cases where DelayLadderTech wouldn't even work at Crashman after doing such cosmetic changes. This also limits the manipulation pool I'm playing with.

Woodman

Time to get wild. Dying at high Y position and off-screen at a previous battle makes this setup possible. Now I need to gather one frame of lag for frame rule shifting purposes, make Battos and Robbit to be in sync with their movements. DelayUpScroll here relies heavily on Robbit's carrot launch animation. I also need to make sure that both Batto's opens their wings at the same frame. And last, I need to generate/mix sound by using jumps. I need to aim for a certain Y range to succeed. Those bats don't like to cooperate most of the time because only one of them opens and the other one sleeps. After performing that trick I did a lot of different lag setups but this was the best outcome I've found so far. Because there are many DelayDownScrolls involved. I gathered some lag before them for frame rule counter shifting and checked if the next DelayDownScroll even works after my changes. I also noticed that some of my changes beforehand locked certain X/subpixels values being used for DelayDownScroll. I had to make sure I can reach X=40.XXX instead of X=39.XXX at the final DelayDownScroll. Sometimes it did not work so I played at random to change it. Before the boss fight I do some manipulation for Wily 1 stage. Time savings comes purely from different lag handling so frame rule shifting is heavily involved.

Dr. Wily 1

I tried to be entertaining here. Also, my strategy is to be as minimal as possible because picking up refills are deadly for two reasons: they do take an unnecessary amount of time, they will mess your $1C timings and if $1C value is in a bad range; you'll get further penalties. This stage doesn't offer any major changes other than I refuse to use one Item 1 at the tower. This loses around 20 frames in that section but after beating the stage I'm only 8 frames slower. This is because I abused $1C's behavior. I need to kill Mecha Dragon at multiple of 16 frame value to bypass some waiting and my gameplay was perfect for that. So it was totally worth not to use that Item 1 at all for greater good. I need to make $1C to align later on as well and this was a good start for it.

Dr. Wily 2

I happened to reach pretty good frame rule range to pick refills up this time. I didn't get any extra penalties along the way. Thanks to Wily 1. After I finished this stage I gained 12 frames out of nowhere and I was able to keep them in my pocket. Usually you don't keep these at all. I usually hate being friendly with $1C but this time I gotta thank that thing from bottom of my heart. I also manipulated Item 1s during the fight for Wily 3.

Dr. Wily 3

This is pretty much the same as before. I did some tweaks for $1C shift and Item 1 manipulation which I needed for Wily 4 stage. When I came out of the water I needed to get $FC to point to "3" value. I need that for the upcoming refight. This is stupid because you have to reach refight stage first and see what value to use there. Look at the fight and that spam I do there; they're for both entertainment and for Item 1 manipulation. I need to make sure that Item 3 climb works properly in the beginning so I had to do some manual editing quite a lot for that. Some edits made the boss fight to desync because of frame parity.

Dr. Wily 4

Okay, time to climb! I made Item 3 to disappear a bit sooner at room #4 which saved a bit of time. After going all the way up I once again do some Item 1 manipulation. I used a new strategy which saved an extra Item 1 and I took damage from an enemy as well. This was heavily inspired by paosidufygth's PSX TAS gameplay. I also found a way to use Item 3 with different manipulation so it was a bit faster. I also used this method back at Heatman but after I reached Wilt 4 for the first time.

Dr. Wily 5

Hey! It's time to use a different route but are you ready to see it? I change the weapon immediately to Bubble. It's always wise to change weapons this way because it saves some extra time. In this stage it's been a mystery for a long time how to make a different route setup but now I did. It's also worth mentioning that walking here is extremely slow so it doesn't make sense to go with a route like Crashman, Quickman etc. My new route is Heat, Air, Wood, Bubble, Quick, Crash, Metal, Flash and Wily Machine. Basically this is equally as fast but I somehow managed to beat 4-frame rule this time. I do the usual Item 1 manipulation just by shooting Air shot before I enter Crash's chamber and I do tweaking at Wily Machine as well. At Wily Machine it's important not to shoot diagonally at the end because that will add a lag frame into the business.

Dr. Wily 6

I found a slight tweak to beat this boss one frame faster. At Wily machine fight I found a better pool for Item 1 manipulation and Item 1 disappeared one frame sooner but it didn't really help. Then I relied more on quantum shots and lag manipulation differences.

Special thanks

Before I go any further. I wanted to work alone this time but I also talked with other people about what they do think about my work. People including aglasscage, FinalFighter and pirohiko refused to be any part of it. At some point I was thinking about adding warmCabin as an author but after thinking about that decided not to. This project has been a big one and I seem to have a habit to downplay my work quite often. I got encouragement back from previous authors and told me that they weren't really part of the project. warmCabin also contributed a bit by pointing a couple of good things out but I don't think those were big enough contributions to be included in the authors line. warmCabin scratches my back and I scratch his. That’s what I think for now. I can help but I don't want to be part of his work as a result. I feel like the zipless category is warmCabin's area. I also got entertainment ideas from both him and Maru. This section is also for people who have been around for quite a while.

  • aglasscage: One of the most obsessive persons I've seen up to this date on this game. He's also the very same person who made Mega Man 2 run for Speed Demos Archive. He also came up with the craziest ideas and consulted FinalFighter about them as well. Woodman is a prime example for his dedication and work. Long time partner and I’m blessed to have people like him around. It feels good that someone actually supports and understands your very own work.

  • pirohiko: In the past he timed most of the DelayScrolls and understood when they're going to happen. He aided us for ages with scripts and gameplay ideas. He's not really talkative because English isn't his native language but it's possible to talk to him through FinalFighter instead. He also likes to make smart video edits with lots of information. They’re pretty damn useful for presentation. I also share a long history with him.

  • FinalFighter: This person knows assembly quite well. Always to backup you with information and scripts when you're in trouble. Expects you to solve your own issues with tools. Like a parent of some sort. I noticed random behavior with refills at some point, talked to him and shortly after that I got a trace log about there being a frame rule attached in objects. One of the oldest cooperative persons around since 2005 or so.

  • warmCabin: He likes to fiddle on different routes which looks pretty random to me at times. Poked me many times that I should watch paosidufygth’s PSX Rockman 2 TAS for possible strategies and that was a good thing for him to do. It helped. This person is more focused on the zipless route but there are things that might apply to my work as well. Being talkative is a good trait for sure. Filled with passion, I guess? He likes to write useful scripts as a bonus.

Suggested screenshot


Samsara: Judging.

Samsara: Setting to Delayed at the author's request, pending improvements.

Samsara: Since it's been quite a while without any updates from Shin, I'm accepting this to obsolete the published run (inheriting the Star, of course), which will be obsoleted by the improvement when it is finished and submitted.

fsvgm777: Processing. EZGames69 will be handling the encodes for this one.


Similar submissions (by title and categories where applicable):