レトロゲームROM吸出機(CartReader)の紹介と、組み立てるときのハマりポイント

みなさん、子供の頃はどんなゲーム機を持っていましたか?わたしは何一つもっていませんでしたが、友人の家に泊まって、ドラゴンクエストやファイナル・ファンタジーなどを徹夜でやりこんだのが懐かしい思い出です。

さて、今回はCartReaderと呼ばれるオープンソースのROM吸出し機を紹介したいと思います。もちろん基板製作を海外メーカに発注するところから始まり、パーツもAliExpressからかき集めて自分ではんだごてを握り、そして無事に何台かを組み立てました。

この記事では、CartReaderそのものと、製作過程でのハマりポイントを紹介していきたいと思います。これから作ろうと思っているかたの参考に少しでもなればと思います。

CartReaderとは?

ファミコンやスーパーファミコンなど昔のゲームをパソコンなどで遊べるよう、そのデータを外部に吸い出す機械のことです。(データは自分で遊ぶためだけに使用して下さい)

吸い出したデータで遊ぶためには、エミュレータと呼ばれるゲーム機本体を再現するソフトが別途必要になります。エミュレータをパソコン上で起動し、吸い出したデータをそこに読み込むことで昔のゲームを遊ぶことができるようになります。

ROM吸出し機はここで紹介するCarReader以外にもレトロフリークなどが有名ですが、CartReaderは回路基板のデータやソフトウェアなどの全てがオープンソースとして公開されており、部品を集めさえすれば(スキル次第で)全て自分で組み立てることができます。

対応しているゲーム機の種類

どこまで部品を集めるかにもよるのですが、CartReaderが対応しているゲーム機は非常に多いです。本体だけで対応しているものだけでもそれなりの数がありますし、オプションのアダプタを使って対応できるものもあります。

本体だけで対応しているもの

パーツを全て集めたという前提で、本体だけで対応しているゲーム機はこちらです。

  • スーパーファミコン
  • Nintendo 64
  • Nintendo 64 コントローラパック
  • Game Boy
  • Game Boy Color
  • Game Boy Advance
  • メガドライブ
  • Nintendo64

Nintendo 64 コントローラパックってなんぞや?と思う方もいるかもしれません。コントローラ側にメモリカードを挿して、そこにゲームデータを保存するものだそうです。あつまれどうぶつの森なんかはそれに対応していたようです。

CartReaderはセーブデータの読み書きにも対応していますので、コントローラパックにももちろん対応しているというわけです。

アダプタを使うことで対応しているもの

つづいて、アダプタを使うことで読み出せるものです。いずれもスーパーファミコンのスロットに挿すタイプです。スーパーファミコンのスロットのピン数がいちばん多いからですかね。

  • ファミコン(日本版)
  • ファミコン(海外版)
  • ワンダースワン
  • Neo Geo Pocket

ちなみに、ファミコンの日本版と海外版でスロットが異なることを、このCartReaderの製作を通じて初めて知りました。

パーツなどの費用はどれくらいかかるの?

基板は1枚ではなく10枚とか20枚の単位で発注しますし、パーツについてもまとめ買いする必要があるものもあります。そもそも海外(中国)から取り寄せるものもありますので、送料などもかかってきます。

また、先に書いたとおり、組み立てたものが全てきちんと動作するわけではないため、最終的な1台あたりのコストは1万までは行かずとも、普通はうまく作っても4~5000円程度はかかってしまいます。

ですので、実際の出費は最低でも5~10万程度にはなります。

作るときに苦労したポイント

それでは本題です。

CartReaderは部品もたくさんありますし、はんだ付けのスキルもかなり要求されます。なので、慎重に作業しないとハマってしまうポイントもたくさんあります。ここでは、私が遭遇したトラブルの中で多いものをいくつか紹介していきます。

接点不良

いちばん多いのが、この接点不良ではないでしょうか?子供のころ、よくファミコンカセットのコネクタに息を吹きかけてホコリを吹き飛ばしていましたよね?あれです。

「さあできたぞ、データを吸い出してみよう❢」とカセットをさしてみたものの、どうしてもCRCエラーがでてしまう、ゲームのタイトルが文字化けするというような症状です。

でも、間違っても息を吹きかけてはいけません。いったんは状態がよくなっても、端子に水分が付着することでサビの原因になってしまいます。端子が錆びてしまうと、状況はより悪化してしまいます。

オススメの対応は、接点復活スプレーの利用です。端子にスプレーを吹きかけてあげることでゴミを吹き飛ばし、表面に薄い油の被膜を形成することでトンネル効果によって導電性能を安定させることができます。

Amazonなどで数百円で販売されていますので、もしCartReaderを自分で組み立てようと考える方がいれば、必ず「接点復活スプレー」を購入してください。

ハンダ不良

これもよくあります。全てのハンダが一発で完璧にできていることの方が稀かもしれません。

症状としては、たとえばメガドライブの「ぷよぷよ」を挿したら、「QUYOQUYO」と認識されてしまうなどです。(あくまで例ですので、必ずこうなるというわけではないです)

