
1. cartreader とは
cartreader / Open Source Cartridge Readerは、ファミコン、スーパーファミコン、ゲームボーイ、ゲームボーイアドバンス、NINTENDO 64 をはじめとした様々なレトロゲームに対応した ROM 吸い出し機(カートリッジリーダー)です。
cartreader の注目するべき特徴は、
- 使用時にPCとの接続が不要
- 幅広い機種をサポートしている(詳細はこちら)
- セーブデータの読み取り・書き込みも可能
- 操作が単純(機種や機能を選択するだけ)
- 有志により日々改善されている
あたりでしょうか。
一台あればメジャーな機種・タイトルは問題なくカバーできると思います。またセーブデータの保存もできるので、懐かしいデータのバックアップとしても使えます。
2. 今回実装する機能
2025/07/18 時点で最新の cartreader V5(ファームウェアは V15.0)を実装します。機能としては、ROM 吸い出し、セーブデータの吸い出し・書き込みなど基本的なものを以下の機種について実装します。
- ファミコン
- スーパーファミコン(SA1チップのカートリッジは除く)
- ゲームボーイ(ゲームボーイカラーを含む)
- ゲームボーイアドバンス
- NINTENDO 64
スーパーファミコンのSA1チップについてはここでは対応しません。もし対応したい場合は自己責任で別途実装してください。なお、該当するカートリッジは 特殊チップのタイトル一覧 に記載があります。
また他の機種については、別途カートリッジスロットを追加したり、スロットを実装したりすれば適宜追加できます。必要に応じて試してみてください。
なお、機能ではないですが、材料費を抑えるため、手間を省くため、必須ではないため、などの理由からケースおよび関連するネジなどは省略します。電気を通しにくいものの上に置いて使えば問題ないと思います。
3. 大まかな流れ
まずは全体感をつかむために大まかな流れを見てみましょう。
以下の流れで作業を進めていきます。★をつけた 2 つが初見では少し分かりにくいかもしれませんが、解説を見ながらであれば難しくはないと思います。
材料・工具の調達
- JLCPCB に基盤を発注 ★
- AliExpress から一部材料を購入
- その他、国内サイトや実店舗で材料や工具を購入
JLCPCB は一週間程度、AliExpress は一週間からそれ以上、到着まで時間がかかりますのでご留意ください。
部品の加工や調整
- Arduino IDE によるファームウェアの更新 ★
- 一部部品の改造
- ハンダ付け
ハンダ付けの箇所が多いですが、作業自体は半日もかからないと思います。
組み立て・動作確認
- 工具は使わずに差し込むなどして組み立て
- 実際にカートリッジから ROM の吸い出しなどを行う
組み立てでは工具を使わないので、すぐに終わると思います。
*
それでは実際にやってみましょう。
3. 必要な材料・工具など
必要な材料、工具などを揃えます。おすすめの購入先と金額感を載せておきますので、それらを参考に購入してください。
材料
- Mega 2560 Pro / AliExpress / 2,000円弱(送料込み)
- MKS MINI12864 V3 LCD / AliExpress or AliExpress / 2,000円弱(送料込み)
- Clock Generator / AliExpress / 1,000円弱(送料込み)
- Main PCB / JLCPCB / 500円弱(送料込み)
- 6 slots PCB / JLCPCB / 500円弱(送料込み)
- ピンヘッダー 40P(2つ) / 秋月電子通商 / 100円(税込、送料別)
- ピンソケット 42P(6つ) / 秋月電子通商 / 480円(税込、送料別)
- コンデンサ(アルミ電解 470uF) / 秋月電子通商 / 20円(税込、送料別)
- 抵抗(220Ω) / 秋月電子通商 / 170円(税込、送料別)
- 発光ダイオード / 秋月電子通商 / 25円(税込、送料別)
- スライドスイッチ(2つ) / 秋月電子通商 / 50円(税込、送料別)
- ボックスヘッダー 2x5P(2つ) / 秋月電子通商 / 40円(税込、送料別)
- 配線(オス・メス) / 秋月電子通商 / 280円(税込、送料別)
- カートリッジスロット(ファミコン) / AliExpress (Straight, 2x30P) / 600円くらい(送料込み)
- カートリッジスロット(スーパーファミコン) / AliExpress / 500円くらい(送料込み)
- カートリッジスロット(NINTENDO 64) / AliExpress / 600円くらい(送料込み)
- カートリッジスロット(ゲームボーイ・ゲームボーイアドバンス共通) / AliExpress / 400円くらい(送料込み)
合計 10,000円くらい(税込、送料込み)
工具
- ハンダゴテ / 秋月電子通商 / 1,750円(税込、送料別)
- ハンダ(無洗浄タイプ) / 秋月電子通商 / 1,840円(税込、送料別)
- フラックス(無洗浄タイプ) / Amazon など / 600円くらい(税込、送料別)
- ハンダ吸取線 / 秋月電子通商 / 210円(税込、送料別)
- ニッパー(細い金属が切れるもの) / 秋月電子通商 / 1,980円(税込、送料別)
合計 6,000円くらい(税込、送料込み)
その他
- USB ケーブル(片側が Micro USB) / 秋月電子通商 / 90円(税込、送料別)
- SD カード(or microSD カード + アダプタ) / Amazon など / 1,000円弱(税込、送料別)
- SD カードドライブ(PC接続用、必要であれば) / Amazon など / 1,000円くらい(税込、送料別)
- 接点復活剤 / Amazon など / 500円くらい(税込、送料別)
合計 3,000円くらい(税込、送料込み)
予算としては、何もないところからすべて揃えると 20,000 円くらいでしょうか。完成品がそのくらいの値段で売っているので単にものが欲しいのであればそちらを買ってもいいかもしれません。
反対に、工具など一通り持っている方は材料を揃えて作った方がお得だと思います。作業も難しくないですし、なにより楽しさや達成感がありますよね。
*
以下、補足です。
Main PCB / 6 slots PCB
基盤はそれぞれ業者に発注して作ってもらいます。
業者は JLCPCB という海外の会社にお願いすることにします。本家サイトでも紹介されており、実際お手軽かつ品質も十分です。
発注にはアカウントが必要になるので、まずはアカウントを作っておきましょう。

