前提として…
アニメティカでのデータ改ざん方法はおやつさんの動画がわかりやすいのでそちらを参照ください。
※とは言いつつも、改竄場所がよくわからないところもありましたので、後ほど補足します。
改竄アドレスなどは、下記URLの解析データを参考にしました。
http://emu.web-g-p.com/info/bbs/patchcode/psp/bbs.cgi?page_10=v
↑の「ゼノギアスの解析情報」下にあるzipファイル 中身はhtmlですが、開けない??のでtxtで開いてください。
データ改竄手順
- メモリーカードA・Bを用意。
- メモリーカードA ブロック1に消すようデータ、ブロック2に改竄用データを用意。
- メモリーカードAの2データをBにそのままコピー。
- メモリーカードAのブロック2をアニメティカで改竄、改竄後削除。
- ゼノギアスの別のデータをロード、メモリーカードAのブロック1にセーブ。
- メモリーカードの管理画面(PS2やPS1などの)にて、メモリーカードB、ブロック2のデータをAへコピー。
- コピー途中にメモリーカードAを抜く(コピー後0.4秒ぐらい?)
- 管理画面では破損データ扱いになるが、ロード可能。
- ロード後、別ブロックにセーブし直すことで正規データになる。
(例)フェイ Lv1の攻撃力と防御力を入れ替える
右:改竄前(攻撃:15、防御10)
左:改竄後(攻撃:10、防御15)
戦闘や、レベルアップしても特に問題なく動作しています。
※なおデータ改竄する場合、チェックサムが元データと同じになるよう調整する必要がある。
チェックサムを同じにする理由
ゼノギアスのセーブデータはチェックサムの参照内に人力では制御ほぼ不可能な可能性のある領域がある(プレイ時間をフレーム単位での管理?)。
おやつさん式で管理データまで上書き出来ても、セーブを途中まで上書きする関係上チェックサムがずれるようです。(管理データだけをバッチリ狙えれば可能かも??)
その為、改竄する箇所以外が完全一致する方法として、メモリーカード管理画面でのコピー方法をとった結果、成功した次第です。
改竄するアドレスのキャンバス座標算出方法
正直内容をよく理解していないので計算方法だけ書きます。
変更したい値が入っているアドレス
23E8(フェイ攻撃力)
セーブが入ってるブロックの先頭アドレス分を加算
23E8+2000=43E8 (例)2ブロック目=2000 3ブロック目=4000...
そのアドレスを10進数に変換
43E8 → 17384
その数値を8960引いて、288で割った 余り=X軸、商=Y軸
(17384-8960)=8424
キャンバス座標(X:72,Y:29)
エクセル式
16→10進数変換 =HEX2DEC(43E8)
商 =QUOTIENT(8424,288)
余 =MOD(8424,288)
この場をお借りして感謝を…
アニメティカを知る切っ掛けになった おやつ様
データ改竄を一緒にやってくれた リスナー様
データ解析をしていただいた 烏様 白鴉様 (神の使いかな?)
この方法を発案してくださった Palantir様 (神)
ありがとうございます!
これでまだまだゼノギアスをしゃぶりつくせますね(ニチャァ…