Rockman 1 beaten in 9:45.35 by Shinryuu, pirohiko, Maru, and FinalFighter

Rockman needs no introduction! It has been at the center of TASing attention since the dawn of TASVideos. This is an improvement of 9495 frames compared to the published run by Shinryuu and FinalFighter through more applications of DelayObjectGlitch and better optimization. Remember to use FCEUX OldPPU with this movie.
Our run includes at least the following:
  • Takes damage to save time
  • Uses death to save time
  • Forgoes major skip glitch
  • Forgoes final boss skip glitch
  • Heavy glitch abuse
  • Forgoes time-saving glitches
  • Corrupts memory

Detailed and fixed up graphics encode from pirohiko

Is this ACE?

The answer is no. What we are doing is not ACE. We are not executing RAM as code. The values that are being used to generate the objects are simply being “looked up”. To achieve arbitrary code execution with these glitches, you need to go a step further. Looking back at FinalFighter’s jump address list, there is object 0x55 (85) that executes $600. In this situation, it’s executing RAM as code, and this is exactly what the game end glitch TAS does to reach the end credits. With objects 0x75 and 0xF5, we are calling ROM addresses. In short, if we are executing something below $8000, it is considered ACE, but we avoid doing that.

Goal choice

Although memory corruption is used, we acquire everything in our inventory that counts towards full completion, and all of the stages are completed. However, we also understand that DelayStageClear glitches may be damaging entertainment in some people’s eyes. Therefore, Maru, a TASVideos judge, proposes the following branches for this game:
  • Game end glitch (already exists)
  • This TAS (already exists)
  • A TAS that does not use object glitches (Bisqwit & Deign -like gameplay)

Explanation of DelayObjectGlitch

DelayObjectGlitch is a very complicated glitch that needs to be re-explained. To start off, it is worth mentioning that many NES games, Rockman being no exception, use banks to help accomplish internal tasks. This is because the NES can only address so much data at one time, and many games have to swap the data around in big chunks that are small enough to fit. For example, enemy routines are located in bank 6. Then, the NMI comes into play, which runs every frame so the game functions the way it is supposed to. It’s an interrupter that occurs at the same time no matter what, and will in every scenario interrupt any logic that the game was currently dealing with. Some calls associated with NMI are in different banks, so as a result, the game has to perform a bank switch. A bank’s value is stored in a given memory address and restored after the NMI interrupt routine was completed. In most cases, you will be in bank 5 before the bankswitch. However, you can execute an NMI during the bankswitch, the key being after it is switched but before it is saved. This causes us to return to the wrong bank. When we’re in bank 5, the object pointer simply contains zeros. The game is supposed to use offsets to get its data, which works perfectly fine when we’re in the correct bank, but since we’re in bank 5, it points at incorrect addresses.
Note that the game has a series of objects from 0x00-0xFF. Under normal conditions, the game will never generate an object higher than 0x4A (74). However, DelayObjectGlitch allows us to generate those objects that would never be generated in normal scenarios. The objects that are generated from 0x00 to 0x7F are repeated from 0x80 and onward.
How can we go further than this?

DelayObjectFFGlitch

This allows us to have more freedom in terms of which objects we can generate. Object 0xFF is an invisible object associated with palette table remapping and appears scarcely. It happens to appear in the Iceman stage in a point that we can take advantage of, and unlike the normal DelayObjectGlitch, we have more freedom in terms of which objects we can generate. The object is read from bank 2 and followed with a switch to bank 6. However, with careful placement of an NMI, we can return to bank 2. This allows us to control which object that we can spawn. Object 0xFF is also generated in Bombman after two instances of DelayObjectGlitch bank switches, but the object numbers are more limited. We also use DelayObjectFFGlitch after one instance of DelayObjectGlitch bank switching in Wily 2.

DoubleObjectFFGlitch

This glitch is known by the RTA community as the double object wiggle glitch. In Iceman stage, object 0xFF actually appears in another place where you can take advantage of this glitch. You have to wander around the area where object 0xFF occurs, which is after the water section of the stage. This executes processes associated with object 0xFF, and by doing a wiggle, you can read the wrong data from bank 2. However, this is slower than DelayObjectFFGlitch in Iceman.
In Gutsman stage, there are a couple of areas that we can use this glitch, but in certain places, you can control which object is spawned based on second controller input. We picked the earliest place in the level that we could do it to call the level ending.
More details on DoubleObjectFFGlitch are available here: https://ch.nicovideo.jp/TASVideos/blomaga/ar535617

DelayStageClear, DelayMagnetBeamAdapter

There are a few objects that were of immense help during the making of this TAS. Most specifically, objects 0x75 and 0xF5 allow us to end levels early through what we refer to as DelayStageClear. This object contains some broken jump tables that serve to call the score routine ($c0bd) that consequently ends the level.
There was another object that helped us too, however. Object 0x42 (66) gives us the magnet beam. We were able to generate this object to save time in a later stage.
FinalFighter was nice enough to assemble a jump address list for each object that you can generate. This can be seen here: http://www.yuko2ch.net/rockman/JumpAddressList.txt

Level differences

  • Iceman: 3053 frames
  • Fireman: 85 frames
  • Gutsman: 2900 frames
  • Cutman: 100 frames
  • Elecman: 2649 frames
  • Bombman: 103 frames
  • Wily 1: 200 frames
  • Wily 2: 246 frames
  • Wily 3: -1 frame
  • Wily 4: 160 frames

Route outline

This project:
  • Iceman: DelayObjectFFGlitch(Object 0x42 and Object 0x75) -> DelayMagnetBeamAdapter and DelayStageClear
  • Fireman
  • Gutsman: DoubleObjectFFGlitch(Object 0x75)
  • Cutman
  • Elecman: with magnet beam at the start of the stage
  • Bombman: DelayObjectGlitch(Object 0xF5) -> DelayStageClear
  • Wily 1: DelayObjectGlitch(Object 0x75) -> DelayStageClear
  • Wily 2: DelayObjectFFGlitch(Object 0x42 and Object 0x75) -> DelayMagnetBeamAdapter and DelayStageClear
  • Wily 3
  • Wily 4
Published run:
  • Elecman (to acquire magnet beam)
  • Iceman: DelayObjectGlitch(Object 0x2F) -> DelayWaterCurrent
  • Fireman
  • Bombman: DelayObjectGlitch(Object 0xF5) -> DelayStageClear
  • Gutsman
  • Cutman
  • Wily 1: DelayObjectGlitch(Object 0x75) -> DelayStageClear
  • Wily 2: DelayObjectGlitch(Object 0x5D) -> DelayWarpDeath -> DelayStageClear
  • Wily 3
  • Wily 4

Level comments

Iceman:

In this level, we use DelayObjectFFGlitch. Immediately, we start off with two precise calculations involved to acquire the magnet beam (DelayMagnetBeamAdapter) and end the stage early (DelayStageClear). We have to take the three flying robot heads to a place where Object 0xFF is available. We manipulate enemy drops, instruction count, and the music to carefully place the NMI routine where we want it to be.
Then, we have to figure out which address to read object numbers from. This is where the calculation gets interesting… There’s a frame counter address located at $23 which seems like the natural choice for such a thing (this was what the published game end glitch TAS did), but there’s one problem with it. It’s slow, and by that, we mean over 3 seconds slower.
Maru found something that was quite a bit faster but more difficult to succeed with...
We use $17, which is an address associated with 2P input, to generate the magnet beam and end the level. Here is what it took to read from $17 twice:
  • $7b-8a must not contain 0x05.
  • $8c must contain 0x05 (x-position must be 1 or 2)
  • $14 must be less than or equal to 0x04.
  • When an object is generated (the magnet beam in this case), the number of objects that were generated is added to $8c, so it changes to 0x0a.
  • 0x05 was written to $81 when the magnet beam was generated, and it is not overridden upon collecting the magnet beam, so we override it by quickly generating two more objects immediately after.
  • We need $8c to change back to 0x05, so we do a quick wiggle to change the x-position for a frame.
  • All of this must be done while the instruction count is sufficient for the proper bank switches to occur.
The magnet beam is generated by pressing B and L on the second controller. It is difficult because we also need to manipulate the coordinates where the magnet beam will spawn at. The magnet beam’s coordinates are decided by $15 (X) and $16 (Y), and once it is generated, it will move in the 11 o’clock direction.
Now, after generating and grabbing the magnet beam, we have enough lag and instructions in order to read from $17 again. This time, we use it to end the level by pressing A, Select, U, D, and L.
The published run used DelayWaterCurrent in this stage, but this relies on the mechanics behind DelayObjectGlitch rather than DelayObjectFFGlitch. DelayObjectFFGlitch was not known during the time.
Work sharing:
  • pirohiko (execution and optimization)
  • Maru (investigation)

Fireman:

There is an annoying framerule in this level that prevents small gameplay improvements from helping, and that is the four frame framerule associated with item refills.
After some slight optimizations in the first screen, we used a completely different strategy in the second screen that involved a vertical zip. With enough optimization, we were able to save time with it. We also changed our strategy in the room before the long horizontal damage zip to avoid having to wait for the moving fireballs.
We changed our strategy slightly in the final part of the level. Extreme optimization with subpixels and careful magnet beam length management were needed to save a few frames just before the boss.
The rest of the frames that we saved came from lag reduction from the glitched graphics as a result of performing DelayStageClear in Iceman.
In total, we saved 85 frames in this level compared to the published run.
Work sharing:
  • Maru (main player, optimization)

