Posts for finalfighter

1 2 3 4 5
8 9
Experienced Forum User, Published Author, Active player (275)
Joined: 4/20/2004
Posts: 219
Location: Japan,Tokyo
http://www.yuko2ch.net/rockman/rockman-11.avi I found that I can use "DelayTransform" in this place. It is certain that I can save time in this place. Perhaps,the probability might be the lowest in a current delay technique. :(
LoadEnemies
  1:mistake in the BankNumber by NMI. 
  2:The object of #$4C is loaded. 
DoEnemyAI
  3:jsr (#$D006)
  The address that doesn't jump is called usually , big mistake occurs. 
  Because the value of the object becomes #$00-#$3B usually , the processing of AAD1-BD98 is called usually. 
  The address not intended as AI of # $4C is called this time.

  4:MegaMan comes to be buried on the floor and through the wall :P
DoEnemyAI 
$AA29> BD E006: LDA ObjectType,X 
  A=#$4C 
$AA2D> A8: TAY 
  Y=#$$4C 
$AA2E> B9 3BAA: LDA EnemyAIaddr+0,Y 
  A=AAD1+4C=#$06 
$AA31> 85 04: STA $04 
  $04=#$06 
$AA33> B9 3CAA: LDA EnemyAIaddr+1,Y 
  A=AAD2+4C=#$D0 
$AA36> 85 05: STA $05 
  $05=#$D0 
$AA38> 6C 0400: JMP ($0004) 
  JMP (D006) 
Address list that enemy calls http://www.yuko2ch.net/rockman/JumpAddressList.txt
Experienced Forum User, Published Author, Active player (275)
Joined: 4/20/2004
Posts: 219
Location: Japan,Tokyo
Further optimization of sliding is beautiful in Star Man stage. There was no project for a long time though MegaMan5 had route of save the time since 2006/07. I am expecting the scroll of sliding of super-arrow. :P http://www.yuko2ch.net/rockman/m5scrollre8.mpg
Experienced Forum User, Published Author, Active player (275)
Joined: 4/20/2004
Posts: 219
Location: Japan,Tokyo
http://dehacked.2y.net/microstorage.php/info/312398654/rockman-increse_enemy.fm2 There is the fm2 where the number of enemies increases in the BombManStage. :P I proved this technique operated also in other stages. The analysis of the technique was correct. And, the water current occurs uncommonly in this place. (Though I cannot reproduce yet)
Experienced Forum User, Published Author, Active player (275)
Joined: 4/20/2004
Posts: 219
Location: Japan,Tokyo
http://dehacked.2y.net/microstorage.php/info/1254725616/rockman_water_pipe_glitch_a.fm2 http://dehacked.2y.net/microstorage.php/info/1530230399/rockman_water_pipe_glitch_b.fm2 I was able to put out the water current quickly in IceMan stage. The saving of time might be certain. To be requested from us is to find the act of incorporation of a good magnet beam. :P
Experienced Forum User, Published Author, Active player (275)
Joined: 4/20/2004
Posts: 219
Location: Japan,Tokyo
I create the LuaScript for DelayWaterCurrent.(FCEUX2.1.2over is needed) http://www.yuko2ch.net/rockman/rm1delay.zip *rm1delay.lua Glitch succeeds when Next is "1". When NEXT doesn't approach "1" even if the Thunder Beam is shot, it might be impossible in that place.
X:X(XSpeed)
Y:Y(YSpeed)
PRE:Number of instructions of ChangeBank6 from NMI End(frame)
NEXT:Number of instructions of NMI Start from ChangeBank6(frame)
ENMYBNK:When the glitch succeeds, the data of this Bank number is read. 
CRNTBNK:It is a value of the Bank when the frame begins. 
D582:NMI End
 |(PRE instructions)
D89B:ChangeBank6
 |(NEXT instructions)
D4A8:NMI Start
The method of the adjustment is same as the delay scroll of RockMan2. http://www.yuko2ch.net/rockman/howtodelayscroll_eng.htm *rm1delaytest.lua The value of the register is rewritten by this lua script and the problem is emulated. This script teaches what glitches occurs when the amount of instructions is completely adjusted. If "delay (NEXT:number of instructions)" suffices, the example of the future below is possible. Because I have not investigated the amount of delay yet, I have not understood be possible in image's place yet :P However,such an example may occur because of this technique! The glitch occurs when you push the select button twice. Already know,The water current occurs in the IceMan stage. There is a part where the number of enemies increases. There is a place where Elec Man shows up. software reset The revival point has changed when the screen shifts due to the bug and RockMan dies. Intense graphic bug RockMan transform to other characters, and to be able to pass wall. *Investigation in the future In a word, it is necessary to look for the useful example by "rm1delaytest.lua" in all stages where the number of instructions(delay) is enough The result might change even if face turns left or right. This will become a very serious investigation. :( It is likely to succeed also in the place where software resets is generated when timing is moved. A variegated bug occurs because this bug reads the data of a wrong Bank. If the example found by you and the place where the number of instructions suffices, the glitch will occur if we adjust instructions. Perhaps, for TAS, transformation, water current, and the revival point change might be important.
Experienced Forum User, Published Author, Active player (275)
Joined: 4/20/2004
Posts: 219
Location: Japan,Tokyo
I ascertained the cause of reading the incorrect data. The cause of the water current is NMI! In a word, this glitch is named "DelayWaterCurrent".
Default:
$42=01,05,06
d4A8 NMI is caused
d56e A=$42=01,05,06
d571 STA $C001,5,6  ChangeBank1,5,6
d89d STA $C006 A454=29 ChangeBank6
d8A0 $42=06
d99A A454=29 read data of Bank6

DelayWaterCurrent:
$42=05
d89d STA $C006 A454=29 ChangeBank6
d4A8 NMI is caused
d56e A=$42=05
d571 STA $C005 A454=8D ChangeBank5
d8A0 $42=06
d99A A454=8D read data of Bank5
1:In a word, enemy's kind is not related. 2:And, this technique is possible any stage. 3:However, the enemy called by the stage is decided.
Default:
0001D4A8: //NMI
0001D89B: A9 06		lda #$06
0001D89D: 8D 06 C0	sta $C006 //ChangeBank06
0001D8A0: 85 42     sta $42       //$42=06

DelayWaterCurrent:
$42=05
0001D89B: A9 06		lda #$06
0001D89D: 8D 06 C0	sta $C006 //ChangeBank06
0001D4A8: //NMI
    D56E: A5 42     lda $42         //$42=05
    D571: 9D 00 C0	sta $C000,x //ChangeBank(#$C000+$42)=ChangeBank05
0001D8A0: 85 42     sta $42       //$42=06
The range is just behind D89D. NMI sets Bank6 when $42 writes with D8A0 and it changes. This bug had occurred at the chance momentarily to save the bank number.
Experienced Forum User, Published Author, Active player (275)
Joined: 4/20/2004
Posts: 219
Location: Japan,Tokyo
http://dehacked.2y.net/microstorage.php/info/960032354/rockman_water_pipe_glitch.fcm This technique should be able to be optimized a little more. :) I think that there is a possibility to be able to save more than the current TAS.
Experienced Forum User, Published Author, Active player (275)
Joined: 4/20/2004
Posts: 219
Location: Japan,Tokyo
Mr. cstrakm and I discovered Water Pipe Glitch. (in IceManStage) This movie is surprising for you. :P http://www.yuko2ch.net/rockman/rockman_wind_glitch.avi The Megaman's speed goes up certainly. http://www.yuko2ch.net/rockman/rockman_hand.avi Pattern that number of hands increases. And, I studied into the cause.
----------------------
LoadEnemies
LoadEnemyNumber

0001D99A: BD 52 A4	lda EnemyDataPointers+0,x
 X=#$02,$A454=#$8D,A=#$8D

  Bank5($A454=#$8D) and 6($A454=#$29) changed by one frame in this part.
  The value of $A454=#$29 is read usually. 
  But,the data of Bank5($A454=#$8D) is uncommonly read (by lag?). 

0001D99D: 65 06		adc CurrentRoomPointer
 A=A+$06=99 $06=$0C
0001D99F: 85 06		sta CurrentRoomPointer
 $06=99 $07=85

  Then,CurrentRoomPointer=($06)=#$8599!
-----------------------
LoadEnemies_Forward
0001D8F0: B1 06		lda (CurrentRoomPointer),y ;load enemy number
 $06=#$8599 Y=#$03 $859C=#$2F
  There is #$2F in $859C in the icemen stage. 

0001D8F5: 20 AD D9	jsr SpawnObject
 A=#$2F
-----------------------
SpawnObject
0001D9AD: 85 02		sta $02 
 $02=#$2F
0001D9E5: A5 02		lda $02  ;object type
0001D9E7: 9D E0 06  sta ObjectType,x
 06F1=#$2F
 The enemy of Object2F was generated. 
-----------------------
DoEnemyAI
$AA29> BD E006: LDA ObjectType,X
 AI of Object2F is executed. 
-----------------------
AI_Object2F
$BA79> A9 30:   LDA #$30
 The water current is generated by AI of Object2F. 
-----------------------
Perhaps, the result of the investigation shows the following. 1:Because the water current's having occurred was good that the condition of the icemen stage. 2:Perhaps, this investigation means there is a possibility that the unknown enemy can call even in other stages. (If the boss or the block or the earthquake can be called, it might be interesting :P ) 3:The unknown enemy who can call by the stage is decided. 4:List of Enemy's AI http://www.yuko2ch.net/rockman/EnemyAIaddr.txt 5:The part that can use this glitch where the Bank changes frequently. The Bank change's occurring is defeating the enemy ,shot of arms , is dropping the item.
Experienced Forum User, Published Author, Active player (275)
Joined: 4/20/2004
Posts: 219
Location: Japan,Tokyo
I think that the idea switched from RushMarine and MegaMan is buried on the wall is new this time. There is movie of the wire. :) http://www.yuko2ch.net/rockman/ttwwiremm4.mpg http://www.yuko2ch.net/rockman/ttwwire2mm4.mpg http://www.yuko2ch.net/rockman/m4ttwwire.mpg
Experienced Forum User, Published Author, Active player (275)
Joined: 4/20/2004
Posts: 219
Location: Japan,Tokyo
looks very nice. The rush jet glitch use part has increased because the down scrolling became possible. :) The adjustment of the height of the rush jet and getting on are also smart. We should search for other stage where the time switched to the rush jet can be saved by the rush jet glitch. :p It is interesting that Ring Man Stage doesn't have the death judgment in the wall. (Because MegaMan was often buried on the wall, the developer might have put it. )
Experienced Forum User, Published Author, Active player (275)
Joined: 4/20/2004
Posts: 219
Location: Japan,Tokyo
http://www.yuko2ch.net/rockman/m4c4r3.fcm http://www.yuko2ch.net/rockman/m4c4r3.avi Advancing became possible only with the RushJet in Dr.COSSACK STAGE4. :) 1:MegaMan is buried on the wall while lowering the rush jet. 2:He is at a position that is 1block higher than usually. 3:You act by spending the invincibility time like seeing a right edge in the wall. 4:It succeeds in the limit. >GlitchMan Your WIP is very nice. It is effective to push each the number of frames.
Experienced Forum User, Published Author, Active player (275)
Joined: 4/20/2004
Posts: 219
Location: Japan,Tokyo
>BTW, what was your technique with the Rush Jet? "Technique with the Rush Jet" means this post(in page 9). :) ---- Posted: 2005-08-03 08:16:23 Post subject: http://www.yuko2ch.net/rockman/m4rjttw.mpg ---- I hope the part advanced through the wall increases :P see more other technique: http://www.yuko2ch.net/rockman/rock4movie.htm
Experienced Forum User, Published Author, Active player (275)
Joined: 4/20/2004
Posts: 219
Location: Japan,Tokyo
Nice demonstration :) 3 years ago,I found the technique of RushJet but I thought that there were a lot of places where the technique of RushJet was not able to be used. However, now , your route is certainly fast. There is a place that is faster than sliding. Perhaps, we have to research MegaMan 4 again :)
Experienced Forum User, Published Author, Active player (275)
Joined: 4/20/2004
Posts: 219
Location: Japan,Tokyo
http://www.yuko2ch.net/rockman/14changed.fcm http://www.yuko2ch.net/rockman/14changed.avi 1:You go back and use "delay CurrentBeginScreen changed." $14 is mad ->0xE1 2:You go to previous room of the starting screen. $20(room number)=0xFF 3:You go to the last revival point. Though the revival point is not suitable :P
Experienced Forum User, Published Author, Active player (275)
Joined: 4/20/2004
Posts: 219
Location: Japan,Tokyo
I discovered the technique for copying the shutter. http://www.yuko2ch.net/rockman/gate_copy_ok.avi Too slow, but funny 1:The egg is erased outside the screen. 2:Because the object of the egg disappeared, another object is copied onto the position of the egg. (The shutter is copied at this time) 3:The shutter is prevented from falling by F of 2nd. (Because the shutter is changed into another object when the shutter falls) 4:MegaMan touched the shutter. :p http://www.yuko2ch.net/rockman/birdgate.avi When the shutter falls, MegaMan is damaged from the unknown object.
Experienced Forum User, Published Author, Active player (275)
Joined: 4/20/2004
Posts: 219
Location: Japan,Tokyo
http://www.yuko2ch.net/rockman/delay_ladder_tech.avi http://www.yuko2ch.net/rockman/delay_ladder_tech.fcm I found the new tech for MM2! It is the "delay ladder tech". This technique can save time very much in ClashmanStage. 1:You jump outside the screen toward the ladder. 2:You cannot grip the ladder until becoming Y>244 and $F9=0xFF 3:You push "up" only by 1frame and the up scroll signal is deleted by delay at the moment! Y coordinates of MegaMan become about 10. 4:The fall starts (Y:10..20..30) outside the screen if you do not input anything at next frame. 5:When Y coordinates becomes 30-40, you push "up". 6:When Megaman goes to next screen,looks like the ladder tech :P
Experienced Forum User, Published Author, Active player (275)
Joined: 4/20/2004
Posts: 219
Location: Japan,Tokyo
Experienced Forum User, Published Author, Active player (275)
Joined: 4/20/2004
Posts: 219
Location: Japan,Tokyo
http://www.yuko2ch.net/rockman/nospoondscr.avi If you use delay CurrentBeginScreen changed -> delay downscrolling, you will go to next screen when you go to previously screen. What does this mean? This suggests the existence of the technique of this image. http://www.yuko2ch.net/rockman/crnewidea.jpg In the program, it can be possible. Though I have not understood whether to save the time yet. :)
Experienced Forum User, Published Author, Active player (275)
Joined: 4/20/2004
Posts: 219
Location: Japan,Tokyo
Voting for Deign. Rockman: I thought that it was impossible to save the time from the TAS of Mr. Bisqwit. Because the uselessness of it seemed to be a little. And, I thought that it was difficult to exceed optimization by Bisqbot of W2. However, he got it over by using "BasicBot". FinalFantasyIV: It was the nice work to be surprised at a lot of ideas. He was always executing the saving by "pause" ,though it is TAS to which it takes time(very long). I want to vote on the idea and the deep attachment. I am waiting for him and I hope he says "I'm ready" again :)
Experienced Forum User, Published Author, Active player (275)
Joined: 4/20/2004
Posts: 219
Location: Japan,Tokyo
I understood the item1 rise. It is affected by $04C4(item1-1st) $04C3(item1-2nd) $04C2(item1-3rd). It is a test of taking changing $04C4 in putting by 1frame.
$8C->$4B->$0A->$C9(item1 up)->
$88->$47->$06->$C5(item1 up)->
$84->$43->$02->$C1(item1 up)->
$80->$3F->$FE(item1 up)
$BD->$7C->$3B->$FA(item1 up)
$B9->$78->$37->$F6(item1 up)
$B5->$74->$33->$F2(item1 up)
$41 is subtracted every frame, and the item1 rises when the boundary of $0 is exceeded. The arms that are influenced these address
$04C4 is affected by A,Q,M,1
$04C3 is affected by A,B,Q,M,1
$04C2 is affected by A,B,Q,M,C,1,2,3
The value of $04C4-$04C2 is not initialized. In a word, the coordination is possible according to other arms or item1 , etc.. Rising beginning
$FF~$81: Item1 rises after 4frame
$81~$41: Item1 rises after 3frame
$40~$00: Item1 rises after 2frame. 
Interval of rising frame
$FF~$81:rise:4-4-.....3-4-4..
$FF~$81:rise:3-4-.....3-4-4..
$40~$00:rise:2-4-.....3-4-4..
They are the rises of every 3 frames or 4 frames usually. But,the value of $40-$00 becomes a rise by 2 frames of the momentarily at the time of set up the item1. Though the jump might not reach when the rise is too fast :P It is one of the reasons why "copypastes" result in desync. Rising code of item1
EECD:SEC                        //set carry flag
EECE:LDA $04C0,X @ $04C4 = $67  //$04C4: It is a related value in coordinates of item1 or other arms.
EED1:SBC $0660,X @ $0664 = $41  //When the boundary of $0 is exceeded, clear carry flag. 
                                //$0664: It is fixed with $41. 
