チェックサムアドレスの見つけ方
ここではチェックサムアドレスの見つけ方について説明します。
解析には「SFX-TypeB」などのSaveFileEditorが必要です。
ここでは「ACE COMBAT 04」のセーブデータを使って説明します。
最初にデータの開始地点を探すために「97 84」で検索をします。アドレス「600、C00、DA00」の3箇所が引っかかりますが、アドレス600には「icon.sys」、アドレスC00には「icon1.ico」とありこれはデーターではないと判断される ため除外しますので、残った「DA00」が正解となり、このアドレスに+200hした箇所にある「DC00」からデータが開始します。
さらに、「DA00」から+04hした箇所に「104B」とあるのでそれをひっくり返して「4B10」にし、この「4B10」に「DC00」を足して「1」引いた値である「1270F」が終了アドレスになります。
ここで、一つ問題が出てきます・・・開始アドレスの「DC00」から「DC03」までの部分はどうも文字コード(SFX-TypeBを使っていれば、一番右側に「AC04」という文字列を発見できるはずです)のよう で、後で分かりますが「DC0C」から「DC0F」までがチェックサムアドレスなので開始アドレスを「DC10」からにします。
後は数値などの違うセーブデータを比較サーチして開始から終了までのアドレスの中で最初か最後の部分で数値が変わっている部分を探し(当然何カ所か出てきますが)、それぞれをチェックサムアドレスの欄に入れて計算を実行して指定したアドレスの数値と一致すればそこがアドレスの場所と言うわけです。
あくまで、改造前のデーターで計算確認をすれば最初から答えは出ているわけですから楽なはずです。
ここでは、「DC0C」がアドレスの答えになります(サイズは4バイトです)ので、仮計算をして見て下さい・・・きっと同じ値になるはずです。
★おおまかな流れ
・・・まず「9784」検索をしデータ部を見つけ+200hしたところが開始アドレス・・・「9784」から+04hした数値と開始アドレスを足して「-1」したところが終了アドレス・・・・・チェックサムアドレスは最初か最後の部分にほとんどがある・・・・比較サーチをして変更箇所を見つけアドレスに入れ仮計算をする・・・・計算の答えとアドレスの数値が同じならそこが答え・・・・
補足として、計算方式については「PS2改造講座」を参考にして下さい。
以下、参考資料
☆チェックサムリペア
開始アドレス DC10
終了アドレス 1270F
ステップ 1
エンディアン リトル
チェックサムアドレス DC0C
チェックサムサイズ 4
チェック方法 加算
☆コード
戦闘機&武器すべて
DC18〜DC1D
DC20〜DC25
DC28〜DC2D
DC30〜DC25 ・・・すべてにFFFFFFFFFF03
DC38〜DC3D
DC40〜DC45
DC48〜DC4D
お金MAX(最高値999999999)
E628〜E62B ・・・FFC99A3B
Mission
EEBO・・・01〜11(1〜17まで)
モード
EEB2・・・00-BerryEasy
01-Easy
02-Normal
03-Hard
04-Expert
05-Ace