Gutsman:

We end this level out of nowhere, so it may seem like we are using some sort of cheat code, but that is not the case. Object 0xFF appears in double in a place where we can use the DoubleObjectFFGlitch. In order to perform the glitch, we need a specific x-position and must wiggle to force the object to be read from the wrong bank. In this level, it is being read from $17, which is associated with second controller input. By pressing the correct buttons on the controller (A, Select, U, D, L), we can force the game to generate object 0x75, ending the level.
Work sharing:
  • pirohiko (discovered DoubleObjectFFGlitch)
  • Maru (optimized the magnet beam usage)

Cutman:

This level has a handful of minor improvements compared to the published run. We start off with some lag reduction early on in the stage.
In the early vertical section of the stage, we utilize a new trick on ladders that was found by coolkid. This involves using a magnet beam and quickly pausing to obtain more height when climbing ladders. The reason this trick works is because of a greater y-velocity during the screen transition. We used more magnet beams in the early vertical section, notably to start zipping earlier in one screen and to avoid a projectile without slowing down in the screen just before the refills.
In order to save time in this level with this in mind, we had to manipulate two large item refills, which has a cumulative probability of 1/4096. We didn’t have to lose much time in order to manipulate the item refill drops. It is difficult because we need enough room to make the initial item switch and then enough time to switch back to the magnet beam in order to collect the refills.
During the latter half of the stage, we optimized the climbing sections, particularly by avoiding pauses that were in the previous TAS. A new strategy through the climbing screen just before the long vertical zip saved several frames. Lag reduction is extremely tricky in that screen though. This was the best solution we found.
In total, we saved 100 frames in this level.
Work sharing:
  • Shinryuu (first half of stage)
  • Maru (second half of stage)

Elecman:

We already have the magnet beam, so we can save time climbing in the first part of the stage. Having the magnet beam at the start of the level saves about 17 seconds. Most of that time comes from not having to wait for the appearing blocks. Although it looks slow, we collect all of the small capsules for the extra magnet beams because we need every one that we can get.
Coolkid’s ladder trick works even when there are no magnet beams in memory. Although it looks slow to climb up that ladder after the trick was used, we didn’t find any better ways of using the magnet beams before grabbing the “real magnet beam adapter”. You might notice on that same screen, we used several select+start pauses. This is actually done to remove a frame of lag because we have to wait for RNG anyway.
Collecting the magnet beam item without the use of DelayObjectFFGlitch simply provides a full refill for us, so the rest of the stage is played similarly to the published run. We save 26 seconds in the boss fight by having Cutman’s item instead of needing to use buster.
In total, we saved just over 44 seconds in this stage.
Work sharing:
  • Shinryuu (main player)
  • Maru (optimization)

Bombman:

We use a different setup to perform DelayStageClear in this level. We manipulate enemies into position to generate the NMI routine in the needed place. This is finally accomplished by some rapid buster fire accompanied with screen wiggling to call object 0xF5, which ends the level.
With two instances of DelayObjectGlitch bank switching, we can generate Object 0xFF. At this point, we can wiggle to generate object F5 to call the end of the level. Bombman relies on $2006 + X to generate objects when in the wrong bank, and those addresses are associated with the PPU, so there is more freedom with which objects can be generated.
Although this was technically not our fastest combination of inputs that led to calling the end of the level, we have to be very careful not to change $d1. $d1 is an address that may or may not change when the ending is triggered in Bombman. If it changes, it will prevent the DelayObjectGlitch mechanics from working in Wily 2.
Overall, we saved 103 frames in this stage.
Work sharing:
  • Shinryuu (gameplay, manipulation)
  • pirohiko (DelayStageClear, optimization)

Wily 1:

The first section of this stage is not much different from the published run, although it was optimized a bit. We use the ladder tech entering the second screen in this stage because it saves several frames. In the second room, however, we start using magnet beams like crazy. That’s because we have a new strategy in Wily 2. More on that later…
A few frames had to be lost to manipulate the spike enemies. They are more finicky than most people would think. Specific object slots must be manipulated in Wily 1 in order to trigger the DelayStageClear effect. When the conditions are correct, object 75 will be read from $608, which is associated with the y-position that a thunder beam was fired at. Thunder beams are good in that they cause a lot of lag, making it very useful for these types of glitches, even though it requires a weapon switch.
In total, 200 frames were saved in this stage.
Work sharing:
  • Shinryuu (first screen of Wily 1)
  • Maru (DelayStageClear)

Wily 2:

