汎用変数
特定のスプライトに依存しない、汎用的に使用される変数について説明しています。
ただし、一部のスプライトではこれら汎用変数の一部をオーバーライドして別の意味で使用していることがあります。

スプライトメモリ
  00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F
00
制御コード
深度
待機時間
水平位置
垂直位置
10
描画設定
画像アドレス
画像アドレス
画像アドレス
表示設定
20
水平現在速度
垂直現在速度
水平目標速度
垂直目標速度
モード
30
属性
アニメーション
表示期間
アニメ制御
アニメ読出位置
アニメ追加制御
40
アニメ形式
水平移動範囲
垂直移動範囲
50
行動設定
ヒットイベント
パラメータ

変数解説
$00 制御コード
型: short
プログラムコードの配列ポインタの相対アドレスを指定します。これは4の倍数でなければなりません。
具体的な値は左メニューの各スプライトの制御コードを参照してください。

この変数に対し0を書込んだ場合、そのスプライトメモリを占有するスプライトの破棄となります。この変数が0であるようなスプライトメモリは、プログラム側から空きとみなされます。

$02 深度
型: byte
複数のスプライトが重なった場合のZオーダー(深度)を設定します。同じ深度が割り当てられている場合、どちらが上に来るかは不定となります。
なお、OAMのスプライト優先度とは関係ありません。優先度の設定値によっては、この変数に値から予想されるZオーダーとならない場合があります。

$04 待機時間
型: ushort
少し待ってから活動を開始するスプライトにおいて、その待機時間をフレーム単位で設定します。

$06 水平位置
型: ushort
このスプライトの現在のX座標です。スプライトのロード時には、配置データで指定された値、または、動的に生成されたスプライトの場合はプログラムで自動計算された値が設定されます。

$0A 垂直位置
型: ushort
このスプライトの現在のY座標です。スプライトのロード時には、配置データで指定された値、または、動的に生成されたスプライトの場合はプログラムで自動計算された値が設定されます。

$12 描画設定
型: [flags] ushort
このスプライトの描画基本設定で、OAM下位テーブルのデータとして反映されます。
どのような形式で設定されるかは別表2を参照してください。
この変数には直接書込むのではなく、コマンド$8500を通じてアクセスします。

$16 画像アドレス
型: short
このスプライトの現在表示中の画像データのポインタを指定します。この変数はアニメーションデータ以外からは変更しないでください。

$18 画像アドレス
型: short
このスプライトの現在表示中の画像データのポインタを指定します。この変数はアニメーションデータ以外からは変更しないでください。

$1A 画像アドレス
型: short
このスプライトの次のコマの画像データのポインタを指定します。通常、この変数はアニメーション処理プログラムが自動書換えを行います。
標準アニメーションを使用しない一部のスプライトでは、この変数への代入によって画像表示を行っている場合があります。

$1C 表示設定
型: [flags] ushort
表示・非表示の設定を行います。

$20 水平現在速度
型: short
このスプライトの現在のX速度を符号付16ビットで表します。
スプライトの初期化時にこの変数を明示的に設定した場合はその値が反映され、変数$26で規定された速度に達するまで加速または減速を行います。
それ以外の場合は初期化時には0が代入されます。

$24 垂直現在速度
型: short
このスプライトの現在のY速度を符号付16ビットで表します。
スプライトの初期化時にこの変数を明示的に設定した場合はその値が反映され、変数$2Aで規定された速度に達するまで加速または減速を行います。
それ以外の場合は初期化時には0が代入されます。

$26 水平目標速度
型: short
このスプライトのX速度の目標値を符号付16ビットで表します。
変数$20の値はこの変数の値を目標にして計算されます。したがって、X速度を支配するのはこの変数です。
通常、巡航中の水平速度はこの値に一致します。

$2A 垂直目標速度
型: short
このスプライトのY速度の目標値を符号付16ビットで表します。
変数$24の値はこの変数の値を目標にして計算されます。したがって、Y速度を支配するのはこの変数です。
通常、巡航中の垂直速度はこの値に一致します。

$2E モード
型: ushort
このスプライトの現在の動作モードを指定します。
通常、各スプライトをコードするプログラム内にあるアドレステーブルのインデクスを指定しますが、上位バイトがフラグセットとして利用されていることがあります。

$30 属性
型: [flags] ushort
武器判定などの切り替えを行います。フラグセットであり、詳細は別表4を参照してください。

$36 アニメーション
型: ushort
アニメーションの番号を指定します。
この変数には直接代入を行わず、コマンド$8100を通じてアクセスしてください。これを怠った場合、正常に描画されないことがあります。
アニメーションの番号は、別表1を参照してください。

$38 表示期間
型: ushort
このスプライトが使用しているアニメーションの、現在のコマの残り表示期間を指定します。
この変数はアニメーション処理プログラムが自動更新します。

$3A アニメーション制御
型: ushort
現在のアニメーションデータの制御データが格納されます。
この変数はアニメーションデータ内以外からは変更しないでください。

$3C アニメーション読出位置
型: absolute
このスプライトが使用しているアニメーションの、現在のアニメーションデータの読出アドレス(バンク$F9内)が格納されます。
この変数はアニメーション実行プログラムが自動更新します。
この変数を操作する場合、アニメーションデータ内でジャンプコマンドを使用して行ってください。

$3E アニメーション追加制御
型: absolute
このスプライトが使用しているアニメーションの、追加制御用アセンブリのポインタが格納されます。
この変数はアニメーションデータ内以外からは操作しないでください。

$40 アニメーション形式
型: ushort
現在のアニメーションデータの形式を指定します。
この変数はアニメーションデータの配列ポインタにおいて指定します。スプライト側からは書き換えないでください。

$46 水平移動範囲
型: (byte, byte)
スプライトの設置座標を中心として、左右の移動範囲を符号なし8ビットで指定します。
上位バイトが左、下位バイトが右となります。

$4A 垂直移動範囲
型: (byte, byte)
スプライトの設置座標を中心として、上下の移動範囲を符号なし8ビットで指定します。
上位バイトが上、下位バイトが下となります。

$52 行動設定
型: [flags] ushort
このスプライトの動き方を指定します。フラグセットであり、詳細は別表4を参照してください。

$54 ヒットイベント
型: absolute
操作キャラとの接触時の処理などを定義したヒットイベントの、バンク$FF内絶対アドレスを指定します。

$58 パラメータ
型: ushort
このスプライトのパラメータです。この変数にはスプライト配置データを通してアクセスします。
なお、スプライトジェネレータが動的に生成したスプライトには、パラメータFが割り当てられます。
この変数に対して0を書込んだ場合、スプライトの破棄と、リスポーンの抑制処理が行われます。
この変数に0を書込まれたスプライトは、マップを再読込しない限りロードされなくなります。