それではまず、基盤の設計図であるガーバーファイルをそれぞれダウンロードします。

ダウンロードできたら、まずは Main PCB を発注します。

Add gerber file ボタンから先ほどダウンロードしたガーバーファイルを選択します。

アップロードできたらそのままカートに追加します。なお各種オプションは基本的に変更不要ですが、色を変えたい場合は PCB Color で変更できます(ただし製造に時間がかかります)。また Mark on PCB は “Order Number (Specify Position)” にしておくと印字される注文番号の見栄えがよくなるのでおすすめです。

先ほどカートに追加したものを選択します。Shipping Estimated はデフォルトだと高いので、おそらく最安の “OCS NEP” を選択しておきましょう(到着もそこそこ早いです)。

Shipping Address(発送先住所)を登録します。アルファベットで入力してください。なお書き方が多少間違っていても国内の配送業者がよしなに読み取って届けてくれるはずなのでそこまで心配しなくてもいいと思います。

最後に、配送先住所、配送手段、金額などを確認して、問題なければ支払って発注を完了します。支払い前のレビューは不要なので、Pay Directly を選択して Submit Order ボタンを押します。そうすると支払いの画面に遷移するので、希望の支払い方法で支払いを完了します。これで Main PCB の発注は完了です。
次に 6 slots PCB も同様に発注します。

