Game objectives

  • Aims for fastest time
  • Manipulates luck
  • Uses game-breaking glitches
  • Achieves credits early

DelayFFObjectGlitch

DelayObject is taken out from bank2 (usually bank6, instead) when NMI interrupts the process of objectFF. Object 00-FF appears in the Iceman stage. FinalFighter discovered that $600 was executed, when DelayObject55 appeared. We increase the number of instructions executed in one frame by manipulating music, drop items and Rockman's action so that NMI interrupts the particular process in the frame.

Instructions

ObjectFireDelay is manipulated by DropItems. $23 increases every frame, and DelayObject55 may appear when $23 is 55.
$002355
$060054F8504D54F8F8
$065000AC21006B1700
$06F01B3C3E1B3D3C20
DelayObjects is taken out
$002356
$060054F8504D54F8F8
$06503CAD221F6C1800
$06F0033C3E013D3C55
DelayObject55 calls $600
0600: 54 F8 NOP F8,X               ; Y of Rockman = 54
0602: 50 4D BVC $0651              ; Y of Rockbuster1,2 = 50,4D
0650: 3C UNDEFINED (NO USE)        ; ObjectFireDelay of DelayObject3 = 3C
0651: AD 22 1F LDA $1F22 = #$0A    ; ObjectFireDelay of DropItems = AD,22
                                   ; ObjectFireDelay of DelayObject1 = 1F
0654: 6C 18 00 JMP ($0018) = $C460 ; (instruction of StageClear)
                                   ; ObjectFireDelay of DropItems = 6C,18
                                   ; ObjectFireDelay of DelayObject55 = 00
                                   ; Input of Controllers = $0018 = 60,C4
C45E: A9 00 lda #$00
C460: 85 31 sta $31(CurrentStage)  ; <-- Jumped here
C462: 4C 0C C1 jmp $C10C

History

  • 11/01/21 - FinalFighter found DelayObjectFFGlitch.
  • 14/04/29 - FinalFighter read about the article of SMB3 ACE TAS. [dead link removed]
  • 14/04/30 - FinalFighter remembered that some objects had called a RAM address. http://www.yuko2ch.net/rockman/JumpAddressList.txt
  • 14/05/01 - Creation of LuaScripts. FinalFighter and pirohiko confirmed by some cheats that DelayEnding in IceManStage was possible.
  • 14/05/08 - We began to work on a new TAS.
  • 14/05/13 - New TAS completed!

Detailed article with some pictures (written in Japanese)

[dead link removed]
こちらには日本語による詳細な解説・図説があります。

Special Thanks

  • Shinryuu - He looked at and encouraged our TAS.
  • cstrakm - He discovered the DelayWaterCurrent. It led to the discovery of DelayObjectGlitch.
  • Inzult - He verified DelayObjectGlitch with the real NES.
  • Tekepen - Explanation of 6502 was helpful.
  • Kureyuni - Explanation of undefined code of 6502 was helpful.
  • AlphaBeta, NinjyaSuperK, Vagla, Bisqwit - Rockman1's analysis data were helpful.
  • adelikat, Nach, Dwedit - The problem of Old PPU of FCEUX was solved by them.
And...
  • Thank you, everyone of TASVideos.

P.S.

Rockman went to the Iceman stage and felt like going back home. It'll come out after the credits that Rockman actually doesn't complete the game. Press start after the credits, and you'll see...
The next is renewal of Rockman2!

