鋼の錬金術師2 赤きエリクシルの悪魔

キーワード
相対アドレス
プログラムコード
ベース
ワークコード


内容
SPMAX


SPMAX

特記する事はないですが、あえて上げるとするとSPMAXに関して。
これはSPMAX状態とそうではないセーブデータを比較し探し出す方法を使用しましたが、
おすすめなツールはStirlingというバイナリエディタでして、
これはベクター等でダウンロードでき、
便利ですのでダウンロードしてみてはいかがでしょうか?

比較方法は2つのファイルを開きウィンドウメニューから左右もしくは上下に並べて表示。
検索・移動メニューの比較をクリックする事で相違箇所を表示してくれるという便利なものです。
詳しくはStirlingに付属の説明を見て下さい。

比較した結果セーブデータアドレスの$4B037のデータが$01であると
SPMAX状態だと分かりました。
ちなみに$4B036にはゲージの値が入っています。$00c8を超えると$4B037に$01が入り、
$4B036は0になるようです。

この辺りはステータスのアドレスですからワークコードでも出来るのですが、
ワークコードはどうしても人と同じになる為、最近はプログラムコードで出来るものは
出来るだけプログラムコードで、と思う様になりプログラムコードで作りました。
しかし、プログラムコードでも同じになったりほとんど変わらなかったりしていますけど…
ゲーラボの九龍、ハガレンと。
典型的な例がステラデウスのステータスコード。人と全く同じに(ぉ

この話はこの辺で止めます(爆)

そうするとSPのワークアドレスは$002C8021このアドレスをps2disで見ると
$002C8020に参照箇所があるようです
まずはUを押して参照箇所へ飛べる様にします。後はスペース、F3で。

では参照箇所を検索していきます。すると次の様な場所がありました。

001a6b80 andi  v1, a0, $ff00
001a6b84 addiu  v0, zero, $0100     v0=$00000100
001a6b88 beq   v1, v0, $001a6bb0
001a6b8c nop
001a6b90 beq   v1, zero, $001a6ba0
001a6b94 nop
001a6b98 beq   zero, zero, $001a6bc0
001a6b9c nop
001a6ba0 lui   v0, $002d        v0=$002d0000
001a6ba4 beq   zero, zero, $001a6bc8
001a6ba8 addiu  v0, v0, $8020      v0=$002c8020
001a6bac nop
001a6bb0 lui   v0, $002d v0=$002d0000
001a6bb4 beq   zero, zero, $001a6bc8
001a6bb8 addiu  v0, v0, $8044      v0=$002c8044
001a6bbc nop
001a6bc0 daddu  v0, zero, zero
001a6bc4 nop
001a6bc8 bne   v0, zero, $001a6bd8
001a6bcc nop
001a6bd0 beq   zero, zero, $001a6bdc
001a6bd4 daddu  v0, zero, zero
001a6bd8 lb   v0, $0001(v0)            
001a6bdc jr   ra

灰色のバーは$002C8020をベースとしてp$0001ですから$002C8021を
ロードしている事が分かります。ここを
addiu v0,zero,$0001
に変えると常にSPMAX状態にする事が可能になりました。

戻る