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¶
Example: loading a ROM and libretro core (Unix-style path)¶
Example: loading a ROM and libretro core with flatpak¶
Example: loading a ROM and libretro core with Steam¶
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:
~/.retroarch.cfg, and finally, as a fallback,
retroarch.cfgin same folder as
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¶
--help help flag to display RetroArch's built-in CLI documentation. You'll probably discover some features you didn't think about.
If you're unsure if a particular feature is compiled in, execute