PCSX2で動作する自作チートを作るために勉強したい人向け講座です
ここではまずPCSX2でのチートの仕方を解説します。
始めに
今回はPCSX2に標準で実装されているチートコードを有効化するための手順と外部メモリエディタを利用する場合の2種類を紹介します。
なおPCSX2では既存のPARコードは条件付きで可能です。使用できるのは複合化されたコードが0,1,2で始まる単純書き込みコードが使用できます。
ほかのコードも使えるものと使えないものがありますが詳しい説明は別ページで行っています。
PCSX2のPNACHファイルを使用する場合
①ゲーム識別番号の付いた拡張子がpnachを準備
ゲーム識別番号はステートセーブファイルにつけられる英数の文字列です。
ゲームを起動しステートセーブファイルを作って確認できます。
以下の写真は一番上のファイルがアンリミテッドサガのステートセーブデータを作った時の物です。
この時カッコで囲まれた20356DA7がゲーム識別番号
確認が出来たら空のテキストファイルを作り「ゲーム識別番号.pnach」
と言うようにリネームします。アンリミテッドサガの場合は「20356DA7.pnach」となります。
これで改造コードの入れ物が出来ました。
出来たファイルはPCSX2の中にある「cheats」フォルダに入れておきます。
②コードを記載する
お金最大のコードを実例に見てみるのが一番早いです
208533B0 000F423F //Kr最大
元となるコードは上のとおりです。これをpnachファイルのルールで書くとこうなります。
//Kr最大 208533B0 000F423F
patch=1,EE,008533B0,word,000F423F
//で始まる行はコメント扱いですので、無視されます。
2行目からがチートコードにあたる部分であり
patch=1,EE,はおまじないみたいなものですから常に記載を行い、それ以降のカンマ区切りの部分が書き込むアドレス、書き込むバイト数、書き込む値を意味しています。
PS2PARのコードの208533B0の部分が書き込みアドレスですが先頭の2は制御コードのため記載をせずに008533B0と記載し書き込むバイト数は1、2、4がそれぞれbyte,short,wordとして記載をします。今回は4バイトなのでwordと書きます。書き込む値はそのままですね。
他にも使用したいチートがあれば同じように記載をしてファイルを保存しておきます。
その状態でPCSX2を起動するとチートが有効になります。
使用前
使用後
外部メモリエディタを利用する場合
個人的にはこちらがおすすめです。
どうせメモリのサーチにも使うので最初から外部メモリエディタを使うほうが効率的でしょう。
昔はうさみみハリケーンを使う事が多かったですが最近はCheatEngineを多用しています。はたまた自分の好きなツールを使ってください。
以下はCheatEngineを使用した場合の説明になります。
①書き換えを行うプロセスを選択する。
外部メモリエディタには書き換えを行うプロセスを選択する画面が有るはずなので
そこからPCSX2を選択します。
CheatEngineの場合ウインドウの数だけ(PCSX2の場合は3つ)プロセスが出てきますが
どれを選んでも同じです。
②複合化済みコードを参考に書き換えたいアドレスへジャンプする
メモリブラウザ画面を開きます。
Ctrl-Gがアドレスジャンプのショートカットキーになります
ここで注意です
PS2のメモリは32MBです。これは実際は33,554,432バイトとなるので16進数で表すと
0‒200000バイトと表記され7桁の数字で表現されます。
PS2PARコードが8桁あるのは最初の一桁がコードの動かし方を定めるための制御コードなので
アドレス部は0から始まり0から0x2000000に収まっています。
PS2の実機の場合やpnachを利用する場合はこれで良いのですが、PCSX2の場合はPS2の実行プログラムを0x20000000から0x22000000に展開するので外部メモリエディタを利用した場合はアドレスジャンプをする際には複合化済みコードのアドレス部に0x20000000を足したアドレスを書き換える必要があります。
これはすなわち、複合化済みコードが2コードの場合は
そのままジャンプ先として張り付ければ良いと言う事になります。
アンリミテッドサガのお金コードの場合は208533B0に飛びます
後はジャンプ先を複合化済みコードを参考に書き換えれば良いですが
リトルエンディアンになっているので桁を逆転して書き換えを行ってください。
今208533B0のアドレスには00000781の値が入っていることが分かります。これは10進数になおすと1,921となりますのでpnachファイルでの書き換え前の持ち金と一致しますね。
後はここを好きな値に変更すれば外部メモリエディタによる改造が出来ました。となります。
キーボードが反応しないときは?
外部メモリエディタを利用してPCSX2のメモリ状態を書き換えようとした際に
キーボードから数値入力等を行ってもカーソルが右に動けども値が更新されない場合があります。
これはPCSX2が自身のメモリ領域を保護しているからです。
このような場合CheatEngineのメモリブラウザからメモリ領域の状態を見ると
リードオンリーになっているかと思いますので、モードをライト可とすることで
書き換え可能になります。
(上の画像ではProtectモードがリード、ライトとなっていますね。この場合はそのまま書き換えが可能です。)
なおpnachファイルで書き換える場合はこのようなことは起きません。
コメント