2017 04123456789101112131415161718192021222324252627282930312017 06












ファミコンカセット SRAMをFRAM 【FM1608】 に交換 

ファミコンカセットはバッテリーバックアップでデータを保存できるのですが、それらのカセットにはSRAMが使われているため、データ保持のために電池が内蔵されています。
この電池が切れてしまうとデータが保持できず消えてしまうのですが、現在でもデータが消えずに残っているのも数多くあります。で、電池を新品に交換したり電池ソケットを付けて交換しやすくしたりとやっていたわけですが…

MMC1_FRAM01.jpg   MMC1_FRAM02.jpg
FRAMというSRAMと同様に使用できて、データ保持に必要な電源が不要というメモリがあることを知りファミコンカセットに代替えで使用できないかなと考えていました。(写真はFF2:MMC1のCHR-RAMカセットに取り付け)
ネットで検索していると、ファミコンに取り付けた例はなく、ポン付けは難しいとか、FRAMの/CSを弄らないといけないとか、色々書かれていたのでとりあえず実験してみるかと思い、某氏に相談したところ色々と教えて頂きなんとかうまく動作させることが出来ました。

SRAMとFRAMでは動作?が若干違う様で、FRAMの /CE へSRAMの /CE をそのまま入力してもうまく動作しませんでした。そこでFRAMがうまく動作するように 74HC02 を使用して FRAMへ入力する /CE を弄ります。
※この辺はかなり自信が無いので間違いがあればご指摘ください。訂正させていただきます。
FRAM_FM1608.png 

■使用する部品
FRAM FM1608(64kbit) x 1個
74HC02 x 1個

FM1608のDIPは国内では入手は難しいかもしれません、私はebayで購入(256kbitであればFM1808)
SOPタイプもあります

BB_SRAM.jpg    FRAM_FM1608.jpg    74HC02_02.jpg     

※改造前に大事なデータがある場合は、パソファミやkazzo等でSRAM内のデータをバックアップします
バックアップ用のボタン電池(CR2032) と SRAMを取り外します
FM1608の20ピン(/CE)だけ足上げ、FM1608(FRAM)の20ピン以外はそのまま基板へはんだ付けします
あとは上記の配線図通り配線すればOK
74HC02を写真のように足を曲げて加工(74HC02の配線もここで終わらせておく)
基板側の26ピンはFRAMでは使用されていないのでそのままはんだ付けでOK
基板側の20ピンを 74HC02 の 3ピン、基板側の26ピンを 74HC02 の 2ピンへ接続
74HC02 の 7ピン(GND) は 基板側の14ピン(GND)、74HC02 の 14ピン(Vcc) は基板側の28ピン(Vcc)
74HC02 の 13ピン を FM1608(FRAM)の20ピン(/CE)へ接続

MMC3_FRAM01.jpg
※写真はMMC3フラッシュカートリッジに取り付け
以上で完成。動作確認をしてゲームが正常に起動し、データが保持されていればOKです。
KazzoでもSRAMと同様に、バックアップデータの読み書きが出来ますのでチェックしてみてください。

通常のBBカセットをFRAMに交換するのは、コストも手間もかかるのであまりオススメしませんが、フラッシュカートリッジは全部FRAMに交換してしまってもいいかもしれません。
これで電池が不要になりましたが、データが消えることも考えられるので大事なデータは必ずバックアップをとっておきましょう!!

ロジアナとかを持っていないので、本当に正しく動作しているのか?たまたまうまく動作しているのかも?というところは残念ながらちゃんと確認ができてません…申し訳ない…
もしどなたかロジアナをお持ちの方がいれば、その辺の動作確認もして頂けたらと思いますヾ(^-^;)

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

UxROM【MAP#02】フラッシュカートリッジ作成 

