これは、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-$1FFFSlowアドレスバス A + /WRAM (ミラー : $7E:0000-$1FFF)
$2000-$20FFFastアドレスバス A
$2100-$21FFFastアドレスバス B
$2200-$3FFFFastアドレスバス A
$4000-$41FFXSlow内部CPUレジスタ (注 1 参照)
$4200-$43FFFast内部CPUレジスタ (注 1 参照)
$4400-$5FFFFastアドレスバス A
$6000-$7FFFSlowアドレスバス A
$8000-$FFFFSlowアドレスバス A + /CART
$40-$7D$0000-$FFFFSlowアドレスバス A + /CART
$7E-$7F$0000-$FFFFSlowアドレスバス A + /WRAM
$80-$BF$0000-$1FFFSlowアドレスバス A + /WRAM (ミラー : $7E:0000-$1FFF)
$2000-$20FFFastアドレスバス A
$2100-$21FFFastアドレスバス B
$2200-$3FFFFastアドレスバス A
$4000-$41FFXSlow内部CPUレジスタ (注 1 参照)
$4200-$43FFFast内部CPUレジスタ (注 1 参照)
$4400-$5FFFFastアドレスバス A
$6000-$7FFFSlowアドレスバス A
$8000-$FFFF注 2アドレスバス A + /CART
$C0-$FF$0000-$FFFF注 2アドレスバス A + /CART

注 1 : 内部 CPU レジスタ用のアドレスは、 アドレスバス A の外にある可能性があり、 CPU はデータバスを無視する。 データバスが全てのメモリ領域を無視するかということと、 これらのアドレスが実際にレジスタなのかは不明。 同様に、CPU の書き込みがデータバスに現れるのかどうかも不明。 現在のところ、アドレスと書き込みはバスに現れるだろうと 考えられている。読み込みは現れたり現れなかったりする。 実際にマップされているレジスタのビットのみがデータバスで無視される。 (例えば、データバスは $4211 のビット 7 だけを無視する)

注 2 : CPU レジスタ $420d のビット 0 がセットされている時、 スピードは Fast になり、セットされていない場合は Slow になる。

Mode 20: LoROM メモリモデル (32k バンク)

* この表は上のものと内容は同じだが、書かれていたドキュメントが違う。

バンクアドレス内容ミラーバンク
0x00-0x2F0x0000-0x1FFF下位RAM0x7E
0x2000-0x2FFFI/Oポート (PPU1, APU)0x00-0x3f
0x3000-0x3FFFI/Oポート (SFX, DSP, etc)0x00-0x3f
0x4000-0x41FFI/Oポート (PAD)0x00-0x3f
0x4200-0x5FFFI/Oポート (PPU2, DMA, etc)0x00-0x3f
0x6000-0x7FFF予約済み0x00-0x3f
0x8000-0xFFFFMode 20 ROM
0x30-0x3F0x0000-0x1FFF下位RAM0x7E
0x2000-0x2FFFI/Oポート (PPU1, APU)0x00-0x3f
0x3000-0x3FFFI/Oポート (SFX, DSP, etc)0x00-0x3f
0x4000-0x41FFI/Oポート (PAD)0x00-0x3f
0x4200-0x5FFFI/Oポート (PPU2, DMA, etc)0x00-0x3f
0x6000-0x7FFF予約済み
0x8000-0xFFFFMode 20 ROM0x80-0xbf
0x40-0x6F0x0000-0x7FFF予約済み
0x8000-0xFFFFMode 20 ROM0xC0-0xEF
0x70-0x770x0000-0xFFFFMode 20 SRAM 256KBytes
0x78-0x7D0x0000-0xFFFF予約済み
0x7E0x0000-0x1FFF下位RAM0x00-0x3F
0x2000-0x7FFF上位RAM
0x8000-0xFFFFRAM全体
0x7F0x0000-0xFFFFRAM全体
0x80-0xEF0x0000-0xFFFFバンク0x00-0x6Fのミラー0x00-0x6F
0xF0-0xFF0x0000-0x7FFF予約済み
0x8000-0xFFFFMode 20 ROM

SPC 700

アドレス内容
0x0000-0x00EFRAM
0x00F0-0x00FFI/Oポート (DSP)
0x0100-0x7FFFRAM
0x8000-0xFFBFRAM?
0xFFC0-0xFFFFROM(起動用)

トップ   一覧 単語検索 最終更新   ヘルプ   最終更新のRSS