裏CHUNSOFT > ゲーム解析入門 > 2.ガイコツまどうの杖の倍速効果のバグ修正
2.ガイコツまどうの杖の倍速効果のバグ修正
ガイコツまどうの杖で倍速効果が出る時、残りターンの設定を忘れており、これは永久倍速の原因でもありました(永久倍速のやり方)。 それではこのバグを修正してみましょう。
0240BC 08 PHP ; 0240BD E2 30 SEP #$30 ; 0240BF A6 00 LDX $00 ; "X" = $00(キャラ番号) 0240C1 A5 01 LDA $01 ; "A" = $01(本当はここに残りターン数が入るが、それを入れる処理がない) 0240C3 9F F5 86 7E STA $7E86F5+"X" ; $7E86F5+"X" = $01(残りターン数) 0240C7 BF 6D 87 7E LDA $7E876D+"X" ; "A" = $7E876D+"X"(キャラ番号"X"の速度) 0240CB C9 02 CMP #$02 ; "A" - 02 を計算 0240CD F0 05 BEQ #$05 ; "A" = 02(倍速) のとき$0240D4へ 0240CF 1A INC ; "A" ++(倍速にする) 0240D0 9F 6D 87 7E STA $7E876D+"X" ; $7E876D+"X" = "A" 0240D4 28 PLP ; 0240D5 6B RTL ;
0240C1で残りターンを読み込んでいます。 倍速の残りターンを自由に変えられるようになっているのですが、この処理はガイコツまどうの杖でしか使われないようなので、問答無用で$01に0A(10ターン)を入れることにしましょう。 値を直接"A"に入れる命令はA9なので、次のように改造すれば良いです。
0240C1 A9 0A LDA #$0A ; "A" = 0A
変更前 0240C0 00 A5 01 9F F5 86 7E BF 6D 87 7E C9 02 F0 05 1A
変更後 0240C0 00 A9 0A 9F F5 86 7E BF 6D 87 7E C9 02 F0 05 1A
2010年8月8日更新