カテゴリー
環境整備

MiSTer FPGA セットアップメモ

自分が “MiSTer FPGA” をセットアップしたときの経験をもとに、これからの人にこう進めたらいいのではないかと思ったことをメモしておく。詳細に書くと精度が上がるかわりに難しそうに見えるようになるだろうという考えのもとにざっくりと書いているので、そこは汲んで欲しい。


まずは方針ついて自分的な結論から。

  • Terasic DE10-Nano さえあれば始められる。何を揃えればいいか判断しきれないならとりあえずDE10-Nanoだけで始めて、パーツ類を買い足していくスタイルでもかまわない(※1)。
  • 古めの日本語ドキュメントを見るより MiSTer FPGA DocumentationMiSTer Wikiの最新のセットアップガイドを見た方がよい(※2)。必要なら機械翻訳を活用すればよい。
  • 0からシンプルなGENESISコアを動かすのに必要なセットアップ手順は数手順でしかなく、Update込みでも1時間かかるかどうかって程度。そこまでやればどんなパーツが追加で必要かもある程度理解できると思うので、まずはスタートを切るのが重要。


※1 最初から必要なパーツを見切れる人はそれで進めてよい。

※2 そういう意味で、この記事も具体的な手順については2022年8月8日時点のものでしかないと理解して欲しい。ただ、どういう方針で進めたらいいかというここのまとめ部分については変わらないだろうと予測している。


前記方針をもとにインストール・セットアップを進める場合、大きく分けて以下の3段階にわけて考えるといいだろう。パーツ購入を後回しにしている場合は、2と3の順番は逆にしてよい。

  1. 最小セットアップとごく簡単な動作確認
  2. SDRAM、IOボード、USBハブなどの取り付け
  3. 動作テスト(SNACあり、なし両方)

なお、無線LANの設定は下記どのタイミングでもよい。自分の場合、初期セットアップは有線LANでおこない、最後にWi-Fi設定をした。当然、無線LANの設定前にWi-Fiドングルを用意する必要がある。自分の場合、BlueToothとWi-Fi両対応のドングルを使い、Wi-Fiと小型のワイヤレスキーボードを1つのドングルで運用できるようにした……が、運用しはじめたらふだんはキーボードは必要ないことがわかり、HOMEボタン付きのUSBパッドでMiSTer OSD上の操作をおこなうようにしている。


ここからはもう少し具体的に。

1.最小セットアップとごく簡単な動作確認
まずは最小限のセットアップをする。必要なのは下記下記3点。

microSDカードはDE10-Nano付属のものでもよいが、高速かつ大容量のものを用意しておいた方がよりよいだろう。microSDカードの容量は手持ちのROMイメージ総量と今後の予測を入れて考えればよい。RetroNASを使うのであれば、microSDの容量は小さくてよいと思うが、この話はここでは掘り下げない。

microSD選定例

DE10-NanoのUSB端子はUSB miniBなので、キーボードを繋ぐためのOTG変換ケーブル/コネクタは事前に用意しておきたい。TerasicからDE10-Nanoを買うときにオプションでつけてもよいし、国内でいくらでも買えるので好きなのを選べばよい。2番で取り付けるUSBハブを最初から取り付けるのもありだが、今回はまずは最小限の構成で確認をしたい。

準備はここまでで、初期セットアップ手順は前記したように MiSTer FPGA DocumentationSetup MicroSD Card か MiSTer WikiのSetup Guideを見て欲しい。

といっても最新のインストーラをmicroSDにWin32 Disk Imager なりでFlashし、DE10-Nanoに入れて起動すれば終わりと10分もかからなかったりするので、まずは手を動かして欲しい。

そのあと、LAN接続しUpdateスクリプト(update.sh)を実行しても合計1時間もかからずに最小限のMiSTer環境構築は終わるだろう。操作ミスして困ったときはF12を押すことを覚えておいた方がいいくらいで本当に簡単。

(公式ドキュメントで “download.sh” の記載があるところは “update.sh” に読み替える)

この後の作業で問題が起きたときの切り分けのためにこの時点で軽く動作確認しておいた方がよい。

Scriptsからtimezon.shを実行すると日本時間になるのでついでにやっておきたい。

2.SDRAM、IOボード、USBハブなどの取り付け
ここからはオプションで。

パーツ類の購入はMiSTer Addonsなどのパーツショップを利用すればいいだろう。電源など国内通販で同じものが取り扱われているものはそちらでもよい。

なお、安定動作のために下記2点は必須に近いようだ。