Nach: So this is quite a TAS to deal with. No matter how I handle it, someone is going to want to strap a bomb to my car. I'm surprised I even have the guts to judge this run, as some of the comments leave me feeling the heat of the fire and gasping for air. Hopefully, now you'll understand why I did not rush to judge this, and I'm sorry for the delay.
On the one hand, most of the gameplay is cut, and all we're left with is a quick jump to the ending credits. On the other hand, only a single icy level is played (with a different single level marked as completed). This run crashes part of the game mechanics as the previous run does, albeit a bit differently, and that run's glitch usage's doesn't beat the game in a flash.
Now, unless you were living under a rock, inside a bubble, or in a wood shed for the past few years, you saw the previous run, loved it, and don't want the previous movie obsoleted. The completion state is also controversial, as to whether the game is really completed or not, and possibly this run should be rejected.
I personally tango to my own metal, and like to handle things in a shocking and most electrifying manner, although fairly so. I find the cool thing to do in this situation would be to create a new branch, but being mindful of the issues, not the one you were thinking. This is setting a new precedent, one which may require further recategorization of existing movies, and that's okay.
I deem the following branches viable:
  • All levels completed using every technique available (the currently published run).
  • All levels completed without using the magnet beam, which incidentally is responsible for most of the glitches seen in the above branch, and is also deemed impossible by the creators.
  • A quick as possible run (this run).
