アクセスに手間取った理由

  • A15:L でのメモリアクセスハードウェアタイミングに確証が持てなかった
  • 実験対象としていた mmc1 が RAM を使用するレジスタがあることに気づいていなかった
    • nesdev や vitruaNES のソースにも書いてなかった
  • 実験対象その2としていた vrc7 も同様だった
  • RAM イメージはなくてもエミュレータでも遊べる
    • RAM 使用レジスタを無視して常にアクセス可能にすれば問題がない

アクセス方法が確立したマッパ

read/write ともに確認済み

mmc1 8KB

  • program ROM bank register bit4 を 0 にすること
  • charcter ROM bank register bit4 を 0 にすること, メモリが RAM であってもやる
  • この2つを満たすと $6000-$7fff 上に RAM がでてくる

mmc1 32KB

  • http://nesdevwiki.org/wiki/SXROM
  • final fantasyI.II では 16KB として使っている
  • 32KB をフル活用しているソフトはなさそう
  • その他光栄系で RAM バンク切り替えをしているようだ

mmc3

mmc4

  • 設定不要

vrc4

  • 設定不要?
  • 少なくともグラディウスIIはいけなかった
    • どうもグラディウスIIのみ専用レジスタを使っていた
    • RAM のサイズが 0x800 と小さい

vrc6

vrc7

  • 設定レジスタあり, 文書に書いてない

アクセス方法が判明しているマッパ

試していない

mmc5

  • 対象ソフトを持っていないので対応する気が起きない
  • http://nesdevwiki.org/wiki/MMC5
  • 光栄系はバンク切り替えが必須でソフトによって16KBか32KBか
  • ジャストブリードと役萬天国はもってないので不明

アクセス方法が不明のマッパ

試した

x1_0005

minelvaton saga

  • $7f00-$7fff が RAM 領域らしい
  • 書き込み前に lda #$A3; sta $7ef8 とある
  • 書き込み後に lda #$00; sta $7ef8 とある
  • ソフト個別? RAM の電池切れが原因??

namcot 106

king of kings

  • それ以前に ROM が安定して読めない
  • $6000-$7fff が RAM 領域らしい
    • 偶数アドレスは $ff で埋まることが多い
    • 奇数アドレスは $00 で埋まることが多い
  • このマッパはソフト個別なのは確定で、mindseeker は別方法のようだ
    • クリア寸前の mindseeker のデータには価値があるかもしれないそれ以外は価値がないよな...

family basic V3

  • 電池は入ってない, backup スイッチは ON にした
  • どのエリアが RAM か不明