メモリマップ
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 |

