2017 051234567891011121314151617181920212223242526272829302017 07












ファミコンゲームをリセットで切替 

追記:動作確認は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
今回は今までの情報と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 にすることでデバイスの消去を行いません

まずは普通に AM29F040B で書き込みを行います
書き込み終了後、kazzoのリセットボタンを長押しして切り替えます
続いて AM29F040B_02 で2つ目のゲームを書き込みます(3つ目以降も AM29F040B_02 で書き込みます)
これで完了です。実機で切り替えできるか確認してみましょう。

実機での動作 【前回の切替回路(74LS74)を使用】
関連記事
ACR WEB ブログランキング参加してます

Re: マッパ0は可能でしょうか?

>よっしさん

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

3Pスイッチとは?

度々すみません。3Pスイッチでの切り替えとはどのように配線するのですか?又、スクリプトは、どのようにしたら良いか教えてください。
[ 2017/05/05 22:23 ] [ 編集 ]

>よっしさん

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

理解できていませんでした

考えてみたのですが、理解不足でどうしたらよいかわかりません。あきらめます・・・
有難うございました。
[ 2017/05/06 19:51 ] [ 編集 ]

>よっしさん

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

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

助かりました

お手数をおかけしております。明日、早速、部品の調達に走ります!
[ 2017/05/06 22:04 ] [ 編集 ]

コメントの投稿














管理者にだけ表示を許可する

トラックバック

この記事のトラックバックURL
http://bakutendo.blog87.fc2.com/tb.php/275-fcf3144b