敵追加パレット設定

16色を超える色を敵グラフィックに使いたい場合の設定手順です。


●追加パレット基本ルール
1つの画像に最大で、3つのパレットを持たせることができる。(最大で背景色+15*3色使用できる)
画像を16×16ドットのタイルに分割し、それぞれに対して3つのパレットのうちどれを使用するか指定できる。
16×16のタイル分割は画像に対してではなく、敵サイズで指定される画像表示領域に対して行われる。
このため、表示位置の補正幅を変更すると、パレットの適用範囲が変化することに注意。


●敵グラフィック詳細設定
敵グラフィック詳細の4バイト目(登場パターン)に+0x40で追加パレット有効
7バイト目以降に2バイトの追加設定
1バイト目:配置テーブルNo
2バイト目:追加パレットNo

※補足
 7バイト目以降には追加パーツ、透過ブロックの設定が入る場合があるが、追加パレットの設定はそれよりも後に入れる。
 追加パーツは、画像の一部に別のパーツをかぶせて表示する設定のこと。
 5バイト目の値×3バイトの追加設定が7バイト目以降に追加される。
 透過ブロックは、画像の一部を透明色で塗りつぶす設定のこと。
 6バイト目の値×2バイトの追加設定が追加パーツ設定の後に追加される。


●追加パレット配置テーブル設定
配置テーブルオフセット 26FF00〜(2byte)
 06まで使用済み 3Fまで追加可能
 オフセットに26E802を足したアドレスがテーブルデータの実アドレス。
テーブルデータ 26E802〜(可変長)
 26E887まで使用済み 26EDFFまで使用可能

配置テーブルのデータ構造
グラフィックを16×16のタイルに分割し、タイルごとにパレット0〜2を指定する。(0=デフォルト 1,2=追加)
2bit単位でパレットNoを指定し、1バイトで2×2タイル(32×32ドット)のパレットを以下の順で指定できる。
1 2
3 4
たとえば19(=2進数の00011001)なら以下のパレットが適用される。
0 1
2 1
画像表示領域は必ず縦横とも32の倍数になっているはずなので、32×32のタイルを順に横方向に1バイトづつ指定する。
たとえば64×64の表示領域に対して、55 00 4A 2A(01010101 00000000 01001010 00101010)と指定した場合、
16×16のタイルで見ると以下のパレットが適用される。
1 1 0 0
1 1 0 0
1 0 0 2
2 2 2 2

表示領域の最大サイズである160×128の場合、たとえば
00 00 00 00 AA 88 00 00 A5 54 00 00 55 55 5A 40 55 66 AA 00
と指定すると、適用されるパレットは以下のようになる。
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
2 2 2 0 0 0 0 0
2 2 2 0 0 0 0 0
2 2 1 1 0 0 0 0
1 1 1 0 0 0 0 0
1 1 1 1 1 1 1 0
1 1 1 1 2 2 0 0
1 1 1 2 2 2 0 0
1 1 1 2 2 2 0 0


●追加パレット設定
追加パレット 01FC00〜(64byte)
 07まで使用済み 0Fまで追加可能
32バイトのパレットデータを単純に2つ並べる。
1つ目が配置テーブルの1に適用され、2つ目が2に適用される。
配置テーブルの0にはデフォルトの敵パレットが適用される。
最終更新:2012年06月18日 12:24