Retro ROM Reader - ファームウェアの更新

Retro ROM Reader - ファームウェアの更新

2025.07.18 2025.12.23

Retro ROM Reader のソフトウェア部分は cartreader をほぼそのまま使っており、またハードウェアも互換性を保っています。そのため基本的には cartreader と同じ手順でファームウェアの更新が可能です。

ファームウェアのバージョンは製造時に安定しているものを適宜採用していますが、最新のリリースに含まれる変更を反映したい、VSELECT を有効にしたいなど、ファームウェアの更新が必要な場合は以下の手順に従って更新してください。

またファームウェアを更新した場合、microSD カードに保存されているファイルも同じバージョンのものに更新してください。バージョンが合わないとカートリッジを認識できなくなる場合があります。詳細は後述します。

現在のバージョンの確認

Retro ROM Reader にスロット(どれでもいい)をセットし、microSD カードを差し込んでから電源を入れます。

左側のボタンでメニューを下に降りていき次のページに行くと About というメニューがあるので、右ボタンで選択します。

Retro ROM Reader で About のメニューを表示
実は次のページがあります

About を選択すると、バージョンが表示されます。

Retro ROM Reader で About を表示
最近 V15.0 に更新しました

ここで確認したバージョンをメモしておきます。もしファームウェアの更新に失敗したり、更新後にうまく動かなかった場合に、このバージョンに戻します。

なお、戻すといっても手順は以下と同じで、ダウンロードするソースコードをそのバージョンのものにするだけです。

以下、実際の更新手順です。

注意事項

  • microSD カードおよびゲームカートリッジは取り外してから作業を行ってください。
  • NINTENDO 64、GameBoy Advance 以外をカートリッジスロットを使ってください。供給される電圧が足りず故障の原因になります。
  • 電源投入時に「Press button to enable 5V for updating firmware…」が表示される場合、必ずどちらかのボタンを押して電圧を切り替えてから更新を開始してください(詳細は後述します)。

Windows の場合

基本的には Mac の場合と同じなので、このあとの Mac の手順をご覧ください。ソースコード(Cart_Reader と libraries)の置き場所も同じような感じでした(C:\Users\ユーザー名\Documents\Arduino)ので、大きな差分はないと思います。 #参考

なお Windows の場合はソースコードなど諸々が入った Portable.zip (詳しくは後述します)に含まれる Arduino IDE が使えます。Arduino IDE のインストール、ソースコードのコピーが不要になるのでこちらを使ってもいいかもしれません。なお Arduino IDE を起動したあとは Mac の手順と同じです。 #参考

Mac の場合

Arduino IDE をここからダウンロードしてインストールしておきます。

Arduino IDE をダウンロード
Arduino IDE をダウンロード

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

cartreader のソースコードをダウンロード
cartreader のソースコードをダウンロード

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

cartreader のソースコードをコピー
cartreader のソースコードをコピー

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

Cart_Reader スケッチを開く
本体の実装、機種ごとの実装などで様々なファイルが含まれています

ここでソースコードをいくつか変更します。対象のファイルは 3 つです。

はじめに config.h です。

config.h をタブから選択し、ファイルの冒頭 32 行目あたりに「//#define HW5」があるので「//」を消して「#define HW5」とし、さらに 47 行目あたりに「//#define ENABLE_VSELECT」があるので同じく「//」を消して「#define ENABLE_VSELECT」とします。

config.h を編集して HW5 と VSELECTを有効化
config.h を編集して HW5 と VSELECT を有効化

続いて 573~575 行目あたりの「#define ENABLE_LCD」、「#define ENABLE_NEOPIXEL」、「#define ENABLE_ROTARY」の 3 行の先頭にそれぞれ「//」を追加し、そのうえに「#define ENABLE_OLED」と「#define ENABLE_BUTTON2」の 2 行を追加します。

config.h を編集して OLED と BUTTON2 を有効化
config.h を編集して OLED と BUTTON2 を有効化

次に Cart_Reader.ino です。

Cart_Reader.ino をタブから選択し、2224 行目あたりにある #ifdef ENABLE_OLED の中の display.begin(); の下に「display.setFlipMode(1);」を 1 行追加します。

Cart_Reader.ino に display.setFlipMode(1); を追加
Cart_Reader.ino に display.setFlipMode(1); を追加

次に 2146 行目あたりの「DDRG &= ~(1 « 2);」の下に「DDRD &= ~(1 « 7);」を 1 行追加し、さらに2160 行目あたりの「DDRD |= (1 « 7);」を「DDRD |= (1 « 3);」に変更します(7 を 3 に変えます)。