This kind of branching also helps with other problematic games we've seen like Super Mario World, Super Mario Land 2, Super Metroid, and Kirby Super Star, which incidentally, all those games actually report some sort of completion percentage.
Accepting this run for the new low completion branch for this game (which also happens to be game-end glitch or whatever we're currently calling it).
Guga: Processing...


1 2 3 4 5 6 7
Editor
Joined: 3/31/2010
Posts: 1466
Location: Not playing Puyo Tetris
Does this beat the game? No? Since only one Robot Master is "beaten" Does it reach the credits? Yes. Does it end on the fastest possible input? Think so. I haven't played Mega Man 1 but it looks like it. I voted meh because it's fun to watch but, I miss the WTF factor of the old TAS.
When TAS does Quake 1, SDA will declare war. The Prince doth arrive he doth please.
Player (146)
Joined: 7/16/2009
Posts: 686
I'd just like to add my voice to the "this counts as beating the game" camp. I feel that defeating the Robot Masters is merely incidental to your progress through the game, like collecting items in Metroid. If there's a way to skip them, go right ahead. I think that if a run was made that used some other non-ACE glitch to get to Wily while defeating only, say, 3 of the Robot Masters, this would hardly be considered an issue. EDIT: I forgot to say that I loved the run.
Active player (335)
Joined: 1/19/2010
Posts: 383
Location: Texas
My two cents on the matter is that the game is completed. The game shows Cutman is beaten, yet Mega Man never encounters him, so I consider that to be just a glitched trigger saying "Cutman completed" and nothing more.
Skilled player (1786)
Joined: 5/7/2008
Posts: 187
Location: Japan
Although this TAS is ACE, the same result as the case where the stage was skipped and only Final Boss is beaten is brought. In either case, only a weapon of Cutman is owned. It only merely increases a stage number to beat him, and credit is only put in stage 0B. I aimed for arriving at stage 0B by ACE. When the processing in the middle of credit is called on stages other than 0B, Rockman cannot go to the left because of the wall. I think that the argument about the branch about ACE is necessary separately.
Editor, Player (69)
Joined: 1/18/2008
Posts: 663
Why is there even any drama on this What if you couldn't hit start to return to the screen, like many other games? There would be no crying about it. I thought movie end here was defined as "reaching credits," which this movie does, thus there is nothing to drama about. Oh wait this is Tasvideos it wouldn't be home without unnecessary drama
true on twitch - lsnes windows builds 20230425 - the date this site is buried
sack_bot
He/Him
Player (112)
Joined: 11/27/2011
Posts: 394
Location: Massachusetts
Aqfaq wrote:
Maybe TASVideos needs a new category for "partial endings"? This category would include movies with various forms of partial ending sequences: * graphically glitched credits * credits without music * no credits, but game registered complete * credits, but game not registered complete
I cast my vote here. EDIT: Although, the current president is reaching the final screen where there's "nothing more to do", see Earthbound, where because of the playable bit after the credits, we count the movie end at the "The End" screen instead. Now, to see if it falls under this, can you play the bosses that aren't marked as "completed"? If not, then it's a glitched ending, and should count as beating the game because there's "nothing left to do"
Message me here for my discord. Current Project: Psycho Waluigi Project on wait list: None?
Joined: 2/12/2008
Posts: 67
Location: San Francisco Bay Area, CA
I'm really fascinated how many games have arbitrary code execution bugs. Yes vote here.
Joined: 9/15/2013
Posts: 154
Is this going to obsolete the other run, which uses a similar glitch to end two stages prematurely?
Player (146)
Joined: 7/16/2009
Posts: 686
sack_bot wrote:
Although, the current president is reaching the final screen ...
Obama plays Rockman? Sweet.
Mitjitsu
He/Him
Banned User
Joined: 4/24/2006
Posts: 2997
Voting no because Rockman is a racist.
NitroGenesis
He/Him
Editor, Experienced player (556)
Joined: 12/24/2009
Posts: 1873
True wrote:
Can this be verified on MM USA with adjusting input frames?
The regular input file syncs perfectly already on the U rom
YoungJ1997lol wrote:
Normally i would say Yes, but thennI thought "its not the same hack" so ill stick with meh.
Editor, Player (69)
Joined: 1/18/2008
Posts: 663
NitroGenesis wrote:
True wrote:
Can this be verified on MM USA with adjusting input frames?
The regular input file syncs perfectly already on the U rom
Really? Even with the intro on the U rom? I should have tried that first then as I have the actual cart instead of ripping apart Double Dribble. Will try to make time, a few other projects have come up that are very time constrained...
true on twitch - lsnes windows builds 20230425 - the date this site is buried
WST
She/Her
Active player (490)
Joined: 10/6/2011
Posts: 1697
Location: RU · ID · AM
NO, It is not any entertaining (as the question asks me that question), but I’m not against publishing it, as I like the idea of forcing the garbage in memory that normally crashes the game to become correct executable code. So I’m voting Meh. I hope this doesn’t cause negative reaction.
Nightwatch wrote:
I'm really fascinated how many games have arbitrary code execution bugs. Yes vote here.
This is often possible in games, which were originally written in low-level language, where the programmers had to manage every little thing manually. Other games (Sega Genesis games, for example) were written in high-level language, and the compiler was carying about low-level things, allowing the programmers focus on the game’s algorithms.
S3&A [Amy amy%] improvement (with Evil_3D & kaan55) — currently in SPZ2 my TAS channel · If I ever come into your dream, I’ll be riding an eggship :)
Editor, Active player (297)
Joined: 3/8/2004
Posts: 7469
Location: Arzareth
Dyshonest wrote:
Is this going to obsolete the other run, which uses a similar glitch to end two stages prematurely?
Both of these aim for the "any%" category in my opinion. Additionally, this one aims for a "executes arbitrary code" category. However, both of them involve specific NMI timings / race conditions to practically modify the meaning of the game code (which Deign's movie didn't). Even magnet-beam glitches withstanding, I recognize the need for a separate movie that actually completes all the necessary stages by beating their boss; and I thus vote for reinstating Deign's movie as non-obsoleted. (Note that the glitch used in Wily2 is different. It does not involve lucky NMI conditions. It is just Cutman going rampant with array out of bounds access.)
Experienced player (702)
Joined: 2/19/2006
Posts: 742
Location: Quincy, MA
Really, I think runs of these type should not be categorized by the method, but rather the location they complete the game. It's interesting to see the fastest time to glitch to the credits, but I think it's a much more valuable run to see what can reach the true end location in the fastest time. EDIT: 3 basic categories should exist for most all games 1) Reaches credits in fastest time 2) Kills final boss/Completes final objective in fastest time 3) Completes all stages with game ending at final boss/final objective in fastest time. The idea of glitching each stage to completion kind of loses the point of a "full completion" run, but that point is debatable.
Super Mario Bros. console speedrunner - Andrew Gardikis
Editor, Reviewer, Experienced player (980)
Joined: 4/17/2004
Posts: 3109
Location: Sweden
I vote yes. We need to introduce a Aribitrary Code Execution flag for movies, I think. To me, how many stages have been beaten when the game restarts is irrelevant. What if Finalfighter had instead found a method to skip Bombman and go directly to the Wily stages after beating the other five robot masters? Everyone would be saying "wow, cool glitch to skip Bombman", and no one would be saying "well, Bombman shows up as not beaten when you press start after the credits have rolled, so you didn't really beat the game".
adelikat
He/Him
Emulator Coder, Site Developer, Site Owner, Expert player (3575)
Joined: 11/3/2004
Posts: 4754
Location: Tennessee
Bisqwit wrote:
Both of these aim for the "any%" category in my opinion. Additionally, this one aims for a "executes arbitrary code" category. However, both of them involve specific NMI timings / race conditions to practically modify the meaning of the game code (which Deign's movie didn't). Even magnet-beam glitches withstanding, I recognize the need for a separate movie that actually completes all the necessary stages by beating their boss; and I thus vote for reinstating Deign's movie as non-obsoleted.
I'd lean towards this too. I just have a hard time liking the idea that the 12 minute movie and this movie co-exist based on a VERY small difference in how the exact same glitch is used. Then again, executing ram as CPU instructions rather than just corrupting memory is a definable difference. Just one that isn't very "laymen", and requires a detailed study of a TAS to determine. In fact it is quite possible that a run could be ACE without an author realizing it, they just knew they corrupted some things, and then "teh game went crazy". I think a precedent gets set here one way or the other.
It's hard to look this good. My TAS projects
Editor, Player (44)
Joined: 7/11/2010
Posts: 1029
I'm not convinced that this is arbitrary code execution. Can this way of using the glitch actually execute arbitrary code, i.e. any program you want? If it can, then it should be easy to change it to show all the robot masters as beaten, or swap Cut Man's and Ice Man's sprite so that the right stage appears to have been beaten, or save the animals, or whatever. I think we should be distinguishing arbitrary code execution from glitched code execution. Just because RAM executes, doesn't necessarily mean that you have enough control over the values to bootstrap in arbitrary code.
Editor, Expert player (2480)
Joined: 4/8/2005
Posts: 1573
Location: Gone for a year, just for varietyyyyyyyyy!!
adelikat wrote:
In fact it is quite possible that a run could be ACE without an author realizing it, they just knew they corrupted somethings, and then teh game went crazy.
That is what may have happened here: [1838] Genesis Gods by Aqfaq in 07:29.73 Could be ACE...? I wouldn't know. I only know teh game went crazy.
Skilled player (1742)
Joined: 9/17/2009
Posts: 4986
Location: ̶C̶a̶n̶a̶d̶a̶ "Kanatah"
adelikat wrote:
Then again, executing ram as CPU instructions rather than just corrupting memory is a definable difference. Just one that isn't very "laymen", and requires a detailed study of a TAS to determine. In fact it is quite possible that a run could be ACE without an author realizing it, they just knew they corrupted somethings, and then teh game went crazy. I think a precedent gets set here one way or the other.
I thought of these on the top of my head: [1636] GB The Final Fantasy Legend "warp glitch" by knbnitkr in 01:47.17 [1397] SNES Romancing SaGa "game end glitch" by knbnitkr in 02:14.77 [2225] GBC Keitai Denjuu Telefang: Speed Version "warp glitch" by jlun2 & MisterChess in 07:12.50 Although actually proving that's the case is beyond my knowledge.
sack_bot
He/Him
Player (112)
Joined: 11/27/2011
Posts: 394
Location: Massachusetts
Scepheo wrote:
sack_bot wrote:
Although, the current president is reaching the final screen ...
Obama plays Rockman? Sweet.
This is what happens when you don't check your spellcheck.
Message me here for my discord. Current Project: Psycho Waluigi Project on wait list: None?
Patashu
He/Him
Joined: 10/2/2005
Posts: 4045
Even if technically this and the previous TAS are the same category, it would be a big shame for the site if one of the best, glitchiest, most entertaining TASes became obsoleted (which is as good as 'gone from the site' in a few senses). It should be allowed to co-exist at least until a 'purer' TAS replaces it. In the mean time the category labels obviously won't be very accurate/meaningful, but I think that's an OK tradeoff to make. (I wouldn't ask for it if the previous TAS wasn't as good as it was!)
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
Sir_VG
He/Him
Player (40)
Joined: 10/9/2004
Posts: 1913
Location: Floating Tower
*watches encode*. ...wait, what?
Taking over the world, one game at a time. Currently TASing: Nothing
Site Admin, Skilled player (1255)
Joined: 4/17/2010
Posts: 11489
Location: Lake Char­gogg­a­gogg­man­chaugg­a­gogg­chau­bun­a­gung­a­maugg
Patashu wrote:
Even if technically this and the previous TAS are the same category, it would be a big shame for the site if one of the best, glitchiest, most entertaining TASes became obsoleted (which is as good as 'gone from the site' in a few senses). It should be allowed to co-exist at least until a 'purer' TAS replaces it. In the mean time the category labels obviously won't be very accurate/meaningful, but I think that's an OK tradeoff to make. (I wouldn't ask for it if the previous TAS wasn't as good as it was!)
You see how the current Rockman isn't obsoleted neither by entertainment, nor by optimization? Yeah, but all these guys still want it to be removed, and replaced with a "trial version" of it. "You aren't TASVideos PRO, so you're only allowed to enjoy 5% of the real thing. Sorry." Still they don't have enough balls to say that the Star content itself is obsolete there. SM64 0-star can still be an example. One movie was more optimized than another, and despite of having terrible camera moves, it obsoleted the starred movie. Then it was obsoleted as well by more optimal, and more entertaining run, returning it a Star. Can anything like that happen here? Can Bisqwit's glitchless run's content really replace the current run's Star content? If so, let them compete for it the natural way. Also, I notice complete ignorance to already existing (and justified) precedents.
Warning: When making decisions, I try to collect as much data as possible before actually deciding. I try to abstract away and see the principles behind real world events and people's opinions. I try to generalize them and turn into something clear and reusable. I hate depending on unpredictable and having to make lottery guesses. Any problem can be solved by systems thinking and acting.
Active player (276)
Joined: 4/20/2004
Posts: 219
Location: Japan,Tokyo
I think that the kind of object and used glitch is important. *kind of glitch DelayObjectGlitch(Bank5) was used by my old TAS. DelayObjectFFGlitch(Bank2) was used by my new TAS. DelayObjectFFGlitch(Bank2) differs from DelayObjectGlitch(Bank5). And the places which interrupt NMI also differ. If I am in the place where ObjectFF doesn't appears, DelayObjectFFGlitch cannot be executed. And if I cannot use DelayObjectFFGlitch, Object55 doesn't appear in BombManStage and IceManStage. *kind of object ObjectF5(DelayStageClear) using DelayObjectGlitch used by old TAS execute $C0BD. Object55 using DelayObjectFFGlitch used by new TAS execute $0600. Though it is difficult to determine the definition of ACE. :( Perhaps, I think that a ROM address and a RAM address using glitch are important. any%: worng ROM address($8000->$FFFF) executed by glitch of TAS (like old TAShttp://tasvideos.org/2921S.html) ACE : worng RAM address($0000->$7FFF) executed and the code of the RAM was executed by glitch of TAS (like new TAShttp://tasvideos.org/4308S.html) I think that anyone would like to make any% which acquired MagnetBeam in BombManStage(using DelayObjectGlitch) in the future. Probably it will show entertainment. What do you think about it? :)
1 2 3 4 5 6 7