PS2のコードは、先頭の1ケタの数値によって コードの働きなどが大きく変わります ここでは、それらの種類や意味の説明などをして行きます なお、書かれている数値は全て復号化(生)状態です 基本的にこのページで数値部分が0000と書いている部分は 何を入力してもコードに影響は無いようです ここに載っている物は全てPARでは使用できますが 特に記載が無いものはX-PLODERで使用可能か不明です 勝手ながらKAJAさんのページを参考に書かせて頂きます。 通常書き込み(PAR、X-PLODER共通) 0xxxxxxx 000000yy 1xxxxxxx 0000yyyy 2xxxxxxx yyyyyyyy アドレスxxxxに数値yyを書き込む 上から順にバイト、ハーフワード、ワード書き込みとなっています。 使用例 0025AFD6 000000FF アドレス0025AFD6に数値FFを書き込む 1025AFD8 00006464 アドレス0025AFD8に数値6464を書き込む 2025AFDC 01010101 アドレス0025AFDCに数値01010101を書き込む 数値減算 300100xx yyyyyyyy 3002xxxx yyyyyyyy 30030000 yyyyyyyy xxxxxxxx 00000000 アドレスyyyyの数値をxx分減算し続ける 条件判定とのセットで使う事が多い なるべくこのコードは単品で使う事 無条件で次の入力コードが4コードになってしまいます。 使用例 D133D0C0 00001023 30010001 01FE8040 これでアドレス0133D0C0の数値が1023の時のみ 01FE8040の数値部分から0001を減算し続ける様になります 数値減算(Ver1.6j以降専用) 302000xx yyyyyyyy 3040xxxx yyyyyyyy 30600000 yyyyyyyy xxxxxxxx 00000000 アドレスyyyyの数値をxx分減算し続ける 条件判定とのセットで使う事が多い 使用例 D032A860 00001000 30200005 00346FD4 これでアドレス0032A860の数値が1000の時のみ 00346FD4の数値部分から0005を減算し続ける様になります 数値加算(Ver1.6j以降専用) 301000xx yyyyyyyy 3030xxxx yyyyyyyy 30500000 yyyyyyyy xxxxxxxx 00000000 アドレスyyyyの数値をxx分加算し続ける 条件判定とのセットで使う事が多い 使用例 D032A860 00001000 30100005 00346FD4 これでアドレス0032A860の数値が1000の時のみ 00346FD4の数値部分へ0005を加算し続ける様になります シリアルコード風書き込み(Ver1.6j以降専用、X-PLODERも可?) 4xxxxxxx yyyyzzzz aaaaaaaa 00000000 アドレスxxxxからyyyy回分だけ zzzz×4ずつアドレスをずらしながら aaaaaaaaの数値を書き込み続ける 正確には1.3でも使用できますが書き込み回数などに制限が付きます 使用例 40220668 00070001 64646464 00000000 これでアドレス00220668から4hずつ、7回分アドレスをずらし その度に6464〜という数値を書き込みます 実際のコードで現せば 20220668 64646464 2022066C 64646464 20220670 64646464 20220674 64646464 20220678 64646464 2022067C 64646464 20220680 64646464 と、7行分のコードと同じ効果があります バイトコピー(Ver1.6j以降専用) 5xxxxxxx yyyyyyyy zzzzzzzz 00000000 アドレスxxxxからyyyyバイト分を アドレスzzzzにコピーする バイトは16進数での2ケタ分です 空きメモリなどにステータスの値を書き込むコードと併用して それをバイトコピーで各キャラに書き込むなども可能です 少しは行数を減らす事が可能な場合もあります 使用例 51A09CBC 00000014 ←(10進数で20) 01A09DBC 00000000 これでアドレス01A09CBCから20バイト分、つまり ワードデータで5行分のデータをコピーし 01A09DBCから5行分にそのコピーデータを書き込みます 一回書き込み(PARの場合) Axxxxxxx yyyyyyyy アドレスxxxxにyyyyの数値を ゲーム起動時に一回だけ書き込む このコードはゲーム起動時に一回だけしか動作しない為 実行ファイルのプログラムを書き換える時にしか使えませんが マスターコードが無くても動作するという利点があります 書き込み単位はワードデータ、起動時にしか動かない事を除いて 通常書き込みと勝手は変わりません。 エクスプローダーではこのコードは通常書き込みにしないといけません。 タイマーコード B0000000 xxxxxxxx ゲーム開始からxxxxをカウントして カウントが終わったら以降のコードがONになる 恐らく1/60秒か1/99秒?(予想) マスター数値判定 Cxxxxxxx yyyyyyyy xxxxのアドレスの数値がyyyyと一致したら 以降に入力しているコードが有効になる PSPAR3で言う所のC0コード。 使用例 C041FE60 00000100 これで、アドレス0041FE60の数値が00000100にならない限り 同時にONにしているコードは動作しませんが Aコードはその性質上、無視して動作するかも知れません。 条件判定A(PAR、X-PLODER共通) Dxxxxxxx 0000yyyy Dxxxxxxx 0010yyyy Dxxxxxxx 0020yyyy Dxxxxxxx 0030yyyy アドレスxxxxの数値をyyyyと比較して 条件を満たせば次の行入力しているコードが有効になる 上から順に 同一だったならON 同一ではなかったらON yyyyの方が大きければON yyyyの方が小さければON パッド操作でコードONや、外部ファイル改造で良く使います 例えば.hack(Vol.4)の買い物で1GPコードを例に 使用例 D059272C 00001018 2059272C 24020001 アドレス0059272Cの数値が1018だった場合のみ アドレス0059272Cの数値を24020001に書き換えます 条件判定B E0zzyyyy 0xxxxxxx E0zzyyyy 1xxxxxxx E0zzyyyy 2xxxxxxx E0zzyyyy 3xxxxxxx 動作条件は条件判定Aと同じですが 条件と数値が一致しない場合は 次から入力されてるコードをzz行分スキップします やたらとDコードが多くなる時などに便利です 条件判定Aと同じく、パッド操作や、外部ファイル改造で使います スターオーシャン3(修正版)のアイテムランダムを例に 使用例 E002F809 00240CDC 20240CDC 0C0432CC 20240CE0 240402EF アドレス00240CDCの数値がF809であれば すぐ下の2行のコードが有効になり、それぞれの数値を書き込みますが もし、00240CDCの数値がF809以外であれば すぐ下の2行のコードは実行されません マスターコード(PAR、X-PLODER共通) Fxxxxxxx yyyyyyyy ゲーム中にコードを使えるようにするコードです 詳細はPS2改造講座マスターコード編参照。 デッドフェイス(PAR専用復号処理) DEADFACE xxxxyyyy PARでは入力されたコードを復号化してから使用しています このデッドフェイスはその復号化するパターンを決めるもので 初期値は05100518が入力されています 海外のコードは最近はこのコードを使用し 復号パターンを04030209に変更した状態でコードが公開されています。
以下の情報はきょうすけさん提供のものです。 ヘッダー5 (X-T用) 50000000 xxxxxxxx yyyyyyyy zzzzzzzz 1行目のデータ部xxxxに00000000以上の数値が入ってる場合 yyyyのアドレスのデータ部zzzzに1行目のデータ部xxxxが書きこまれる ・例 50000000 0000FFFF 10543C64 0000270F これだと10543C64 0000FFFFと同じになり、0000270Fは無視される ヘッダー5 バイトコピー(X-T用) 5xxxxxxx yyyyyyyy zzzzzzzz 00000000 00000000 00000000 xxxxのアドレスからyyyyバイト分をzzzzで示すアドレスへコピーする 3行目の00000000 00000000も入力しておかないと機能しません 3行目の0コードが必要になる以外はPARと同等と考えられます。 一回書き込み?(X-Tの場合) A00xxxxx yyyyyyyy アドレスxxxxにyyyyの数値をゲーム起動時に一回だけ書き込む PARと違って書き込めるアドレスが最大でも000FFFFFという点、 書き込む値がjalやj命令の場合は使用できないという点、 マスターコードが必要という点などがPARとは違い 非常に使い勝手が悪いので殆ど使用されていないと考えられます。