GUC コードステーション情報
ソフト名 5.PS X-Tのコードを極める
ソフト品番情報
ソフト対応機種 PS(PlayStaition)
改造対応ツール
投稿者(敬称略) D-RAM【GUC】
投稿者連絡先 mopro@jade.dti.ne.jp
登録日 1999/07/26
更新日 1999/07/26
サーチ環境
コメント 「何か動作がおかしい」とか、「こういうことができるコードが欲しい」
また、「ここはこうするべきでは」等のご意見がありましたら、お手数ですが
D-RAM【GUC】
e-mail mopro@jade.dti.ne.jp
までメールをいただけると大変ありがたいです。


5.PS X-Tのコードを極める PS X-TはPAR3などと比較すると機能の面でどうしても見劣りしてしまいますが、 とっておきの奥義、スーパーコードとメガコードがあります。 これらを組み合わせると、PAR3専用コードの一部も強引に PS X-Tで再現させることができます。 具体的には、スーパーコード(5コード)でメモリ内にプログラムデータを 埋め込み、メガコード(6コード)でそこへプログラム制御を渡します。 そのためコードが非常に長くなり、また書式も異なるため 扱いが難しいのが難点です。 ここではPS X-Tで通常は実現できないコードをいくつか紹介していきます。 なお、動作確認はPS X-T2 Ver2.001で行いました。 とにかく行数が多いので古いバージョンでの動作は不安があります。 重要:これらのコードはすべて同じアドレスを共有しているので 複数同時使用することはできません。 --------------------------- 1.プラスコード --------------------------- PAR2以降に搭載されているコードです。 条件判定コードと併用することはできません。 もっとも、条件判定機能を搭載させること自体はできるのですが、 そうするとパターン数が9個に増加し、全パターンを載せると見苦しくなるため、 残念ながらこういう形になってしまいました。 ・プラスコード(2バイト) 80007680 xxxx ;数値を書き込むアドレス 80007682 80xx 80007684 yyyy ;加算する数値(16進) アドレス80xxxxxxの値にyyyyを加算し続けます。 例:800926E8に0001を加算し続ける場合 80007680 26E8 80007682 8009 80007684 0001 と入力します。 以下必須コード 800075FC 0000 60000000 0008 800075FC EA80 0FFFFFFE 0028 00080000 0000 7000A000 0000 5000A000 0038 207608AC 2476 09AC8076 088C 84760994 0000 0A952876 0AAC 21504901 0000 0AA52876 0A8C 2476098C 0070 1A400038 8040 08004003 2076 088C0000 0000 ・プラスコード(1バイト) 80007680 xxxx ;数値を書き込むアドレス 80007682 80xx 30007684 00yy ;加算する数値(16進) 以下必須コード 800075FC 0000 60000000 0008 800075FC EA80 0FFFFFFE 0028 00080000 0000 7000A000 0000 5000A000 0038 207608AC 2476 09AC8076 088C 84760990 0000 0A912876 0AAC 21504901 0000 0AA12876 0A8C 2476098C 0070 1A400038 8040 08004003 2076 088C0000 0000 ・プラスコード(4バイト) 80007680 xxxx ;数値を書き込むアドレス 80007682 80xx 80007684 yyyy ;加算する数値(16進) 80007686 yyyy 以下必須コード 800075FC 0000 60000000 0008 800075FC EA80 0FFFFFFE 0028 00080000 0000 7000A000 0000 5000A000 0038 207608AC 2476 09AC8076 088C 8476098C 0000 0A8D2876 0AAC 21504901 0000 0AAD2876 0A8C 2476098C 0070 1A400038 8040 08004003 2076 088C0000 0000 --------------------------- 2.マイナスコード --------------------------- プラスコードと同様、PAR2以降に搭載されているコードです。 こちらも条件判定との併用は未対応です。 ・マイナスコード(2バイト) 80007680 xxxx ;数値を書き込むアドレス 80007682 80xx 80007684 yyyy ;減算する数値(16進) アドレス80xxxxxxの値にyyyyを減算し続けます。 以下必須コード 800075FC 0000 60000000 0008 800075FC EA80 0FFFFFFE 0028 00080000 0000 7000A000 0000 5000A000 0038 207608AC 2476 09AC8076 088C 84760994 0000 0A952876 0AAC 23504901 0000 0AA52876 0A8C 2476098C 0070 1A400038 8040 08004003 2076 088C0000 0000 ・マイナスコード(1バイト) 80007680 xxxx ;数値を書き込むアドレス 80007682 80xx 30007684 00yy ;減算する数値(16進) 以下必須コード 800075FC 0000 60000000 0008 800075FC EA80 0FFFFFFE 0028 00080000 0000 7000A000 0000 5000A000 0038 207608AC 2476 09AC8076 088C 84760990 0000 0A912876 0AAC 23504901 0000 0AA12876 0A8C 2476098C 0070 1A400038 8040 08004003 2076 088C0000 0000 ・マイナスコード(4バイト) 80007680 xxxx ;数値を書き込むアドレス 80007682 80xx 80007684 yyyy ;減算する数値(16進) 80007686 yyyy 以下必須コード 800075FC 0000 60000000 0008 800075FC EA80 0FFFFFFE 0028 00080000 0000 7000A000 0000 5000A000 0038 207608AC 2476 09AC8076 088C 8476098C 0000 0A8D2876 0AAC 23504901 0000 0AAD2876 0A8C 2476098C 0070 1A400038 8040 08004003 2076 088C0000 0000 --------------------------- 3.ビット演算ONコード --------------------------- 特定のビットのみONにするコードです。 主に特定のCGのみ閲覧できるようにしたい時など フラグ操作に効果を発揮します。 ・ビット演算ONコード(2バイト) 80007680 xxxx ;数値を書き込むアドレス 80007682 80xx 80007684 yyyy ;ONにするビット数値 アドレス80xxxxxxの値のyyyyビットをONにし続けます。 例:L1キーと□キーを常に押した状態にする (キー状態のアドレスは80081B0E+形式とする) 80007680 1B0E 80007682 8008 80007684 0084 と入力します。 以下必須コード 800075FC 0000 60000000 0008 800075FC EA80 0FFFFFFE 0028 00080000 0000 7000A000 0000 5000A000 0038 207608AC 2476 09AC8076 088C 84760994 0000 0A952876 0AAC 25504901 0000 0AA52876 0A8C 2476098C 0070 1A400038 8040 08004003 2076 088C0000 0000 ・ビット演算ONコード(1バイト) 80007680 xxxx ;数値を書き込むアドレス 80007682 80xx 30007684 00yy ;ONにするビット数値 以下必須コード 800075FC 0000 60000000 0008 800075FC EA80 0FFFFFFE 0028 00080000 0000 7000A000 0000 5000A000 0038 207608AC 2476 09AC8076 088C 84760990 0000 0A912876 0AAC 25504901 0000 0AA12876 0A8C 2476098C 0070 1A400038 8040 08004003 2076 088C0000 0000 ・ビット演算ONコード(4バイト) 80007680 xxxx ;数値を書き込むアドレス 80007682 80xx 80007684 yyyy ;ONにするビット数値 80007686 yyyy 以下必須コード 800075FC 0000 60000000 0008 800075FC EA80 0FFFFFFE 0028 00080000 0000 7000A000 0000 5000A000 0038 207608AC 2476 09AC8076 088C 8476098C 0000 0A8D2876 0AAC 25504901 0000 0AAD2876 0A8C 2476098C 0070 1A400038 8040 08004003 2076 088C0000 0000 --------------------------- 4.ビット演算OFFコード --------------------------- 特定のビットのみOFFにするコードです。 ビット演算ONコードと正反対の働きをします。 ・ビット演算OFFコード(2バイト) 80007680 xxxx ;数値を書き込むアドレス 80007682 80xx 80007684 yyyy ;OFFにするビット数値 アドレス80xxxxxxの値のyyyyビットをONにし続けます。 例:L1キーと□キーを常に押した状態にする (キー状態のアドレスは80007572−形式とする) 80007680 7572 80007682 8000 80007684 8400 と入力します。 以下必須コード 800075FC 0000 60000000 0008 800075FC EA80 0FFFFFFE 0028 00080000 0000 7000A000 0000 5000A000 003C 207608AC 2476 09AC8076 088C 84760994 0000 0A952876 0AAC 27482001 2450 49010000 0AA5 28760A8C 2476 098C0070 1A40 00388040 0800 40032076 088C ・ビット演算OFFコード(1バイト) 80007680 xxxx ;数値を書き込むアドレス 80007682 80xx 30007684 00yy ;OFFにするビット数値 以下必須コード 800075FC 0000 60000000 0008 800075FC EA80 0FFFFFFE 0028 00080000 0000 7000A000 0000 5000A000 003C 207608AC 2476 09AC8076 088C 84760990 0000 0A912876 0AAC 27482001 2450 49010000 0AA1 28760A8C 2476 098C0070 1A40 00388040 0800 40032076 088C ・ビット演算OFFコード(4バイト) 80007680 xxxx ;数値を書き込むアドレス 80007682 80xx 80007684 yyyy ;OFFにするビット数値 80007686 yyyy 以下必須コード 800075FC 0000 60000000 0008 800075FC EA80 0FFFFFFE 0028 00080000 0000 7000A000 0000 5000A000 003C 207608AC 2476 09AC8076 088C 8476098C 0000 0A8D2876 0AAC 27482001 2450 49010000 0AAD 28760A8C 2476 098C0070 1A40 00388040 0800 40032076 088C --------------------------- 5.バイトコピーコード --------------------------- PAR3以降で使用可能なコードです。 ただし、何バイトまでコピーできるかは 過度に期待しないようがよいでしょう。 80007680 xxxx ;複写元のアドレス 80007682 80xx ; 80007684 yyyy ;複写先のアドレス 80007686 80yy ; 80007688 zzzz ;複写するバイト数(16進) アドレス80xxxxxxからzzzzバイト分のデータを80yyyyyyに複写します。 例:8008FB00から0080バイト分のデータを80090180に複写する場合 80007680 FB00 80007682 8008 80007684 0180 80007686 8009 80007688 0080 と入力します。 以下必須コード 800075FC 0000 60000000 0008 800075FC EA80 0FFFFFFE 0028 00080000 0000 7000A000 0000 5000A000 0054 207608AC 2476 09AC2876 0AAC 8076088C 8476 098C8876 0A94 2C760BAC 0600 40110000 0B91 01000825 0000 2BA10100 2925 FAFF0010 FFFF 4A252C76 0B8C 28760A8C 2476 098C0070 1A40 00388040 0800 40032076 088C --------------------------- 6.拡張数値同期コード --------------------------- 指定したアドレスの値を別のアドレスに書き込み続けるコードですが、 それに乗算・除算・加減算のオプションが追加されています。 これを使用すると、例えば現在HPを最大HPの5分の1で固定して 常に瀕死状態を保つなどができます。 ・拡張数値同期コード(2バイト) 80007680 xxxx ;複写元のアドレス 80007682 80xx ; 80007684 yyyy ;複写先のアドレス 80007686 80yy ; 80007688 zzzz ;乗算する数値(16進、省略可能) 8000768A gggg ;除算する数値(16進、省略可能) 8000768C hhhh :加減算する数値(16進、省略可能) アドレス80xxxxxxの値をzzzzで乗算、ggggで除算、 さらにhhhhで加減算を行って80yyyyyyに書き込みます。 なお、zzzzとggggを省略または0000を指定した場合は0001とみなされます。 例:800BD93Aの値の3分の2の値を800BD93Cに書き込む場合 80007680 D93A 80007682 800B 80007684 D93C 80007686 800B 80007688 0002 8000768A 0003 8000768C 0000 と入力します。 注意:数値演算は乗算、除算、加減算の順に行っていますが、 乗算の段階で計算結果がFFFFFFFF(4294967295)を超えると その後の計算がおかしくなり、正しい値が書き込まれなくなる不具合が発生します。 例えば、「所持金=経験値*3.14」は、314で掛けて100で割りますが、 このとき経験値の値が5000万だった場合、計算結果は3A7CAFD00で、 最上位1桁が切り捨てられます。結局、所持金の値は2815万0981になってしまいます。 これは極端ですが、あまりにも半端な数値で乗算、除算する場合は要注意です。 以下必須コード 800075FC 0000 60000000 0008 800075FC EA80 0FFFFFFE 0028 00080000 0000 7000A000 0000 5000A000 0064 8076088C 2076 08AC0000 0895 88760A94 2876 0AAC0200 4015 247609AC 0100 0A241800 0A01 8A760A94 8476 098C0200 4015 12400000 0100 0A241A00 0A01 8C760A94 1240 00002140 0A01 28760A8C 0000 28A52476 098C 00701A40 0038 80400800 4003 2076088C 0000 ・拡張数値同期コード(1バイト) 80007680 xxxx ;複写元のアドレス 80007682 80xx ; 80007684 yyyy ;複写先のアドレス 80007686 80yy ; 80007688 zzzz ;乗算する数値(16進、省略可能) 8000768A gggg ;除算する数値(16進、省略可能) 3000768C 00hh :加減算する数値(16進、省略可能) 以下必須コード 800075FC 0000 60000000 0008 800075FC EA80 0FFFFFFE 0028 00080000 0000 7000A000 0000 5000A000 0064 8076088C 2076 08AC0000 0891 88760A94 2876 0AAC0200 4015 247609AC 0100 0A241800 0A01 8A760A94 8476 098C0200 4015 12400000 0100 0A241A00 0A01 8C760A90 1240 00002140 0A01 28760A8C 0000 28A12476 098C 00701A40 0038 80400800 4003 2076088C 0000 ・拡張数値同期コード(4バイト) 80007680 xxxx ;複写元のアドレス 80007682 80xx ; 80007684 yyyy ;複写先のアドレス 80007686 80yy ; 80007688 zzzz ;乗算する数値(16進、省略可能) 8000768A gggg ;除算する数値(16進、省略可能) 8000768C hhhh ;加減算する数値(16進、省略可能) 8000768E hhhh ; 以下必須コード 800075FC 0000 60000000 0008 800075FC EA80 0FFFFFFE 0028 00080000 0000 7000A000 0000 5000A000 0064 8076088C 2076 08AC0000 088D 88760A94 2876 0AAC0200 4015 247609AC 0100 0A241800 0A01 8A760A94 8476 098C0200 4015 12400000 0100 0A241A00 0A01 8C760A8C 1240 00002140 0A01 28760A8C 0000 28AD2476 098C 00701A40 0038 80400800 4003 2076088C 0000 --------------------------- 7.時限爆弾コード --------------------------- PAR2以降でプラスコードと条件判定コードを併用すれば 実現できるコードです。 なお、危険性が極めて高いので、使用する場合はそれなりの覚悟を しておいて下さい。 80007720 xxxx ;ゲーム停止までの時間(16進、003Cで1秒) 80007722 xxxx ; ゲーム起動後xxxxxxxxカウント経過後に無限ループを発生させ ゲームを強制停止させます。 例:ゲーム起動後65分経過で強制停止させる場合 80007680 9210 80007682 0003 と入力します。 以下必須コード 800075FC 0000 60000000 0008 800075FC EA80 0FFFFFFE 0028 00080000 0000 7000A000 0000 5000A000 0030 207608AC 8076 088C8476 098C 247609AC 0100 2925FFFF 0911 847609AC 2476 098C0070 1A40 00388040 0800 40032076 088C --------------------------- 8.サウンドエフェクトの最大化コード --------------------------- ゲーム中のBGMやサウンドのエフェクトを最大化するという 少し変わったコードです。ただし、ムービーやボイスなどには 効果がないので注意して下さい。 以下必須コード 800075FC 0000 60000000 0008 800075FC EA80 0FFFFFFE 0028 00080000 0000 7000A000 0000 5000A000 0030 007602AC 0476 04AC801F 043C FF7F0224 841D 82A4861D 82A4 0076028C 0476 048C0070 1A40 00388040 0800 40030000 0000 --------------------------- 最後に PS X-Tのメガコードに関しては不明な点が多く、 ここに公開したものもX-LINKのAdvanced Code Generatorが 作成したものを少しいじっただけなので、 実はもっと効率的に済ますことができるのかもしれません。 「何か動作がおかしい」とか、「こういうことができるコードが欲しい」 また、「ここはこうするべきでは」等のご意見がありましたら、お手数ですが D-RAM【GUC】 e-mail mopro@jade.dti.ne.jp までメールをいただけると大変ありがたいです。



無断転載・無断商用利用・無断直接リンク禁止
ホームページサイト登録はこちらゲーム個別検索登録はこちら