IO ポート (メイン) > 0x2102

0x2102 - OAMADDL (OAM下位アドレス)

アクセスフラグ : 書下強V?-

D7 D6 D5 D4 D3 D2 D1 D0
a a a a a a a a

0x2103 - OAMADDH (OAM上位アドレスとスプライト優先順位)

アクセスフラグ : 書上強V?-

D7 D6 D5 D4 D3 D2 D1 D0
p - - - - - - b
  • p : スプライト優先度設定フラグ このフラグがセットされている時、0 以外のスプライトは優先度を得る。
  • b aaaaaaaa : OAM アドレス この値は OAM に対して、2 つの考え方で考えることができる。 OAM が 544 バイトの単一のテーブルで構成されると考えた場合、 baaaaaaaa はこのテーブルのワードアドレスを指す。 OAM が 512 バイトと 32 バイトのテーブルで構成されると考えた場合、 b の値はテーブルのセレクタとして、aaaaaaaa は選択されたテーブルの ワードアドレスを指す。

スキャンラインが描画中の場合、 内部 OAM アドレスは無効化される。 この無効化は決定的に起こる。 どのように決定されるかは不明。 ブランク強制期間でない場合、これら 0x2102, 0x2103 のレジスタに最後に書かれた値が V-Blank 開始時に内部 OAM アドレスにリロードされる。 これは "OAM リセット" と呼ばれている。 OAM リセットは、0x2100 に値を書き込んだ時にも起こる。

0x2102 か 0x2103 に値を書き込んだ場合、 全ての内部 OAM アドレスが、最後にこのレジスタに書き込まれた値にリセットされる。 例えば、 このレジスタから 0x104 を書き込んだ後 4 バイトの値を書き込み、 0x2103 に 1 をセットすると、OAM アドレスは 6 ワード目ではなく、 4 ワード目を指す。

タグ:

+ タグ編集
  • タグ:

このサイトはreCAPTCHAによって保護されており、Googleの プライバシーポリシー利用規約 が適用されます。

最終更新:2017年02月20日 19:07