メモリマップ

※上記の広告は60日以上更新のないWIKIに表示されています。更新することで広告が下部へ移動します。

これは、SNES にのみ適用可能なメモリマップである。

"LoROM", "HiROM" 等の異なる種類のカートリッジが アドレスバス A に配置される。 カートリッジは、/CART 信号がアクティブな時に反応する。 どちらのバスのアドレスにも反応できるが、 片方はマップされない。 同様に、拡張ポートにデバイスが接続された時、 アドレスバス B の何もマップされていないレジスタに反応するだろう。

WRAM は、/WRAM 信号がアクティブな時はアドレスバス A に、 レジスタ 0x2180 ~ 0x2183 を通してアドレスバス B に配置される。

APU は、アドレスバス B の 0x40 ~ 0x7F に配置される。

PPU1 と PPU2 は、アドレスバス B の 0x21000x213F に配置される。

表の、"スピード" 列はその領域のメモリのアクセス速度を表す。 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(起動用)