We decided to play this level a little differently compared to the published run. The published run used DelayObjectGlitch to generate object 0x5D, which messes up object information. As a result, the value from $618, which happens to be the y-coordinate of the 9th object, is copied into $6f8. If $618 is 0x75, the level ending will be triggered.
The published run manipulated a large magnet beam refill drop and after collecting that drop, switched to the thunder beam to perform DelayStageClear, but we had a better idea in mind.
We were able to generate object 0xFF using the damage sound animation after one instance of DelayObjectGlitch bank switching. After that, we were able to use second controller input to generate the magnet beam object and object 0x75 to end the level. We did not have to switch to the thunder beam either, so some time was saved in that regard as well.
The difficult thing with this strategy is that we can only collect the magnet beam and call the end of the level while $92 is changing. When we hit the instance of DelayObjectGlitch bank switching, $92 changes from 0 to 15 and will start counting down by 1 during each non-lag frame. When it hits 0, we generate object 0xFF, which starts the $92 counter all over again and gives us 15 frames to generate the magnet beam and call the end of the level. It’s a very tight window, but we were able to make it work.
We saved 246 frames compared to published run here.
Work sharing:
  • pirohiko (DelayMagnetBeamAdapter + DelayStageClear)
  • Maru (initial testing)

Wily 3:

This level isn’t much different from the published run. The boss fight is difficult to get things right with due to how random it can be at times. We tried our best to entertain even though it was difficult. There is a two frame framerule in this level for starting the boss fight, so we had to lose one frame to the published run here.
Work sharing:
  • Shinryuu (gameplay, optimization)
  • Maru (stylistic changes)

Wily 4:

This stage is interesting because we had more magnet beams than usual. We found that it was actually faster to skip getting the large magnet beam refill after the climbing section of the level. That large refill is a 37 frame delay, and we didn’t find anywhere to use magnet beams to save 37 frames. There can only be so many magnet beams on screen at one time as well. Deign’s old TAS used a magnet beam at the beginning of the stage, but we found that it was faster to use an extra magnet beam to set up a zip in the third screen faster.
The refight skip was further optimized compared to the published run. There are some limiting factors with the refight skip, so it is important to minimize lag.
We used a new strategy during the final boss fight, which saved several frames compared to the published run. While glitched graphics helped with lag reduction in several stages, it does not seem to want to help us here. It took several days for us to figure out this boss fight, and you’d be surprised at how difficult of an optimization challenge it was. Note that we opted to end the input early for this boss fight. The actual boss itself can actually be killed about 10 frames faster, but to do that, we would have to end the input later.
Needless to say, we managed to save 160 frames in this stage.
Work sharing:
  • Maru (main player)
  • pirohiko (final boss fight)

Comments from users

Maru’s comments:

"I’m glad this TAS is completed. I have always been a fan of Mega Man games, and it was great that I could contribute my improvements and help to assemble everything together. It is truly a fascinating game with a lot of secrets that require people to explore deep into the game mechanics in order to uncover them.
I have to thank FinalFighter for his dedication to the game, his code analysis, explaining these glitches and providing us with useful scripts when needed. I must also thank Pirohiko for being able to use my ideas to further improve Iceman and always being able to find a solution to problems that I came across. Shinryuu was also a great TASing partner to have and accompanied me while we struggled through the minefield of exact instruction timings in this game.
We are working on a “no object glitch” TAS of Rockman 1. In the meantime, I need to finish SMB3 100% at some point. I haven’t forgotten about that project.
Note that we used FCEUX for this TAS because even though BizHawk is slightly better at emulating exact instruction timings, all of our tools that allowed us to perform these precise calculations were on FCEUX, and BizHawk is not ideal for running heavy scripts because it slows the game down tremendously. Furthermore, Shinryuu does not have access to BizHawk. We have done tests with console verification of Bombman DelayStageClear using BizHawk, and while we can conclude that BizHawk is slightly better than FCEUX at emulating those instruction timings, it is not significantly better to the point where there is a high likelihood of console verification."

Shinryuu’s comments:

"This was a wild ride. Improvements over improvements and new techniques popped out of nowhere. I started this new project years ago but our group partially 'disbanded' at some point. That's what they call life I believe. You get older and have more obligations to do in your life. Happily the group got together years later, Maru joined later on and he spiced the RM1 motivation up and now we have a finished product. I’m also glad this is not an ACE run.
I have more knowledge about Rockman 2 in general so making this tool-assisted speedrun provided me a good ground for learning how mechanics works instead. Both games do share something in common but this game feels like a prototype with messed up frame rules and glitches. I can't understand how we were able to beat this game without crashing it. Both Maru and pirohiko showed a great amount of interest and optimization towards the game.
This game is quite demanding at times and we had trouble to understand some ’basic’ mechanics including frame rules. We understood that most of the time things seems to change at every two frames. They’re still quite similiar and close to the Rockman 2 but there are more variables in the way. Wily 3 fight had to be done again several times. That was a time sink but we wanted to play as much we can by hand. That gave us a better control and understanding. Sometimes copy-pasting worked, sometimes not.
I let Maru to handle submission text because he had a vast knowledge about how everything works. I'm more interested to beat the game instead without providing this arcane black magic to the users. To be honest; I have trouble to express and dive deep and write about these techniques even I do know how they mostly work. I'm the player who gets feeded by knowledge.
And yes; we’re going working on a ”No Object Glitch” tool-assisted speedrun. To give you a better idea, it should honor and look pretty much the same how Bisqwit and Deign made their runs. I prefer to handle things ”as fast as possible as long it’s not ACE” but I’m willing to do work on this new category as well. It’s actually really challenging, interesting and it completes stages in a more sane or normal way."

Pirohiko’s comments:

"I ran the BOT continuously for about a week with changing conditions to make the delay glitch successful on the Iceman stage. The interval from the first to the last glitch was 50 frames, which the BOT reduced to 48 -> 46 -> 44 -> 42 -> 38 -> 34 -> 32 -> 26 -> 22. After reading the assembly code and understanding the success conditions, by manually adjusting things in TAStudio, I eventually reduced it to just 8 frames.
I've found that understanding how to succeed and then doing 1000 rerecords gives better results than having the BOT rerecord 10 million times blindly.
ディレイ技を連続で成功させる為に条件を変えながら1週間くらいBOT回してて最初のディレイ技から最後の技までの間隔が50fから始まって48,46,44,42,38、34,32,26,22と縮んでいって、最終的にトレースログ読んで条件を理解したあと手動で調整してたら運良く8fまで縮んだ 条件を理解してないBOTの1000万追記よりも、 条件を理解してる人間の1000追記のほうがずっといい結果を出すことがよくわかった"

FinalFighter’s comments:

"I, Pirohiko and Shinryuu were making RM1 Any little by little, Maru was also working on Any in another project. Maru's understanding of RM1 was great, so we decided to fuse it with our project I think that the fusion of the two projects led to better results.
My job this time was to explain how Glitch works and create a BOT. If ProcessCounter does not go through our operable memory, there is a way to get MagnetBeamAdapter. Then, We would be given a new surprise.DelayObjectGlitch, DelayObjectFFGlitch, DoubleObjectFFGlitch are further optimized and used.As a result, Any has been greatly updated. And we are working on another Rockman TAS. Please wait for everyone."

Special thanks:

  • Adelikat, Nach, Dwedit: They helped solve the issue with OldPPU.
  • Cstrakm: He discovered DelayWaterCurrent. It led to the discovery of DelayObjectGlitch.
  • Inzult: He verified that DelayObjectGlitch was possible on a real NES.
  • Tekepen, Kureyuni: Their help with 6502 assembly was useful.
  • AlphaBeta, NinjyaSuperK, Vagla, Bisqwit: Their analysis of Rockman 1 helped during the creation of this TAS.
  • warmCabin: His encouragement and dedication to Rockman TASing was helpful to us.
  • aglasscage: Although primarily a Rockman 2 TASer, he has been a part of our team for a while.
  • Paosidufygth: He had some interesting strategies in the PSX TAS of Rockman 1.

Suggested screenshots


Memory: Potential for branching discussion? Claiming.
Maru: Updated with file that is 5 frames faster.
Maru: The ride never ends. Updated with file that is 24 frames faster.
Maru: Updated with file that is 6 frames faster.
Maru: Setting to delayed for the time being.
Maru: Updated with file that is 12 frames faster.
Maru: I exhaustively optimized this some more... maybe we are done now?
Memory: Resuming judging
Memory: Optimization is not a problem with this submission, especially after all the additional improvements.
While there was one person who expressed disappointment with the amount of times the level end was triggered using memory corruption techniques, overall this submission was very well received. As such this branch can continue to exist alongside game end glitch. I can also see value in a run that does not abuse the memory corruption glitches at all.
However, I disagree with the assertion that this is full completion. While the magnet beam is obtained using memory corruption techniques, it is spawned as a physical pickup that is collected. One could potentially argue this is similar to what [3687] GB Pokémon: Blue Version "Gotta Catch 'Em All!" by luckytyphlosion in 37:55.33 performs. However, the other criteria listed in the submission notes is that all levels are completed. A large amount of levels are ended via memory corruption, which seems contrary to the rules on full completion. Personally, I do not think that full completion is even a particularly necessary label for Mega Man 1 TASes. Through standard actions, one must complete all levels anyways, resulting in the only truly optional achievement being collecting the magnet beam, something that most branches will do anyway.
Accepting to Stars as an improvement to the current run.
fsvgm777: Processing.


