BAKUTEN工房 では『家電のケンちゃん』で 委託販売 を行っています

ファミコン フラッシュカートリッジをリセットで切替

kazzo/unagi
スポンサーリンク
スポンサーリンク

追記:動作確認は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)

以前もリセットで切り替える方法をご紹介しました

MMC5フラッシュカートリッジ 2in1
ぽんRevさんの記事 リセットボタンでゲーム切り替え方法 を見てファミコンでも可能かどうか試してみました。 種類は少ないですが、リセットボタンで切り替えるパチモノカセットがいくつかあって、どんな仕組みなのか前から気になってました。 ...

 

今回は今までの情報と74HC393を使用して、各サイトの情報を元に作り直しました。

kirikae_05.jpg

部品は…

74HC393 x 1

積層セラミックコンデンサ 1000pF(102) x 1

積層セラミックコンデンサ 0.1uF(104) x 1

スイッチング・ダイオード 1N4148 x 1

以上です

74HC393.jpg

kirikae_03.jpg

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_reset.jpg

kazzoにはリセットスイッチが付けられますので、リセットスイッチを付けましょう

続いて flashdevice.nut のファイルを編集します

例として AM29F040B の場合では…

 [“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)を使用】

コメント



  1. >よっしさん

    >切り替えの対応について、マッパ0は可能性として方法はあるのでしょうか?
    MAP#03(CNROM)では動作しないので、残念ながらこの回路ではMAP#00も動作しないと思います。
    方法はあるとは思いますが私の方では対応の予定は無いので3Pスイッチ等で切り替える方法しか無いかと…



  2. 度々すみません。3Pスイッチでの切り替えとはどのように配線するのですか?又、スクリプトは、どのようにしたら良いか教えてください。



  3. >よっしさん

    カセットごとに違うので文章で説明するのは難しいのですが、とりあえず私のブログを見ていただければ…
    リセット切替回路を使った事があるのであれば、切替の原理は理解できているということでいいでしょうか?
    切替回路を使わずに、単純にスイッチを取り付けてで切り替えるということです。
    こちらは例です
    https://bakutendo.net/blog-entry-311.html
    https://bakutendo.net/blog-entry-304.html
    書き込みに関してはスクリプトは特に関係ありません。



  4. 考えてみたのですが、理解不足でどうしたらよいかわかりません。あきらめます・・・
    有難うございました。



  5. >よっしさん

    詳細は書きませんが、とりあえずTwitterに配線図をあげておきました。
    https://twitter.com/bakuten_do/status/860825651535790080

    MAP#00またはMAP#03のカセットでPRG:32k+CHR:8Kのゲームを4MbitのFlashROMに16本書き込んで切替をしたい場合の回路図です。
    kazzoで書き込む場合はスイッチで切り替えて書き込みを16回繰り返します。
    DIPSWと抵抗(10kΩ)を使用した簡単な切替回路です。



  6. お手数をおかけしております。明日、早速、部品の調達に走ります!

タイトルとURLをコピーしました