EED4:STA $04C0,X @ $04C4 = $26
EED7:LDA $04A0,X @ $04A4 = $5F  //$04A4: Y coordinates of item 1
EEDA:SBC $0640,X @ $0644 = $00  //When the carry flag is cleared, the value of A is subtracted.(-1)
EEDD:STA $04A4,X @ $04A4 = $5F
EEE0:CMP #$F0                   //Judgment outside screen
EEE2:BCC $EEE7
EEE4:JMP $EF6A
For the reference :)
Experienced Forum User, Published Author, Active player (275)
Joined: 4/20/2004
Posts: 219
Location: Japan,Tokyo
I understood the scroll. The judgment of the scroll(up,down) starts every time twice. 1:Judgment of going to the previous screen 2:Judgment of going to the next screen The delay down scrolling(goto next screen)
Usually   Glitch
1:NG       NG
2:NG       OK(use NMI)
It is possible to go to the previous screen. The delay right scrolling(goto next screen)
Usually   Glitch
1:Always NG
2:NG       OK(use NMI)
It is impossible to go to the previous screen. The delay death
Usually   Glitch
1:NG       NG
2:OK       NG(use NMI)
The delay direction change(goto previous screen)
Usually   Glitch
1:NG       OK(use NMI)
2:OK
If you want to do the previous screen to the next screen? We hit on such an idea.
Usually   Glitch
1:OK       NG(use NMI)
2:NG       OK(use NMI)
It is only following 1000 instructions between the scroll judgment to the previous screen and the judgment to the next screen. NMI is generated at intervals of roughly 10000 instructions. In a word,It is impossible to go to "next screen" when you return to "previous screen".
Experienced Forum User, Published Author, Active player (275)
Joined: 4/20/2004
Posts: 219
Location: Japan,Tokyo
http://dehacked.2y.net/microstorage.php/info/1070626243/delay_direction_change.fcm I discovered the new technique. It is "delay direction change". It is such processing. (I do not understand detail yet. ) It is considerably difficult to match NMI to a usual scrolling.
1:$829E or $8287 calles $C7A1 
2:$C7A5 calles SwitchBank 
3:SwicthBank 
4:NMI occuerd.(C004 ≤ PC ≤ C01B) 
5:SoundCode returns $1C etc.. 
6:RegisterY(=$FF) is mad then (AND $82D0,Y) is not zero. 
7:The scroll direction is filled. 
8:"The next screen" become "previous screen".
Experienced Forum User, Published Author, Active player (275)
Joined: 4/20/2004
Posts: 219
Location: Japan,Tokyo
aglasscage wrote:
QuickmanNoSpoon.fcm
The delay death tech is already used also in the Woodman stage of our public TAS .
aglasscage wrote:
Playing Airman before Heatman is obsolete even if the screen scroll in Airman could be performed with M-Buster, is this correct?
You can pass Demon's cloud with the item1 faster than you pass Heat Man stage's block with item2. Even if you do not use the screen scrolling. Then Heat Man->Air Man is absolutely correct to get item1 from Heat Man.
aglasscage wrote:
And finalfighter when you say "$15 was not changed" do you mean in that particular video; or that it is impossible to change $15?
If we use the mechanism of rewriting $14 that uses the screen scrolling, rewriting $15 is impossible. It is such processing.
0:$15 is set.
1:$8EE9 or $8FAB calles $C7A1 
2:$C7A5 calles SwitchBank($C000) 
3:SwicthBank 
4:NMI occuerd.(C004 ≤ PC ≤ C01B) 
5:SoundCode returns $0B 
6:$14 is set.($14 is mad)
7:$14 and $15 is read
I hope for another mechanism to be found. :)
Experienced Forum User, Published Author, Active player (275)
Joined: 4/20/2004
Posts: 219
Location: Japan,Tokyo
I looked for the saving the time by changing $14 by using the cheat. I change $14 immediately after beginning the stage and die. I thought that it was the most effective that Mega Man revived in the next check point. However, I was not able to find the place of the saving time. Because $15 was not changed, this tech was not effective in the saving time. If other memory values change by NMI, it might be interesting. Though it has not been discovered yet. :)
Experienced Forum User, Published Author, Active player (275)
Joined: 4/20/2004
Posts: 219
Location: Japan,Tokyo
It is a position different from the delay scroll. The mechanism is the same. Reference of delay CurrentBeginScreen changed
1:$8EE9 or $8FAB calles $C7A1
2:$C7A5 calles SwitchBank($C000)
3:SwicthBank
4:NMI occuerd.(C004 ≤ PC ≤ C01B)
5:SoundCode returns $0B
6:$14(=$F5) is mad.
NMI drives $14 mad! This is the new tech "delay CurrentBeginScreen changed"! $14:Room number in horizontal scroll left end. $15:Room number in horizontal scroll right end. In delay scrolling, the value of Y goes mad. $14 has gone mad in this technique. If "$15" goes mad, we might not need the delay right scroll. Result of investigation
1:$15 is cannot change. 
2:The scroll judgment processing($C7A1) is necessary as well as the delay scroll for this tech. 
3:In this case, a small value such as $0B is good though the sound code returns $1C at the delay scrolling. 
4:Because the room number in  horizontal scroll left end is changed,
  there is a possibility that we can quickly go to the revival middle point.