TASVideoAgent
They/Them
Moderator
Joined: 8/3/2004
Posts: 15583
Location: 127.0.0.1
Challenger
He/Him
Skilled player (1689)
Joined: 2/23/2016
Posts: 1061
What an excellent way to start this year, and this new decade! Seriously, this run is even more surprising than before. Excellent work guys! Yes vote.
My homepage --Currently not much motived for TASing as before...-- But I'm still working.
Editor, Active player (297)
Joined: 3/8/2004
Posts: 7469
Location: Arzareth
Awesome and totally unexpected.
  • I was particular impressed by the new climbing strategies in Fireman and Elecman stages. Such a simple improvement and by no means a new technique, but very effective application. The beamless ladder-top zip is not new either; it is already mentioned at http://tasvideos.org/GameResources/NES/Rockman.html#LadderTricks as of revision 2 (2004-07-21 by me).
  • I was less impressed by the glitch in the Gutsman stage, although I totally did not expect it. (And similarly Iceman, Bombman, Wily1, Wily2)
  • Fun fact: I have not yet identified the cause of the split-screen effect. Why the game renders that way, and why it persists across stages. I think it is related to the ending; this is also reinforced by the energy bars disappearing. But if it was that simple, the ending itself would be unaffected.
  • Nice homage of my TAS, using the accelerating teleports in Wily3.
Experienced player (544)
Joined: 5/12/2005
Posts: 707
Challenger wrote:
What an excellent way to start this year, and this new decade! Seriously, this run is even more surprising than before. Excellent work guys! Yes vote.
Glad to hear you enjoyed the ride!
Bisqwit wrote:
Awesome and totally unexpected.
  • I was particular impressed by the new climbing strategies in Fireman and Elecman stages. Such a simple improvement and by no means a new technique, but very effective application.
  • I was less impressed by the glitch in the Gutsman stage, although I totally did not expect it. (And similarly Iceman, Bombman, Wily1, Wily2)
  • Fun fact: I have not yet identified the cause of the split-screen effect. Why the game renders that way, and why it persists across stages. I think it is related to the ending; this is also reinforced by the energy bars disappearing. But if it was that simple, the ending itself would be unaffected.
  • Nice homage of my TAS, using the accelerating teleports in Wily3.
