レトロゲームを高画質・低遅延で楽しむために「MiSTer FPGA」を導入しました
皆さんこんにちは。仕事が落ち着いたら、先日駿河屋で買ったPCエンジンの「天外魔境」で遊ぼうと思っているシオナイト(@sheonite)です。死亡フラグか。
さて、レトロゲームで遊ぼうと思った時に困ることの一つとして、”古いゲーム機が今のテレビに接続できない”ということが挙げられると思います。
その解決策としては、レトロフリークのようなHDMI接続できる互換機を買うのが一般的ですが、超マニアックな界隈で、FPGAの汎用基盤を使った『MiSTer』という自作レトロゲーム互換機が流行っていることを知りましたので、早速導入してみることにしました。
FPGAとは
FPGA(Field Programmable Gate Array)とは、ユーザー側で構成を自由に変えられる集積回路のことです。
一般的なレトロゲーム互換機は、ベースになるコンピュータ上でエミュレータというソフトウェアを動かし、レトロゲーム機のハードウェアをモノマネしています。
エミュレータはその仕組み上、若干ではありますが実機よりもラグが発生すると言われています。最近の高性能PCで動かした場合には、体感できるレベルのラグは発生しませんけどね。
余談ですが、レトロゲームを収録した復刻ミニハードはエミュレータを使用していますので、このラグ問題は避けて通れないようです。特に「イーグレットツー・ミニ」は体感できるほどラグがあるらしい。
対してFPGAですが、レトロゲーム機のハードウェアそのものを集積回路上で再現できるため、ラグが少なく、より実機に近い動作が期待できるとされています。
FPGA(MiSTer)上でのレトロゲームの動作については、下の方に検証動画を添付しておりますので、そちらをご覧ください。すごい再現度です。
また、以前の記事で、FPGAのメガドラ互換機「Mega Sg」を紹介していますので、そちらもご覧いただければ幸いです。
MiSTerとは
今回導入したFPGAの「MiSTer」について、いま流行りのChatGPTに質問したら素晴らしい答えが返ってきましたので、マルっと引用させていただきます。
MiSTerは、FPGAを使用して実際のハードウェアを再現し、古典的なゲームをプレイすることができるオープンソースのプロジェクトです。
MiSTerは、多くの異なるゲームシステムをエミュレートすることができ、例えば、NES(ファミコン)、SNES(スーファミ)、Mega Drive、PC Engine、Amiga、Atari STなどの古典的なゲーム機やコンピュータを再現することができます。
FPGAは、プログラマブルなロジックゲートのアレイを使用して、ハードウェアを再現することができます。
MiSTerは、このFPGAを使用して、ゲームシステムを再現しています。これにより、本物のハードウェアを使用してゲームをプレイすることができるようになります。
MiSTerは、オープンソースであり、多数の開発者がコントリビュートしています。
また、MiSTerには、多くのオプションがあり、ユーザーはFPGAコア、ビデオ出力オプション、ゲームパッド、オーディオ出力などをカスタマイズすることができます。
MiSTerは、FPGAを使用しているため、ハードウェアの再現が非常に正確であり、オリジナルのゲーム機よりも高い画質を実現することができます。
また、ゲームの遅延が非常に低いため、より正確にゲームをプレイすることができます。
MiSTerは、コミュニティで人気があり、多くの人々が古典的なゲームを楽しんでいます。
ChatGPT凄いな(笑)
購入したもの
「MiSTer FPGA」の環境を立ち上げるために購入したものを紹介いたします。最低限必要なのは「DE-10 Nanoボード」と「128MB SDRAM」です。
DE-10 Nanoボード
MiSTerの心臓部、アルテラのFPGAボード「DE-10 Nanoボード」です。
アルテラはかつてアメリカに存在した半導体ベンダーでしたが、2015年にインテルに買収され、現在はインテルのFPGA部門となっています。
DE-10 Nanoボードがゲットできれば、もうMiSTerは完成したと言っても過言ではないのですが、このボードがまぁ手に入らない。
半導体不足の影響をモロに受けて、ネットショップでは軒並み入荷待ち状態。中古でも4~5万円くらい吹っ掛けられます。
私は新品購入を諦め、ヤフオク、メルカリ、ラクマ等のフリマ・オークションアプリの検索ワードに“DE-10”、“Nano”、“FPGA”を登録し、網を張っていました。
出品数は極めて少ないですが、粘り強く待っていれば買えると思います。私は運よく未使用品を3万4千円で購入することができました。
現在の市況を考えた場合、3万円台で購入できそうであれば買いだと思います。1万円台で買えた時期もあったみたいですが、たぶんそんなチャンスはもう来ないと思います。
ちなみに類似のFPGAボードで「DE-0(ゼロ)」というのがありますので、間違って買わないようにしてください。
128MB SDRAM
DE-10 Nanoボード用の拡張RAMです。
DE-10 Nanoボード単体でもMiSTerは動くのですが、拡張RAMを挿さないと動かないレトロハードもありますので、これは必須と言えます。
7,000円程度と少々値が張りますが、amazonで購入できますので入手難易度は低いです。
XS-D V2.9 SDRAMボード、Terasic FPGA用の128MB手動溶接超薄型交換SDRAMボード、Mister FPGA用、安定性と信...
OTGケーブル
microUSBをUSB-Aに変換するケーブルです。
DE-10 NanoボードにはUSB-A端子が付いていませんので、キーボードやUSBコントローラを接続するために必要です。
コントローラ
私は「8bitdo SN30 Pro USBゲームパッド」を購入しました。
スーファミコントローラ型ですので、ファミコンからNEOGEO世代くらいのレトロハードであればこれで十分だと思います。
ABXYボタンの下に小さなボタン(Homeボタン)が付いているのですが、これがデフォルトでMiSTerのメニュー画面を呼び出すボタンが割当てられています。
通常、MiSTerのメニュー画面を呼び出すのは、キーボードを接続してF12キーを押す必要があるのですが、このコントローラがあればキーボードは不要です。
振動機能を内蔵しており、MiSTerと正常に接続できたタイミングでブルっと震えるのもポイント高い。(たまに繋いでも認識されないことがあるので)
8bitdo SN30 Pro USBゲームパッド有線ゲームコントローラ用 Windows/Switch (Gray バージョン)
ACアダプタ(5V 4A)
DE-10 Nanoボードにはセットで5V2AのACアダプタが付いているのですが、IOボードやUSBハブボードなど、MiSTerのシステムを拡張していった場合、動作が不安定になるとの話を聞きましたので、別途4Aのものを購入しました。
4Aのアダプタを変えてから、キーボードやコントローラが認識されない事象が減ったような気がします。気のせいかもしれませんが。
microSDカード(128GB)
MiSTerのシステム、ゲームのROMイメージを格納するためのものです。用途に合った容量のものを購入するようにしましょう。
私は最近使用していない「DJI Osmo Pocket」に挿してたやつを流用しました。
Samsung microSDカード 128GB EVO Plus microSDXC UHS-I U3 Nintendo Switch 動作確認済 最大転送速度130MB...
ヒートシンクと熱伝導両面テープ
チップの冷却効率を高めるためにヒートシンクを買いました。
メインチップのサイズが22mm×22mmなので、25mm角、高さ10mmの製品を購入。5個セットしかなかったので4個はゴミです。
amazonには最初から熱伝導両面テープを貼ってある製品が売ってありますが、普通の両面テープと品質が変わらないらしいので、熱伝導両面テープは別に買ってヒートシンクサイズにカットすることにしました。
USBハブ
キーボードとコントローラを一緒に使う場合必要です。必須ではないかな。
セットアップ手順
セットアップにあたっては、以下のサイトを参考にさせていただきました。ありがとうございました。
MiSTer FPGAイメージファイルの入手
MiSTer FPGAのサイトから、最新のシステムファイル(?)をダウンロードします。
2023年3月28日現在、最新版はv2.7が最新バージョンのようです。
ダウンロードしたzipファイルは解凍しておきましょう。
microSDカードへの書き込み
先ほどのファイルをmicroSDカードに書き込みます。
Win32 Disk Imagerというソフトが分かりやすくて良いと思います。オススメです。
書き込みが完了したmicroSDカードは、DE-10 Nanoボード裏側にあるmicroSDカードスロットに挿しておきましょう。
モニタ、有線LANの接続
HDMIケーブルでDE-10 Nanoボードとモニタを接続します。
電源投入後にオンラインアップデートを実行するので、LANケーブルも接続しておきましょう。
電源接続
DE-10 Nanoボードの電源を投入します。電源スイッチは付いていないので、ACアダプタの抜き差しが電源のON/OFFになります。
下の画面が表示された数分後、砂嵐の画面が表示されたら起動成功です。
アップデート実行
あらかじめ購入しておいたOTGケーブルを使ってキーボードまたはコントローラを接続し、オンラインアップデートを実行します。
キーボードのF12またはコントローラのHomeボタンを押すと「System Settings」メニューが表示されますので、更に「Scripts > update」の順に決定していくとアップデートが開始されます。
アップデートは真っ暗な画面(コマンドライン)で、文字がザーっと流れていく感じで進んでいきます。
アップデート完了後は自動的に再起動し、また砂嵐の画面に戻ります。ここまで7~8分。
アップデート後はmicroSDカード内に、各種レトロゲームハードのアプリケーション(コア)と、ROMイメージを格納するためのフォルダが自動的に作成されます。
動作確認
起動方法とお役立ち情報をちょっとだけ紹介します。
なお、お約束ですが、ROMイメージは「Retro Base Dumper」などを使って各自でご用意ください。友達からもらったり、違法にアップロードされたサイトからダウンロードするのはダメです。
ファミコン
microSDカード内の「games / NES」フォルダにROMイメージを保存します。対応する拡張子は、ROMカートリッジの場合「.nes」、ディスクシステムの場合「.fds」です。
ディスクシステムを使用する場合、NESフォルダ内にBIOSファイルを保存しておく必要があります。BIOSのファイル名は「boot0.rom」です。
一部のゲーム(いわゆる「マッパー」)には対応していないようですが、対応しているゲームの動作はほぼ完ぺきです。
超高級FPGAファミコン互換機「Analogue Nt mini Noir」に搭載されている、スプライトのちらつき防止機能が実装されてます。これは凄い。
VRC6等の拡張音源対応ゲームは、デフォルトの設定では鳴らないみたいです。実装されていないのかな?
※2023年7月11日更新:VRC6ちゃんと鳴ります
なお、下の方の動作検証動画に『コズミックウォーズ(オープニングのみ)』、『ドラゴンクエストIV(オープニングのみ)』を収録していますので、よかったらご覧ください。
PCエンジン
microSDカード内の「games / TGFX16」フォルダにROMイメージを保存します。対応する拡張子は、通常のHuカードの場合「.pce」、スーパーグラフィックスの場合「.sgx」です。
CD-ROM2の場合、CD Manipulator等のソフトを使ってBIN/CUE形式のディスクイメージに変換し、「games / TGFX16-CD」フォルダ内に保存します。
また、CD-ROM2を使用する場合、TGFX16-CDフォルダ内にBIOSファイルを保存しておく必要があります。BIOSのファイル名は「cd_bios.rom」です。
CD-ROM2の「天外魔境 ZIRIA」、「天外魔境II 卍MARU」、「スナッチャー」で動作確認を行いましたが、完ぺきな再現性でした。
下の方の動作検証動画に『スナッチャー(オープニングのみ)』を収録していますので、よかったらご覧ください。
メガドライブ
ROMカートリッジの場合、microSDカード内の「games / Genesis」フォルダにROMイメージを保存します。
メガドライブ のカートリッジには、本体のリージョンに合わせて言語が切り替わるものがありますが、これはMiSTer内の設定で変更が可能です。
また、メニュー切り替えとは別に、ROMイメージの拡張子を変えることで言語設定を切り替えることもできます。対応する拡張子は次のとおり。
- 日本「.bin」
- 米国「.gen」
- 欧州「.md」
ROMイメージの吸い出し器「Retro Base Dumper」を使うと拡張子が自動的に「.gen」になるのですが、メニューで切り替えたらちゃんと言語が日本語に変わりました。
メガCDのゲームは、CD Manipulator等のソフトを使ってBIN/CUE形式のディスクイメージに変換し、「games / MegaCD」フォルダ内に保存します。
メガCDのBIOSは、MegaCDフォルダ内に保存しておく必要があります。BIOSのファイル名は「cd_bios.rom」です。
メガCDのBIOSは、「Mega EverDrive Pro」があると簡単に吸い出せますのでお試しください。いや、普通は持ってないか(笑)。
ちなみにFPGAのメガドラ互換機「Analogue Mega Sg」と、FPGAによるメガCD機能が搭載されたフラッシュカートリッジ「Mega EverDrive Pro」の組み合わせでは不具合が発生する「天下布武~英雄たちの咆哮~」が、MiSTerでは問題なく動きます。素晴らしい。
下の方の動作検証動画に『サンダーフォースIV(オープニング)』、『ザ・スーパー忍(オープニング)』、『ファイナルファイト(オープニング)』を収録していますので、よかったらご覧ください。
オープニングだけ見せて肝心なゲームプレイ動画は見せないスタイル(笑)。
スーパーファミコン
microSDカード内の「games / SNES」フォルダにROMイメージを保存します。対応する拡張子は「.smc」です。
「スターフォックス」で採用されているSuperFXのような特殊チップにも対応しているようです。スターフォックス持ってないので試していませんが。
再現度はほぼ実機と同等。下の方の動作検証動画に『タクティクスオウガ(オープニングのみ)』を収録していますので、よかったらご覧ください。
NEOGEO
今回試した中で、導入のハードルが一番低かったのが、意外にもNEOGEO(ネオジオ)でした。
起動にはBIOSとROMのイメージファイルが必要なのですが、これがなんと合法的に入手(購入)できます。
起動に必須なBIOSは次の3つ。
- 「000-lo.lo」
- 「sfix.sfix」
- 「uni-bios.rom」
BIOSの1と2は、Humbleというショップで買えるNEOGEOソフトに付いてきます。たくさんゲームが欲しい場合は「COMPLETE COLLECTION」を買えばいいんじゃないでしょうか。
Humbleからダウンロードしたexeファイルを実行すると、様々なファイルとともに「neogeo」というzipファイルが出現します。この中に「000-lo.lo」と「sfix.sfix」が入っています。
3の「uni-bios.rom」は非公式の互換BIOSで、こちらから入手できます。
他にも、公式BIOSの「sp-s2.sp1」(アーケード)、「neo-epo.sp1」(家庭用)も使用可能ですが、MiSTer FPGA版では、非公式の「uni-bios.rom」の使用が推奨されています。
Humbleで購入したROMイメージのzipファイル(後述するブレイジングスターはファイル名が「blazstar.zip」)を、「NeoBuilder UI」というソフトを使って拡張子「.neo」に変換します。
最後に、用意したBIOSと拡張子「.neo」のROMイメージを、microSDカード内の「games / NEOGEO」フォルダに保存すれば完了です。
MiSTerからNEOGEOを起動するとデフォルトでは地域がEUに設定されてしまいますが、uni-biosの画面が表示されているうち(2~3秒?)にABCボタンを同時押しすれば、地域選択画面に入れます。
ROMイメージを「.neo」形式に変換しなくても良い方法(「romsets.xml」を作成する方法)もありますが、面倒くさいので割愛します。
下の方の動作検証動画に『ブレイジングスター(1面プレイ動画)』を収録していますので、よかったらご覧ください。ボスでミスってますけど。
動作検証動画
あとがき
一部、正常に動作しないゲームはあるものの、実機と同等に動作して、しかもHDMI接続でクッキリハッキリ、遅延も無い「MiSTer FPGA」は、まさに神ハードです。
「DE-10 Nanoボード」が入手困難だったり、ゲームを吸い出すツールが必要だったりと大変ですが、その労力・コストに十分見合ったリターンがあると思いますよ!
ではまた。
ディスカッション
コメント一覧
まだ、コメントがありません