ZSNES(1)

๐Ÿ“ฆ
version 2.3.8 ยท 3 versions
, in arch rolling

๐ŸŽฎ ZSNES โ€” bestie's guide to the Super Nintendo emulator โœจ

okay so this is the manual page for ZSNES 2.3.8, from the General Commands Manual, and likeโ€ฆ it's a lot but we're gonna get through it together, i promise ๐Ÿซถ


๐ŸŒธ NAME

ZSNES โ€” the Super Nintendo console emulator. that's it, that's the vibe ๐Ÿ‘‘


โœจ SYNOPSIS

ZSNES [- | -? | --help] [-1 #] [-2 #] [-ad driver] [-dd] [-dh] [-ds] [-f
#] [-g #] [-h | -l] [-j] [-js #] [-k #] [-m] [-mc] [-md] [-ml #] [-mo
ID] [-n #] [-p #] [-r #] [-s] [-sa] [-t | -u] [-V] [--verbose] [-v #]
[-v8] [-y] [-z] [-zm #] [-zs #] [romname]

like yes, that's a wall of flags. we'll take them one at a time, no cap ๐Ÿ’…


๐Ÿ’– DESCRIPTION

ZSNES emulates the Super Nintendo video game console. it's written in C11 and PSR (iconic combo ngl), and it runs on Windows, Linux, macOS, and BSD.

for the latest updates, go be nosy at https://github.com/xyproto/zsnes/ ๐ŸŒˆ


๐ŸŽ€ OPTIONS

heads up bestie: a lot of these can also be set in the GUI, so you don't have to rawdog the command line. but like, you can ๐Ÿ’…
  • - | -? | -help | --help โ€” shows the command-line help. and like, not -h, okay? -h does a completely different thing (it forces HiROM, we'll get there). do not mix them up, i'm begging ๐Ÿ™ˆ
  • -1 # / -2 # โ€” sets the controls for Player 1 / Player 2. the values are:
    • 0 = None
    • 1 = Keyboard/Gamepad
  • -ad driver โ€” picks the audio driver. auto snags the first one that actually works; the rest of the list is entirely dependent on what your build shipped with, and - shows you the list. lowkey useful ๐ŸŽง
  • -dd โ€” disables sound DSP emulation.
  • -ds โ€” disables sound output only โ€” the SPC700/DSP emulation keeps running in the background like a little trooper.
  • -dh โ€” disables game hacks.
  • -f # โ€” turns on frame skipping. # is a number from 0-9.
  • -g # โ€” sets the gamma correction value. # is a number from 0-15.
  • -h โ€” forces HiROM. cannot be used with -l. (and again โ€” this is not help. she's a different girl entirely ๐Ÿ’€)
  • -j โ€” disables the Mouse. fun fact: this automatically turns off right mouse click too โœจ
  • -js # โ€” tweaks joystick sensitivity. # is a number from 0-32767.
  • -k # โ€” sets the volume level. # is a number from 1-100. ๐ŸŽถ
  • -l โ€” forces LoROM. cannot be used with -h. they are literally not on speaking terms.
  • -m โ€” disables the GUI. โš ๏ธ you must specify a ROM filename when you do this, otherwise she's just a blank screen and vibes.
  • -mc โ€” exits ZSNES when you close a movie. (use it with -zm)
  • -md โ€” dumps raw video. (use it with -zm)
  • -ml # โ€” defines the movie dump length in amount of frames. (use it with -md)
  • -mo ID | -mo list โ€” opens on the monitor with that identifier, or list shows you the ones this machine reports. and the choice is remembered, so your external display stays the one being used. main character monitor energy ๐Ÿ‘‘
  • -n # โ€” enables scanlines (when available). # is one of:
    • 0 = none
    • 1 = full
    • 2 = 25%
    • 3 = 50%
  • -p # โ€” changes the clock speed of the main CPU. # is a number from 50-150, and 100 is normal speed. > โš ๏ธ changing this value may have adverse side effects โ€” so like, proceed with caution bestie ๐Ÿ˜ญ
  • -r # โ€” sets the audio sampling rate. on Unix builds it's accepted and totally ignored โ€” SDL, PipeWire and libao all render at the DSP's own rate and leave the resampling to the sound server, so it's literally just kept around so your existing command lines don't break. on Windows, # is one of:
    • 0 = 8 KHz
    • 1 = 11.025 KHz
    • 2 = 22.05 KHz
    • 3 = 44.1 KHz
    • 4 = 16 KHz
    • 5 = 32 KHz
    • 6 = 48 KHz
  • -s โ€” enables SPC700/DSP emulation (Sound). ๐Ÿ”Š
  • -sa โ€” shows files with all extensions (*.*) in the GUI. the default is to only show files with one of the extensions listed under romname down below.
  • -t โ€” forces NTSC (60 Hz) timing. cannot be used with -u.
  • -u โ€” forces PAL (50 Hz) timing. cannot be used with -t. (pick a lane, bestie ๐Ÿฆ‹)
  • -V | --verbose โ€” prints status messages: the joysticks found, the audio backend in use, and how many mice ManyMouse detected. ๐Ÿญ warnings and error messages print regardless, so those show up no matter what.
  • -v8 โ€” grayscale mode. it's giving vintage film ๐ŸŽž๏ธ
  • -v # โ€” selects the video mode. # is one of:
    0 = 256x224 R W      1 = 256x224 R F      2 = 512x448 DR W
    3 = 512x448 DR F     4 = 640x480 DR F     5 = 256x224 OR W
    6 = 512x448 ODR      7 = 640x480 ODS F    8 = 640x480 ODS W
    9 = 640x560 ODR W   10 = 768x672 ODR W   11 = 800x600 ODS F
   12 = 800x600 ODS W   13 = 896x784 ODR W   14 = 1024x768 ODS F
   15 = 1024x768 ODS W  16 = 1024x896 ODR W  17 = 1280x960 ODS F
   18 = 1280x1024 ODS F 19 = 1600x1200 ODS F 20 = VARIABLE ODR W
   21 = VARIABLE ODS W  22 = CUSTOM OD F
  • -y โ€” enables Interpolation โœจ
  • -z โ€” disables stereo sound. (stereo sound is enabled by default, so like, she's stereo until you tell her not to be)
  • -zm # โ€” auto loads the specified movie on startup. # is a number from 0-9.
  • -zs # โ€” auto loads the specified save state on startup. # is a number from 0-99.
  • romname โ€” the name of the ROM to auto-load. it's in the format filename.ext, where .ext is one of SMC, SFC, SWC, FIG, MGD, MGH, UFO, BIN, GD3, GD7, USA, EUR, JAP, AUS, ST, BS, DX2, 048, 058, 078, 1 or A. you can also load ROMs that have been compressed with GZip or Zip ๐Ÿ—œ๏ธ

๐Ÿฆ‹ FILES AND DIRECTORIES

  • ZSNES โ€” the main program. the queen herself ๐Ÿ‘‘
  • ~/.zsnes โ€” the directory where ZSNES config files live. by default it's also where save states, screenshots, SPC dumps and ZMV movie files go, but you can change that behaviour by editing zsnesl.cfg. this directory is created by ZSNES, so don't stress about making it yourself ๐Ÿ’–
  • ~/.zsnes/zsnesl.cfg โ€” where ZSNES' configuration settings are stored. it's in a human-readable format and you can absolutely edit it by hand. created by ZSNES.
  • ~/.zsnes/zmovie.cfg โ€” where the settings specific to AVI dumping are saved. created by ZSNES.
  • ~/.zsnes/zfont.txt โ€” this one lets you customize the fonts in the GUI! just enable "Use Custom Font" in the GUI Options menu. created by ZSNES ๐ŸŽ€
  • ~/.zsnes/zinput.cfg โ€” where the input configuration settings for ZSNES are stored.
๐Ÿซถ real talk: if you update your version of ZSNES and it keeps crashing before you can do literally anything, try deleting the .cfg files above and let ZSNES create brand new ones. it's the "have you tried turning it off and on again" of config files ๐Ÿ’€

๐Ÿงš SPECIAL CHIP GAMES

okay so lots of Super Nintendo games used custom CPUs on top of the main SNES CPU (overachievers, honestly). some of these CPUs have not been fully reverse-engineered, and games that use them may either not work at all or may experience strange bugs. ๐Ÿ˜ญ

you can find more info about these special CPUs at:

http://users.tpg.com.au/advlink/dsp/

http://nsrt.edgeemu.com/INFO/chipinfo.htm

๐ŸŒˆ GRAPHICS PACKS

some games based on the SPC7110 chip โ€” like Far East of Eden Zero โ€” can use special graphics packs to work around the unemulated portions of their custom CPU. these graphics packs must be stored in individual directories within the save directory, which is specified in zsnesl.cfg. by default that's ~/.zsnes. ๐Ÿ“

โš ๏ธ the directory name of each graphics pack must be capitalized, and all files within that directory must be in lowercase. yes, that's the rule. yes, it's fussy. she's worth it ๐Ÿ’…

the proper directory name for a given graphics pack can be found in the readme file included with that pack.

NOTE: as of version 1.40, games which use the S-DD1 chip (Star Ocean and Street Fighter Alpha 2) do not require graphics packs. slay ๐Ÿ”ฅ

๐Ÿ‘‘ LICENSE

GPL2


and that's the whole page bestie!! ๐ŸŽ€ source and version: this is the ZSNES 2.3.8 manual page, straight out of the General Commands Manual โ€” go forth and emulate, you absolute icon ๐Ÿ’œโœจ

๐Ÿ“ฆ where this page comes from