Published on: 2022-03-24
Updated on: 2022-03-26
「スクリプト」とは、ウィンドウ/テキスト表示を行う命令を並べたものを指す。
例えば、イベントやアイテム名などはそれ自体スクリプトである。
スクリプト命令はオペコードと 0 個以上のオペランドからなる:
0..=0x56 | 0x58..=0x6C
は 0 引数のオペコードで、単にその文字を出力する。0x6D..=0xEF
は 0 引数のオペコードで、ID (オペコード) - 0x6D + 1
の頻出語を出力する。0xFA
で終端されている)。0x57
- キー入力待ち'▼' を表示し、A または B キーの入力を待つ。
0xF0 <ptr:u16>
- 8bit 符号なし整数の10進表示 (3桁右詰め)ポインタ ptr
が指す先の u8
値を10進表示する。3桁右詰めで、空いた部分は空白 (0x5F
) となる。
内部的には一時バッファにフォーマット結果を書き込み、命令 0xFA
で終端し、スクリプトポインタをそこへ移している。
0xF1 <ptr:u16>
- 16bit 符号なし整数の10進表示 (5桁右詰め)ポインタ ptr
が指す先の u16
値を10進表示する。5桁右詰めで、空いた部分は空白 (0x5F
) となる。
内部的には一時バッファにフォーマット結果を書き込み、命令 0xFA
で終端し、スクリプトポインタをそこへ移している。
0xF2
- 主人公の名前を表示主人公の名前を表示する。
内部的にはスクリプトポインタを主人公の名前に移している(主人公の名前は命令 0xFA
で終端されている)。
0xF3 <ptr:u16>
- 16bit 符号なし整数の10進表示 (パディングなし)ポインタ ptr
が指す先の u16
値を10進表示する。パディングなし。
内部的には一時バッファにフォーマット結果を書き込み、命令 0xFA
で終端し、スクリプトポインタをそこへ移している。
0xF7 <n:u8> <ch:u8>
- 同じ文字を指定回数繰り返す文字 ch
を n
回繰り返し表示する。ch
は正しい文字コードであることを期待している。
0xFA
- スクリプトポインタを復元退避しておいたスクリプトポインタを復元する。
スクリプトポインタを移動する命令を実行した場合、最終的にこの命令によりスクリプトポインタが復元される。
0xFB
- ウェイトウェイト設定に応じた量のウェイトを入れる。
ウェイト中に start キーを押すとウェイトを延長できる。
0xFC
-0xFD
- サブスクリプト実行一時バッファの内容をスクリプトとして実行する。
内部的にはスクリプトポインタを一時バッファに移している。
0xFE
-0xFF
-