retroarch - The reference frontend for the libretro API.
retroarch [rom file(s)] [OPTIONS]...
retroarch is the reference frontend for the libretro API.
libretro is an abstraction of a game system, and can be implemented by any
frontend. The libretro API is designed for games, emulators and multimedia.
retroarch focuses on exposing needed functionality for the game
system through the use of command line and configuration files. It also
features a simple built-in UI.
Refers to the built-in GUI system for RetroArch. It is aimed at
being controlled with a gamepad only.
By default, only keyboard input is accepted.
- [rom file]
- If no rom file path is defined on the command line, retroarch will
try to load a core with no rom. This will only work with some libretro
cores. retroarch use uncompressed content, but can uncompress
content in the .zip/deflate format if support for it is compiled in.
Content types supported depend on the libretro implementation used.
- --help, -h
- Prints help text.
- Starts directly in in-game menu if enabled. Does not require content or
libretro implementation to be set. These can be loaded afterwards in the
menu. If no arguments are passed to retroarch, it is equivalent to calling
retroarch with this as only argument.
- --features
- Prints available features compiled into RetroArch, then exits.
- -L PATH, --libretro
PATH
- Path to a libretro implementation which is to be used. This option will
override any setting in a config file. This option is only available if
RetroArch is compiled with dynamic libretro loading.
- --save PATH, -s
PATH
- Overrides the path used for save ram (*.srm) (deprecated). Without this
flag, the save ram path will be inferred from the rom path name, and put
in the same directory as the rom file with the extension replaced with
'.srm'. If PATH is a directory, RetroArch will treat this as the save file
directory, where the save file name will be inferred from the rom name.
- --savestate PATH,
-S PATH
- Overrides the path used for save states (deprecated). Without this flag,
the save state path will be inferred from the rom path name, and put in
the same directory as the rom file with the extension replace with
'.state'. If PATH is a directory, RetroArch will treat this as the save
state directory, where the state file name will be inferred from the rom
name. Do note that save states are bound to the libretro implementation
being used. Using a different libretro could invalidate the save state
file.
- --fullscreen,
-f
- Always starts RetroArch in fullscreen. Disregards settings in
configuration file.
- --config PATH, -c
PATH
- Sets the configuration file path. retroarch will use this path to
load the configuration file. Should this not be defined, retroarch
will look in platform specific paths to attempt finding the config file.
/etc/retroarch.cfg (when installed), or retroarch.cfg in the source
tarball serves as a skeleton configuration file. /etc/retroarch.cfg should
serve as a skeleton config only.
- Unix-like systems will look in $XDG_CONFIG_HOME/retroarch/retroarch.cfg
first. If $XDG_CONFIG_HOME is not defined, it is assumed to be
$HOME/.config as per specification. Then it will try $HOME/.retroarch.cfg.
If both paths fail, RetroArch will try to create a new, default config
file in $XDG_CONFIG_HOME/retroarch/retroarch.cfg (or the $HOME/.config
default for $XDG_CONFIG_HOME). If all fails, default settings will be
assumed. If RetroArch creates a new default config file, it will attempt
to load the skeleton config file /etc/retroarch.cfg and use that as a
basis. This allows distributions to set up default paths for libretro
cores, and similar things. A configuration file does not need to define
every possible option, only those which should be overridden.
If config_save_on_exit = true is set in the config file,
RetroArch will overwrite the config file on exit. Settings can be
changed from within the menu. If RetroArch overwrites a config file,
formatting, comments, etc will be lost. If RetroArch creates a default
config file, it will have config_save_on_exit set automatically.
- Windows will look in retroarch.cfg in same folder where retroarch.exe
resides. A default config file will also be created in the same manner as
Unix.
- --appendconfig
PATH
- Appends a different set of config files to the config file loaded in -c
(or default). Multiple config files are delimited by ','. Every config
file will be appended in order where the key-value pairs of the next
config file takes priority over the old ones.
- --subsystem
SUBSYSTEM
- Use a subsystem of the loaded libretro core. Multiple content files are
loaded as multiple arguments. If content is skipped, use a blank
("") command line argument. Content must be loaded in an order
which depends on the particular subsystem used. See verbose log output to
learn how a particular subsystem wants content to be loaded.
- --nodevice PORT, -N
PORT
- Disconnects an input device from port number PORT. Possible values for
PORT are 1 to 8. This may be needed for some odd games to run properly. If
set explicitly here, overrides config file for that port.
- --dualanalog
PORT, -A PORT
- Connects a DualAnalog controller into port PORT. Possible values are 1 to
8. If set explicitly here, overrides config file for that port.
- --device PORT:ID, -d
PORT:ID
- Connects a generic input device ID into port PORT. Possible values for
port are 1 to 8. If set explicitly here, overrides config file for that
port. ID is an unsigned number corresponding to the device for a libretro
core.
- --record PATH, -r
PATH
- Activates video recording of gameplay into PATH. Using .mkv extension is
recommended. Codecs used are (FFV1 or H264 RGB lossless (x264))/FLAC,
suitable for processing the material further.
- --recordconfig
PATH
- Sets path to a config file for use during recording.
- --size
WIDTHxHEIGHT
- Allows specifying the exact output width and height of recording. This
option will override any configuration settings. The video input is scaled
with point filtering before being encoded at the correct size.
- --bsvplay PATH, -P
PATH
- Play back a movie recorded in the .bsv format (bsnes). Cart ROM and movie
file need to correspond. It also requires to play back with the same
libretro backend that was used for recording.
- --bsvrecord PATH,
-R PATH
- Start recording a .bsv video to PATH immediately after startup.
- --sram-mode MODE,
-M MODE
- MODE designates how to handle SRAM. The format of the second parameter is
{no,}load-{no,}save. These two boolean values tell if SRAM loading and
SRAM saving should take place. Note that noload-save implies that the SRAM
will be overwritten with new data.
- --verbose,
-v
- Activates verbose logging.
- --host, -H
- Be the host of netplay. Waits until a user connects. The host will always
assume user 1.
- --connect SERVER, -C
SERVER
- Connect to a host of netplay. Will always assume user 2.
- --frames FRAMES, -F
FRAMES
- Sync frames to use when using netplay. More frames allow for more latency,
but requires more CPU power. Set FRAMES to 0 to have perfect sync. 0
frames is only suitable for LAN. Defaults to 0.
- --port PORT
- Network port used for netplay. This defaults to 55435. This option affects
both TCP and UDP.
- --spectate
- If netplay is used, it will go into a spectator mode. Spectator mode
allows one host to live stream game playback to multiple clients.
Essentially, clients receive a live streamed BSV movie file. Clients can
connect and disconnect at any time. Clients thus cannot interact as user
2. For spectating mode to work, both host and clients will need to use
this flag.
- --command
CMD
- Sends a command over UDP to an already running RetroArch application, and
exit. The command is formatted as "COMMAND;HOST;PORT". HOST and
PORT are both optional. "COMMAND;HOST" will set PORT to
"network_cmd_port" default setting. If only "COMMAND"
is used, HOST and PORT will be assumed to be "localhost" and
"network_cmd_port" respectively.
The available commands are listed if "COMMAND" is
invalid.
- --nick NICK
- Pick a nickname for use with netplay. This is purely cosmetic, and only
serves to help users identify each other.
- --ups PATCH, -U
PATCH
- Attempts to apply an UPS patch to the current content image. No files are
altered. If this flag is not specified, RetroArch will look for a .ups
file with same basename as content specified.
- --bps PATCH
- Attempts to apply a BPS patch to the current content image. No files are
altered. If this flag is not specified, RetroArch will look for a .bps
file with same basename as content specified.
- --ips PATCH
- Attempts to apply a IPS patch to the current content image. No files are
altered. If this flag is not specified, RetroArch will look for a .ips
file with same basename as content specified. Note that RetroArch cannot
perform any error checking if patching was successful due to how IPS
works.
- --no-patch
- Disables all kinds of content patching.
- -D, --detach
- Detach from the current console. This is currently only relevant for
Microsoft Windows.