これは、SNES にのみ適用可能なメモリマップである。
"LoROM", "HiROM" 等の異なる種類のカートリッジが
アドレスバス A に配置される。
カートリッジは、/CART 信号がアクティブな時に反応する。
どちらのバスのアドレスにも反応できるが、
片方はマップされない。
同様に、拡張ポートにデバイスが接続された時、
アドレスバス B の何もマップされていないレジスタに反応するだろう。
WRAM は、/WRAM 信号がアクティブな時はアドレスバス A に、
レジスタ 0x2180 〜 0x2183 を通してアドレスバス B に配置される。
APU は、アドレスバス B の 0x40 〜 0x7F に配置される。
PPU1 と PPU2 は、アドレスバス B の 0x2100 〜 0x213F に配置される。
表の、"スピード" 列はその領域のメモリのアクセス速度を表す。
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 の外にある可能性があり、
CPU はデータバスを無視する。
データバスが全てのメモリ領域を無視するかということと、
これらのアドレスが実際にレジスタなのかは不明。
同様に、CPU の書き込みがデータバスに現れるのかどうかも不明。
現在のところ、アドレスと書き込みはバスに現れるだろうと
考えられている。読み込みは現れたり現れなかったりする。
実際にマップされているレジスタのビットのみがデータバスで無視される。
(例えば、データバスは 0x4211 のビット 7 だけを無視する)
注 2 : CPU レジスタ 0x420D のビット 0 がセットされている時、
スピードは Fast になり、セットされていない場合は Slow になる。
Mode 20: LoROM メモリモデル (32k バンク) - 最大 24Mbit †
バンク | アドレス | 内容 | ミラーバンク |
0x00-0x2F | 0x0000-0x1FFF | 下位RAM | 0x7E |
0x2000-0x2FFF | I/Oポート (PPU1, APU) | 0x00-0x3F |
0x3000-0x3FFF | I/Oポート (SFX, DSP, etc) | 0x00-0x3F |
0x4000-0x41FF | I/Oポート (PAD) | 0x00-0x3F |
0x4200-0x5FFF | I/Oポート (PPU2, DMA, etc) | 0x00-0x3F |
0x6000-0x7FFF | 予約済み | 0x00-0x3F |
0x8000-0xFFFF | Mode 20 ROM | |
0x30-0x3F | 0x0000-0x1FFF | 下位RAM | 0x7E |
0x2000-0x2FFF | I/Oポート (PPU1, APU) | 0x00-0x3F |
0x3000-0x3FFF | I/Oポート (SFX, DSP, etc) | 0x00-0x3F |
0x4000-0x41FF | I/Oポート (PAD) | 0x00-0x3F |
0x4200-0x5FFF | I/Oポート (PPU2, DMA, etc) | 0x00-0x3F |
0x6000-0x7FFF | 予約済み | |
0x8000-0xFFFF | Mode 20 ROM | 0x80-0xBF |
0x40-0x5F | 0x0000-0x7FFF | 予約済み | |
0x8000-0xFFFF | Mode 20 ROM | 0xC0-0xEF |
0x60-0x6F | 0x0000-0x7FFF | 予約済み | |
0x70-0x77 | 0x0000-0x7FFF | Mode 20 SRAM (256Kバイト) | |
0x8000-0xFFFF | 予約済み | |
0x78-0x7D | 0x0000-0xFFFF | 予約済み | |
0x7E | 0x0000-0x1FFF | 下位RAM | 0x00-0x3F |
0x2000-0x7FFF | 上位RAM | |
0x8000-0xFFFF | 拡張RAM | |
0x7F | 0x0000-0xFFFF | 拡張RAM | |
0x80-0xDF | 0x0000-0xFFFF | バンク0x00-0x5Fのミラー | 0x00-0x5F |
0xE0-0xFF | 0x0000-0xFFFF | 予約済み | |
Mode 21: HiROM メモリモデル (64k バンク) - 最大 48Mbit †
バンク | アドレス | 内容 | ミラーバンク |
0x00-0x2F | 0x0000-0x1FFF | 下位RAM | 0x7E |
0x2000-0x2FFF | I/Oポート (PPU1, APU) | 0x00-0x3F |
0x3000-0x3FFF | I/Oポート (SFX, DSP, etc) | 0x00-0x3F |
0x4000-0x41FF | I/Oポート (PAD) | 0x00-0x3F |
0x4200-0x5FFF | I/Oポート (PPU2, DMA, etc) | 0x00-0x3F |
0x6000-0x7FFF | 予約済み | 0x00-0x3F |
0x8000-0xFFFF | Mode 21 ROM (0xC0-0xEFより) | 0xC0-0xEF |
0x30-0x3F | 0x0000-0x1FFF | 下位RAM | 0x7E |
0x2000-0x2FFF | I/Oポート (PPU1, APU) | 0x00-0x3F |
0x3000-0x3FFF | I/Oポート (SFX, DSP, etc) | 0x00-0x3F |
0x4000-0x41FF | I/Oポート (PAD) | 0x00-0x3F |
0x4200-0x5FFF | I/Oポート (PPU2, DMA, etc) | 0x00-0x3F |
0x6000-0x7FFF | Mode 21 SRAM (128Kバイト) | |
0x8000-0xFFFF | Mode 21 ROM (0xF0-0xFFより) | 0xF0-0xFF |
0x40-0x5F | 0x0000-0xFFFF | Mode 21 ROM | |
0x60-0x6F | 0x0000-0x7FFF | 予約済み | |
0x70-0x77 | 0x0000-0x7FFF | Mode 20 SRAM (256Kバイト) | |
0x8000-0xFFFF | 予約済み | |
0x78-0x7D | 0x0000-0xFFFF | 予約済み | |
0x7E | 0x0000-0x1FFF | 下位RAM | 0x00-0x3F |
0x2000-0x7FFF | 上位RAM | |
0x8000-0xFFFF | 拡張RAM | |
0x7F | 0x0000-0xFFFF | 拡張RAM | |
0x80-0xBF | 0x0000-0xFFFF | バンク0x00-0x3Fのミラー | 0x00-0x3F |
0xC0-0xFF | 0x0000-0xFFFF | Mode 21 ROM | |
SPC 700 †
アドレス | 内容 |
0x0000-0x00EF | RAM |
0x00F0-0x00FF | I/Oポート (DSP) |
0x0100-0x7FFF | RAM |
0x8000-0xFFBF | RAM? |
0xFFC0-0xFFFF | ROM(起動用) |