別表2 スタイル設定フラグ
OAM
OAM (Object Attribute Memory)は画面に描画されるすべてのスプライトの情報を管理する領域で512バイトの下位テーブルおよび32バイトの上位テーブルから構成されます。
どちらも128エントリを保持することができ、これよりスプライトは最大128個表示することができます。

変数$12に設定されているデータは、1エントリ4バイトで構成されるOAM下位テーブルのデータのうち、後半2バイトとなります。ただし実際には直接変数$12にはアクセスせず、コマンド$8500を通じて適切に操作を行う必要があります。

OAM下位テーブルのデータは次のように構造化されています。
アドレス 内容
0
X座標下位8ビット
1
Y座標
2
タイルアドレス
3
垂直・水平反転指定および優先度設定とパレット・ネームテーブル選択

コマンド$8500が操作するデータはこのうち垂直水平反転指定および優先度設定を行う4ビットの領域です。それ以外のすべてのデータはスプライトの描画ロジックにって適切に自動割り当てされるため、利用者はその挙動について意識する必要はありません。下位テーブル第3バイトのデータは次のように構造化されます。
ビット 内容
7
垂直反転フラグ
true の場合はそのスプライトの上下は反転される。
6
水平反転フラグ
true の場合はそのスプライトの左右は反転される。
4-5
スプライト表示優先度
変数$02 (深度)は同じ優先度を持ったスプライトに対して作用する。OAMの表示優先度は直接的にBGレイヤおよびスプライトレイヤのレンダリング順序を規定する。
通常この項目には0b10 (2)を指定するが、プレイヤーキャラと同じ深度で描画する場合には 0b11 (3)を指定する。
1-3
パレット選択
CGRAMのスプライト用パレットのインデクスを指定する。実際に使用されるのはこの値をpppとした場合、CGRAM $80 + ppp * 0x10からの16色である。
この設定はスプライトのレンダリング時に自動割り当てされる。
0
ネームテーブル選択
VRAMに2つ存在するキャラクタテーブルのうち、どちらのテーブルを使用するかを規定する。
この設定はスプライトのレンダリング時に自動割り当てされる。
BGおよびスプライト表示優先度
この設定はPPU I/Oポート $2105の画面モード選択によって変化する。通常、各ステージ内ではモード1が使用されている。
画面モード BGレイヤ色数 表示順(前面→背面)
0
各BGとも4色
3AB2ab1CD0cd
1
BG1,2は16色、BG3は4色。BG4は利用不可。
3AB2ab1C0c
C3AB2ab10c
2
BG1,2とも16色。BG3,4は利用不可
3A2B1a0b
3
BG1は256色、BG2は16色。BG3,4は利用不可。
3A2B1a0b
4
BG1は256色、BG2は4色。BG3,4は利用不可。
3A2B1a0b
5
BG1は16色、BG2は4色。BG3,4は利用不可。
3A2B1a0b
6
BG1は16色、BG2,3,4は利用不可。
3A21a0
7
BG1は256色、BG2,3,4は利用不可。
拡大縮小回転機能を利用可能。
321a0
7拡張BG
BG1は256色、BG2は128色。BG3,4は利用不可。
拡大縮小回転機能を利用可能。BG1および2のキャラクタデータおよびタイルマップは共有される。
32B1a0b

補注
1. ABCD abcd はそれぞれBG1~4に順に対応する。大文字は優先度指定がなされたタイル、小文字は優先度指定のなされていないタイルを表す。
2. 0123はスプライトレイヤーを表し、数字はその優先度に対応する。
3. モード1の2つ目の表示順序はモード1BG3優先フラグが true の場合の表示順である。この場合、優先度のあるBG3が最前面に描画される。具体的にはデッキ面や沼地など、前景が存在するマップはこの設定が使われている。
4. BGレイヤの優先度はマップチップ構成データまたは背景・前景用タイルマップで直接指定する。
5. 各レイヤの色数は8x8タイル1枚に使用可能な色数であり、各レイヤともパレットは8本利用可能。なお256色タイルを使用するレイヤーのみパレットの概念はない。
CGRAMに保持できる色数は256色であるから最大同時発色数はどのモードにおいてもスプライトを含め256である。