これは、SNES にのみ適用可能なメモリマップである。
"LoROM", "HiROM" 等の異なる種類のカートリッジが アドレスバス A に配置される。 カートリッジは、/CART 信号がアクティブな時に反応する。 どちらのバスのアドレスにも反応できるが、 片方はマップされない。 同様に、拡張ポートにデバイスが接続された時、 アドレスバス B の何もマップされていないレジスタに反応するだろう。
WRAM は、/WRAM 信号がアクティブな時はアドレスバス A に、 レジスタ $2180 〜 $2183 を通してアドレスバス B に配置される。
APU は、アドレスバス B の $40 〜 $7F に配置される。
PPU1 と PPU2 は、アドレスバス B の $2100 〜 $213F に配置される。
表の、"スピード" 列はその領域のメモリのアクセス速度を表す。 SNES のマスタークロックは約 21MHz である (おそらく、1.89e9/88 Hz に近い)。 CPU の内部動作サイクルは常に 6 マスターサイクルで、 Fast メモリアクセスサイクルは 6 マスターサイクル、 Slow メモリアクセスサイクルは 8 マスターサイクル、 XSlow メモリアクセスサイクルは 12 マスターサイクルかかる。
バンク | アドレス | スピード | マッピング |
$00-$3F | $0000-$1FFF | Slow | アドレスバス A + /WRAM (ミラー : $7E:0000-$1FFF) |
$2000-$20FF | Fast | アドレスバス A | |
$2100-$21FF | Fast | アドレスバス B | |
$2200-$3FFF | Fast | アドレスバス A | |
$4000-$41FF | XSlow | 内部CPUレジスタ (注 1 参照) | |
$4200-$43FF | Fast | 内部CPUレジスタ (注 1 参照) | |
$4400-$5FFF | Fast | アドレスバス A | |
$6000-$7FFF | Slow | アドレスバス A | |
$8000-$FFFF | Slow | アドレスバス A + /CART | |
$40-$7D | $0000-$FFFF | Slow | アドレスバス A + /CART |
$7E-$7F | $0000-$FFFF | Slow | アドレスバス A + /WRAM |
$80-$BF | $0000-$1FFF | Slow | アドレスバス A + /WRAM (ミラー : $7E:0000-$1FFF) |
$2000-$20FF | Fast | アドレスバス A | |
$2100-$21FF | Fast | アドレスバス B | |
$2200-$3FFF | Fast | アドレスバス A | |
$4000-$41FF | XSlow | 内部CPUレジスタ (注 1 参照) | |
$4200-$43FF | Fast | 内部CPUレジスタ (注 1 参照) | |
$4400-$5FFF | Fast | アドレスバス A | |
$6000-$7FFF | Slow | アドレスバス A | |
$8000-$FFFF | 注 2 | アドレスバス A + /CART | |
$C0-$FF | $0000-$FFFF | 注 2 | アドレスバス A + /CART |
注 1 : 内部 CPU レジスタはアドレスバス A の外にあり、 データバスを無視する。
注 2 : CPU レジスタ $420d のビット 0 がセットされている時、 スピードは Fast になり、セットされていない場合は Slow になる。
* この表は上のものと内容は同じだが、書かれていたドキュメントが違う。
バンク | アドレス | 内容 | ミラーバンク |
0x00-0x2F | 0x0000-0x1FFF | RAM | 0x7E |
0x00-0x2F | 0x2000-0x2FFF | I/Oポート (PPU1, APU) | |
0x00-0x2F | 0x3000-0x3FFF | I/Oポート (SFX, DST, etc) | |
0x00-0x2F | 0x4000-0x41FF | I/Oポート (PAD) | |
0x00-0x2F | 0x4200-0x5FFF | I/Oポート (PPU2, DMA, etc) | |
0x00-0x2F | 0x6000-0x7FFF | 未使用 | |
0x00-0x2F | 0x8000-0xFFFF | ROM | |
0x30-0x3F | 0x0000-0x1FFF | RAM | |
0x30-0x3F | 0x2000-0x2FFF | I/Oポート (PPU1, APU) | |
0x30-0x3F | 0x3000-0x3FFF | I/Oポート (SFX, DSP, etc) | |
0x30-0x3F | 0x4000-0x41FF | I/Oポート (PAD) | |
0x30-0x3F | 0x4200-0x5FFF | I/Oポート (PPU2, DMA, etc) | |
0x30-0x3F | 0x6000-0x7FFF | バッテリーバックアップRAM | |
0x30-0x3F | 0x8000-0xFFFF | ROM | |
0x40-0x6F | 0x0000-0xFFFF | ROM | |
0x70-0x77 | 0x0000-0xFFFF | バッテリーバックアップRAM | |
0x78-0x7D | 0x0000-0xFFFF | 未使用 | |
0x7E | 0x0000-0x1FFF | RAM | |
0x7E | 0x2000-0xFFFF | RAM | |
0x7F | 0x0000-0xFFFF | RAM | |
0x80-0xEF | 0x0000-0xFFFF | バンク0x00-0x6Fのミラー | |
0xF0-0xFF | 0x0000-0xFFFF | ROM |
アドレス | 内容 |
0x0000-0x00EF | RAM |
0x00F0-0x00FF | I/Oポート (DSP) |
0x0100-0x7FFF | RAM |
0x8000-0xFFBF | RAM? |
0xFFC0-0xFFFF | ROM(起動用) |