Submission #2881: aglasscage, finalfighter, pirohiko & Shinryuu's NES Mega Man 2 in 23:48.51

Nintendo Entertainment System
FCEUX 2.1.3
Rockman 2 - Dr. Wily no Nazo (J).nes
Submitted by aglasscage on 10/14/2010 11:47:17 PM
Submission Comments

Rockman 2 TAS | 2010-10-14



  • Aims for fastest time possible
  • Takes damage to save time
  • Manipulates luck
  • Abuses programming errors in the game
  • Uses no passwords

Compared to previous TAS by Shinryuu, pirohiko, and FinalFighter.

Stage NameFrames GainedFrames Lost
Wily 1160
Wily 2*320
Wily 3*160
Wily 4*520
Wily 50*0
Wily 6*490
*=Different from the previous movie by aglasscage, Finalfighter, pirohiko, and Shinryuu.

Shinryuu's Comments:

Rockman 2 has been my main project since 2005. This project was started both aglasscage and me, we had many kind of plans, ideas and problems in the beginning. My motivation wasn't that high but aglasscage tried to keep things up and succeed in that task pretty well. aglasscage found many different tricks and techniques while going forward with this run. I feel a bit detached from this run because I couldn't show my true self, respect and innovation towards this precious pieace of insanity but I still hope my previous TAS attempts motivated and helped other people to understand things more better. This game isn't not a simple piece to run because there's many different kind of frame rules and they exists almost everywhere, the most annoying example is _item1_ positioning. I worked together with aglasscage with Flashman and Heatman stages, I optimized Airman's fight. I feel a bit relieved this run is completed and optimized outstandingly well because I'm "unable" and "unmotivated" to change back to myself I was a few years in the past. I hope people are going to ask many questions about this run and be open-minded about things they don't know so well. Feel our ambitious masterpiece which makes your soul to tremble in awesomeness.

pirohiko's Comments:

ウッドマンが更新できたのは、運が良かった。 私も手伝えて楽しかったです “Woodman stage could not update, good luck. It was fun to help too.”
I made the movie which visualized inside information by an original bill of FinalFighter.
URL for people having a nicovideo account.
URL for the people who do not have an account.
URL for the people who cannot still look.

FinalFighter's Comments:

"Investigation" invented this TAS. Please refer to this page if you want to learn details of the investigation. The usage of the script is described. (English) (Japanese)

DelayDownScroll of CrashManStage

I measured instructions of NMI accurately. As a result, we noticed the CrashMan stage be able to be saved. We used DelayDownScroll in the CrashManStage. The Item1 used has been improved from Item1x2 to Item1x1.
I have created Support LuaScript of DelayScroll. (for Rockman2) (for MegaMan2)
I have created Support LuaScript of DelayScroll for test. (for Rockman2)

Rising rule of Item1 and Item3

I completely understood Item1 and Item3. I have created LuaScript that supports rising rule of Item1,3 (for Rockman2) This script can easily look for rising result of best Item1.

Frame rule of boss's HP&Underwater frame rule

If the result of $1C AND 0x03 is 0x00, boss's HP is added. Boss's HP is sure to increase every 4 frames usually. However, the boss's HP increase processing is skipped once per 4 frame when you are in water. Then, timing that boss's HP increases only once per 8 frame might be caused. You lose frames when there is a lot of timing that becomes per 8 frames.
You can decrease the pattern that becomes "per 8 frames" by changing WaterFlag. The value of flag "$FC" of water circulates between "0-4" only while you are in water. This value can be adjusted by changing the number of frames that you are in water.

The hit judgment is changed when colliding with the enemy.

I solved this mysteries. However, it was not effective for the saving. :P
Width of X coordinates of hit judgment ≈ Memory($D4E1,$06EE) The maximum value is #$50 at $D575. Height of Y coordinates of hit judgment ≈ Memory($D581,$06EE) The maximum value is #$FF at $D678.
For instance, $06EE=0x46 at W4. Width of X coordinates of hit judgment = ($D4D1,0x46)=$D527=0x30 Height of Y coordinates of hit judgment = ($D581,0x46)=$D5C7=0x28
Width of hit judgment at time usually.
Momentary hit judgment that collides with enemy. The hit judgment grows, and the enemy in a place away is defeated!

Land on the spike

We were testing distribution of Item1 in Wily4. We noticed my idea was useful. "Item3(land on the spike)->Item3(through the wall)" I was surprised because the idea that had been thrown away in July, 2005 revived.


