今回から実作業を行います。全ステータスについて同様の作業を書くのはアレなので最大HPを代表して紹介することにします(実際の作業は全てのステータスにおいて同様の作業をしています)。
| 04306F |
JSR $F938 |
SR: $04F938 |
最大HPをシステム最大値でクリップする |
| 043072 |
RTL |
return |
|
| 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します。
コメント