PS2 改造講座

 

テキストで欲しい方はこちらをダウンロードして下さい。

改造に関する質問は受け付けていません。



これまでPS1で改造をしてきた方は当然の如くPS2でも改造をしていると思いますが、いざ実践してみたはいいがロードしようとすると成功しない場合が殆どです。
それも「チェックサム」と言うやっかいな物のせいなのです。

そこで、まず「チェックサム」について説明します。

チェックサムという物は、簡単にいうならデータが正常かどうかを調べる為の検査所みたいな物です。
その方法ですが、データがデジタルなので数値を計算し合計を求め、その結果を照合し正しいかどうかを確かめると言うことです。
つまり、普通に改造しても照合部分と答えが違うのですからもちろんエラーが出て失敗と言うことになります。
逆にいうと改造しても照合の値さえ変えてしまえばOKと言うことなのです。

まず、基本になる図を下に書いておきます。
今後の説明はこの図を使い説明しますので別のファイルにコピーでもして使ってください。 

ADDRESS 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F
0000EE90 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
0000EEA0 FF FF FF FF FF FF FF FF FF FF FF FF 00 00 00 00
0000EEB0 01 00 05 00 00 00 02 00 00 00 00 00 00 00 00 00
0000EEC0 0F 0F 0F 0F 00 03 00 00 08 00 08 00 00 00 00 00
0000EED0 00 00 00 00 01 00 00 00 5E 55 55 55 55 00 00 00
0000EEE0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0000EEF0 FF FF FF FF FF 03 00 00 AA AA AA AA AA 02 00 00





 

 

 

まず、バイトの検索ですがバイトというのは簡単にいうと処理する桁数のことを表していて普通は1バイト・2バイト・4バイトの3種類に成ります。
1バイトは00〜FFまでで、2桁の数値が1つで1バイトと呼ばれています。そして2バイトなら4桁になるので0000〜FFFF、4バイトなら00000000〜FFFFFFFFとなります。
つまり 10 20 30 40 50 60 70 80 11 33 77 88 99 と数字が並んでいると1バイトなら 10 | 20 | 30 |… 2バイトなら 10 20 | 30 40 | 50 60 |… 4バイトなら 10 20 30 40 | 50 60 70 80 | 11 33 77 99 |… と区切っていきます。
呼び方は1バイトは「バイト」・2バイトは「ワード」・4バイトは「Dワード」です。

図の[0000EEBO]の[01]と+10hした[0000EC0]の[0F]を入れ替えてセーブ・ロードします。
(+4hした[0000EEBO]と[0000EEB4]の入れ替えでも良いです。)
OKならバイトかワードかDワードのいずれかになります。
NGなら計算領域外か他の計算方法の可能性があります。

次に[0000EEB0]の[01]と+2hした[0000EEB2]の[05]を入れ替えます。
OKならバイトかワードです、NGならDワード決定です。

次に[0000EEBO]の[01]と+1hした[0000EEB1]の[00]と入れ替えます。
OKならバイトで、NGならDワードとなります。


それではまず「加算とXor]のチェックを行います。

まずXorのチェックです。

[0000EEBO]と+10hした[0000EEC0]か+4hした[0000EEB4]にそれぞれ[FF]と入力します。
OKならXorです、NGなら加算(減算)です。


さて次に加算(減算)のチェックです。

基本的に偶数を使います、[0F]を使うと10進数で[15]になり奇数なので[01]と[07]と
[07]の3つの数字に分て使います。
上の数字は0Fが奇数の[15]なのでそれを偶数の[14]にする為、[0E]と[01]に分けさらに
[0E(14)]を[07(07)]2つに分けた物です。
上の数値を[0000EEC0]に[07]、[0000EED0]に[01]、[0000EED4]に[07]を入れてください。これでOKなら加算で、NGなら減算です。

さて、チェックサムの場所ですがはっきり言ってしまえば正確な場所と範囲を特定する方法はありません。
数値(HP/MPなど)の変化前のセーブデータと変化後のセーブデータを比較し変化している所が数値の変化場所なのでそのどれかが計算結果か数値(HP/MPなど)の変化場所ですので1カ所づつ根気よく探すしか有りません。
当然、チェックサムのサイズは場所が判明すれば分かりますので。
ただし、確率的にはデータの最初や最後にある物が多いようです。

あとは、実践でやるのが一番いいですから頑張ってやって下さい。