なお 2 つの PCB を一緒に発注すると割引が効かず、かつ配送手段も別のものになったりで高くなります。それぞれ発注した方がお得です。
それぞれの発注が完了したら、あとは完成品の到着を待つだけです。上記のように発注したのであれば、おそらく一週間程度で届くはずです。
カートリッジスロット
ピッチ(ピンの間隔が 2.54mm と 2.5mm の 2 種類ある)とピンの数に注意して注文してください(一覧に記載のリンクから購入すれば問題ないと思いますが)。なお、本家の Wiki に機種ごとのピッチとピン数の記載があります。
SD カード
容量は 2GB もあれば十分です。また中古で問題ないので BOOKOFF あたりで探してみると安く手に入ると思います(100円くらいで買いました)。なお microSD を SD カードアダプタに入れるでも問題ありません。
ハンダ・フラックス
ハンダ、フラックスともに無洗浄タイプがおすすめです。ハンダ付けのあとの洗浄が不要で、手間がかからず洗浄不足の不安もありません。
接点復活剤
古いカートリッジでは接点部分が汚れるなどしてうまく認識しないことがあります。経験上、中古のカートリッジでは接点の清掃が必要になることがほとんどだったので、接点復活剤を使って接点を清掃してから読み取りなど行うことをおすすめします。
自分は KURE 接点復活スプレー を使っていますが、レトロゲーム復活剤 も評判がいいようです。
実際に接点の清掃が必要だった例が以下にありますので参考になると思います。
レッドアリーマー2(ファミコン)の ROM を Retro ROM Reader で吸い出してみた


4. 各部品の加工・準備
材料や工具が揃ったら、早速作っていきましょう。
今回使う材料を並べるとこんな感じです。

以下、それぞれ作業を進めていきます。
4.1. Mega 2560 Pro
以下を実施します。
- ファームウェアの書き込み
- ヒューズの取り外し
- 配線のハンダ付け
- ピンのハンダ付け
それぞれ詳しく見ていきましょう。
4.1.1. ファームウェアの書き込み
Arduino IDE を使って cartreader のファームウェアを書き込みます。
Windows の場合
基本的には Mac の場合と同じなので、このあとの Mac の手順をご覧ください。ソースコード(Cart_Reader と libraries)の置き場所も同じような感じでした(C:\Users\ユーザー名\Documents\Arduino)。 #参考
なお Windows の場合は Portable.zip に含まれる Arduino IDE が使えます。Arduino IDE のインストール、ソースコードのコピーが不要になるのでこちらを使ってもいいかもしれません。なお Arduino IDE を起動したあとは Mac の手順と同じです。 #参考
Mac の場合
Arduino IDE をここからダウンロードしてインストールしておきます。

次に cartreader のソースコードをここからダウンロードします。最新のバージョンでいいと思います。なお 7z ファイルは解凍できないことがあるので zip ファイルの方が確実です。

解凍したフォルダの中にある Cart_Reader と libraries をフォルダをまるごと書類フォルダの中の Arduino フォルダにコピーします。これで Arduino IDE がそれぞれ認識するようになります。

Arduino IDE を起動して Cart_Reader を開きます。なおこのようなソースコード一式をスケッチと呼びます。今回は Cart_Reader スケッチに諸々のソースコードが含まれています。

Cart_Reader スケッチを開けたら、config.h を開きます。ファイルの冒頭 32 行目あたりに「//#define HW5」があるので「//」を消して「#define HW5」とします(これで有効になります)。

次に Arduino IDE で扱うボードの種類を指定します。今回は Mega 2560 Pro なので「Arduino Mega or Mega 2560」を選択します。

ここで Mega 2560 Pro を PC に接続します。USB ケーブルで接続して認識されるとポートが選択できるようになるので選択します。

選択するとウィンドウ下部に「Arduino Mega or Mega 2560 on /dev/du.usbserial-110」というような表示が出ると思います。
なお選択できない場合は、USB ケーブルに問題がないか、PC の USB ポートに問題がないか、他の PC や電源に繋いでみて電源が入るか(電源が入るとLEDが光ります)、などを確認してみてください。
接続できていることが確認できたらソースコードを Mega 2560 Pro にアップロードしてファームウェアを更新します。ウィンドウ上部の矢印ボタンを押すとアップロードが始まります。

アップロードが問題なく終わると上記の画像のように「Done uploading.」の表示が出ます(しばらくすると消えます)。なおアップロードは 1 分くらいで終わると思います。
以上で作業は完了です。
4.1.2. ヒューズの取り外し
電源を取り出す配線をつけるため、ヒューズを取り外します。
なお、ヒューズを取り外すと USB から電源が供給されなくなるので、Mega 2560 Pro 単体で起動やファームウェアの更新などができなくなります。このあとの作業で PCB に組み込めば再度電源が供給されるようになりファームウェアの更新などができるようになりますが、念のためご留意ください。

