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, Player (69)
Joined: 1/18/2008
Posts: 663
finalfighter wrote:
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)
Something like this makes some sense, but it's too technical (NUMBERS) and too restricted (NES-only! Or definitions for other consoles, no way!), so the people of drama will shoot this down. Then they'll argue about how to be more vague with very specific requirements to this vagueness and with fewer and fewer words. TASVideos will eventually be in the most strict one-category cataloging system in existence. About this specific run: I'll see if I can make time to create a video this week, but I have nearly no time for anything right now.
true on twitch - lsnes windows builds 20230425 - the date this site is buried
Site Admin, Skilled player (1254)
Joined: 4/17/2010
Posts: 11479
Location: Lake Char­gogg­a­gogg­man­chaugg­a­gogg­chau­bun­a­gung­a­maugg
I believe Rockman 1 deserves 3 branches: - broken to death (this submission) - heavily glitched, final Boss killed (current run) - glitchless (all pray that Bisqwit finishes it)
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
To be sure, it is technical. The call of the worng ROM address which a glitch causes exists also in many other games of any% TAS. (The call of a debug mode is an intelligible example. ) And the case where worng RAM address is called also exists in other games of any% TAS. Some case, reset may be avoided fortunately. Then, I think definition of ACE, only when the code is intentionally written to the memory(RAM). Though NES only... I agree with the opinion of feos. :) 3 branches, I think , - ACE (this submission) call RAM address,write codes to RAM , fastest Ending. - glitched (current run) call ROM address only, final Boss killed. - 100% run (all play, Deign's run) DelayStageClear is not included , play full of all stages
Editor, Active player (297)
Joined: 3/8/2004
Posts: 7469
Location: Arzareth
feos wrote:
I believe Rockman 1 deserves 3 branches: - heavily glitched, final Boss killed (current run)
It shouldn't be too difficult to modify this current Arbitrary Code Execution run into warping straight into final stage or perhaps even into straight into the final boss. Sure, it requires a couple more bytes than 6, but it's just a hurdle. Which is why I would rather revert to Deign's run than to keep Shinryuu & FinalFighter's movie alongside this one.
Site Admin, Skilled player (1254)
Joined: 4/17/2010
Posts: 11479
Location: Lake Char­gogg­a­gogg­man­chaugg­a­gogg­chau­bun­a­gung­a­maugg
I like the decision on this movie, though I don't think "low%" is going to tell anything about the main goal of this run, and how it was achieved: about a game-breaking glitch. In other words, that label doesn't address how the intended route is dealt with. If one looks at Super Metroids, one might think this run avoids game-breaking glitches, since low% runs of SM avoid them. Voting for giving this run the most telling and already traditional name, "game end glitch".
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.
Skilled player (1742)
Joined: 9/17/2009
Posts: 4984
Location: ̶C̶a̶n̶a̶d̶a̶ "Kanatah"
feos wrote:
I like the decision on this movie, though I don't think "low%" is going to tell anything about the main goal of this run, and how it was achieved: about a game-breaking glitch. In other words, that label doesn't address how the intended route is dealt with. If one looks at Super Metroids, one might think this run avoids game-breaking glitches, since low% runs of SM avoid them. Voting for giving this run the most telling and already traditional name, "game end glitch".
Especially since this is arbitrary code execution, it's possible to add some input the check all the flags for each stage. :P
Joined: 9/15/2013
Posts: 154
Why is this labeled "low%"? If it has to be kept a separate branch from the current run that skips over a quarter of the game... why not "game end glitch"?
Emulator Coder
Joined: 3/9/2004
Posts: 4588
Location: In his lab studying psychology to find new ways to torture TASers and forumers
Dyshonest wrote:
Why is this labeled "low%"? If it has to be kept a separate branch from the current run that skips over a quarter of the game... why not "game end glitch"?
Please read the judgment. To elaborate further: In the course of seeing what was done here, it was realized two problems with game-end glitch alone: 1) It is not necessarily a clear tag. 2) It doesn't identify that the run is in fact low%, which in most cases is reported by the game with some completion number appearing somewhere. Especially see the last sentence in the judgment.
Warning: Opinions expressed by Nach or others in this post do not necessarily reflect the views, opinions, or position of Nach himself on the matter(s) being discussed therein.
adelikat
He/Him
Emulator Coder, Site Developer, Site Owner, Expert player (3574)
Joined: 11/3/2004
Posts: 4754
Location: Tennessee
We use the term low% only when achieving the lowest % completion is SLOWER than completing it at any%. Meaning, when the fastest possible solution is not also the lowest completion. In this case this movie is the fastest way to complete the game while simultaneously being the low%. In this case low% is not the appropriate label.
It's hard to look this good. My TAS projects
Emulator Coder
Joined: 3/9/2004
Posts: 4588
Location: In his lab studying psychology to find new ways to torture TASers and forumers
adelikat wrote:
We use the term low% only when achieving the lowest % completion is SLOWER than completing it at any%. Meaning, when the fastest possible solution is not also the lowest completion.
Metroid Fusion and Super Mario 64 would like to have a word with you. I also kindly remind you to see the addendum to my previous post and strongly refer to the last sentence in the judgment.
Warning: Opinions expressed by Nach or others in this post do not necessarily reflect the views, opinions, or position of Nach himself on the matter(s) being discussed therein.
Site Admin, Skilled player (1254)
Joined: 4/17/2010
Posts: 11479
Location: Lake Char­gogg­a­gogg­man­chaugg­a­gogg­chau­bun­a­gung­a­maugg
Those 2 runs tell the exact completion % because they aimed to that exact %. Not like this run, which can't be measured any way similar to them. Amount of robot masters beaten isn't completion %, and it was never a goal in any MM run.
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.
Emulator Coder
Joined: 3/9/2004
Posts: 4588
Location: In his lab studying psychology to find new ways to torture TASers and forumers
feos wrote:
Was never a goal in any MM run.
It could not be a goal in any MM run outside of MMX5.
Warning: Opinions expressed by Nach or others in this post do not necessarily reflect the views, opinions, or position of Nach himself on the matter(s) being discussed therein.
Former player
Joined: 6/30/2010
Posts: 1107
Location: Zurich, Switzerland
Nach wrote:
Metroid Fusion and Super Mario 64 would like to have a word with you. I also kindly remind you to see the addendum to my previous post and strongly refer to the last sentence in the judgment.
As far as I know (but I'm not an expert for Metroid), it could theoretically be faster to get some power ups in Fusion, but no one really timed it and it's generally agreed that 0% just looks cooler.
Current project: Gex 3 any% Paused: Gex 64 any% There are no N64 emulators. Just SM64 emulators with hacky support for all the other games.
Eszik
He/Him
Joined: 2/9/2014
Posts: 163
Low% is precised when it's the goal of the run. If we follow your logic, then most of the any% TAS of this site should be labeled low%, as they avoid everything which is useless in the game. This run is "game ens glitch" because it uses a glitch to reach the end of the game, without paying attention to completion percentage. The current run is "all levels" because it ends all the levels (even if some of them aren't finished normally) and an theoretical glitchless run would be "glitchless". Maybe the "glitchless" run would be a blank branch. But this run is definitively not low%, as it doesn't aim at all for the lowest completion percentage possible. What if we were labeling Mario 64 "0 stars" run "Bowser stages only" because, for some reason, it only finishes Bowser stages?
I problably made mistakes, sorry for my bad English, I'm French :v
Editor, Expert player (2479)
Joined: 4/8/2005
Posts: 1573
Location: Gone for a year, just for varietyyyyyyyyy!!
Eszik wrote:
But this run is definitively not low%
I agree. It completes "the cutman stage", which is not as low as low% can get.
Post subject: Movie published
TASVideoAgent
They/Them
Moderator
Joined: 8/3/2004
Posts: 15594
Location: 127.0.0.1
This movie has been published. The posts before this message apply to the submission, and posts after this message apply to the published movie. ---- [2601] NES Mega Man "game end glitch" by pirohiko & finalfighter in 00:32.11
ALAKTORN
He/Him
Former player
Joined: 10/19/2009
Posts: 2527
Location: Italy
why is it being published as “low%”? multiple people have explained how completely wrong that is
Joined: 9/15/2013
Posts: 154
Nach wrote:
Dyshonest wrote:
Why is this labeled "low%"? If it has to be kept a separate branch from the current run that skips over a quarter of the game... why not "game end glitch"?
Please read the judgment. To elaborate further: In the course of seeing what was done here, it was realized two problems with game-end glitch alone: 1) It is not necessarily a clear tag. 2) It doesn't identify that the run is in fact low%, which in most cases is reported by the game with some completion number appearing somewhere. Especially see the last sentence in the judgment.
Who cares about what the overall completion looks like afterward? Did we label the current Pokemon Yellow or ALttP runs "low%"? It should've been an obsoletion (any%) to the other MM/RM1 TAS we have. This isn't low% or anything close to it. You can't beat it any faster while getting more items. It's an any%, just like the rest of the "game end glitches"/ACE/pseudo-ACE runthroughs we have. If anything, and I'd disagree with this too, label the current 12-minute Rockman TAS as "low%", seeing as how it uses the same glitch(es) here but slower as it only skips three stages, not all ten. http://tasvideos.org/1103M.html This is the run that should be kept published with the current ACE one. It doesn't skip stages (Magnet Beam abuse, yes, but it doesn't outright skip stages) via pseudo-ACE glitches, it just... completes the game. I would be more open to a "glitchless" (no zipping) TAS accompanying the ACE one, but Deign's run is the best we have for an accompanying run. After all, there's a reason we have the save corruption/ACE finish of Pokemon Yellow, the ACE finish of Pokemon Red (with Cooltrainer currently, I think), and finally the "normal" one that completes the game.
Site Admin, Skilled player (1254)
Joined: 4/17/2010
Posts: 11479
Location: Lake Char­gogg­a­gogg­man­chaugg­a­gogg­chau­bun­a­gung­a­maugg
ALAKTORN wrote:
why is it being published as “low%”? multiple people have explained how completely wrong that is
Nach wrote:
I personally tango to my own metal, and like to handle things in a shocking and most electrifying manner, although fairly so.
That's why. We all are wrong, Nach is right. Except there's nothing shocking or electrifying, it's just wrong.
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.
Site Admin, Skilled player (1254)
Joined: 4/17/2010
Posts: 11479
Location: Lake Char­gogg­a­gogg­man­chaugg­a­gogg­chau­bun­a­gung­a­maugg
Nach wrote:
In the course of seeing what was done here, it was realized two problems with game-end glitch alone: 1) It is not necessarily a clear tag.
"Clear" is subjective. So we have to call "clear" what the majority calls "clear", if there aren't unsolvable contradictions with that. Your judgment text doesn't address any real problems of categorization that arise once this is called game end glitch. So I'm assuming those problems aren't clear for you. Neither are they clear for me, nor for the audience. Hence they don't exist.
Nach wrote:
2) It doesn't identify that the run is in fact low%, which in most cases is reported by the game with some completion number appearing somewhere.
From looking at how Super Metroid is branched, one can easily learn what is low% and what is game end glitch. Low% is something that uses the same approach as normal any% (intended routes), but collects less items. On the other hand, there's an approach of beating the game not aiming for completion percentage at all, it's just not cared about. It is, beating the game using "large glitchy skips", "game-breaking glitches", or whatever you call it. Glitches that break the game can vary, but there's something that's usually understood by them:
A term commonly used to describe some glitch that breaks the gameplay logics applied/assumed by the developers, resulting in notable contradictions between how the game is supposed to be played and how it can be played instead. Game-breaking glitches use to involve read-access memory or save data corruption. They also usually cut down the time of the run dramatically, comparing to the fastest one that avoids the given glitch.
To remove ambiguity, we don't rely on using some glitch or not using it, when creating a new branch, or obsoleting some existing one. We rely on how much it differs from an existing branch. Because, as I'm tired of repeating, unique content if what justifies new branches in Moons. Сonclusion: if we have 2 branches, one of which beats the game using the intended routes, and another one not using them, and they are so different that they are published separately, we must tell which one uses the glitched approach, because it's much less common.
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.
Joined: 9/22/2011
Posts: 42
This goes against the established definition of "low%" that has been used for the past decade to identify runs. That tag is ONLY used if "collecting the fewest items" is an additional restriction that results in a slower completion - just like how if getting every item is the fastest possible speedrun anyway (such as Mega Man X2), that run is just classified as the default any%, rather than 100%. This run is completing the game as fast as possible - the run ends up at any percent it needs to, as long as it's the fastest. It doesn't need to be labeled as low% any more than a Punch-Out run needs to be labeled as 100% due to defeating every opponent (all of which must be beaten to complete the game). Oh, the Punch-Out run also defeats the minimum number of opponents too! So it's any%, low%, AND 100%. That's dumb, which is what led to the current definitions that low% and 100% only "count" if they are slower than just the fastest general completion. I don't care if you put this one in a separate category as the previous run, as it is a lot different - but there is already an established definition for "low%" and this run does not meet it. "Game end glitch" is technically subjective, yes, but at least that actually describes what the run is like to the audience. Nobody would argue that this run uses a game-ending glitch, so the only subjective part is where you draw the line, and in this case it's totally irrelevant (it's easy to draw the line at "all stages beaten" or similar, as you did). But calling this "low%" is just misleading, since that very heavily implies this has some restriction that the "any%" run would not, and that it's not the actual fastest possible completion. wow that rant ended up longer than I thought it would
Designer of Copy Kitty, a game about giant robots and explosions
Joined: 9/15/2013
Posts: 154
http://tasvideos.org/2588M.html <-- Low% Super Mario Bros. 3 http://tasvideos.org/4315S.html <-- Low% Super Mario World http://tasvideos.org/2431M.html <-- Low% Super Mario World 2: Yoshi's Island http://tasvideos.org/4304S.html <-- Low% Super Mario Land 2: 6 Golden Coins http://tasvideos.org/2449M.html <-- Low% The Legend of Zelda: A Link to the Past ("out of bounds" makes more sense than warp glitch or game-end glitch. No "warping" is done to beat the game, and walking into the Triforce room is supposed to end the game so I hesitate to say "game end glitch" is accurate either.) http://tasvideos.org/2457M.html <-- Low% Pokemon Blue (who decided "warp glitch" over "game end glitch"? Neither are particularly accurate, but still...) http://tasvideos.org/4287S.html <-- Low% Kirby Super Star If you want inaccurate or just plain wrong descriptions, you should at least strive to make them consistent. If the run took a few more seconds to execute further code to flag the five Robot Masters as beaten and Magnet Beam as obtained, would that be a valid "any%" or "100%" run, or something? While yes, "glitched" wasn't very accurate, neither are the new "warp glitch" (which I haven't found a single instance in which it was used properly) or "game end glitch". When I saw "glitched" I knew what to expect - either save corruption or partial/full ACE to rush to the ending (especially if it had the added tag(s) "Heavy glitch abuse" and "Corrupts memory").
Site Admin, Skilled player (1254)
Joined: 4/17/2010
Posts: 11479
Location: Lake Char­gogg­a­gogg­man­chaugg­a­gogg­chau­bun­a­gung­a­maugg
All those runs can just have a movie tag Low% completion. And runs that glitch to the end but don't deal with percentage, don't need it. I don't see how using low% as a branch for glitched runs helps to solve anything. As for the title "warp glitch", it's used when large glitchy skips are not straight to ending, but somewhere within the course.
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.
Joined: 9/15/2013
Posts: 154
As already mentioned, low% is actually an inaccurate rating. It is only relevant to list low% if it's a slower-than-normal method to beat the game, for instance, low% runs of Super Metroid or Mega Man X2. I still think "glitched" is more descriptive than warp glitch, which doesn't even apply to the ALttP one. Though I guess this may just be my own personal disagreement that an out-of-bounds glitch like the ones leading to ALttP finishes don't necessarily qualify as warping. My previous post was mostly hyperbole but the point(s) it makes still stand.
adelikat
He/Him
Emulator Coder, Site Developer, Site Owner, Expert player (3574)
Joined: 11/3/2004
Posts: 4754
Location: Tennessee
feos, It would be as incorrect to tag those movies as low% as it is to title this movie with low%
It's hard to look this good. My TAS projects
1 2 3 4 5 6 7