汎用ROMエミュレーター 

汎用として使えるROMエミュレーターです。
昔のほとんどのROMの信号はアドレスバス、データバス、チップセレクト、アウトプットイネーブルの四種類で占められています。
ですので、これらの信号を取り出す事ができれば、あらゆるターゲット(ゲーム機、パソコン、マイコン)のROMをエミュレートする事が可能です。
例としてメガドライブPCエンジンのROMをエミュレートしてみました。
パソコンからプリンタポートでROMイメージを送る事によって、実機で遊ぶ事が可能です。
また、Z80マイコンなどのソフト開発にも使えます。
電源は本ボード->ターゲット機の順か、同ターゲット機時に入れてください。
(ターゲット機の電源を入れたままでも書き換えられますが、書き換え中はROMが繋がってない状態なので、その間は暴走します)
またフラッシュROMなので、電源を切ってもROMデータは消えません。
カートリッジの抜き差しの必要もありません。

信号を取り出すグローブはターゲットによって好きなように変更して下さい。
   
  普通のEP-ROM(27256など)をエミュレートするためのグローブ  メガドライブのROMをエミュレートするためのグローブ


汎用8ビットROMエミュレーター
4MbitFLASHROM AT49BV040Bを2個使用し、最大8MbitまでのROMをエミュレートします。
パソコン(DOS/V)のセントロニクス仕様プリンタポートに接続してROMイメージファイルを送ります。
イメージファイルはバイナリーでヘッダなどの全くない単純なROMベタイメージです。
MS-DOSから
COPY /B XXX.BIN(イメージファイル名) LPT1:
で転送します。
転送中はLEDが点滅し、終わったらLEDが消灯してエミュレーションモードになります。

8ビットROMエミュレーター回路図
8ビットROMエミュレーター実体配線図
ATTINY2313用制御ソフト

例としてPCエンジンのROMをエミュレートしてみました。
COPY /B XXX.PCE(イメージファイル名) LPT1:
で転送すれば、そのゲームで遊ぶ事ができます。
しかし、PCEファイルは単純なベタイメージではないため、ベタイメージに変換する必要があります。
このソフトを実行して、PCEファイルの存在するフォルダを選択すると、そのフォルダにある全てのPCEファイルをBINファイル(バイナリファイル)に変換します。
メガドライブROM(.SMD)又はPCエンジンROM(.PCE)のヘッダを取り除きバイナリーファイル(.BIN)に変換するソフト


PCエンジンのHu-CARDは純粋にアドレスバス、データバス、コントロール信号だけのとてもシンプルな構造で、容易くエミュレート可能なので
ここではPCエンジンのROMをエミュレートしましたが、スーパーファミコンやゲームボーイではカートリッジにコピー防止用プロテクトチップというものが乗っていて、ROMを書き変えると動作しないようになっていたため、できませんでした。任天堂は何かと厳しいです。
また、ファミコンはプロテクトチップはないのですが、プログラム用とキャラクタ用の二つのROMをエミュレートする必要がある上、基盤の種類もたくさんあり、基盤が違うと動作しなかったりするので面倒です。

   
PCエンジンのROMはHu-CARDというカードになっているため、
ここから信号を取り出すのは不可能です。
 そのため、本体側から信号を外部に引っ張ってきます。


汎用16ビットROMエミュレーター
4MbitFLASHROM AT49BV040Bを4個使用し、最大16MbitまでのROMをエミュレートします。
パソコン(DOS/V)のセントロニクス仕様プリンタポートに接続してROMイメージファイルを送ります。
イメージファイルはバイナリーでヘッダなどの全くない単純なROMベタイメージです。
MS-DOSから
COPY /B XXX.BIN(イメージファイル名) LPT1:
で転送します。
転送中はLEDが点滅し、終わったらLEDが消灯してエミュレーションモードになります。

16ビットROMエミュレーター回路図
16ビットROMエミュレーター実体配線図
ATTINY2313用制御ソフト

例としてメガドライブのROMをエミュレートしてみました。
COPY /B XXX.SMD(イメージファイル名) LPT1:
で転送すれば、そのゲームで遊ぶ事ができます。
しかし、SMDファイルは単純なベタイメージではないため、ベタイメージに変換する必要があります。
このソフトを実行して、SMDファイルの存在するフォルダを選択すると、そのフォルダにある全てのSMDファイルをBINファイル(バイナリファイル)に変換します。
メガドライブROM(.SMD)又はPCエンジンROM(.PCE)のヘッダを取り除きバイナリーファイル(.BIN)に変換するソフト


信号はROMカートリッジを分解して取り出します。(中のROMは抜き取るか非選択状態にして下さい)

フラッシュROM AT49BV040Bについて
4MbitのフラッシュROM AT49BV040Bは秋月電子で2個300円で売っていますが、5Vで動作させた場合、スペック的にTTLとのインターフェースはギリギリのようで、かなり余裕がないため、
動作を安定させるために必ずパスコン(100uF以上の電解コンデンサ)をすぐ近くに付けて下さい。
また、ターゲット機の電源オンオフ時にノイズの影響を受けやすいので、あちこちにパスコン(100uF以上の電解コンデンサ)を入れるようにして下さい。

チップICは幅が狭過ぎるため、このように幅を広げてから使用しました。(両面テープ上にICソケットを切断してひっくり返して引っ付けたものです。銅線はACコードの皮を剥き、銅線の束の一本を使いました)

ヒューズビット
ATTINY2313は内部発振回路を使用します(8MHz)のでヒューズビットの上位バイトには$DB、下位バイトには$E4を書き込んで下さい (AVRXS /fhDB   AVRXS /flE4などとします)

電源を連動させる
電源は本ボード->ターゲット機の順に入れる必要がありますが、この回路を追加すれば転送中には自動的にターゲットの電源はオフになり
転送終了で自動的にオンになって勝手にスタートしてくれます。
ターゲット機の電源を連動させる回路

更に便利にする(まだ未整理です)
本ボードでは、ゲームを書き変える時いちいちパソコンのプリンタポートからROMイメージを転送しなくてはならないので、SDカードに全てのROMデータを書き込んで、本機のみでゲーム選択できるようにしました。
7セグメントでゲームナンバー($000-$1FF)を選択するだけで転送してくれます。
ただ、この回路はとりあえず自分が使う為に作ったもので、整理されておらずプログラムを見ても理解不能で
今のところ、他人が使えるようにはなっていません。
申し訳ありません。
SDカードからセントロニクスでROMイメージを出力する回路図
ATTINY2313用制御ソフト

戻る