追記:動作確認はMMC4(MAP#10)のみで、すべてのカセット(マッパー)で確認をしていなかったのですが MMC3(MAP#04)とCNROM(MAP#03) では切替が出来ませんでした。
今後も他のカセットへ取付、動作確認を行っていきます。
※動作確認済み 2017.02.23
MMC4(MAP#10) , MMC5(MAP#05) , MMC1(MAP#01:CHRROM)
※動作不可
TENGEN(MAP#64) , MMC3(MAP#04) , CNROM(MAP#03)
以前もリセットで切り替える方法をご紹介しました
今回は今までの情報と74HC393を使用して、各サイトの情報を元に作り直しました。
部品は…
74HC393 x 1
積層セラミックコンデンサ 1000pF(102) x 1
積層セラミックコンデンサ 0.1uF(104) x 1
スイッチング・ダイオード 1N4148 x 1
以上です
2本での切替なら Q0 のみを使用(メモリの最上位アドレスのピンPRG&CHRを接続)
AM29F040Bなら4Mbitで A18 を接続し 2M+2M の切替になりますので、書き込みたいゲーム容量の合計分のEPROMやFlashROMが必要となります。
PRG & CHR とも同じ箇所へ接続、SRAMも切り替えるなら同じ箇所へSRAMの最上位アドレスのピンを接続
※4本切替 Q1 , 8本切替 Q2 , 16本切替 Q3 までそれぞれ使用します。
※AM29F040Bなら Q0-A18 , Q1-A17 , Q2-A16 , Q3-A15 となります。
※切替本数が増えれば、必然的に1本当たりのROM容量も減っていきます。
追記:MMC5に取り付ける場合は、12ピンと13ピンをGNDではなくVCCにつないでください。
74HC393の1ピンの1N4148 にはファミコン基板のエッジコネクタ 32ピン CPU φ2 へ配線
リセットボタンをちょい長押しでゲーム切替、普通にリセットを押せば今のゲームのリセット動作となります。
用途としては元ゲームとハックロムの切替で1本のカセットにしてしまうとがいいかも。
EPROMでもFlashROMでも使えます。
kazzoで書き込む場合はちょいと準備が必要です。
kazzoにはリセットスイッチが付けられますので、リセットスイッチを付けましょう
続いて flashdevice.nut のファイルを編集します
[“AM29F040B_2“] = {
capacity = 4 * mega, pagesize = 1,
erase_wait = 8000, erase_require = false,
retry = false,
id_manufacurer = 0x01, id_device = 0xa4,
command_mask = MASK_A10
},
を追記します。
erase_require = false にすることでデバイスの消去を行いません。
通常はデバイスの全領域を消去してしまいますので、2つ目以降の書き込みには 消去を行わない erase_require = false, を追記した項目が必要になってきます。
まずは普通に AM29F040B で書き込みを行います(この時は全領域の消去と書き込みを行います)
書き込み終了後、kazzoのリセットボタンを長押しして書き込むバンクを切り替えます。
続いて 上記で追記した AM29F040B_2 で2つ目以降のゲームを書き込みます。3つ目以降も AM29F040B_2 で書き込みます。
これで完了です。
実機で切り替えできるか確認してみましょう。
実機での動作 【前回の切替回路(74LS74)を使用】
コメント
>よっしさん
>切り替えの対応について、マッパ0は可能性として方法はあるのでしょうか?
MAP#03(CNROM)では動作しないので、残念ながらこの回路ではMAP#00も動作しないと思います。
方法はあるとは思いますが私の方では対応の予定は無いので3Pスイッチ等で切り替える方法しか無いかと…
度々すみません。3Pスイッチでの切り替えとはどのように配線するのですか?又、スクリプトは、どのようにしたら良いか教えてください。
>よっしさん
カセットごとに違うので文章で説明するのは難しいのですが、とりあえず私のブログを見ていただければ…
リセット切替回路を使った事があるのであれば、切替の原理は理解できているということでいいでしょうか?
切替回路を使わずに、単純にスイッチを取り付けてで切り替えるということです。
こちらは例です
https://bakutendo.net/blog-entry-311.html
https://bakutendo.net/blog-entry-304.html
書き込みに関してはスクリプトは特に関係ありません。
考えてみたのですが、理解不足でどうしたらよいかわかりません。あきらめます・・・
有難うございました。
>よっしさん
詳細は書きませんが、とりあえずTwitterに配線図をあげておきました。
https://twitter.com/bakuten_do/status/860825651535790080
MAP#00またはMAP#03のカセットでPRG:32k+CHR:8Kのゲームを4MbitのFlashROMに16本書き込んで切替をしたい場合の回路図です。
kazzoで書き込む場合はスイッチで切り替えて書き込みを16回繰り返します。
DIPSWと抵抗(10kΩ)を使用した簡単な切替回路です。
お手数をおかけしております。明日、早速、部品の調達に走ります!