ヒューズは表面実装されているので、ハンダ吸い取り線でハンダを取り除いても取り外せません。このような場合、ハンダゴテを2本使う方法やヒートガンを使う方法などがありますが、自分は以下のやり方で取り外しました。
【注意】力を入れる方向に基板を押さえている手があると思うので、コテが当たってヤケドしないように気をつけてください。

まず、外側からコテを当て、ハンダを溶かしながらグリグリと持ち上げ、基盤から少し浮かします。
表面実装なのでハンダの量は多くなく、少し浮かせるだけで基盤から離れます。また、少しだけというのがポイントで、あまり大きく持ち上げると反対側のパッドが破損する(剥がれる)可能性があり注意が必要です。ただ多少破損しても cartreader としては使わないパッドなのであまり気にしなくてもいいと思います。
次に、 反対側から同様にコテを当て、ハンダを溶かしながらそのまま押すと、基盤から外れます。

4.1.3. 配線の取り付け
ヒューズを取り外したところに配線をハンダ付けします。
まず、配線を以下のように切断し、中の導線を少し剥き出しにします。ニッパーで問題なくできると思います。

次に、短い方を外側のパッドにハンダ付けします。配線の向きは画像のようにしてください(組み立て時にスムーズ)。

配線の導線部分にフラックスを塗っておく、パッドに多めにハンダをのせておく、気持ち長めに加熱してハンダを馴染ませる、コテを離したあとすぐに配線を離さない(ハンダが固まる前に離すと配線がズレてハンダ付けが甘くなるかもしれないので)、あたりがコツかなと思いますので参考にしてください。
4.1.4. ピンのハンダ付け
以下の画像のように付属のピンをハンダ付けします。数が多いので換気をよくして作業してください。

反対側はこんな感じです。

注意点としては、ハンダが乗りにくい傾向があるので(穴が小さいのでコテ先がしっかり当たらず加熱されないため?)、ハンダを乗せたあと少し長めに加熱してジワッとハンダが乗ったことを確認しながら進めた方が確実かと思います。
動作しない場合、原因は大体ハンダ不良なので、後々の確認作業の手間を省くためにもひとつひとつ確実に作業していきましょう。
Mega 2560 Pro の作業は以上です。
4.2. MKS MINI12864 V3 LCD
画像の赤枠の箇所をハンダで繋ぎます。
それぞれのパッドにハンダを多めに乗せ、それぞれを一緒に加熱しながらハンダを追加するとうまく繋がると思います。

MKS MINI12864 V3 LCD の作業は以上です。
4.3. Clock Generator
付属のピンをハンダ付けします。ピンが画像の向きになるようにしてください。

Clock Generator の作業は以上です。
4.4. Main PCB
部品をそれぞれ所定の箇所にハンダ付けしていきます。数が多いので引き続き換気に注意して作業してください。
以下の順に進めるとスムーズかと思います。特にゲームボーイのカートリッジスロットはピンソケットが付いているとハンダ付けが困難です。ピンソケットより先に付けておきましょう。
- 抵抗
- スライドスイッチ(2つ)
- 発光ダイオード
- ゲームボーイのカートリッジスロット
- ピンソケット(必要な長さに合わせて切断)
- ボックスヘッダー(2つ)
- コンデンサ
- 配線
以下、作業を進める際の注意点です。特にハンダ付けに慣れていない方は参考にしてください。
- 部品が傾かないように気を付ける(特にピンソケット)。まずは一箇所だけハンダ付けして、傾いていないか確認する。傾いていたらハンダゴテを当てながら傾きを調整する。
- ハンダ不良に気を付ける。フラックスを使ったり、少し長めにコテを当てたりすれば基本的には大丈夫かなと思います。
- 熱し過ぎない。上と少し矛盾しますが、熱しすぎると壊れたりプラスチック部分が溶けたりします。加熱は最小限に抑えるのが無難です。
- ブリッジ(ハンダが繋がった状態)にならないように注意する(特にゲームボーイのカートリッジスロット)。一箇所にだけハンダゴテが当たるようにし、ハンダゴテを離す時に他の箇所に当たらないように注意する。
すべてハンダ付けが終わるとこんな感じになります。こちらを参考にそれぞれハンダ付けしてみてください。


