DQ3 成長限界上昇パッチ修正作業

今回から実作業を行います。全ステータスについて同様の作業を書くのはアレなので最大HPを代表して紹介することにします(実際の作業は全てのステータスにおいて同様の作業をしています)。

  • SR: $04306F 最大HP取得
04306F JSR $F938 SR: $04F938 最大HPをシステム最大値でクリップする
043072 RTL return
  • SR: $043073 最大HP変更
043073 JSL $C5FD31 SR: $05FD31 最大HPをシステム最大値でクリップする
  • SR: $04307F すごろく場・種使用時の最大HPのステータスアップ処理
0430A4 JSL $C4FF63 SR: $04FF63 最大HP加算+加算後のステータスを返す
  • SR: $04FF63 最大HP加算+加算後のステータスを返す(新SR)
04FF63 PHA Push A
04FF64 JSL $C5FEDA SR: $05FEDA 最大HP職業別最大値取得
04FF68 PHA Push A
04FF69 JSL $C4306F SR: $04306F 最大HP取得
04FF6D CMP $01,S A==or>=Stack($01)?
04FF6F PLA Pull A
04FF70 PLA Pull A
04FF71 BCS #$05 if(c==on) goto $04FF78
04FF73 JSL $C430AE SR: $0430AE 最大HP加算+加算後のステータスを返す
04FF77 RTL return
04FF78 JSL $C4306F SR: $04306F 最大HP取得
04FF7C RTL return
  • SR: $043C83 レベルアップ時のステータスアップ、呪文拾得処理?
043E37 JSL $C4FF63 SR: $04FF63 最大HP加算+加算後のステータスを返す

これで一応仕様通りの動作をするはずです。ステータス取得時に職業最大値でクリップするのをやめているので、オリジナルのセーブデータを引き継いだ場合にステータス表示が職業最大値以上になる場合があります。というわけで、テストを簡単に行うためにデバッグメニューの「やけくそにつよい」を変え、全てのステータスを現職業の最大値にするようにしまいた。作業量は多いわりに大事な箇所は1行しかないので詳細は省略します。興味がある人はSR: $0DD5F9と$07C87A-07CB3CのSR群を見てみてください。

パッチの修正自体は終わりました。簡単なテストもOKっぽかったので、もう少しテストをして、数日中に修正したパッチをろだにうpします。