Advertisement
Guest User

P88SR patch function

a guest
Oct 12th, 2011
478
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 7.50 KB | None | 0 0
  1.  
  2. 【機能・注意】
  3.  
  4.  この機能は、一般ゲーム機にあるゲームなどを改造するときに使われるパッチあてを
  5. イメージファイルを書き換えることなく行えるものです。データを直接書き換える性質
  6. 上、書換場所を間違えたりすると暴走することがありますので、よく使用方法がわから
  7. ない方は使用しないで下さい。
  8.  
  9.  
  10. 【制限】
  11.  
  12.  コードは64命令までで、メモリのリアルタイム監視を行うため、非常に重いです。
  13.  
  14.  
  15. 【使用方法】
  16.  
  17.  まず、"*.PAT"(*はイメージファイルと同じ名前)というファイル名のテキストファイ
  18. ルを作成し、後に記述するコードを使用して実行したいコードを記述します。後はイメ
  19. ージファイルと同じディレクトリに置いて通常通り起動するだけです。パッチを無効に
  20. するには、[vf1]MENU内のPATCH MODEをDisableにして下さい。(*.PATファイルがある場
  21. 合は起動時に有効になっています。)
  22.  
  23.  
  24. 【使用例】
  25.  
  26. PATファイルのフォーマット
  27.  
  28. -------------------------------------
  29.  
  30. ; ... コメント
  31.  
  32. # name1 ... 個別選択用識別子(nameは半角20(全角10))文字まで
  33. コード群
  34.  
  35. # name2
  36. コード群
  37. .
  38. .
  39. .
  40. # name15 ... 最大15まで
  41. コード群
  42.  
  43. -------------------------------------
  44.  
  45.  
  46.  
  47. YS1の場合
  48.  
  49. YS1.D88 イメージファイル(YS1)
  50. YS1.PAT パッチファイル
  51.  
  52. "YS1.PAT"のファイル内容。
  53. ------------- ここから ------------
  54.  
  55. ;イース無敵化
  56.  
  57. # 無敵
  58.  
  59. D00047CF 4B00
  60. 80004B00 FFFF
  61.  
  62. ------------- ここまで ------------
  63.  
  64. 以上のように記述してP88SRを起動すると、起動直後にHP最大になります。なお、
  65. 通常ゲーム時は[vf1]MENU内のPATCH MODEをDisableにしてください。また'#'は、コー
  66. ドを個別選択するためのものです。コードの名前は半角20(全角10)文字以下で
  67. 記述し、最大分割数は15です。個別選択は[vf1]MENU内のPATCH MODEのPartメニュー
  68. で行って下さい。
  69.  
  70.  
  71.  
  72. 【コード】
  73.  
  74.  コードはすべて16進表記です。aaはRAM/ROMの種類、bbbbはアドレス、yyzzはデータ
  75. です。
  76.  
  77. aa 内容 有効アドレス範囲(bbbb)
  78. -----------------------------------------
  79. 00 メイン RAM 0000-FFFF
  80. 01 N88BASIC ROM 0000-5FFF
  81. 02 高速RAM F000-FFFF
  82. 03 サブCPU RAM 4000-7FFF
  83. 04 サブCPU ROM 0000-1FFF
  84. 05 NBASIC ROM 6000-7FFF
  85. 06 NBASIC ROM 0000-5FFF
  86. 07 N88BASIC ROM 6000-7FFF
  87. 08 E0-ROM 6000-7FFF
  88. 09 E1-ROM 6000-7FFF
  89. 0A E2-ROM 6000-7FFF
  90. 0B E3-ROM 6000-7FFF
  91. 0C 拡張RAM-bank0 0000-7FFF
  92. 0D 拡張RAM-bank1 0000-7FFF
  93. 0E 拡張RAM-bank2 0000-7FFF
  94. 0F 拡張RAM-bank3 0000-7FFF
  95.  
  96.  
  97.  
  98. [1]書き込み命令群
  99.  
  100. [1-1]即値書き込み命令
  101.  
  102. 80aabbbb yyzz 16ビット書込み
  103. 30aabbbb yyzz 8ビット書込み(zzのみ有効)
  104.  
  105. 指定したアドレス(aabbbb)に値yyzz/zzを書き込みます。
  106.  
  107.  
  108. [1-2]加算命令
  109.  
  110. 10aabbbb yyzz 16ビット加算
  111. 20aabbbb yyzz 8ビット加算(zzのみ有効)
  112.  
  113. 指定したアドレス(aabbbb)に値yyzz/zzを加算し続けます。
  114.  
  115.  
  116. [1-3]減算命令
  117.  
  118. 11aabbbb yyzz 16ビット減算
  119. 21aabbbb yyzz 8ビット減算(zzのみ有効)
  120.  
  121. 指定したアドレス(aabbbb)に値yyzz/zzを減算し続けます。
  122.  
  123. 通常、加算・減算命令は以下の比較命令を併用します。
  124.  
  125.  
  126. [2]比較命令群
  127.  
  128. [2-1]イコール比較
  129.  
  130. D0aabbbb yyzz イコール比較:16ビット
  131. E0aabbbb yyzz イコール比較: 8ビット(zzのみ有効)
  132.  
  133.  指定したアドレス(aabbbb)の値がyyzz/zzと同一のとき、このコードの次に入力され
  134. ているコードが有効になります。
  135.  
  136.  
  137. [2-2]ディファレント比較
  138.  
  139. D1aabbbb yyzz ディファレント比較:16ビット
  140. E1aabbbb yyzz ディファレント比較: 8ビット(zzのみ有効)
  141.  
  142.  指定したアドレス(aabbbb)の値がyyzz/zzと等しくないとき、このコードの次に入力
  143. されているコードが有効になります。
  144.  
  145.  
  146. [2-3]スモール比較
  147.  
  148. D2aabbbb yyzz スモール比較:16ビット
  149. E2aabbbb yyzz スモール比較: 8ビット(zzのみ有効)
  150.  
  151.  指定したアドレス(aabbbb)の値がyyzz/zzより小さいとき、このコードの次に入力さ
  152. れているコードが有効になります。
  153.  
  154.  
  155. [2-4]ビッグ比較
  156.  
  157. D3aabbbb yyzz ビッグ比較:16ビット
  158. E3aabbbb yyzz ビッグ比較: 8ビット(zzのみ有効)
  159.  
  160.  指定したアドレス(aabbbb)の値がyyzz/zzより大きいとき、このコードの次に入力さ
  161. れているコードが有効になります。
  162.  
  163.  
  164. *マルチプルコード(比較コードの倍掛け)
  165.  
  166.  D0~D3,E0~E3の各比較コードは、重ねて入力することにより、1つのコードに複数
  167. の比較条件を設定することができます。
  168.  
  169. 例/
  170. D0008000 0100
  171. E0034000 0006
  172. 8000D000 0713
  173. アドレス「008000」の値が「0100」と同一かつ、
  174. アドレス「034000」の値が「06」の時のみ、
  175. アドレス「00D000」の値を「0713」で固定します。
  176.  
  177.  
  178. [3] 特殊コード
  179.  
  180. [3-1]シリアルコード
  181.  
  182. 5000xxyy zzzz
  183.  
  184.  この次に入力されているコードのアドレス部にyy、数値にzzzzをプラスしていき、全
  185. 部でxx個のコードを入力した場合と同様の効果が得られます。
  186.  
  187.  このコードは、'80''30'のコードとセットで使用し、規則的に連続したアドレスを指
  188. 定しているコードがあった場合にそれを簡略化して入力する為のコードです。
  189.  
  190. 例/
  191. 50000602 0000
  192. 80123450 FFFF
  193. のコードは
  194. 80123450 FFFF
  195. 80123452 FFFF
  196. 80123454 FFFF
  197. 80123456 FFFF
  198. 80123458 FFFF
  199. 8012345A FFFF
  200. の6つのコードと同様の効果が得られます。
  201.  
  202.  
  203. [4]その他
  204.  
  205. [4-1] イコール比較(強化版)
  206.  
  207. C0xxxxxx yyzz イコール比較:16ビット
  208.  
  209.  指定したアドレス(xxxxxx)の値がyyzzと同一の時のみ、同時にONにしていたコード
  210. 全てが有効になります。D0コードをより強力にした物です。
  211.  
  212. [4-2] タイマーコード
  213.  
  214. C1000000 zzzz
  215.  
  216.  起動してからコードが有効になるまでの時間を設定します。zzzzの単位は約1/600秒で
  217. 0258(10進数で600)を指定すると約1秒となります。
  218.  
  219.  
  220. [4-3] バイトコピーモード
  221.  
  222. C2xxxxxx 0yyy
  223.  
  224.  指定したアドレス(xxxxxx)からyyyバイト分を、この次に入力されているコードの
  225. アドレスにコピーします。
  226.  このコードは、必ず'80''30'コードとセットで使用し、2行目のコードの数値部分は
  227. 使用しません。
  228.  
  229. 例:
  230. C2123450 0100
  231. 80200000 0000
  232. アドレス「123450」から「0100」バイト分を、アドレス「200000」にコピーします。
  233.  
  234. [4-4] キー入力比較コード
  235.  
  236. D4000000 zzzz
  237.  
  238.  キーボードのキー(zzzz)が押された時のみ、この次に入力されているコードが有効
  239. になります。zzzzにはボタンを指定するための数値が入ります。
  240.  
  241. 0001 [f.1] 0400 [SHIFT]
  242. 0002 [f.2] 0800 ---
  243. 0004 [f.3] 1000 ---
  244. 0008 [f.4] 2000 [GRPH]
  245. 0010 [f.5] 4000 [CTRL]
  246. 0020 [f.6] 8000 ---
  247. 0040 [f.7]
  248. 0080 [f.8]
  249. 0100 [f.9]
  250. 0200 [f10]
  251.  
  252. 各キーを合計して、組み合わせて使うことが可能です。計算は16進で行ってください。
  253. 
  254.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement