2018/8/14 記事の一部編集・追記
レトロゲームのROMイメージ吸出し機について、sanni氏が素晴らしい回路図とプログラムを公開してくれている。
https://github.com/sanni/cartreader/
これ一台でNINTENDO64、スーパーファミコン、ゲームボーイ(カラー、アドバンス)、メガドライブのROMイメージ吸出し、セーブデータ書き換えができるすぐれもの。
フラッシュロムの書き換えにも対応(SFメモリカートリッジの書き換えのみ確認)。
最近(2018/6/21)、新しい基板データがアップされたため、これを機に製作。
必要なパーツは上記サイトのwiki参照。
基板制作はFusionPCBに依頼。送料込みで$7.9と安く制作できる。発注から19日で到着した。
Arduino MEGA・カートリッジのコネクタ・SDモジュールキット・クロックジェネレーターはAliExpress、ほかのパーツはaitendo、秋月電子、千石電商等の秋葉原のお店で調達。
表面実装のタクトスイッチ・タンタルコンデンサは自分が普段寄る秋葉原の店にはちょうど良いものを扱っていなかったため、AliExpressで買うのがいいかも。
製作手順も上記wikiに動画付きで説明があり、わかりやすい。
表面実装のパーツのはんだ付けは初めてであったが、ランドが広くとられはんだ付けしやすく、製作は案外容易であった。
SFC SA1カートリッジ吸出しのためのPICへの書き込みは、hosam_eldin氏考案のSimple-JDM-PIC-Programmerを使用した(cartreaderの当該ページも参照)。
いろいろ適当だけど、書き込むことができたのでまあよしとした。
SOIC 8 adapterをeBayで購入したのだが、YANWEN Expressでの発送となり、到着までとても時間がかかった…
AliExpressで買えばよかったかも。
3Dプリンタで制作するパーツはなくても動作には支障がないため、発注しなかった。
出力サービスがもうちょっと安くなってから導入を検討したい。
SDのモジュールキットは市販ものそのままでも動作する。
いずれは74LVC125Aを挟んだものを作成したい。
Arduino MEGAへinoファイルをフラッシュする。
コンパイルにあたりいくつかのライブラリを追加しなければならない(SdFat、Adafruit_SSD1306、Si5351Arduino、Arduino-RGB-Tools)
コンパイル前にArduinoのライブラリマネージャから追加しておく。
Arduino-RGB-Toolsはライブラリマネージャから追加できなかったため、githubから手動でダウンロードし、librariesフォルダに追加した。
初期のままの設定だとOLEDの表示が途中で途切れてしまうため、Adafruit_SSD1306.hを編集。
バージョン1.1.2の場合、73行目(// #define SSD1306_128_64)のコメントアウトを外し、74行目(#define SSD1306_128_32)をコメントアウトする。
動作確認。PICを取り付け、SA1も吸い出せることを確認。
その他の特殊チップは、DSP-1/1B、SPC7110、Super FX GSU-2を吸い出せることを確認した(確認ソフトはスーパーマリオカート、天外魔境ZERO、スーパーマリオ ヨッシーアイランド)。
ST011(早指し二段森田将棋)は吸い出せず。ST011チップのカートリッジも吸い出せました。しかしST011チップのデータの吸出し方がわからないのでエミュレータ上で対局できず。
以上が全ての作業工程。
なかなかの速度で吸出しを行える快適な環境を構築できた。
回路図データおよびプログラムを開発・公開してくださっているsanni氏に感謝。
FusionPCBで制作してもらった基板に余りがあるので、もし必要な方いましたらTwitterのDMででも連絡ください(@ymt74898381)
(参考)パーツリスト
基本的に自分が購入したところを記しています。
今回は5800円程度でSFC(殆どの特殊チップ含)、N64、GB(GBC,GBA)の吸出しができる装置をつくることができた。
下記パーツはAliExpressでも揃うので全て通販で済ませるのも手かと感じた。
| 名称 | 個数 | 購入箇所 | 費用 | 備考 |
|---|---|---|---|---|
| Cart Reader PCB | 1個 | Fusion PCB等 | $7.90 | |
| SFCスロット | 1個 | AliExpress | $5.92 | |
| N64スロット | 1個 | AliExpress | $2.22 | |
| GBAスロット | 1個 | AliExpress | $1.88 | |
| MDスロット | 1個 | AliExpress | $8.80 | 購入・テストしていない |
| N64プラグ | 1個 | AliExpress | $1.99 | 購入・テストしていない |
| 1×40 ピンヘッダ(2.54mm) | 3個 | 秋月電子等 | 100円程度 | |
| 2×8 ピンソケット(メス) | 1個 | 秋月電子等 | 50円程度 | |
| 1×6 ピンソケット(メス) | 1個 | 秋月電子等 | 20円程度 | microSD用?必要ない? |
| 1×7 ピンソケット(メス) | 1個 | 秋月電子等 | 20円程度 | クロックジェネレータ用 |
| 2012(0805)チップ抵抗 220Ω | 3個 | 千石電商 | 50円程度(10個入) | RGB LED用? |
| 2012(0805)チップ抵抗 1KΩ | 1個 | 千石電商 | 50円程度(10個入) | N64用? |
| 2012(0805)チップ抵抗 10KΩ | 2個 | 千石電商 | 50円程度(10個入) | |
| SMDプッシュボタン | 2個 | AliExpress等 | $1.50程度(50個入) | |
| AMS1117 電圧レギュレータ(3.3V) | 1個 | aitendo | 100円(3個入) | |
| スライドスイッチ(SK12D07) | 5個 | aitendo | 100円(3個入) | |
| RGB LED アノードコモン | 1個 | aitendo | 120円(10個入) | 無くても特に問題ない |
| 2012(0805)チップコンデンサ 100nF | 1個 | aitendo | 100円(10個入) | |
| 2012(0805)タンタルコンデンサ 22uF | 1個 | AliExpress等 | ||
| Arduino Mega(互換品で可) | 1個 | AliExpress等 | $7.45程度 | |
| OLEDモジュール | 1個 | aitendo | 500円 | |
| SDソケットモジュール | 1個 | AliExpress等 | $0.58程度 | |
| クロックジェネレータ(オプション) | 1個 | AliExpress等 | $11.30程度 | 公式サイトからの購入だと送料どれくらいかかるかわからなかったためAliExpressで購入した |
| PIC12F629(SOIC)(オプション) | 1個 | 秋月電子 | 90円 | 実装前にsnesCICの書き込みが必要 |
(参考)ちょっと前まで使用していたSFC用吸出し機(こーどねーむ「ホンコン」 with Arduino MEGA)
akkera102氏のサイトを参考に製作
http://akkera102.hatenablog.com/entry/2017/01/19/145234
これはこれで手軽に制作できるので便利。
転送に時間が少しかかるがどうせ吸出しは頻繁に行わないし、特殊rom吸出しの予定がないならこれだけでも良いかも。