【機能・注意】  この機能は、一般ゲーム機にあるゲームなどを改造するときに使われるパッチあてを イメージファイルを書き換えることなく行えるものです。データを直接書き換える性質 上、書換場所を間違えたりすると暴走することがありますので、よく使用方法がわから ない方は使用しないで下さい。 【制限】  コードは64命令までで、メモリのリアルタイム監視を行うため、非常に重いです。 【使用方法】  まず、"*.PAT"(*はイメージファイルと同じ名前)というファイル名のテキストファイ ルを作成し、後に記述するコードを使用して実行したいコードを記述します。後はイメ ージファイルと同じディレクトリに置いて通常通り起動するだけです。パッチを無効に するには、[vf1]MENU内のPATCH MODEをDisableにして下さい。(*.PATファイルがある場 合は起動時に有効になっています。) 【使用例】 PATファイルのフォーマット ------------------------------------- ; ... コメント # name1 ... 個別選択用識別子(nameは半角20(全角10))文字まで コード群 # name2 コード群 . . . # name15 ... 最大15まで コード群 ------------------------------------- YS1の場合 YS1.D88 イメージファイル(YS1) YS1.PAT パッチファイル "YS1.PAT"のファイル内容。 ------------- ここから ------------ ;イース無敵化 # 無敵 D00047CF 4B00 80004B00 FFFF ------------- ここまで ------------ 以上のように記述してP88SRを起動すると、起動直後にHP最大になります。なお、 通常ゲーム時は[vf1]MENU内のPATCH MODEをDisableにしてください。また'#'は、コー ドを個別選択するためのものです。コードの名前は半角20(全角10)文字以下で 記述し、最大分割数は15です。個別選択は[vf1]MENU内のPATCH MODEのPartメニュー で行って下さい。 【コード】  コードはすべて16進表記です。aaはRAM/ROMの種類、bbbbはアドレス、yyzzはデータ です。 aa 内容 有効アドレス範囲(bbbb) ----------------------------------------- 00 メイン RAM 0000-FFFF 01 N88BASIC ROM 0000-5FFF 02 高速RAM F000-FFFF 03 サブCPU RAM 4000-7FFF 04 サブCPU ROM 0000-1FFF 05 NBASIC ROM 6000-7FFF 06 NBASIC ROM 0000-5FFF 07 N88BASIC ROM 6000-7FFF 08 E0-ROM 6000-7FFF 09 E1-ROM 6000-7FFF 0A E2-ROM 6000-7FFF 0B E3-ROM 6000-7FFF 0C 拡張RAM-bank0 0000-7FFF 0D 拡張RAM-bank1 0000-7FFF 0E 拡張RAM-bank2 0000-7FFF 0F 拡張RAM-bank3 0000-7FFF [1]書き込み命令群 [1-1]即値書き込み命令 80aabbbb yyzz 16ビット書込み 30aabbbb yyzz 8ビット書込み(zzのみ有効) 指定したアドレス(aabbbb)に値yyzz/zzを書き込みます。 [1-2]加算命令 10aabbbb yyzz 16ビット加算 20aabbbb yyzz 8ビット加算(zzのみ有効) 指定したアドレス(aabbbb)に値yyzz/zzを加算し続けます。 [1-3]減算命令 11aabbbb yyzz 16ビット減算 21aabbbb yyzz 8ビット減算(zzのみ有効) 指定したアドレス(aabbbb)に値yyzz/zzを減算し続けます。 通常、加算・減算命令は以下の比較命令を併用します。 [2]比較命令群 [2-1]イコール比較 D0aabbbb yyzz イコール比較:16ビット E0aabbbb yyzz イコール比較: 8ビット(zzのみ有効)  指定したアドレス(aabbbb)の値がyyzz/zzと同一のとき、このコードの次に入力され ているコードが有効になります。 [2-2]ディファレント比較 D1aabbbb yyzz ディファレント比較:16ビット E1aabbbb yyzz ディファレント比較: 8ビット(zzのみ有効)  指定したアドレス(aabbbb)の値がyyzz/zzと等しくないとき、このコードの次に入力 されているコードが有効になります。 [2-3]スモール比較 D2aabbbb yyzz スモール比較:16ビット E2aabbbb yyzz スモール比較: 8ビット(zzのみ有効)  指定したアドレス(aabbbb)の値がyyzz/zzより小さいとき、このコードの次に入力さ れているコードが有効になります。 [2-4]ビッグ比較 D3aabbbb yyzz ビッグ比較:16ビット E3aabbbb yyzz ビッグ比較: 8ビット(zzのみ有効)  指定したアドレス(aabbbb)の値がyyzz/zzより大きいとき、このコードの次に入力さ れているコードが有効になります。 *マルチプルコード(比較コードの倍掛け)  D0~D3,E0~E3の各比較コードは、重ねて入力することにより、1つのコードに複数 の比較条件を設定することができます。 例/ D0008000 0100 E0034000 0006 8000D000 0713 アドレス「008000」の値が「0100」と同一かつ、 アドレス「034000」の値が「06」の時のみ、 アドレス「00D000」の値を「0713」で固定します。 [3] 特殊コード [3-1]シリアルコード 5000xxyy zzzz  この次に入力されているコードのアドレス部にyy、数値にzzzzをプラスしていき、全 部でxx個のコードを入力した場合と同様の効果が得られます。  このコードは、'80''30'のコードとセットで使用し、規則的に連続したアドレスを指 定しているコードがあった場合にそれを簡略化して入力する為のコードです。 例/ 50000602 0000 80123450 FFFF のコードは 80123450 FFFF 80123452 FFFF 80123454 FFFF 80123456 FFFF 80123458 FFFF 8012345A FFFF の6つのコードと同様の効果が得られます。 [4]その他 [4-1] イコール比較(強化版) C0xxxxxx yyzz イコール比較:16ビット  指定したアドレス(xxxxxx)の値がyyzzと同一の時のみ、同時にONにしていたコード 全てが有効になります。D0コードをより強力にした物です。 [4-2] タイマーコード C1000000 zzzz  起動してからコードが有効になるまでの時間を設定します。zzzzの単位は約1/600秒で 0258(10進数で600)を指定すると約1秒となります。 [4-3] バイトコピーモード C2xxxxxx 0yyy  指定したアドレス(xxxxxx)からyyyバイト分を、この次に入力されているコードの アドレスにコピーします。  このコードは、必ず'80''30'コードとセットで使用し、2行目のコードの数値部分は 使用しません。 例: C2123450 0100 80200000 0000 アドレス「123450」から「0100」バイト分を、アドレス「200000」にコピーします。 [4-4] キー入力比較コード D4000000 zzzz  キーボードのキー(zzzz)が押された時のみ、この次に入力されているコードが有効 になります。zzzzにはボタンを指定するための数値が入ります。 0001 [f.1] 0400 [SHIFT] 0002 [f.2] 0800 --- 0004 [f.3] 1000 --- 0008 [f.4] 2000 [GRPH] 0010 [f.5] 4000 [CTRL] 0020 [f.6] 8000 --- 0040 [f.7] 0080 [f.8] 0100 [f.9] 0200 [f10] 各キーを合計して、組み合わせて使うことが可能です。計算は16進で行ってください。