以下、補足です。
ゲームボーイのカートリッジスロット
ゲームボーイのカートリッジスロットは以下のようにすると確実かなと思います。
- ピンとパッド全体にフラックスを塗る
- ハンダゴテでピンを強めに押さえてピンと一緒にパッドを加熱する(一箇所ずつ)
- その状態でパッドにハンダを当て、溶けたハンダがパッドとピンに行き渡るようにする
- 行き渡ったらハンダゴテを離す


発光ダイオードとコンデンサ
発光ダイオードとコンデンサには向きがあります。画像のように長い足(+)が丸穴(+)に入るようにしてください。


配線
配線は内側に向くようにハンダ付けしてください。また導線は穴に入れず、Mega 2560 Pro のパッドと同じように上から乗せるかたちにするのがいいと思います(導線が折れない方がいいので)。

改めてですが、すべてハンダ付けが終わるとこんな感じになります。つけ忘れがないこと、ハンダ不良がないことを今一度確認しておきましょう。

Main PCB の作業は以上です。
4.5. 6 slots PCB
本家では長めのピンヘッダーを使って Main PCB と連結していますが、今回はピンソケットでピンヘッダーを挟むかたちで実装したいと思います。
スペースの問題で、ピンソケットを先にハンダ付けし、そのあとカートリッジスロットを付けます。また Main PCB の時と同様にハンダ不良には気をつけてください。
すべてのハンダ付けが終わると以下のようになります。

裏側はこんな感じです。

6 slots PCB の作業は以上です。
4.6. SDカード
FAT 形式にフォーマットし、所定のファイルをコピーしておきます。
手順は以下と同じなので、こちらを参考に進めてください。
Retro ROM Reader - microSD カードをフォーマットする


SD カードの作業は以上です。
5. 組み立て
各部品の加工・準備が終わったら、いよいよ組み立てに入ります。
まずは Mega 2560 Pro、Clock Generator、MKS MINI12864 V3 LCD を取り付けます。
Mega 2560 Pro は、まずは配線を接続します。

そのあとピンヘッダーをピンソケットに入れてグリグリ押し込みます。
Clock Generator はピンヘッダーをピンソケットに入れて押し込むだけです。
MKS MINI12864 V3 LCD は付属のケーブルで接続します。Main PCB 側、MKS MINI12864 V3 LCD 側のそれぞれのボックスヘッダーに EXP1 と EXP2 の表記があるので、EXP1 同士、EXP2 同士が繋がるように接続します。
作業が終わると、以下のようになると思います。

次に 6 slots PCB を取り付けます。
まずピンヘッダーを差し込みます。

次に上から 6 slots PCB を差し込みます。以下のようになるはずです。

6 slots PCB の作業は以上です。
*
組み立ては以上になります。
ということで、すべての作業が終わりました。cartreader V5 完成です。お疲れ様でした。

6. 動作確認
さっそく動作確認してみます。
SDカードを差し込み、USB ケーブルを接続して電源を入れてみます。

問題なく電源が入り、SD カードも認識しました。それでは実際に各機種の ROM を吸い出してみましょう。
注)cartreader は機種ごとに電圧を切り替える必要があります。電圧は電源スイッチの横のスイッチで切り替えることができます。
まずはファミコンから。電圧を 5V に切り替え、「ドラゴンクエスト3」の ROM を吸い出してみます。

問題なく吸い出せました。
次はスーパーファミコン。電圧を 5V に切り替え、「ロマンシングサガ2」の ROM を吸い出してみます。

問題なく吸い出せました。
次は NINTENDO 64。電圧を 3V に切り替え、「ゼルダの伝説 時オカリナ」の ROM を吸い出してみます。

問題なく吸い出せました。
次はゲームボーイ。電圧を 5V に切り替え、「スーパーマリオランド2 6つの金貨」の ROM を吸い出してみます。

問題なく吸い出せました。
最後にゲームボーイアドバンス。電圧を 3V に切り替え、「ファイナルファンタジー6」の ROM を吸い出してみます。