前回ザックリと作り方を紹介してましたが、作成したフラッシュカートリッジが見当たらない為再作成。
これを機会に作成記事もまとめてみました。
配線方法や詳しい解説はこちら →
74xx161 ja
前回の作成方法記事はこちら →
UOROM FlashRomCartridge [Map#02]

使用するカセットはUOROMの方が加工がしやすいのでUOROMのカセットを使用しましょう
UxROM_008.jpg
UOROMのカセットは 桃太郎電鉄 または 星霊狩り です
他のカセットでも作成できますが、余計な配線が増えます

まずは上記サイトを確認しながら、追加する 74HC00 を加工する
加工した 74HC00 を VCC と GND をつないで空中配線で固定 
UxROM_012.jpg    UxROM_001.jpg    UxROM_003.jpg    UxROM_002.jpg

ミラーリングの設定は基板上のジャンパで切り替えます(スイッチを付けて切り替えできるようにしましょう)
CPUΦ2 はエッジコネクタの32ピンから 74HC00 の9ピンへ配線
UxROM_011.jpg    UxROM_004.jpg

基板の 74xx161 の2ピンを基板から切断する為カット
カットした 74xx161 の2ピンから追加した 74HC00 の8ピンへ接続します 
UxROM_009.jpg

FlashROM(今回はAM29F040B 4Mbit)も同様に加工。ピンアサインが違う部分の足上げ
今回は2Mbitしか利用しないので、1ピンのA18はGNDへ接続
A16 → A16(基板24ピン) A17 → A17(基板1ピン) それぞれ配線
PRG /OE は基板に接続せず 74HC00 の3ピンへ配線 
UxROM_005_02.jpg    UxROM_007.jpg   
↑※ご指摘のあった写真の表記違いを訂正
他の信号も間違いなく配線すれば完成!kazzoで書き込み確認、実機で動作確認しましょう。
カセットに内蔵する場合は、ミラーリングの設定を切り替えるスイッチを付けておきましょう
UxROM_006.jpg
ACR WEB ブログランキング参加してます

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

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

NES未発売「ハード・ドライビン」 

オロチさんのサイトで アタリの名作カーレース・ゲーム 「ハード・ドライビン」 未発売に終わったNESの移植版が発掘 他 でちょっと前に紹介されていたNES未発売の「ハード・ドライビン」

開発者がNESイメージを公開していて、実機でも動作可能と言うことで、早速NESフラッシュカートリッジを作成
作成方法は諸々の事情により書きません(^-^;;
NES_HD01.jpg    NES_HD02.jpg    NES_HD03.jpg
カセットはTENGENのNESカセットSHINOBIを使用(非公認カセットなので他とは形状が違う)
MAP#64のNESカセットなら大丈夫なはず → NesCartDB

NES_HD04.jpg    NES_HD05.jpg 
カセットには PPU/WR の端子が無く kazzo でCHR側が書き込みできないので、銅箔テープをつけて代用
EPROMで作成するなら必要ない端子なので気にしなくて良いです
AM29F040Bを取り付けて完成(PRG:2Mbit CHR:2Mbitまで対応)

MAP#64でkazzo用のスクリプトも作成 → tengen_800030.txt (拡張子を txt から af に変更)
このスクリプトで吸い出し&書き込み可能です


で、イメージをkazzoで書き込んで実機にて動作OK(でも難しすぎるよこれ…)
NES_HD06.jpg


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

ファミリーベーシック V2.1a 【VRC7β版】 

広告が出てきてしまったので更新しておきます。
牧村さんが、ファミリーベーシック V2.1a をベースにして VRC7β版をリリースされました。牧村製作所

■フリーエリア拡張 - 2kから8kへ V3以上の大容量
■PCG化 - キャラクターデータの書換が可能
■FM音源対応 - VRC7搭載の音源が制御可能
■リセットIC搭載 - 誤消去の原因となる物理スイッチが不要に


β版で今後も更新があると思いますので、書き換え可能なフラッシュカートリッジをオススメします。
kazzoで使用するVRC7のスクリプトも置いておきますのでご利用ください→vrc7.ag (拡張子のtxtをagへ変更)

VRC7フラッシュカートリッジ
vrc7-006.jpg 

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

「沙羅曼蛇 AC DELTA 0.5」リリース 

めっさつさんが、先日「沙羅曼蛇 AC DELTA 0.5」をリリースされました。

沙羅曼蛇はVRC3なのですが、今回はMMC5対応となっています。
MMC5でもCHR-RAMなので通常のMMC5フラッシュカートリッジでは、動かすことは出来ません
(書き込めますがキャラはバケバケです)

実機で遊ぶ場合は、CHR-RAM仕様のMMC5フラッシュカートリッジを作成するか、MDC5フラッシュカートリッジを使用しましょう。
MDC5フラッシュカートリッジノ作成方法は → ハードウェアの製作


mdc5_sara01.jpg


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