MiSTer は、現行のハードウェアを使用してさまざまなクラシックコンピューター、コンシューマゲーム機、アーケードゲーム(基板)を再現することを目的としたオープンプロジェクトです。
マウス、キーボード、ジョイスティック、その他のゲームコントローラなどの周辺機器を使用して、ソフトウェアとゲームのイメージを”元のハードウェアと同じように実行”できます。「Welcome to the MiSTer wiki!」を日本語翻訳より
以前より気になっていたものの、FPGAによるゲームハードの再現とPCやRaspberry Piなどでのエミュレータによるゲームのエミュレートが同じゲームを遊ぶ体験として”元のハードウェアと同じように実行”がどれくらい違うのか?何がすごいのかよく分からなかったので、試してみたいとおもいつつ中々手を出すタイミングが無いままでした。
今回、たまたま”MiSTer FPGA”のメイン基板である”DE10-nano”を譲っていただくことになったので、色々試してみることにしました。
DE10-nano入手方法
今回は、仕事で本来のFPGA用途で使っていた知人が使わなくなったということで譲ってもらったのですが、以前より「いつかはMiSTer FPGA始めてみたいなー」とどこで買えば良いか調べていました。
国内ではマルツさんや千石電商さんなどで取り扱っていますが、ラズベリーパイ同様に長期にわたり品切れしていたり、数年前から価格が高騰して価格は3万円後半~4万円後半です。
海外通販になりますが、製造メーカーであるterasICで225ドル+送料で販売しています。
予約販売状態で、即発送ではありませんが2023/3/13現在「2023/3/31発送予定」と書かれているので実質一番手早く確実に入手できそうです。
2023/3/13現在、1ドルが約134円なので225ドルで約30,000円です。送料や関税が上乗せされるので国内価格の3万円代とほぼ同価格です。
外観
メイン基板の”DE10-nano”の大きさは11cm*7cm*3cmで、ほぼ名刺サイズのRaspberry Pi※と比較すると少し大きめです。
※画像のRaspberry PiにはVGA/RGB(SCART)端子を追加する拡張ボードrecalbox RGB DUALが装着されています。
“MiSTer FPGA”を検索するとアクリルやアルミのケースに入った3~4枚の基板が重なったものが沢山出てきますが、便利に使うためのオプション基板を接続した状態のもので、基本的にはメイン基板である”DE10-nano”だけで動作します。
上記画像のDE10-nanoにはオプションの128MBの”SDRAM ボード”を接続済の状態です。
事前に色々なサイトで情報収集していた所「とりあえずメモリだけは付けておけ」「ほとんどのゲーム機の再現でメモリが必要」などと書かれていたので128MBのものを用意しました。
起動準備
MicroSDカードの準備
- MiSTer FPGAのリリースページから最新のイメージファイルをダウンロードして圧縮ファイルを展開します。
(2023/3/13現在「v2.7」が最新バージョンでしたのでダウンロードするのは”mr-fusion-v2.7.img.zip”です) - 解凍されたイメージファイルをWin32 Disk Imagerなどの書き込みソフトを使ってMicroSDカードに書き込みます。
- 書き込みが完了したMicroSDカードをDE10-nanoの基板裏側のスロットに装着します。
モニタに接続
DE10-nano側面についているHDMI端子にケーブルを接続、モニタと接続すれば完了です。
電源に接続
DE10-nano付属のACアダプタで電源を供給すればOKです。
以上で初期起動が始まりました。
起動までの流れはラズベリーパイでRetropieを設定するのと感覚的にはほとんど同じでした。
起動後に必要となる周辺機器
USBハブとUSB OTGケーブル
DE10-nanoにはいくつかインターフェイスが付いていますが、USB端子はmicro-USBが1つ、Mini-USBが2つで通常サイズのUSBやUSB-Cは付いていません。
その為「USBホストケーブル」や「OTGケーブル」と呼ばれるMicro-USBからUSB-Aに変換するケーブルとUSBハブが必要になります。
MiSTer FPGA専用のUSBハブ基板も売っているので、それを購入するのもすっきり収まって良いと思います。
USBコントロールパッド
主にゲームを遊ぶ目的なので、何らかのコントローラは最低1つは必要です。
普段から使っている8bitdoのSF30PROを使ってみることにしました。
なんと、全く設定せずに操作ができるようになっていました。
しかも十字レバーで上下左右はもちろんAボタンで決定、Bボタンでキャンセルと使い慣れた操作方法で最初からメニューが触れたので一気に使い勝手が上がりました。
さらにBボタン下に小さなボタンがホームボタンとして機能したので導入から現在まで完全に操作はこのコントローラで完結しているのでキーボードは一度も接続していません。
ネット接続
DE10-nanoにはLAN端子がついているので有線接続なら繋ぐだけで完了です。
無線接続を行う場合はUSBでWi-Fi子機アダプタなどを追加で接続する必要がありそうですが、有線で繋いでいるので試していません!
初期設定~最初のアップデート
上記の準備が正しく行われていればMiSTer FPGAの初回起動画面が表示されます。
ここで数分待つと起動して砂嵐画面になります。
コントローラのホームボタン(キーボードならF12)を押すと「System Settings」メニューが表示されるので「Scripts」を選び「update」を押すと自動的にデータのダウンロードが開始されアップデートが行われます。
この段階で様々なゲームのコアも自動的にダウンロードされてきました。
ゲームソフトのインストール
事前にダンプしてROMデータ化したゲームのファイルをインストールすればゲームが動くところまできて、ゲームのデータをどうやってインストールしればいいのか?で詰まってしまいました。
SDカードに直接コピー
一番カンタンな方法はDE10-nanoの電源を切り、MicroSDカードを抜き取ってPCで読み込んで「Games」フォルダ内のゲーム機名フォルダに入れる方法です。
フォルダ名は海外でのゲーム名なのでメガドライブなら「Genesis」、スーパーファミコンなら「SNES」、PCエンジンは「TGFX16」と少し分かりづらいですがラズベリーパイでも基本的には海外名準拠だったので、このあたりは慣れるしかありません。(ネオジオは「NEOGEO」だしゲームボーイは「GB」と同じ名前のものも多いので大丈夫!すぐ慣れます!)
FTP接続
ウェブページ(ホームページ)製作などの経験があると使った事がある人も多いFTP接続です。
「FFFTP」などのFTP転送ソフトがお馴染みです。
DE10-nanoをネットワーク接続していれば毎回電源を切らずにゲームなどのアップロードが可能です。
コントローラのホームボタン(F12)を押してメニューを開き、左キーを押すと「Misc. Options」画面になり、IPアドレスが表示されます。
固定IPに設定も可能ですが、とりあえず繋ぐ分には今表示されているIPアドレスに接続で充分です。
今回IPアドレスが「192.168.0.175」だったのでFFFTPの接続設定はこんな感じです。
ホストの設定名:名前なので好きなものでOK
ホスト名:192.168.0.175 ※今回たまたまこの数値なので必ず調べるか固定IPにする!
ユーザ名:root
パスワード:1
ローカルの初期フォルダ:PC側の初期フォルダなのでどこでもOK
ホストの初期フォルダ:/media/fat/games
接続すると、SDカードを抜き取ってPCに繋いだ時と同じフォルダが見えます。
先程同様、ここにゲームのデータをインストールすることができます。
samba接続
FTPソフトなどを使わず、ネットワーク共有フォルダとして直接開いたりコピーをしたりする方法です。
ラズベリーパイのRetropieでは常にこの方法でファイル転送を行っていたので、MiSTer FPGAでもsambaで繋ぎたい!と思っていました。
初期起動時のアップデートで「Scripts」画面に遷移した時に「samba_on」というスクリプトも並んでいたのでこれを選択すればあっさり行けると思っていたのですが…ダメでした。
散々悩んで色々な先人の方のサイトなどを調べても中々正解に辿り着かず、FTP接続で我慢しようかなーと思っていた所、公式wikiの「samba」の項目にバッチリ方法が記載されていました。
- /media/fat/linux/_samba.sh を /media/fat/linux/samba.sh に名前変える
上記FTP接続するか、MicroSDカードをPCに接続して該当のファイル名を書き換えるだけです。 - 再起動
- Scripts > samba_on
- IPアドレスを確認してPC側で接続。デフォルトIDは「root」、パスワードは「1」
- 接続完了!
IPアドレスが192.168.0.175の場合「\\192.168.0.175\sdcard\games」に接続すればFTP接続と同じフォルダに接続されます。
あとはFTP接続同様、該当ゲームハード名のフォルダにゲームのデータを入れればOKです。
ゲームが動いた!あとは楽しむのみ!
初期設定も無事終わり、ファイル転送もsambaで接続できたので毎回電源を切る必要もなくなりました。
CartReader(Cartridge Reader)やJoeyGG cart flasherでゲームをデータ化しているので、色々なゲームをMiSTer FPGAで遊んでみようと思います。
また、IOボードや実機コントローラが接続できる様々なオプションがMiSTer FPGAにはあるので、必要に応じて追加していこうと思います!
まだよくわかってない部分も多いですがMiSTer FPGA、手を出す前に想像していた難しさは全然なくて、ラズパイや中華ゲーム機を扱ったことがある人ならサクっと入れると思いますよ!
参考にしたサイト
「MiSTer FPGAを導入した」とあるゲーマーのweblog Drei
「MiSTer FPGA セットアップメモ」とあるゲーマーのweblog Drei