Those climbing strategies were found by Paosidufygth. He tends to make PSX TAS versions whatever the reason is. warmCabin pointed those strategies out so our group started to check Paosidufygth's gameplays after that. He had some pretty good and precise strategies included in them. Some of them were bad as well. Which makes the whole thing.. interesting. Yes, that's a trade-off for speed. They included a high amount of work but that doesn't always work with entertainment value. We've started to make a version which respects yours and Deign's gameplay so we're not abusing DelayObjectGlitch at all. I poked FinalFighter about that split-screen effect. I can't seem to remember if this is being discussed before with him. That technique also makes lag to behave differently.
Editor, Skilled player (1439)
Joined: 3/31/2010
Posts: 2108
Absolutely incomprehensible. I love it. Edit: I also want to give my thanks for the subtitle commentary. It helps illuminate a lot of what is going on.
Noxxa
They/Them
Moderator, Expert player (4124)
Joined: 8/14/2009
Posts: 4090
Location: The Netherlands
The year has only just started and we already have likely one of the best movies of the year on showcase here. Terrific job, all of you. Very strong yes vote.
http://www.youtube.com/Noxxa <dwangoAC> This is a TAS (...). Not suitable for all audiences. May cause undesirable side-effects. May contain emulator abuse. Emulator may be abusive. This product contains glitches known to the state of California to cause egg defects. <Masterjun> I'm just a guy arranging bits in a sequence which could potentially amuse other people looking at these bits <adelikat> In Oregon Trail, I sacrificed my own family to save time. In Star trek, I killed helpless comrades in escape pods to save time. Here, I kill my allies to save time. I think I need help.
CoolHandMike
He/Him
Editor, Judge, Experienced player (895)
Joined: 3/9/2019
Posts: 696
Excellent! Megaman? More like Glitchman! It does not really need it, but will there be a graphics fix encode? If that is even possible. I liked the screenshot at 9:08 with the impossible scenario of both Megaman and Bombman standing on spikes.
discord: CoolHandMike#0352
Post subject: imgur to something else.. they seem to block hosting
Experienced player (544)
Joined: 5/12/2005
Posts: 707
CoolHandMike wrote:
Excellent! Megaman? More like Glitchman! It does not really need it, but will there be a graphics fix encode? If that is even possible. I liked the screenshot at 9:08 with the impossible scenario of both Megaman and Bombman standing on spikes.
Thanks. pirohiko is preparing a video which shows a minimap and other information as far I'm aware. Fixed up graphics version might need a lot of work and I don't know on what level that is even possible. Here's a peek from an old TAS which also used some extra information:
Player (82)
Joined: 9/27/2018
Posts: 13
Location: Muskegon MI
Great optimization you did in this run!!! Voting yes
Lobsterzelda
He/Him
Skilled player (1257)
Joined: 3/17/2019
Posts: 282
This is a great demonstration of the power of TASing to completely bend a games' logic to work in favor of the TASer. A definite yes vote for me. Additionally, this movie should definitely be accepted to stars.
Experienced player (690)
Joined: 11/23/2013
Posts: 2233
Location: Guatemala
I voted yes, we're sure starting this decade with pure gold!
Here, my YouTube channel: http://www.youtube.com/user/dekutony
Active player (302)
Joined: 3/15/2018
Posts: 235
Location: United States
Regarding the split screen effect: I noticed an identical effect when messing around with bad scroll values in the Mega Man 2 editor. The pause menu would fix it and everything. I tried to make a fixed graphics script for Rockman 1, but FCEUX's API is too limited. I wanted to take the minimap script (which uses hardcoded images) and scale it up to a fullmap (I've done that sort of thing before), but you can't really draw between the BG and object layer. If you disable the BG layer, those pixels show up as black. You could theoretically draw your image pixel by pixel, only overwriting black pixels, but then it would screw with sprite outlines and transparency. There's a Super Metroid graphics fix script that actually simulates the game's drawing routine in Lua. It's pretty wild. FCEUX does not provide direct access to PPU RAM, so you'd have to write graphics through the port ($2007) if you wanted to go that route. That honestly might be the best way to do it, but it sounds really annoying to make! Actually, now that I think about it, I bet you could disable all graphics, do the minimap/fullmap thing, then just simulate the sprite drawing routine. Also, I can't stop by without reposting my coffeepasta! Did you guys have fun tracing those obscure race conditions from the 80's?
The8bitbeast
He/Him
Expert player (2633)
Joined: 11/26/2015
Posts: 183
Location: Australia
Nice! An improvement to one of my favourite movies. It's clear that you've all optimised the heck out of this and the commentary adds a lot of value to it. I'm also looking forward to Pirohiko's other encode. Hopefully this can get shown off at GDQ like the last publication for this category. It's a shame that the game gets broken so early before seeing normal gameplay, but it's worth it for those sweet frames. I'd agree with the proposed branches in the submission text. Yes vote.
Patashu
He/Him
Joined: 10/2/2005
Posts: 4043
It's a delight to see one of my formative TASing experiences revisited and made more powerful than ever. This game being so deliciously and intricately broken on both the high level of creating objects from nothing, permanently glitching the graphics and the low level of just zipping, wrapping and pause buffering through every obstacle in your path made it a defining TAS of its era. Yes vote, and I look forward to the no object glitch TAS as well!
My Chiptune music, made in Famitracker: http://soundcloud.com/patashu My twitch. I stream mostly shmups & rhythm games http://twitch.tv/patashu My youtube, again shmups and rhythm games and misc stuff: http://youtube.com/user/patashu
PJ
He/Him
Joined: 2/1/2011
Posts: 182
Location: Western NY
My favorite part of these Mega Man 1 TASes is always the credits. Mega Man defeated Wily, but at what cost??? Really great work, everybody! Highly entertaining movie.
fcxiaopengyou
He/Him
Experienced player (558)
Joined: 7/25/2015
Posts: 123
Location: Republic of China
The king of the TAS! I knew it can be improved, but I didn't expect to improve so much! A few questions: 1. cutman stage also have green helicopters, can pass boss by using glitch? 2. Pass boss glitch stages, is it necessary to start with 50000 points? 3. I came across this video, and I don't know if it helps the movie.(here video) If you have written the answer in your introduction, please forgive my rudeness, because my English level is not high. Last year your team made MM2,I surprised! All in all, it's a GREAT movie!Thank you!I really enjoyed it! And happy 2020 new year!
Working on: [NES] Downtown Special - Kunio-kun no Jidaigeki Dayo Zenin Shuugou! (J) ''2 players 100%'' Plan: [SNES] Kenyuu Densetsu Yaiba (Japan) _________________ My English is pour. 
Experienced player (544)
Joined: 5/12/2005
Posts: 707
fcxiaopengyou wrote:
The king of the TAS! I knew it can be improved, but I didn't expect to improve so much! A few questions: 1. cutman stage also have green helicopters, can pass boss by using glitch? 2. Pass boss glitch stages, is it necessary to start with 50000 points? 3. I came across this video, and I don't know if it helps the movie.(here video) If you have written the answer in your introduction, please forgive my rudeness, because my English level is not high. Last year your team made MM2,I surprised! All in all, it's a GREAT movie!Thank you!I really enjoyed it! And happy 2020 new year!
1. Sadly not every stage contains a possibility to do these heavy glitches. DelayStageClear and other major glitches works on Iceman, Gutsman (2P input is needed), Bombman, W1 and W2. 2. Yes, it's necessary. We wait for a few frames before we start the stage to get 50.000 points. It takes a lot of time after you beat the stage with a larger amount of points. 3. This is interesting. I think I have seen it before. Walking past the tunnel takes a lot of time compared to the zipping it seems. We cannot be pushed back while we zip I think (I've actually tried to take damage at different timings just before I enter the door). I'll look into this (and it seems our group is aware about it by now). That would be really interesting addition, especially on a run that doesn't rely on zips at all. Thanks for notifying us.
Active player (492)
Joined: 7/22/2018
Posts: 15
I am appreciative of all of the positive feedback concerning the TAS! Happy New Year to you guys too! fcxiaopengyou: 1. Even if the number of instructions is sufficient, a useful object won't appear in Cutman. I will mention that when making this TAS, we discovered that an address can be changed in Bombman that will prevent Wily 2 DelayObjectGlitch from working altogether, but I doubt this is the issue here. 2. Score must always be manipulated to shorten the score countdown animation at the end of each level. 3. I looked at the video and cannot seem to reproduce this glitch. It seems like the health counter is only filling up to 4 instead of 28 like it should, but even when I tried to set everything up, it still filled up to 28. If someone is able to reproduce it, it will certainly be worth looking into, but I am a bit skeptical about the legitimacy of this video as well, considering it is unlisted. I also do not know which emulator was used in the video. It takes 4.8 seconds to zip through the wall just before the boss fight. Running with the water current is approximately 5.5x slower than zipping speed (which is about a 22 second difference alone). You could theoretically use some of those magnet beams to perform zips through that corridor (you'd have a few to use), but I doubt it would be fast enough. It also takes longer to get to that corridor instead of just simply getting into the wall and zipping freely. The boss fight in our TAS is not as long as people think (about 18.6 seconds including the 252 frames of lag needed to begin the boss fight). If this glitch can be reproduced, the boss will be no more than 14.4 seconds faster. While it is interesting, I highly doubt we can save time with this. Thanks for sharing.
Active player (302)
Joined: 3/15/2018
Posts: 235
Location: United States
Is the interrupted health bar caused by the second hit he takes somehow? What even hit him there?
aiqiyou
He/Him
Skilled player (1826)
Joined: 8/4/2018
Posts: 95
Location: China
awesome TAS, yes vote!
nymx
He/Him
Editor, Judge, Expert player (2234)
Joined: 11/14/2014
Posts: 932
Location: South Pole, True Land Down Under
Glitchy! I'm with everybody else here...unexpected and amazed. Yes, Yes, Yes!
I recently discovered that if you haven't reached a level of frustration with TASing any game, then you haven't done your due diligence. ---- SOYZA: Are you playing a game? NYMX: I'm not playing a game, I'm TASing. SOYZA: Oh...so its not a game...Its for real? ---- Anybody got a Quantum computer I can borrow for 20 minutes? Nevermind...eien's 64 core machine will do. :) ---- BOTing will be the end of all games. --NYMX
Zinfidel
He/Him
Player (206)
Joined: 11/21/2019
Posts: 247
Location: Washington
It's hard to believe it when an even faster TAS comes out for a game that has already been so thoroughly deconstructed. Insane movie, obvious yes vote.
Joined: 6/4/2009
Posts: 893
everything has already been said, incredible job guys, it's not even 3 day in the year and already we got a star worthy submission( and maybe a GDQ live showcase ? ) great job, easy yes.
Experienced player (544)
Joined: 5/12/2005
Posts: 707
Thanks for the positive feedback!
Nicos wrote:
everything has already been said, incredible job guys, it's not even 3 day in the year and already we got a star worthy submission( and maybe a GDQ live showcase ? ) great job, easy yes.
Haha, we had a pretty strict roadmap for doing this and I'm glad we got it done just a bit after year changed. I'm somehow tempted to show this for a large audience as well. I usually tend to take no credit and I fall back in to the shadows instead.
Reviewer, Experienced player (920)
Joined: 11/18/2011
Posts: 314
Location: Morocco
Top tier TAS from top tier TASers! Never expected Rockman can be beaten in sub 10 minutes. Great job guys! What a great new year start! Big YES from me!
I still learn more about English. https://www.youtube.com/user/McBobX100
I wrote:
Working is the best way to achieve goals in speedruning. Hardworking is a pain.