2014 02123456789101112131415161718192021222324252627282930312014 04












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

追記:動作確認は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 ブログランキング参加してます

FDSloadersaver(仮)作成 

ディスクシステムのディスクを吸い出す方法はFDSLOADRとかが有名だと思いますが、特殊フォーマットが吸い出せなかったり…最近ではTapeDumpのディスク版で書き込みが出来るようになったり…
ですが、ほぼ完全に吸い出しも書き込みも出来るのは現状パソファミぐらいしかありませんでした。

そんなところに、パソコンから手軽に吸い出し書き込みが出来て特殊フォーマットにも対応した「FDSloadersaver(仮)」をkitahei88さんが公開されました → レトロゲーム漫遊記  episode2

詳しい使い方はkitahei88さんのサイトをご覧ください。

まずはすきなように部品配置を決めて…VccとGNDラインを基板上に配線
fdsloadersaver_02.jpg    fdsloadersaver_08.jpg   

各信号線だけはUEW線で配線
fdsloadersaver_03.jpg    fdsloadersaver_19.jpg

RAMアダプタのケーブルはコネクタを切って直付けでも良かったんだけど、コネクタを付けて脱着可能に。
ピッチ変換基板はaitendoで購入 → aitendo@shopping
コネクタは2.0mmピッチの12ピンで共立エレショップで購入 → 共立エレショップ
不要な部分は切断して取付
fdsloadersaver_21.jpg    fdsloadersaver_22.jpg    fdsloadersaver_20.jpg

LCDはバックライト付きが見やすくていいと思います。
秋月電子で「LCDキャラクタディスプレイモジュール 16×2行」のタイプで5V品を選びましょう
バックライト付き白抜きが見やすいかな → 秋月電子通商
FDSloadersaver(仮)の説明にも書かれてますが、このタイプのLCDを使用する場合は電源のピンアサインが違うので、配線するときは注意してください。

完成したら説明書通りにAE-FT232HLの設定を行います。パソコンとAE-FT232HLをUSBでつないで設定。
設定が終わったら、最後にAVRの書き込み。AVRライタはkazzo制作時にebayで購入したもの。
fdsloadersaver_12.jpg    fdsloadersaver_23.jpg
avrdudeを使うんだったらコマンドプロンプトでfuse変更して…
avrdude -p atmega164p -B 4 -P com1 -c usbasp -U lfuse:w:0xf7:m -U hfuse:w:0xd9:m -U efuse:w:0xff:m
FDSloadersaver.hexを書き込み
avrdude -p atmega164p -B 4 -P com1 -c usbasp -U flash:w:FDSloadersaver.hex

すべて終わったら動作チェックして完成!
fdsloadersaver_15.jpg    fdsloadersaver_14.jpg    fdsloadersaver_13.jpg

fdsloadersaver_18.jpg
ACR WEB ブログランキング参加してます