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

Nintendo Entertainment System
FCEUX 2.1.3
Rockman 2 - Dr. Wily no Nazo (J).nes
Submitted by aglasscage on 10/9/2010 5:38:45 AM
Submission Comments
  • 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 Work Sharing
Frames Gained Frames Lost Stage Boss
Flashman 8 0 aglasscage & Shinryuu aglasscage
Heatman 16 0 aglasscage & Shinryuu aglasscage
Airman 12 0 aglasscage Shinryuu
Clashman 47 0 aglasscage (assisted by FinalFighter) aglasscage
Quickman 18 0 aglasscage (assisted by FinalFighter) aglasscage
Metalman 55 0 aglasscage aglasscage
Bubbleman 25 0 aglasscage & pirohiko (assisted by FinalFighter) aglasscage
Woodman 29 0 pirohiko aglasscage
Wily 1 16 0 aglasscage aglasscage
Wily 2 0 0 aglasscage aglasscage
Wily 3 0 0 aglasscage & Shinryuu aglasscage
Wily 4 8 0 aglasscage (assisted by FinalFighter) aglasscage
Wily 5 0 13 aglasscage aglasscage
Wily 6 3 0 aglasscage aglasscage
(Total) 237 13 Improvement of 224 frames over previous TAS.
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 and my previous Wily 3 play through got copy pasted. 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. Rockman2) MegaMan2)
I have created Support LuaScript of DelayScroll for test. 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!
  • SpecialThanks
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.
  1. 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!
Wily 3: I could not improve this stage. Shinryuu optimized the beginning with the big fish and the first zipping. I did the rest of the stage and the boss fight. The random firing used in the boss fight is to manipulate the item-1 rise in wily 4. It may seem like when I am manipulating the item-1 rise I am firing a lot more than the previous movie. The reason is this time around we are not just trying to optimize for the item-1 rising after 0, 1, 2, or 3 frames. We are manipulating the item-1 rise value for specific values so the relationship between the item-1 rise will be exactly how we want it. (See below)
Wily 4: 8 frames are saved due to better item-3 manipulation. Also, in the room with the platform where 3xitem-1 are used to zip, the item-1 rise is manipulated perfectly from wily 3 so we can perform the fastest zipping possible. The second item-1 immediately pushes you up to the third item-1 where after 1 jump you are where you need to be in the ceiling so you can turn left and zip to the ladder. It is possible to manipulate it so the third item-1 immediately pushes you to the ceiling without needing to jump, but then the zipping is not possible.
Wily 5: To my regret, we lost 13 frames on the Wily 5 stage. The reason is not because of the boss fighting but because of the time in teleport and the time it takes for the boss’ energy to refill. For example, I enter bubble man’s teleport 230 frames ahead of the previous TAS but when my first metal blade hits bubble man I am 223 frames ahead. I talked to FinalFighter about it and after investigating it, FinalFighter came up with a memory address but unfortunately it cannot be manipulated in any way to save time. I sent my movie to Shinryuu and he tried but could not regain any of the lost frames. Unfortunately, these frames are lost due to bad luck (or ignorance). At this point with the current knowledge there is nothing we can do about it.
Wily 6: I was able to save a couple frames with better item-1 manipulation and also changing to bubble lead after entering the boss room instead of in the middle of the zip. This makes my jump at the beginning of the fight slightly smaller.
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

Flygon: Scrolling to add this message that the YouTube module for the point based encode has been a pain, but as per Flygon standard, the module has been embedded.
I'm impatient for the impending HQx encode, assuming one is being made.

Nach: Judging.

adelikat: Setting to delayed as requested by the author. It is pending an improvement that has been discovered.

Last Edited by adelikat on 9/20/2023 1:47 AM
Page History Latest diff List referrers