ファミリーコンピューター ROMカセット マッパー3、66、185
PRG 32KB CHR 32KB 4バンク 8KB
グラディウスやゲゲゲの鬼太郎で使用 PRG ROMは32KB、 CHR ROMが通常32KBで4バンクするROMカートリッジになります。 CHR ROM(CGデータ)は8KBまでなので マッパー3タイプのCHR ROMは最大4バンク(8KB×4)の構成になります。 マッパー3のバンク切り替えとプロテクト HC161はカウンタ機能を使用せずデータセットのみになり HC161のA〜Dのデータ入力がそのままQA〜QDに出力されます $8000〜$FFFFの範囲 d7:− d6:− d5:1(QC=1にする、0だとPA12=0に固定) d4:1(QD=1にする、0だとPA10=0に固定) d3:− d2:− d1:バンク#D1 d0:バンク#D0 CHR ROMのバンク切り替えは このPRG ROM$8000〜$FFFFに バンクキーデータを書き込む事によって切り替わるのですが 書き込んだバンクキーデータとPRG ROMデータの2つのデータバスが 競合する様になっています 1.バンクキーデータをPRG ROM領域にデータを書き込む (/ROMSEL=0、HC161の/LD=0、CK=0、データ=バンクキー) 2./ROMSEL=0なのでPRG ROMからもHC161へデータが出力される 3.次のプログラム(命令)でPRG ROMリードになるので R//W=1(HC161のCK=1)で CHR ROMのバンク(QA−QD)が出力されてしまう つまり正常にバンク切換えを行うには2つの条件があります 1.バンクキーデータは$30−$33にする d5と4を1にしないとPA12とPA10が0に固定され CHR ROMの一部分しか読めなくなります 2.書き込むPRG ROMアドレスに切り替えたいバンクキーデータにする データが競合するので同じデータにする必要があります 例えばPRG ROM 8000:30 FF...とします $8000に$30と書き込むとCHR ROMはバンク#0に切り替わります (バンクキーデータ$30、PRG ROM$30) $8001に$30と書き込むとCHR ROMはバンク#0に切り替わりません(バンクキーデータ$30、PRG ROM$FF) ただしPRG ROMのデータとバンクキーデータが同じといっても全てのデータバスを見ている訳では無いので データのd5=1、d4=1とd1、0が同じなら切り替わります この場合バンクキーデータが$F0でもバンク#0として切り替わります グラディウス 8ACE:30 32 31 33 ;バンクキーデータ(順番に並んでいません) バンク#00を選択するには$8ACEに$30を書き込めばCHR$0000〜$1FFFがバンク#00になります バンク#01を選択するには$8AD0に$31を書き込めばCHR$0000〜$1FFFがバンク#01になります バンク#02を選択するには$8ACFに$32を書き込めばCHR$0000〜$1FFFがバンク#02になります バンク#03を選択するには$8AD1に$33を書き込めばCHR$0000〜$1FFFがバンク#03になります
マッパー66CHR ROMとPRG ROMの両方を一度にバンク切換えできるタイプです 別々に切換えは出来ないのと CHR ROM 8KB、PRG ROM 32KBのまるごとの切換えになります その為バンクキーデータは4ビット分の組み合わせ計16バイトになります PRG ROMは32KB($8000〜$FFFF)ごとの切換えになるので ベクタはいつリセットが掛かっても大丈夫なようにする必要があります ドラゴンボール 神龍の謎 リセットはどのバンクでも$FF88へ飛ぶようになっており どのバンクでも同じルーチンでバンク切換え(初期設定)をします FFCC:00 01 02 03 ;PRG$00000〜$07FFF選択、CHR ROMバンク FFD0:10 11 12 13 ;PRG$08000〜$0FFFF選択、CHR ROMバンク FFD4:20 21 22 23 ;PRG$10000〜$17FFF選択、CHR ROMバンク FFD8:30 31 32 33 ;PRG$18000〜$1F000選択、CHR ROMバンク Zガンダム ホットスクランブル
マッパー185(HVC−CNROM−256K−01) 実際にはマッパー3のダイオードの有無または方向が違うだけです(d5−4) エミュレータではあまり細かくエミュレートされておらず気にする事は無いのですが 吸い出しする場合には、このダイオード部分が重要になります CHR ROMは256KBit、128KBit、64KBitのROMによって d0−1の意味合いが変わります 特に64KBitマスクロムのLH2367nnの27ピン、26ピンの動作は特殊なようです マッパー185では一応CHR ROMのオン/オフ用として別け ダビング機対策の為のプロテクトのエミュレートとして使用しているようです プロテクトのチェックはバンク切換え(正確にはCHR ROMオフ)にして CHR ROMのデータをチェックして変化(オフ出来ない)がなければ無限ループになるのが大半になりますd7:− d6:− d5:− d4:− d3:− d2:− d1:CHR ROMの27ピン d0:CHR ROMの26ピン バードウィークのプロテクト C020:F0 CHR ROMオフ C021:0F CHR ROMオン クォース(基板CN−04B) FF70:30 31 32 33 ;バンクキーデータ
d7:− d6:− d5:0 d4:1(QD=1にする、0だとPA10=0に固定) d3:− d2:− d1:CHR ROMの27ピン d0:CHR ROMの26ピン マイティ・ボンジャックのプロテクト 8071:00 CHR ROMオフ 8072:11 CHR ROMオン バナナ ROMの型番がLHでなくRPとなっている ROMの27ピンは/PGM、26ピンはA13 FF9F:10 11 ;/PGM=0(CHR ROMオフ) FFA1:12 13 ;/PGM=1(CHR ROMオン)
d7:− d6:− d5:1(QC=1にする、0だとPA12=0に固定) d4:0 d3:− d2:− d1:CHR ROMの27ピン d0:CHR ROMの26ピン スパイVSスパイのプロテクト 8090:13 CHR ROMオフ 8091:21 CHR ROMオン セクロスのプロテクト 80DF:21 CHR ROMオフ 80DE:20 CHR ROMオン オセロのプロテクト(基板CN−02?) 805C:20 CHR ROMオフ 805D:22 CHR ROMオン けいさんゲーム算数4年 805C:22 20 ;バンクキーデータ(チェック用) 805E:20 21 22 23 ;バンクキーデータ
d7:− d6:− d5:1(QC=1にする、0だとPA12=0に固定) d4:1(QD=1にする、0だとPA10=0に固定) d3:− d2:− d1:CHR ROMの27ピン d0:CHR ROMの26ピン B−WINGのプロテクト B69F:00 CHR ROMオフ B69E:33 CHR ROMオン
Home へ戻る