5:The change in beginning of stage is useless.
6:There is no place in which this tech can save the time.  ;)
Reference of delay scrolling
1:$829E or $8287 calles $C7A1
2:$C7A5 calles SwitchBank
3:SwicthBank
4:NMI occuerd.(C004 ≤ PC ≤ C01B)
5:SoundCode returns $1C etc..
6:RegisterY(=$FF) is mad then (AND $82D0,Y) is not zero.
7:The scroll direction is filled.
Scroll judgment processing
As a result of delay downscrolling, Y becomes "#$FF". 
$82A1:98        TYA                        A:00 X:00 Y:FF  1:Y is copied to A. 
$82A2:A4 37     LDY $0037 = #$03           A:FF X:00 Y:FF  2:$0037 is loaded into Y. (in downscrolling , $0037=#$03)
$82A4:39 D0 82  AND $82D0,Y @ $82D3 = #$40 A:FF X:00 Y:03  3:A=($82D3=#$40)AND(A=#$FF)
$82A7:F0 12     BEQ $82BB                  A:40 X:00 Y:03  4:If A is 0, goto this branch(not scrolling)
$82A9:20 39 8F  JSR $8F39                  A:40 X:00 Y:03  5:If A is not 0,the scroll processing begins.If there are $40 bit mask ,
                                          delay downscrolling succeeds.
1 2 3 4 5
8 9