fceux — An emulator for the original (8-bit) Nintendo / Famicom game console.


fceux [options] "filename"


FCEUX is an emulator for the original (8-bit) Nintendo Entertainment System (NES). It has a robust color palette rendering engine that is fully customizable, along with excellent sound and joystick support, and even supports movie recording and playback.


Misc. options

--no-config {0|1}
Use default config file and do not save to it, when enabled.
-g {0|1}, --gamegenie {0|1}
Enable or disable emulated Game Genie.
--nogui {0|1}
Enable or disable the GTK GUI.
--loadlua FILE
Loads lua script from filename FILE.

Emulation options

--pal {0|1}
Enable or disable PAL mode.

Input options

-i DEV, --inputcfg DEV
Configures input device DEV on startup. Devices: gamepad powerpad hypershot quizking
--input{1|2} DEV
Set which input device to emulate for input 1 or 2. Devices: gamepad zapper powerpad.0 powerpad.1 arkanoid
--input{3|4} DEV
Set the famicom expansion device to emulate for input 3 or 4. Devices: quizking hypershot mahjong toprider ftrainer familykeyboard oekakids arkanoid shadow bworld 4player
--inputdisplay {0|1}
Enable or disable input display.
--fourscore {0|1}
Enable or disable fourscore emulation.

Graphics options

--newppu {0|1}
Enable or disable the new PPU core. (WARNING: May break savestates)
--frameskip NUM
Set NUM of frames to skip per emulated frame.
--clipsides {0|1}
Enable or disable clipping of the leftmost and rightmost 8 columns of the video output.
--slstart SCANLINE
Set the first scanline to be rendered.
--slend SCANLINE
Set the last scanline to be rendered.
--nospritelim {0|1}
When set to 0, this disables the normal 8 sprites per scanline limitation. When set to 1, this enables the normal 8 sprites per scanline limitation. NOTE: Yes, this option is 'backwards'.
-x XRES, --xres XRES
Set horizontal resolution for full screen mode.
-y YRES, --yres YRES
Set vertical resolution for full screen mode.
--doublebuf {0|1}
Enable or disable double buffering.
--autoscale {0|1}
Enable or disable autoscaling in fullscreen.
--keepratio {0|1}
Keep native NES aspect ratio when autoscaling.
--{x|y}scale VAL
Multiply width/height by VAL. (Real numbers > 0 with OpenGL, otherwise integers > 0).
--{x|y}stretch {0|1}
Stretch to fill surface on x/y axis (OpenGL only).
-b {8|16|24|32}, --bpp {8|16|24|32}
Set bits per pixel.
--opengl {0|1}
Enable or disable OpenGL support.
--openglip {0|1}
Enable or disable OpenGL linear interpolation.
-f {0|1}, --fullscreen {0|1}
Enable or disable full-screen mode.
--noframe {0|1}
Hide title bar and window decorations.
--special {1-4}
Use special video scaling filters. (1 = hq2x 2 = Scale2x 3 = NTSC 2x 4 = hq3x 5 = Scale3x)
-p FILE, --palette FILE
Use the custom palette in FILE.
--ntsccolor {0|1}
Enable or disable NTSC NES colors.
--tint VAL
Set the NTSC tint.
--hue VAL
Set the NTSC hue.

Sound options

-s {0|1}, --sound {0|1}
Enable or disable sound.
--soundrate RATE
Set the sound playback sample rate (0 == off?).
--soundq {0|1|2}
Set sound quality. (0 = Low 1 = High 2 = Very High)
--soundbufsize MS
Set sound buffer size to MS milliseconds.
--volume {0-256}
Sets the sound volume to the given value, where 256 is max volume.
--trianglevol {0-256}
Sets the sound volume of the triangle wave to the given value, where 256 is max volume.
--square1vol {0-256}
Sets the sound volume of square wave 1 to the given value, where 256 is max volume.
--square2vol {0-256}
Sets the sound volume of square wave 2 to the given value, where 256 is max volume.
--noisevol {0-256}
Sets the sound volume of the noise generator to the given value, where 256 is max volume.
--lowpass {0|1}
Enables or disables lowpass filtering of the sound.
--soundrecord FILE
Record sound to file FILE.

Movie options

--playmov FILE
Play back a recorded FCM/FM2 movie from filename FILE.
--pauseframe FRAME
Pause movie playback at frame FRAME.
--moviemsg {0|1}
Enable or disable movie messages.
--fcmconvert FILE
Convert fcm movie file FILE to fm2.
--ripsubs FILE
Convert movie's subtitles to srt.
--subtitles {0|1}
Enable or disable subtitle display.

Networking options

-n SRV, --net SRV
Connect to server SRV for TCP/IP network play.
--port PORT
Use TCP/IP port PORT for network play.
-u NICK, --user NICK
Set the nickname to use in network play.
-w PASS, --pass PASS
Set password to use for connecting to the server.
-k NETKEY, --netkey NETKEY
Use string NETKEY to create a unique session for the game loaded.
--players NUM
Set the number of local players.
--rp2mic {0|1}
If enabled, replace Port 2 Start with microphone (Famicom).
--videolog c
Calls mencoder to grab the video and audio streams to encode them. Check the documentation for more on this.?
--mute {0|1}
Mutes FCEUX while still passing the audio stream to mencoder.

Keyboard commands

FCEUX has a number of commands available within the emulator. It also includes default keyboard bindings when emulating game pads or power pads.

Gamepad keyboard bindings

NES Gamepad Keyboard

Up Keypad Up
Down Keypad Down
Left Keypad Left
Right Keypad Right
Select S
Start Enter

Other commands

Toggle full-screen mode.
Cheat menu (command-line only).
Toggle savestate binding to movies.
Load LUA script.
Toggles background rendering.
Save game state into current slot (set using number keys).
Restore game state from current slot (set using number keys).
Toggle movie subtitles.
Reset NES.
Save screen snapshot.
Beging recording video.
Load recorded video.
Select save state slot.
Select next/previous state.
Decrease emulation speed.
Increase emulation speed.
Hold for turbo emulation speed.
Pause emulation.
Advance a single frame.
Toggle movie frame counter.
Toggle input display.
Toggle movie read-only.
Advance a single frame.
Lag counter display.
Frame advance lag skip display.

Vs unisystem commands

Insert coin.
Show/Hide dip switches.
Toggle dip switches (when dip switches are shown).

Famicom disk system commands

Select disk and disk side.
Eject or insert disk.
The FCEUX project homepage.


This manual page was written by Joe Nahmias <joe _at_ nahmias.net>, Lukas Sabota <ltsmooth42 _at_ gmail.com> and Alexander Toresson <alexander.toresson _at_ gmail.com> for the Debian GNU/Linux system (but may be used by others).