Mr.aglasscage His optimization was wonderful. Especially, the usage of the Item1 was also wonderful. :)
Mr.pirohiko. He is good at the optimization of DelayScroll.
Mr.Shinryuu He was very busy. However, he worked on TAS without compromising. Thanks :)
Mr.TaoTao The idea of DelayScroll was wonderful.
Mr.DARS The memory list of Rockman2 served as a reference.
Mr.Tekepen The material of 6502 served as a reference.
Mr.hika He taught the foundation of the boss of W6.
The IRC channel #TASers Chat in which TAS player of Japan gathers. We exchanged opinions here.
P.S. Our next target is MegaMan1! Please expect the major upgrade. :)

aglasscage's Comments:

I began this project with Shinryuu some time ago after I discovered some small improvements to heatman’s stage. After working together we were able to break the frame rule and improve the stage by 8 frames. Our movie originally began at this point. I worked together with Shinryuu mainly for the first three stages and then FinalFighter joined our project. From then on I worked directly with FinalFighter due to the fact that Mr. Shinryuu had many things going on in his life and little time to work on the TAS. pirohiko joined our project some time later to help with the woodman stage and the bubbleman DownScroll. Together pirohiko and I were able to improve the DownScroll over the previous movie (pirohiko succeed).
Flashman: 8 frames are saved in the flashman boss fight by using a previously known technique in a different location. The previous technique used in wily stage 1 of shooting twice so the second bullet hits the egg 1 frame faster is now applied to the flashman boss fight.
Heatman: 8 frames are saved during the stage due to better item-3 positioning. Also the technique used in previous movies of changing weapons in the middle of your fall turned out to be slow, so instead we change weapons at the top of the ladder near the end of the stage. In the first block room 1 frame is saved by standing on the item 3 for 1 frame before jumping up towards the ladder. 8 frames are saved in the heatman boss fight by using the same technique used in the flashman boss fight (see above).
Airman: 8 frames are saved due to different item-1 usage and also better optimization in general especially over the long cloud section. 4 frames of lag are saved by using DelayRight from the bottom of the screen instead of the top and scrolling with 1xitem-1. Near the end of the stage, left is pressed for 1 frame and the egg is killed before the birds can pop out saving a few frames of lag as well.
Clashman: FinalFighter helped me with the DelayLadderTech and in the end it was optimized very well. The first 3 rooms are optimized much better than the previous movie to save time and also the DelayDownscroll used at the very end of the stage now succeeds with 1xitem-1. This give us 1 extra item-1 which is used after the halfway point to save a lot of time making the scrolling worth it. A new method is used on the boss fight as well saving a few extra frames. Overall we were able to squeeze out 47 frames. To our regret, scrolling with the Air Shooter is impossible. Not because of the number of instructions but because of the sound generated by the Air Shooter. After the Air Shooter is fired you must wait a certain number of frames before the sound code generates values that make the DownScroll possible.
Quickman: 18 frames are saved due to better item-1 rise manipulation and also slightly better lag manipulation. The last wall zip in the Quickman stage was very hard to do/manipulate. This is the largest possible jump from one item-1 to another once you have already entered the wall. Normally when you discuss item-1 rise you talk about the item-1 rising after 0, 1, 2, or 3 frames. However, in this case the exact values (0-255) of the item-1 rise must be manipulated correctly so there is a correct relationship in the item-1 rise between the second and third item-1 that are thrown. This makes the wall zip here very difficult and FinalFighter helped me on this greatly as well.
Metalman: I was very happy with the outcome of this stage and it was our biggest improvement (55 frames). Basically I started experimenting with using 3xitem-1 to zip into a wall instead of just the normal 2xitem-1. I was also able to use a slightly different method in the first wall zip to save 15 frames and I made use of all of my item-1 and threw in some 3xitem-1 zipping in order to save the rest of the frames. Also the item-2 usage is slightly different to optimize the movie more than the previous. In case you are wondering, the method used on the boss gate (3xitem-1 zip) is 2 frames faster than using the method of the previous movie once you hit the second boss gate. It is not possible for me, using this method, to wait any longer before I begin my zip so that I can immediately hit the second boss door from the wall instead of having to turn to the right and fall into the boss gate (you will know what I mean once you watch the movie).
Bubbleman: Due to some improvements early in the stage, which consist of item-1 manipulation and a different method of using 3x-item1 on the first zip in the stage, pirohiko and I were able to find a better frame for the bubbleman DownScroll than the previous TAS (pirohiko succeed). After I entered the boss gate I noticed that I lost frames compared to the previous movie because of the time it takes bubbleman’s health to fill. I talked about it with FinalFighter and he investigated it and came back with a memory address (water flag) which influences the rate at which bubbleman’s health refills. I manipulated this by turning for 1 frame to the right immediately before the last item-2 zip. Even though that may look like a lost frame it does not matter because we will have to wait some time before the bubbleman DownScroll anyways, and it correctly manipulates the water flag as well.
Wily 1: This stage was kind of a mess for me because I felt I had maxed the stage completely with perfect item-1 rise and still could not break the monster 16-frame frame rule. At one point I had given up and decided I could not improve this stage over the previous movie. However, I went back and noticed that if I changed to quick boomerang in the middle of the vertical zipping it saved 1 frame rather than using it in the place Shinryuu and pirohiko did in the previous movie. After I succeeded in the mech dragon skip I noticed this single frame was just enough to break the frame rule and save 16 frames! The random firing after I switch to quick boomerang is done to manipulate the item-1 rise correctly for wily stage 2.
Wily 2: I was excited going into this stage because I knew I could optimize the item-1 rise very well from the wily 1 stage. I could get nearly the exact values I need. However I was disappointed that I could not save any time. If I remember correctly I am 3-4 frames ahead in the long room with the drills. However after I grab the big energy, due to a frame rule, the gained frames are lost. This, unfortunately, could not be avoided. Some of my firings may not seem optimal in the wily 2 boss fight. However this does not matter due to a frame rule of the time it takes for the next enemy to appear. This fight cannot be improved. The only reason some of my firings may seem suboptimal is I got to the end of the game and on the wily machine fight realized I had 2 less metal blades than I needed! So I had to go back and quickly change this. Unfortunately for me, firing metal blades in a diagonal direction influences the item-1 rise. So changing this boss fight meant I had to go back and manipulate everything all over again! A new route is used. We now change to the item-2 at the end of the stage instead of flash stopper. We are able to save 32 frames. Also, by having less item-2, time is saved in the wily 3 stage.
Wily 3: Because the item 2 is used in the wily 2 stage, the item 2 runs out during the water area of the wily 3 stage. This gives me a better positioning for the wall zip which was just enough to break the frame rule in wily 3. (16 frames)
Wily 4: A new route is used in wily 4. We no longer use the item 2, and instead use 2xitem1 in the room where the item2 was used previously. After, we switch to the item 3 and land the item 3 on the spikes, which is a very old technique, followed by using the item 3 for the wall zipping.
Wily 5: We were able to improve the wily 5 stage over our previous 23:50 movie. This wily 5 is the same number of frames as in Shinryuu, pirohiko, and finalfighter's TAS.
Wily 6: When we submitted our original version on the movie (23:50) a few days later I decided to make my own version of Mr. hika's wily 6 technique. It was known for some time you could use 1xitem1 on the wily alien boss fight and gain 20 frames. However, with better optimization I was able to improve it to 42 frames. Then me and finalfighter began discussing different ways to save item 1 in the wily 4 stage. We considered many possibilities. At one point I considered the idea of using the item 3 to land on the spikes. This technique was also known for some time. Then finalfighter revived a route he had back in 2005 and it not only was faster, but was also able to save 3xitem 1. Now, the first wall zipping is optimized to the maximum, and 1xitem1 is used on the alien boss.

Special thanks:

FinalFighter: I could not ask for a better partner. Whenever I had a problem he had the solution. The amount of help he gave me is insurmountable. Every time I encountered a previously unknown problem he would investigate it and give me the exact answers I needed.
Shinryuu: For starting this project with me some time ago and also offering his knowledge whenever I needed it. I regret the fact he could not work with me more and wish him luck with everything.
pirohiko: For TASing the woodman stage to its maximum and also testing any ideas FinalFighter and I had for different routes in the woodman stage. Unfortunately, we could not find a faster route. Nevertheless, his ability is terrific.
woabclf: For teaching me things about DelayScrolling when I worked with him on Rockman Exhaust.
Bisqwit, cstrakm, taotao: For their previous discoveries and additions to Rockman 2.
I hope you enjoy it! <3

Nach: Judging.
Flygon: Embedded Bisqwit's YouTube upload/

Nach: Nice improvement guys. Accepting.
Last Edited by Nach on 10/18/2010 1:34 AM
Page History Latest diff List referrers