問題なく吸い出せました。
実装したすべての機種で ROM を吸い出せました。問題なく実装できているようです。
7. 動作に問題がある場合
以下を確認してみてください。
カートリッジの接点を清掃する
cartreader 自体は起動して動作するけどカートリッジを認識しない、ROM が読み取れないといった場合はカートリッジ、特に接点に問題があるケースが多いです。また、経験上、中古のソフトで清掃せずに認識・吸い出しができたものは 1,2 割くらいのイメージで、大体は何度か接点を清掃して成功しています(ジャンク目なものを買っているからな気もしますが)。
また清掃した上で、差し込み具合も若干影響するようなので根気強く何度も試してみてください。清掃をしっかりしたら大体 1 回目か 2 回目で成功するイメージですが、本当に古いものやジャンク扱いものは清掃したうえで何度も試してやっと成功する感じでした。
なお何度やっても認識・吸い出しできない、かつ Checksum や CRC32 が毎回同じ場合は、回路に不良がある可能性が高いです(大体ハンダ不良のイメージ)。今一度ハンダ付けした箇所を確認、再度加熱やハンダ付けしてみると改善するかもしれません。
ちなみに実機で動作しないカートリッジは cartreader でも動作しませんので、どうしても認識・吸い出しできない場合はまずは実機での動作を確認したほうがいいかもしれません。
ハンダ不良・ブリッジがないか
自分の経験上、正常に動作しない場合はハンダ付けに問題があるケースが多数でした。見た目は問題なさそうだが中が空洞になっているなどで不良(しっかり電気が流れない)になっているケースが多かった気がします。大体はハンダ付け前後の加熱不足が原因(コテがちゃんと当たっていないなど)だと思いますので、加熱のし過ぎとのバランスが難しいですが、今一度ハンダ付けした箇所を確認、再度加熱やハンダ付けしてみると改善するかもしれません。結局一つ一つ丁寧にやるのが近道だと思います。
またちゃんと確認するにはテスターがあると非常に便利です。例えば カートリッジスロットの接触部分と 6 slots PCB や Mega 2560 Pro のピンソケットの通電を確認すれば不良がある回路が一発で分かります。回路図で対応を確認しながらなので地道ではありますが、過去これで何度か不良を見つけているので試してみる価値はあると思います。
各部品に問題がないか
ハンダ付けが問題なくても部品に不良があると動作しません。正直なところ部品の不良に出会ったケースはあまりないですが、中古で買ったSDカードが壊れていた(汗)、配線が断線していた(テスターがないと確認しにくいですが)がありました。ちなみに AliExpress で購入する Mega 2560 Pro や Clock Generator などでは不良品に当たったことがないのであまり心配しなくてもいいと思います(極端に安いものを選んでないからかもしれないですが)。
配線ミス
今回は構造上あまりないと思いますが、Clock Generator の向きが逆になっていないか、EXP1 と EXP2 が逆になっていないか、コンデンサや発光ダイオードが逆になっていないか、あたりがありえると思います。
ソフトウェアに問題がある
稀に実装が間違っている、もしくは未実装で動かないことがあります。その場合は cartreader の有志が修正してくれること期待して待つか、問題を切り分けて GitHub で報告する、もしくは自分で修正するなどの対応になると思います。同じ問題に直面している人がいないか GitHub Issues を確認してみてもいいと思います。
修正がリリースされていたらファームウェアを更新して修正を反映すれば問題は解消するはずです。手順はこの記事のファームウェアの書き込みと基本的には同じで、Cart_Reader と libraries を新しいものに置き換えてから USB で接続・アップロードすればいいと思います。
8. 最後に
記事自体は長くなってしまいましたが、内容としてはそこまで難しくはなかったのではないでしょうか。
レトロゲームは今となっては逆に新鮮だったり、改めてプレイしてみると以前とは違う発見があったり、まだまだ十分楽しめると思います。
この記事を参考にレトロゲームを遊ぶ環境を整えて、レトロゲームの魅力を発見・再発見してくれる人がひとりでも増えるとうれしいです。
また cartreader に日々貢献している方々にこの場を借りて感謝申し上げます。Thank you very much for your contributions.
以上です。