Cart_Reader.ino にて VSELECT 関連のピンを変更
Cart_Reader.ino にて VSELECT 関連のピンを変更

続いて 422 行目あたりの「uint32_t byte_count;」の「u」を削除して「int32_t byte_count;」にします。またすぐ下 425 行目あたりの「!= 0」を「> 0」に変えます。

Cart_Reader.ino にて calculateCRC を修正
Cart_Reader.ino にて calculateCRC を修正

さらに 1627 行目あたりの「// Test if pin 7 …」の上に「/*」を、1643 行目あたりの「}」の下に「*/」を追加します(サポート対象外のセルフテストなので無効化します)。

Cart_Reader.ino にてセルフテストを一部無効化
Cart_Reader.ino にてセルフテストを一部無効化

最後に OSCR.cpp です。

OSCR.cpp をタブから選択し、265 行目あたりの「PORTD &= ~(1 « 7);」の「7」を「3」に変更し、「PORTD &= ~(1 « 3);」とします。

OSCR.cpp にて VSELECT 関連のピンを変更
OSCR.cpp にて VSELECT 関連のピンを変更

同じく 318 行目あたりの「PORTD |= (1 « 7);」の「7」を「3」に変更し、「PORTD |= (1 « 3);」とします。

OSCR.cpp にて VSELECT 関連のピンを変更
OSCR.cpp にて VSELECT 関連のピンを変更

ソースコードの変更は以上です。ウィンドウ左上のボタンを押し、変更に問題がないことを確認します。

問題なくコンパイルできることを確認
問題なくコンパイルできることを確認

エラーメッセージが表示され失敗するようであれば、再度変更内容を確認してください。特に全角スペースなど全角文字が使われるとエラーになりますのでご注意ください。

最後に、実際に本体にファームウェアをアップロードして更新します。

まず Arduino IDE で扱うボードの種類を指定します。Retro ROM Reader は Arduino Mega 互換なので「Arduino Mega or Mega 2560」を選択します。

ボードの種類を選択
Arduino Mega or Mega 2560 を選択

次に Retro ROM Reader を PC に接続して電源を入れます。USB ケーブルで接続して認識されるとポートが選択できるようになるので選択します。

USB で接続
USB で接続

選択するとウィンドウ下部に「Arduino Mega or Mega 2560 on /dev/du.usbserial-110」というような表示が出ると思います。

なお選択できない場合は、USB ケーブルに問題がないか、PC の USB ポートに問題がないか、他の PC や電源に繋いでみて電源が入るか(電源が入るとLEDが光ります)、などを確認してみてください。

続いて、本体の画面を確認します。以下のような表示が出ていたらどちらかのボタンを押してファームウェア更新用の電圧に切り替えます。

更新用の電圧に切り替える
更新用の電圧に切り替える
更新用の電圧に切り替わったところ
更新用の電圧に切り替わったところ

なお、microSD カードが挿さっていると通常のメニューが表示されてしまい電圧の切り替えができないので、挿さっていないことを今一度確認してください。また電圧の切り替えが必要ない場合は以下のような表示になります。この場合はそのまま次の手順に進んでください。

更新用の電圧に切り替える必要がない場合
更新用の電圧に切り替える必要がない場合

上記が確認できたらソースコードを Retro ROM Reader にアップロードしてファームウェアを更新します。ウィンドウ上部の矢印ボタンを押すとアップロードが始まります。

ファームウェアを更新
ファームウェアの更新が終わったところ

アップロードが問題なく終わると上記の画像のように「Done uploading.」の表示が出ます(しばらくすると消えます)。なおアップロードは 1 分くらいで終わると思います。

またアップロードが終わると Retro ROM Reader が再起動します。再起動後はアップロード前と同じように画面が表示され、ボタンで操作できるはずです。

microSD カードの更新

冒頭にダウンロードしたソースコード(V15.0_Portable.zip など)の中に「SD Card」というフォルダが入っていますので、中身のファイルをすべて microSD カードにコピーします。

SD Card の中身をコピーしたところ
SD Card の中身をコピーしたところ

ファームウェアのバージョンと必ずしも合っていないといけないというわけではありませんが、V15.4 などカートリッジの認識に関する部分に変更が入り併せて更新が必要なことがあるのでファームウェア更新の際には一緒に更新しておいた方が無難です。

以上です。