RetroArch CLI¶
RetroArch can be used from its robust graphical interfaces as well as a powerful command-line interface (CLI). Getting familiar with the command-line helps you understand the design principles of RetroArch.
Note: please be aware of whether your system uses DOS/Windows style paths with backslashes \ or Unix-style paths with forward slashes: /.
Some cores like ScummVM (which also has an inbuilt GUI file browser), do not require any content file name passed as a command line argument. This is determined by the core info files with the line supports_no_game = "true". In this case, after you have loaded the core and if it is not starting directly, select 'Start Core' that will appear inside the main menu.
On macOS: invoking the RetroArch CLI executable¶
/Applications/RetroArch.app/Contents/MacOS/RetroArch
Example: loading a ROM and libretro core (Unix-style path)¶
retroarch -L /path/to/libretro/core.so game.rom
Example: loading a ROM and libretro core with flatpak¶
retroarch -L /path/to/libretro/core.so game.rom
flatpak run org.libretro.RetroArch/x86_64/stable -L /home/MYUSERNAME/.var/app/org.libretro.RetroArch/config/retroarch/cores/nestopia_libretro.so Tetris.nes
Example: loading a ROM and libretro core with Steam¶
steam -applaunch 1118310 -L "/path/to/steamapps/common/RetroArch/cores/nestopia_libretro.so" "/path/to/Tetris.nes"
Content filenames require no spaces, as there is an issue with Steam passing through command line arguments containing spaces.
Verbose logging output¶
To get a better idea on what's going on, use the --verbose flag. If you want to report a bug, it is vital that this log is included.
Using a config file¶
By default, RetroArch looks for a config in various places depending on OS:
- Linux/macOS:
$XDG_CONFIG_HOME/retroarch/retroarch.cfg, then~/.config/retroarch/retroarch.cfg, then~/.retroarch.cfg, and finally, as a fallback,/etc/retroarch.cfg. - Windows:
retroarch.cfgin same folder asretroarch.exe, then%APPDATA%\retroarch.cfg.
To override this, use retroarch --config customconfig.cfg. If you have some special options you want to store in separate config files, you can use retroarch --config baseconfig.cfg --appendconfig specialconfig.cfg. Be sure to pass --menu as well if you aren't loading content directly from the command-line, or RetroArch will close immediately after launching. See man-page and/or --help for detail.
Other essential CLI flags¶
retroarch --help¶
Use the --help help flag to display RetroArch's built-in CLI documentation. You'll probably discover some features you didn't think about.
retroarch --features¶
If you're unsure if a particular feature is compiled in, execute retroarch --features