DQ3 復活した敵の経験値を入手できるようにしたい

久しぶりの質問コーナーです。お題は

DQ3で復活した敵の経験値を入手できるようにしたい

です。あまり気にしたことのない場所なのでまじめに解析したことはないのですが、戦闘中に倒したモンスターの経験値を加算する部分を見れば事足ります。

  • SR: $02B1B4 獲得経験値・ゴールド加算
02B1B4 LDX $2428 X=$2428
02B1B7 JSL $C2CAD9 SR: $02CAD9 引数:1#$2052 引数:2#$0010
02B1BF BNE #$1A if(z==off) goto $02B1DB 復活済み(=一度経験値を加算済み)?
02B1C1 JSL $C2CAD9 SR: $02CAD9 引数:1#$203C 引数:2#$00FF
02B1C9 CMP #$0004 A>=#$0004? グループ番号取得
02B1CC BCS #$0D if(c==on) goto $02B1DB 格闘場で賭けた敵orPC側なら加算処理スキップ
02B1CE JSL $C2CAD9 SR: $02CAD9 引数:1#$2051 引数:2#$0001
02B1D6 BNE #$03 if(z==off) goto $02B1DB ?
02B1D8 JSR $B1DC SR: $02B1DC 獲得経験値・ゴールド加算
02B1DB RTS return

ぱっと見て怪しいのは$02B1B7-C0で、戦闘中のキャラクター用のメモリの$22バイト目の5ビット目です(バイナリwikiでも「不明」扱いになっています)。恐らくこのフラグは「一度復活したことがある」なのでは、と思います。というわけで、一番簡単なのは$02B1BF-C0をNOPで潰してしまうことです。潰してテストをしたところ、一応期待通りの動作をしているようです。

コメント

タイトルとURLをコピーしました