先日 ゲームボーイエミュレーター を自作しました。
当初は無料で公開されているゲームを動かして満足するつもり…
だったのですが、作っているうちに市販のゲームを動かしてみたくなってしまいました。
ゲームボーイのROMを吸い出すためには専用のツールを準備する必要があり、市販のものだと1機種しか吸い出せなくて1万円弱、 OSSのもの だと何種類か吸い出せるけど1万円強かかってしまいます。
「多少機能を絞ってもいいから安く済ませたいな〜」と思ったので自作してみることにしました。
本吸い出し機は開発途中です。
ROMが吸い出せない・あるいはカセットを破壊することがあるかもしれませんので、制作する場合は自己責任でお願いします。
また、本ツールはあくまで学習・研究用途を想定しています。
吸い出したROMをお友達に送ったりネットにアップロードしてはいけません。
私的利用に留めておきましょう。
機能紹介
OpenSourceCartridgeReader はスタンドアロン型で動作し、デフォルトで ファミコン / NES(海外版ファミコン)/ スーパーファミコン / ゲームボーイ / ゲームボーイアドバンス / N64 / メガドライブ / マスターシステム を吸い出すことができます。
一方、今回作成した吸い出し機はPCに繋いで動かすタイプにしました。 いちいちSDカードからデータ移すのって面倒じゃないですか
対応ゲーム機としては ファミコン / スーパーファミコン / ゲームボーイ / メガドライブ / MSX を吸い出すことが(多分)可能です。 ファミコンとゲームボーイのカセットしか持っていないので、その2つしか確認できていませんがね。
本当はゲームボーイアドバンスにも対応したかったのですが…
GBAの電源・インターフェースは3.3V系であり、今回使用するマイコンと直接通信させる場合、マイコンに破壊的な改造を施す必要が生じてしまうのです。
同じ理由でN64もダメ
材料

| 数量 | リンク | |
|---|---|---|
| 基板 | 1 | 基板データ お好きな基板製造メーカーにどうぞ |
| PRO MEGA2560(マイコン) | 1 | アリエク |
| Si5351(クロックジェネレータ) | 1 | アリエク |
| CKCS BS01(昇圧DCDCコンバータ) | 1 | アリエク[PR] |
| ファミコンコネクタ(2.54mm 60ピン) | 1 | アリエク[PR] |
| スーファミコネクタ | 1 | アリエク[PR] |
| ゲームボーイコネクタ | 1 | アリエク |
| メガドライブコネクタ | 1 | アリエク[PR] |
| MSXコネクタ(2.54mm 50ピン) | 1 | アリエク[PR] |
| 抵抗 220Ω | 1 | |
| LED | 1 | |
| 電解コンデンサ 100uF | 1 | |
| コンデンサ 0.1uF | 1 | |
| ピンヘッダ オス&メス | たくさん |
全部揃えると5,000円くらいになると思います。
組み立て

まずはゲームボーイのコネクタと小物をはんだづけします。
ピンの先端に当てるようにするとブリッジせずにうまくいきます。

つづいてDIPの部品をはんだづけします。
「表やってから裏」みたいな順番でやると大変になるのでお気をつけを

DCDCコンバーターは左上のジャンパ抵抗を外しておきます。

これを忘れるとゲームカセットに12Vかかって最悪壊れます。

はんだづけを終えるとこんな感じになります。
黄色い線はパターン剥がれを直したものなのでお気になさらず…

マイコンとクロックジェネレータを接続して完成です。
ショートと、ROMにかかる電圧がちゃんと5Vになっているかはちゃんと確認しておきましょう。
吸い出す
マイコンにファームウェア を書き込んだ後、 ホスト から吸い出したいゲーム機の種類とポートを指定して吸い出します。
ファミコンの吸い出しにはROMサイズなどのヘッダ情報が必要になるので、No-Intro というサイトで調べておきましょう。 ROMを正確に吸い出せているかどうか確認するためのハッシュ値もここで見つかります。
さて、実際に吸い出してみます。
ゲームボーイの「星のカービィ」を接続して吸い出しを実行すると…
ものの数秒で吸い出しが完了しました!
ハッシュもしっかり一致しましたよ!
他にも、ゲームボーイの「ポケモン赤」、ファミコンの「スーパーマリオブラザーズ」と「ドラクエ3」もきちんと吸い出せました。
読み取りエラーが頻発した時用に ハッシュと複数の破損ROMから正規ROMを生成するスクリプト も作成していたのですが、要りませんでしたね。 しっかり安定して読み取ってくれます。

自作のゲームボーイエミュレーター で動かしてみました。 ちゃんと遊べましたよ〜
スーファミ・メガドライブ・MSXのカセットは持っていないのでちゃんと吸い出せるかは未確認です。 一応 OpenSourceCartridgeReader のファームウェアから吸い出し部分を抜き出したのち、AIにインターフェースを書いてもらったものをアップロードしてはいますが…
ゲームボーイ・ファミコンについても、マッパーによってはうまく吸い出せないことがあるかもしれません。
そんな時は改良してプルリクエストを送ってもらえるとうれしいです。
というのも、僕としてはエミュレーターで動かす分のROMが吸い出せれば満足なので、モチベーションが高くないのですよ。
だから問題が起きても自分で解決してくださいね♡
必要なファイルは GitHub にアップロードしてありますので、興味があればぜひ〜
アプリなどを作ったりしています! よかったらみていってください→
つくったもの
今のイチオシ↓