信号線(データ線・アドレス線)がうまく接続できていない場合に文字化けが起きやすいですので、まずは以下の部品のハンダがうまく乗っているかを確認してください。

  • Arduinoとの接続用ピンヘッダ
  • Arduinoと接続している導線
  • スライドスイッチの接点

接点不良との区別がつきにくいのが難点です。

パターン剥がし

基板の銀色のパターンを剥がしてしまうミスです。これはかなり命取りです。

いちばん危ないのは、Arduino Mega 2560から電源をとるためのジャンパ線です。そのジャンパ線を本体基板にハンダ付けするのですが、その5VとGNDのパターンをよく剥がしてしまいます。

ここには電解コンデンサを無理やり取り付けたりするので、そのときに手間取ってしまってやらかしてしまうんです。また、ジャンパ線が短いと余計なテンションがかかってしまい、パターンが剥がれてしまうというケースもあります。

対策としては、とにかく手早く作業できるように頑張りましょう。熱を加えすぎると基板が傷んでしまいます。また、電源のジャンパ線もなるべく長めに用意することもおすすめします。

誤ってパターンを剥がしてしまった場合は、焦らずに別の端子を代用できないか探してみましょう。基板表面を削って配線を出すという荒業もあります。

部品不良

これはAliexpressなどで部品を集めている場合は要注意です。部品もロット依存があったりするので、発生するときは固め打ちします。

レギュレータ

私がいちばん多く遭遇したのは、レギュレータの不良です。5Vでは起動するのですが、3.3Vに切り替えると液晶表示が暗くなったり、ゲームデータが読みだせなかったり、いちばん酷いとウンスンで起動しなくなったりするケースです。

こんなときはレギュレータの出力端子(3つ並んだ端子の真ん中)の電圧を測定してみてください。3V以下だったりすると不良品です。

レギュレータの不良はホントに(私の場合は)多く、2-3回連続して発生したこともありました。さすがにこのときは心が折れそうになりました。「こんなに連続するわけないだろ」と、レギュレータ以外の部分を疑ったりして、ずっと別のところにハンダを当て直したりもしてました。けっきょく、やっぱりレギュレータだったんですけどね。

スーパーファミコン用特殊IC

それ以外にあるのはPICマイコンです。スーパーファミコン特殊IC対応のために取り付けるやつですね。このPICマイコンのプログラムがきちんと焼けてない場合はあります。ただ、このときはスーパーファミコンしか影響を受けないため、比較的わかりやすいかもしれません。(後述のArduino Mega 2560の相性問題と迷うかな。。。)

部品の相性

これもまた分かりづらい問題です。レギュレータも確認して、メニューも動いている、ハンダも当て直した、というとき、最後に疑うパターンです。とはいえ、半田スキルが上がると、もうほぼこの問題にしかぶち当たらない・・・という噂もあります。

クロックジェネレータ

経験上、相性問題が出やすいのはクロックジェネレータです。症状としては、スーパーファミコンもしくはNitendo 64が動かないケースです。たまに正常に動いたりすることもあります。この場合はクロックジェネレータを何枚か差し替えてみてください。その動きや症状が変わる場合はビンゴです。

対策は、きちんと動くものを選別するしかないです。ただし、動かなかったクロックジェネレータでも、他のパーツとの組み合わせでは動いたりする場合があるので、カンタンには捨てないようにしてください。

Arduino Mega 2560

もうひとつ相性問題が出やすかった印象があるのはArduino Mega 2560です。この場合は、特定のスロット「だけ」が動作しないという症状になる場合が多い印象です。特にNintendo 64「だけ」が顕著です。(稀にスーパーファミコン(&ファミコン)が読み出せない場合もありましたが。)

他のスロット(メガドライブ、ゲームボーイなど)は読み出せるけど、Nintendo 64だけがダメ、スーパーファミコン(&ファミコン)だけがダメという症状です。

ハンダを確認して、それでもNintendo 64だけがダメな場合は、Arduino Mega 2560基板を交換してみましょう。Arduino Mega 2560も、できれば数枚の予備がほしい部品になります。最近の円安で、Arduino Mega 2560も価格が高騰しており、ほんと勘弁してほしいです。。。

けっきょく、自分で組み立てるのは難しいの?

自分で言うのもなんですが、私のハンダ付けのスキルは、一般的なレベルからすると「ヘタではない」と思います(うまくもないですが)。もともと組み込み系のソフトウェアエンジニアをしてますので、ハードウェアの知識も多少は持っていますし、仕事上でハンダ付けを行うこともあります。

その私が見ても、ぶっちゃけ難しいです。これまで数十台ほど組み立てていますが、だいたい 5~6台に一台は失敗しています。普段、はんだごてなんて握らないよという人は、もっと苦労すると思います。

「それでも自分で作ってみたい!」というかたは、間違ってもパーツのセット販売には手を出してはいけません。割高ですし、ハンダ付けスキル以外の面での失敗リスクがけっこう高いので、お金と時間をドブに捨てることになりかねません。

やるならば、基板を含めた部品集めを自分で行って組み立ててみてください。そのときは、どうしても数台分のパーツが集まってしまいますが、部品不良や相性のリスクを考えると、むしろそちらの方が良いです。そこまでやれば、いろいろと得るものがあるのではないでしょうか?