メモリマップ

CPUアドレス空間

6502のアドレスバスは16ビットとなっていて、そこに32KByteのROM、2KByteのWRAM、I/Oポートがマップされています。

アドレス 内容 ミラーアドレス
$0000-$07FF WRAM
$0800-$1FFF 未使用 $0000-$07FF
$2000-$2007 I/Oポート (PPU)
$2008-$3FFF 未使用 $2000-$2007
$4000-$401F I/Oポート (APU, etc)
$4020-$5FFF 拡張RAM(特殊なマッパー使用時)
$6000-$7FFF バッテリーバックアップRAM
$8000-$BFFF プログラムROM LOW
$C000-$FFFF プログラムROM HIGH

PPUアドレス空間

PPUは6502からはマップされておらず、データの送受信はI/Oポートを通じて行います。また、PPUのアドレスバスは14ビットとなっています。

アドレス 内容 ミラーアドレス
$0000-$0FFF パターンテーブル LOW
$1000-$1FFF パターンテーブル HIGH
$2000-$23BF 画面1 ネームテーブル
$23C0-$23FF 画面1 属性テーブル
$2400-$27BF 画面2 ネームテーブル
$27C0-$27FF 画面2 属性テーブル
$2800-$2BBF 画面3 ネームテーブル $2000-$23BF
$2BC0-$2BFF 画面3 属性テーブル $23C0-$23FF
$2C00-$2FBF 画面4 ネームテーブル $2400-$27BF
$2FC0-$2FFF 画面4 属性テーブル $27C0-$2FFF
$3000-$3EFF 未使用 $2000-$2EFF
$3F00-$3F0F BGパレットテーブル
$3F10-$3F1F スプライトパレットテーブル
$3F20-$3FFF 未使用 $3F00-$3F1F
$4000-$FFFF 未使用 $0000-$3FFF