裏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日更新

裏CHUNSOFT > ゲーム解析入門 > 2.ガイコツまどうの杖の倍速効果のバグ修正