初期セットアップ時はDE10-Nano付属の電源で十分なのだが、各種パーツをつけたあとだと安定動作のために大容量の電源を使うことがMiSTer Setup Guideでも推奨されているので用意したい。

アナログモニタに繋げたい場合は以下も。

アナログタイプのIOボードにはミニD-sub 15ピン出力端子がついており、RGBHVでのVGA接続をすることもできれば、ミニD-sub 15 to SCARTケーブルで15Hzモニタに4:3で接続することもできる。ミニD-sub 15 to Componentという選択肢もある。インストールはDE10-Nanoの上部のアクリル板を外し、きちんと位置合わせをしてピンを折らないように差し込むだけ。ヒートシンクもついてくるので、せっかくだから使いたい。

ミニD-sub15ピン → SCARTでのアナログ出力例

なお、アナログ出力する場合は MiSTer.ini の設定を下記なりにすればよい。これはあくまで15kHz出力する際の例であり、31kHz以上で出力したいときはまた異なるので注意して欲しい。

direct_video=1
composite_sync=1
video_mode=6          ; 640x480@60Hz

普段はアナログ15kHz出力でHDMI出力設定に戻すときにいちいちMiSTer.iniを編集したくない人は別途MiSTer_alt_1.ini なりを用意しておけばいいだろう

direct_video=0
composite_sync=0
video_mode=8          ; 1920x1080@60

アナログ接続の必要がない場合はデジタルタイプのIOボードを選べばよいが、SNAC(後述)を使わないなら優先順位を下げてもいいと思う。なお、デジタルタイプのIOボードを使用する場合、DE10-Nano本体のDIPスイッチを切り替える必要があるので注意したい。

IOボードを導入した場合、低ラグにこだわる人はSNAC各機種用SNACコントローラーアダプターも用意したい。MiSTerでアケコンやパッドを使うには、通常USBコントローラーをDE10-NanoのUSB miniB端子につけたUSBハブに繋げばよく、MiSTer自体が超低ラグなのもあって十分に低ラグなのだが、SNAC + SNACコントローラーアダプタ + 実機用コントローラを使うとさらに入力時のラグを減らせるメリットがある。

前述したようにDE10-NanoにはUSB-A端子がないため、USB miniB経由でDE10-Nanoと同サイズのUSB Hubがあるのを使いたい。Wi-Fiドングルもここにつければよいが、電力不足にならないようUSB Hubに電源供給もしたい。そのためにスイッチ付きSplitter もあると電源が一つですむのでいいだろう(※3)。下記リンクしたように、MiSTer Addonsではそこまでがセットの商品になっている。

※3 電源はこれもあるので大容量のものに変更したい

  • 本体ケース

ケースは本当にお好みで。ゲーム機っぽい形をしたものもあれば、武骨なアルミニウムケースやアクリルケースもあり、好きにすればよいだろう。MiSTer Addonsの Aluminum Passively Cooled Case and Accessories は冷却効果を謳っているが、ずっと品切れているので、自分はとりあえずU.K.のパーツショップの MiSTer Case Acrylic を使っている。

なお、2番のここまでの記載についてもあくまで2022年8月時点での事例でしかなく、将来的にはもっとよい構成になっていくことが予想されるので、そこは注意して欲しい。MiSTer AddonsなどではKitも売っているので、そちらの構成を参考にすれば、その時点でのトレンドがわかると思う。というか、Kitを買うのもありだとは思う。


あとは自分の使いたいコアの動作確認をすればよい。家庭用ゲーム機用のコアはConsoleディレクトリ下にあるのだが、update.shにより自動的に不要なものも大量にインストールされて選択するのが手間なので MiSTer_Favorites スクリプトでよく使うコアをトップレベルなり、Favoritesディレクトリなりにショートカットを作成すればよいだろう。

SNACを用意していない機種はUSB Hubの方に繋いだコントローラで、SNACを用意してある機種はSNAC経由で実機のコントローラを繋ぎテストをしたい。

SNACの設定は各COREごとにInput > Serial : SNAC を選択すればよい。32Xコアでデフォルトで1P/2Pが入れ替わっていたときには Swap Joysticks: Yes で対応できた。

自分がIOボードやUSB Hubを組み立てたり、各種コアの動作確認したときのログは別記事に記載しているので参考になればと。

あと、起動時の背景画面の砂嵐が好きになれない人はF1で変えられるとか、BluetoothはF11でペアリング開始だとか、キーボードショートカットの一覧を見られるようにここにリンクしておく。


[その他メモ(公開時から追記ぶん)]

各種Scriptが提供されている場所。ファイル名から機能は察することはできるだろうってことで。


[関連サイト]


[関連記事]

Pocket