「メモリマップ」の編集履歴(バックアップ)一覧はこちら
「メモリマップ」(2017/02/20 (月) 16:52:14) の最新版変更点
追加された行は緑色になります。
削除された行は赤色になります。
これは、SNES にのみ適用可能なメモリマップである。
"LoROM", "HiROM" 等の異なる種類のカートリッジが
アドレスバス A に配置される。
カートリッジは、/CART 信号がアクティブな時に反応する。
どちらのバスのアドレスにも反応できるが、
片方はマップされない。
同様に、拡張ポートにデバイスが接続された時、
アドレスバス B の何もマップされていないレジスタに反応するだろう。
WRAM は、/WRAM 信号がアクティブな時はアドレスバス A に、
レジスタ 0x2180 ~ 0x2183 を通してアドレスバス B に配置される。
APU は、アドレスバス B の 0x40 ~ 0x7F に配置される。
PPU1 と PPU2 は、アドレスバス B の [[0x2100>IO ポート (メイン)/0x2100]] ~ [[0x213F>IO ポート (メイン)/0x213F]] に配置される。
表の、"スピード" 列はその領域のメモリのアクセス速度を表す。
SNES のマスタークロックは約 21MHz である
(おそらく、1.89e9/88 Hz に近い)。
CPU の内部動作サイクルは常に 6 マスターサイクルで、
Fast メモリアクセスサイクルは 6 マスターサイクル、
Slow メモリアクセスサイクルは 8 マスターサイクル、
XSlow メモリアクセスサイクルは 12 マスターサイクルかかる。
|バンク|アドレス|スピード|マッピング|h
|$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>IO ポート (メイン)/0x4200-0x421F#p4211]] のビット 7 だけを無視する)
注 2 : CPU レジスタ [[0x420D>IO ポート (メイン)/0x4200-0x421F#p420D]] のビット 0 がセットされている時、
スピードは Fast になり、セットされていない場合は Slow になる。
***Mode 20: LoROM メモリモデル (32k バンク) - 最大 24Mbit [#xcf6e19d]
|バンク|アドレス|内容|ミラーバンク|h
|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 [#ra16827f]
|バンク|アドレス|内容|ミラーバンク|h
|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 [#yafa1af3]
|アドレス|内容|h
|0x0000-0x00EF|RAM|
|0x00F0-0x00FF|I/Oポート (DSP)|
|0x0100-0x7FFF|RAM|
|0x8000-0xFFBF|RAM?|
|0xFFC0-0xFFFF|ROM(起動用)|