RetroArch is a modular, command-line driven, multi-system emulator that is designed to be fast, lightweight, and portable. It has features few other emulators frontends have, such as real-time rewinding and game-aware shading based on the libretro API.
Install AUR.AUR from the
A GTK/QT frontend,AUR, is also available.
Each package from the AUR will install an emulator core to
/usr/lib/libretro/[system].so, thus to use
retroarch with your preferred system simply launch it with the
-L parameter. E.g.
retroarch -L /usr/lib/libretro/libretro-snes9x-next.so ~/path/to/game
This emulation core can also be defined in the
retroarch.cfg, thus obviating the need to specify it on the command line.
libretro_path = "/usr/lib/libretro/libretro-snes9x-next.so"
There are currently several emulation cores available including snes9x, bsnes, visual boy advance and final burn alpha. See this AUR search for more.
RetroArch provides a skeleton configuration file located at
/etc/retroarch.cfg and is very well commented.
It is capable of supporting split configuration files using the
#include "foo.cfg" directive within the main
retroarch.cfg file. Alternatively, extra configuration files can be appended on the command line which override the default settings in
retroarch.cfg. This can be achieved by using
--appendconfig /path/to/config and is beneficial if different keybinds, video configurations or audio settings are required for the various implementations.