SSNES(1)

NAME
ssnes - Simple Super Nintendo Emulator System

SYNOPSIS
ssnes [rom file] [OPTIONS]...

DESCRIPTION
ssnes is an emulator frontend for the libsnes API. libsnes provides emulation of a Super Nintendo system, and can be implemented by any SNES emulator. ssnes focuses on exposing needed functionality through the use of command line and configuration files.

GENERAL OPTIONS

[rom file]
    If no rom file path is defined on the command line, ssnes will try to load a rom from stdin. ssnes only supports loading of uncompressed roms, such as *.sfc or *.smc.

--help, -h
    Prints help text.

--features
    Prints available features compiled into SSNES, then exits.

-L PATH, --libsnes PATH
    Path to a libsnes implementation which is to be used. This option will override any setting in a config file. This option is only available if SSNES is compiled with dynamic libsnes loading.

--save PATH, -s PATH
    Overrides the path used for save ram (*.srm). 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 extention replaced with '.srm'. When rom is loaded from stdin, this flag is mandatory to define as no path can be inferred. If PATH is a directory, SSNES will treat this as the save file directory, where the save file name will be inferred from the rom name. When loading a rom from stdin, the path must be a full path, however.

--savestate PATH, -S PATH
    Overrides the path used for save states. 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 extention replace with '.state'. When rom is loaded from stdin, this flag is mandatory to define as no path can be inferred. If PATH is a directory, SSNES will treat this as the save state directory, where the state file name will be inferred from the rom name. When loading a rom from stdin, the path must be a full path, however. Do note that save states are bound to the libsnes implementation being used. Using a different libsnes could invalidate the save state file.

--fullscreen, -f
    Always starts SSNES in fullscreen. Disregards settings in configuration file.

--config PATH, -c PATH
    Sets the configuration file path. ssnes will use this path to load the configuration file. Should this not be defined, ssnes will look in platform specific paths to attempt finding the config file. /etc/ssnes.cfg (when installed), or ssnes.cfg in the source tarball serves as a skeleton configuration file. If PATH is a directory, SSNES will treat this as the config file directory, where the state file name will be inferred from the rom name (*.cfg). When loading a rom from stdin, the path must be a full path, however. If a config cannot be found when using directory path, the default config path will be used instead.

    Unix-like systems will look in $XDG_CONFIG_HOME/ssnes/ssnes.cfg first. Then it will try $HOME/.ssnes.cfg. Last, it will try /etc/ssnes.cfg. If no configuration is found, default settings will be assumed. A configuration file does not need to define every possible option, only those that should be overridden.

    Windows will look in ssnes.cfg in same folder where ssnes.exe resides.

--gameboy PATH, -g PATH
    Path to a Nintendo Game Boy ROM. If this flag is set, the Super Game Boy subsystem will be activated. The Super Game Boy BIOS needs to be loaded as the normal rom.

--bsx PATH, -b PATH
    Path to BS-X rom. Load BS-X BIOS as the regular rom. When using BS-X, save ram paths will be inferred from the BS-X BIOS path, not BS-X rom path.

--bsxslot PATH, -B PATH
    Path to BS-X slotted rom. Load BS-X BIOS as the regular rom. When using BS-X, save ram paths will be inferred from the BS-X BIOS path, not BS-X rom path.

--sufamiA PATH
    Path to A slot in Sufami Turbo. Load Sufami Turbo BIOS as regular rom. When using Sufami, save ram paths will be inferred from the Sufami BIOS path, not slot paths.

--sufamiB PATH
    Path to B slot in Sufami Turbo. Load Sufami Turbo BIOS as regular rom. When using Sufami, save ram paths will be inferred from the Sufami BIOS path, not slot paths.

--mouse PORT, -m PORT
    Connects a Super Nintendo Mouse into port number PORT of the emulated SNES. Possible values for PORT are 1 and 2.

--nodevice PORT, -N PORT
    Disconnects an input device from port number PORT of the emulated SNES. Possible values for PORT are 1 and 2. This may be needed for some odd games to run properly.

--scope, -p
    Connects a Super Scope into port 2 of the SNES. It is controlled with your mouse.

--justifier, -j
    Connects a Konami Justifier into port 2 of the SNES. It is controller with your mouse.

--justifiers, -J
    Connects two Konami Justifier into port 2 of the SNES. Currently, only player 1 is controlled with the mouse.

--multitap, -4
    Connects a four-way multitap into port 2 of the SNES. This allows for up to 5 players.

--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.

--size WIDTHxHEIGHT
    Allows specifying the exact output width and height of FFmpeg 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 libsnes 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 player connects. The host will always assume player 1.

--connect SERVER, -C SERVER
    Connect to a host of netplay. Will always assume player 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 player 2. For spectating mode to work, both host and clients will need to use this flag.

--nick NICK
    Pick a nickname for use with netplay. This is purely cosmetic, and only serves to help players identify each other.

--ups PATCH, -U PATCH
    Attempts to apply an UPS patch to the current ROM image. No files are altered. If this flag is not specified, SSNES will look for a .ups file with same basename as ROM specified.

--bps PATCH
    Attempts to apply a BPS patch to the current ROM image. No files are altered. If this flag is not specified, SSNES will look for a .bps file with same basename as ROM specified.

--ips PATCH
    Attempts to apply a IPS patch to the current ROM image. No files are altered. If this flag is not specified, SSNES will look for a .ips file with same basename as ROM specified. Note that SSNES cannot perform any error checking if patching was successful due to how IPS works.

--no-patch
    Disables all kinds of ROM patching.

--xml MAP, -X MAP
    Specifies path to XML memory map for the given ROM. If this flag is not specified, SSNES will look for a .xml file with same basename as ROM specified.

-D, --detach
    Detach from the current console. This is currently only relevant for Microsoft Windows.

SEE ALSO
ssnes-joyconfig(1)