Foxy進來

侍魂3HACK
--
電腦拿回來後,用trw2000和自己寫的一個內存方面的操作軟件,得到了准確的判斷。
過程:
第1局結束後,游戲人物勝利-》判斷是不是斬紅郎-》是就跳到地址1,否則地址2。
把這個過程68000debugger的全部程序計數器的數據都提取並存儲下來
(這個方法雖然有點累,不過是hackrom的萬能無敵方法,哈哈,和ollpgy的attach功能比較相似。trace!用的是:自己寫的一個內存方面的操作軟件!想要嗎?拿錢拿錢!哈哈。),
之後對比就能發現,出現的差異是出在這裡!
圖1
看藍色位置,如果不是斬紅郎,會繼續執行,否則如果是斬紅郎,會跳到75dc中。
那麼一定是紅色位置的原因,進去後很明顯的看到原因。也就是下面的程序分析,也就是圖2。
--
程序分析
00754A 7E00 MOVEQ#0x0,D7 00754C 102D 046E MOVE.B(0x46E,A5),D0 007550 C02D 046F AND.B(0x46F,A5),D0 007554 6B00 0020 BMI*+0x22[0x7576]
007558 102D 0470 MOVE.B(0x470,A5),D0(0x470,A5),裡面裝的是1p的人物代碼
00755C 4A2D 046E TST.B(0x46E,A5)
007560 6B00 0006 BMI*+0x8[0x7568]
007564 102D 0471 MOVE.B(0x471,A5),D0(0x471,A5)面裝的是人物代碼(2p的)
007568 0240 000F ANDI.W#0xF,D0通過與操作把人物代碼限制在0-f之間,防止數據溢出,無視人物屬性。哈哈
00756C 0C40 000D CMPI.W#0xD,D0判斷是不是斬紅郎
007570 6600 0004 BNE*+0x6[0x7576]如果不是,繼續游戲,
007574 7EFF MOVEQ#-0x1,D7否則出錯退出正常對戰程序構架游戲,返回到選人畫面
007576 4A47 TST.W D7 007578 4E75 RTS
--
程序看懂了。怎麼改都可以!有幾種辦法應該都可以。我沒有全部驗證,誰喜歡自己改吧。
第1種,因為00756C 0C40 000D CMPI.W#0xD,D0改成
CMPI.W#0xE,D0或者CMPI.W#0xF,D0就可以了,這個程序就是判斷你的人物代碼是不是0E或0F,如果不是,foxy軟體下載,就繼續游戲,而ss3中人物一共就是從00--0D,所以不會出現0E或者0F的情況。
第2種,007570 6600 0004 BNE*+0x6[0x7576]-》BRA*+0x6[0x7576]也可以。就是無視判斷。
第3種,007570 6600 0004 BNE*+0x6[0x7576]
007574 7EFF MOVEQ#-0x1,D7
--》改成JMP 0x7576也可以。也是無視判斷。
以上就是當時想到的3種修正boss的方法了。我當時用的是第1種,就是把CMPI.W#0xD,D0改成CMPI.W#0xE,D0,也就是到00756E 0D-0E就ok了。
還有第4種剛想到的方法,全改nop。我nop無敵。哈哈。
對了,還有一種,也是我經常用的,就是自己把程序構架重新寫。不過對ss沒什麼興趣。