RetroArch
RetroArch はモジュール式のコマンドラインを使用する、マルチシステムエミュレータです。高速かつ軽量で、移植性が高くなるように設計されています。RetroArch には他のエミュレータには見られないような機能もあり、リアルタイムの巻き戻しや libretro API によるゲーム別のシェーディングなどが出来ます。
インストール
RetroArch — 安定版。
RetroArch (git) — 開発版。
RetroArch-Phoenix (git) — GTK+ フロントエンド、開発版。
- https://github.com/Themaister/RetroArch-Phoenix || retroarch-phoenix-gitAUR[リンク切れ: アーカイブ: aur-mirror], retroarch-phoenix-qt-gitAUR[リンク切れ: アーカイブ: aur-mirror] (qt ビルド)
使用方法
RetroArch はエミュレータコアやエミュレータ実装と呼ばれる形でライブラリを分離しており AUR や libretro github リポジトリ から入手できます。
AUR のパッケージはライブラリを /usr/lib/libretro/
にインストールします。ライブラリを選択して retroarch を実行する場合:
$ retroarch -L /usr/lib/libretro/libretro-(emulation core).so ~/path/to/foo
デフォルトのエミュレーションコアは retroarch.cfg
で定義でき、毎回コアを指定する必要がなくなります。
例:
/etc/retroarch.cfg or ~/.retroarch.cfg
libretro_path = "/usr/lib/libretro/libretro-foo.so"
設定
RetroArch の設定ファイルは /etc/retroarch.cfg
にあり、コメントが大量に付記されています。
メインの設定ファイル retroarch.cfg
で #include "foo.cfg"
ディレクティブを使うことで設定ファイルを分割することができます。--appendconfig /path/to/config
パラメータを使うことで設定を上書きすることができ、キーバインドやビデオ設定、音声設定などを実装に合わせて変更する必要がある場合に便利です。
トラブルシューティング
入力デバイスが使えない
RetroArch を CLI で実行したり Xorg 以外のディスプレイサーバーで実行すると問題が発生します。/dev/input
ノードは root だけがアクセスできるように制限されているためです。この問題は手動で KERNEL=="event*", NAME="input/%k", MODE="666"
という中身のルールを /etc/udev/rules.d/99-evdev.rules
に追加することで解決します。次を実行して udev ルールをリロードしてください:
# udevadm control --reload-rules
システムを再起動したりデバイスの再接続ができない場合、次のコマンドでパーミッションを強制的に設定することもできます:
# chmod 666 /dev/input/event*
ビデオパフォーマンスが悪い
ビデオパフォーマンスが低いのを補うために、~/.config/retroarch/retroarch.cfg
に video_threaded = true
と設定することで RetroArch を別のスレッドで実行することができます。
ただし、垂直同期が完全に使えなくなり、遅延が多少増えるため、RetroArch のビデオ解像度やリフレッシュレートを調整することで問題が解決する場合はこの手段は使わないほうが良いでしょう。