Last Update 08/02/23

スプライトを用いたグラフィックやアニメーションの定義を行っています。
ここはROMデータ内のアドレスではなく、プログラムROMにマップされた時のアドレスを用いて書いています。



◇$8000-9FFFにマップするバンク
1. ($5Aの値 ≠ 0) and (オブジェクトのインデックス ≧ #$10)
  -> BANK 15

2. アニメーション番号 < #$80
  -> BANK 1A
  else BANK 1B



◇アニメーション定義へのアドレス
$8000-807F low
$8080-80FF high

◇アニメーション定義
byte0 アニメーションに使うスプライトパターンの総数(00で1個)
byte1 次のスプライトパターンに切り替わるまでのフレーム数
byte2〜 スプライトパターン定義番号(00を指定でオブジェクト消滅)


◇スプライトパターン定義アドレス
$8100〜81FF (100) = スプライトパターン定義番号: スプライトパターン定義アドレス(low)
$8200〜82FF (100) = スプライトパターン定義番号: スプライトパターン定義アドレス(high)

◇スプライトパターン定義
byte0 スプライトパターン定義番号
  bit7 -> $A000-BFFFにマップするバンク(0ならBANK 19, 1ならBANK 14)
  bit6-0 -> 使用するスプライトの個数
byte1 -> スプライト配置データ参照番号
byte2 -> 1個目のパターンインデックス番号
byte3 -> 1個目のスプライトの属性(bit7 -> 上下反転, bit6 -> 左右反転, bit1-0 -> 使用パレット)


◇スプライト配置データのアドレス
$BE00〜BEFF (100) = スプライト配置データ参照番号: スプライト配置データのアドレス(low)
$BF00〜BFFF (100) = スプライト配置データ参照番号: スプライト配置データのアドレス(high)

◇スプライト配置データ
スプライトをどのように配置してグラフィックを構成するかを決定する。

byte0 -> 1個目のスプライトの(相対)Y座標
byte1 -> 1個目のスプライトの(相対)X座標

byte2 -> 2個目のスプライトの(相対)Y座標
byte3 -> 2個目のスプライトの(相対)X座標
…