ステータス関連

武勲ポイントの最大値は0001869Fです
まずは869Fで検索して怪しい場所を探します
すると00139A50でヒットした近くの分岐を潰すと
s0に無条件で最大値が格納されるので、とにかく潰します
結果、ステータス画面で武勲が99999になりました
やはりここは武勲の最大値チェックみたいです

swの書き込み先が00010010になっていますが
こんなアドレスが使われる事はありません
すぐ上で00010000がv0に代入されているので
それで00010010がアドレスと誤認して表示しています

分岐してもしなくても、必ず
00139A54の命令を実行して00138750に飛びます
こういう場合はこの00138750でアドレスを求め
戻ってからストアするという流れであると思われます
早速00138750に飛んでみましょう
ちょっと複雑な処理をしていますが
幸い、途中でv0の値が見えてるので計算し易いです

a0とv1の値はキャラ毎に変わる
アドレスをズラす為の物と予想出来るので
先頭のキャラはこの値が0000だと想定し計算します

00437030に00B8をプラスして004370E8
先ほどの最大値チェックに戻ってから
これにプラス10hした所へストア
つまり004370F8が怪しいと思われます
実際に204370F8 0001869Fを暗号化して
効果があるか確かめた所、ビンゴでした。

武勲のアドレスは見つかったので
他のステータスも見つけたいと思いますが
これはセーブデータ比較で一発で見つかります
基本解析で書いている事なのでここでは省きます。


今回の実際の解析手順、いかがだったでしょうか?
2003年に入ってからこんな感じで少し複雑化して来ているので
一応頭に入れておいた方が良いと思います