今回は難易度がアップしますが
いきなり数値がMAXになるコードの作成です

どうやって最大にするか説明します
大抵のゲームには最大値チェックがあります
お金がある程度まで行くと増えなくなる場合は
最大値チェックが存在します

最大値チェックの働きは
「現在数値が最大値を越えたら
予め設定した最大値に修正する」
という感じになっています。
最大値を越えてなくても
最大値に修正するようにしてやれば
即MAXが作れという仕組みになってます。


では実際にやって見ましょう

下準備
1、お金やステータスのアドレスを見付けておく


ではサーチ方法です
今回はサモンナイト2が題材です

BPアドレスは800784DC
アドレスマスクはいじらないで下さい
BREAK ONはWrite
ONカウントは1のままです

戦闘終了後にブレイクしたアドレス周辺に
beqという命令があると思います
800AA2F4です。
(分岐命令は、zeroレジスタと比較してる場合は
beqz bnezというように表示されます)

beqという命令は
「レジスタ同士を比較して
数値が同じなら右のアドレスにジャンプ」
という働きをします

このbeqが重要です
beqでジャンプされると
そのbeqから2命令先の命令から
ジャンプ先のアドレスの間の命令は無視されます
無視された命令を見て行くと
最大値に修正するストア命令があります
(800AA2FC AC6584DC sw a1,$84DC(v1))
このストア命令を無視されないように
ジャンプ先をこのストア命令にしてしまいましょう
EasyAsmR3000が大活躍してくれます

EasyAsmR3000で、この画像の様に数値を入力します

すると、命令にbeq v0,zero,$800aa300と表示されますね?
この命令の800aa300を800aa2fcに変えてみて下さい
すると、この様に数値が表示されます。


800AA2FCを通過させて見た所
戦闘終了後に見事にMAXになりました。

という事で完成です、お疲れ様〜
戦闘終了後MONEY MAX
D00AA2F6 1040
800AA2F4 0001