Submission #4308: pirohiko & finalfighter's NES Mega Man in 00:32.11

(Link to video)
Nintendo Entertainment System
(Submitted: Rockman)
baseline
FCEUX 2.1.5
1930
60.0988138974405
98415
Unknown
Rockman (J).nes
Submitted by pirohiko on 5/13/2014 2:01:32 PM
Submission Comments

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...
Last Edited by adelikat on 10/11/2023 12:54 AM
Page History Latest diff List referrers