RetroArch
RetroArch はモジュール式のコマンドラインを使用する、マルチシステムエミュレータです。高速かつ軽量で、移植性が高くなるように設計されています。RetroArch には他のエミュレータには見られないような機能もあり、リアルタイムの巻き戻しや libretro API によるゲーム別のシェーディングなどが出来ます。
インストール
retroarch パッケージをインストールしてください。あるいは開発版を使いたい場合は retroarch-gitAUR をインストールしてください。
使用方法
RetroArch はエミュレータコアやエミュレータ実装と呼ばれる形でライブラリを分離しており Community リポジトリや Libretro GitHub リポジトリ から入手できます。
libretro コアパッケージはライブラリを /usr/lib/libretro/
にインストールします。ライブラリを選択して retroarch を実行する場合:
$ retroarch --libretro /usr/lib/libretro/libretro-core.so path/to/rom
デフォルトのエミュレーションコアは retroarch.cfg
で定義でき、毎回コアを指定する必要がなくなります。例:
~/.config/retroarch/retroarch.cfg
libretro_path = "/usr/lib/libretro/libretro-core.so"
設定
RetroArch の設定ファイルは /etc/retroarch.cfg
にあり、コメントが大量に付記されています。
デフォルトの設定ファイルをホームディレクトリにコピー:
$ cp /etc/retroarch.cfg ~/.config/retroarch/retroarch.cfg
メインの設定ファイル retroarch.cfg
で #include "foo.cfg"
ディレクティブを使うことで設定ファイルを分割することができます。--appendconfig /path/to/config
パラメータを使うことで設定を上書きすることができ、キーバインドやビデオ設定、音声設定などを実装に合わせて変更する必要がある場合に便利です。
Tips and tricks
Enabling the Online Updater
If you prefer to install all RetroArch components with the built in updater instead of pacman, you can enable it with a configuration file:
~/.config/retroarch/retroarch.cfg
menu_show_core_updater = "true"
Enabling SaveRAM Autosave Interval
By default, RetroArch only writes SRAM onto disk when it exits without error, which means that there is a risk of losing save data when using crash-prone cores. To change this behavior, open ~/.config/retroarch/retroarch.cfg
and set autosave_interval
to n.
~/.config/retroarch/retroarch.cfg
autosave_interval = "600"
With the example above, RetroArch will write SRAM changes onto disk every 600 seconds.
Filters and shaders
RetroArch can load BSNES XML filters and CG shaders. These are set in retroarch.cfg
with video_bsnes_shader
and video_cg_shader
respectively. The shaders can also be obtained and updated directly inside RetroArch using the Online Updater.
Reset settings to their default value
To reset a setting or keybind to its default value through the GUI, highlight it and press Start
. To remove a button from a keybind, highlight the keybind and press Y
.
オンラインアップデータ
最近のバージョンの RetroArch には、RetroArch Buildbot からコアファイルや様々なアセットデータなどを更新できるメニューがあります。メインメニューの "Online Updater" からアクセスできます:
Online Updater
Core Updater Update Core Info Files Update Assets Update Autoconfig Profiles Update Cheats Update Databases Update Overlays Update GLSL Shaders
上記のコア・アセットファイルは最新状態が保たれ、常時アップデータから取得することができます。
トラブルシューティング
No cores found
デフォルトでは RetroArch は /usr/lib/libretro/
からコアを検索します。付属のオンラインアップデータでダウンロードされたコアは root で retroarch を実行しないと保存されません (推奨されません、pacman によってインストールされたコアを上書きしてしまう恐れがあります)。ユーザーではディレクトリを編集する権限がないためです。オンラインアップデータのコアを使うには、以下の行を編集してください:
~/.config/retroarch/retroarch.cfg
libretro_directory = "~/.config/retroarch/cores" libretro_info_path = "~/.config/retroarch/cores/info"
メニューにコアをアップデート・ダウンロードするオプションが存在しない
~/.config/retroarch/retroarch.cfg
または /etc/retroarch.cfg
を開いて menu_show_core_updater
が true
に設定されていることを確認してください。設定すると Online Updater メニューからコアをアップデートして Load Core メニューからコアをダウンロードできるようになります。
入力デバイスが使えない
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*
もしくは、ユーザーを "input" グループに追加してください。例:
# usermod -a -G input user
ビデオパフォーマンスが悪い
ビデオパフォーマンスが低いのを補うために、~/.config/retroarch/retroarch.cfg
に video_threaded = true
と設定することで RetroArch を別のスレッドで実行することができます。
ただし、垂直同期が完全に使えなくなり、遅延が多少増えるため、RetroArch のビデオ解像度やリフレッシュレートを調整することで問題が解決する場合はこの手段は使わないほうが良いでしょう。
Audio issues with ALSA
When using ALSA the audio_out_rate
must match the system's default output rate, usually 48000
.
Save data is lost whenever RetroArch crashes
See #Enabling SaveRAM Autosave Interval.