FCEUX
The all in one NES/Famicom/Dendy Emulator

# FCEUX SDL FAQ

Last updated December 9, 2020
by mjbudd77

Table of Contents:

- What is the git build and how can I get it?
- How do I configure a gamepad?
- My sound is stuttery/laggy. How can I fix this?
- My game is skipping frames. How can I fix this?
- How can I change my hotkey bindings?
- Can I map hotkeys to my gamepad?

### What is the git build and how can I get it?

The most recent changes to fceuX are reflected immediately in the fceux github server. You can checkout the source code to build fceuX with the most recent sources by running the following command:

git clone https://github.com/TASVideos/fceux.git

Instructions for compiling and installing fceuX can be found in the "README" file.

### How do I configure a gamepad?

Using the Qt GUI, you can configure the gamepad by selecting "Options...Gamepad" in the menubar.

### My sound is stuttery/laggy. How can I fix this?

Try using different SDL audio drivers. You can set the SDL audio driver with the following command:

export SDL_AUDIODRIVER=driver

where driver is: esd,oss,alsa,pulse,nas,arts.

There have been a lot of sound related bug fixes for the SDL port in recent releases, so you may want to try the latest version of fceuX to see if you are still having issues. FceuX 2.1.4 fixed the majority of the reported sound issues.

### My game is skipping frames. How can I improve this?

The Qt/SDL version of fceux runs two threads. One for the GUI and one for the emulation. The realtime OS scheduling and priority of both of these threads can be tuned via the GUI timing config options window (accessible via the menu bar). For Mac OSX systems, fceux must have root permission to increase process priority. For Linux systems, add the following lines to the /etc/security/limits.conf file to ensure that fceux users have the proper system resource permissions (requires reboot after editing for changes to take place):

    *                -    priority     99
    *                -    rtprio       99
    *                -    nice        -20

### How can I change my emulator hotkey bindings?

SDL hotkey bindings can be remapped using the Qt GUI. Selecting "Options...HotKeys" in the menubar.

### Can I map emulator hotkeys to my gamepad?

If you want to map particular hotkeys (pause, save state, load state, etc) to buttons on your gamepad, you can use software that allows you to map joystick events to key presses. qjoypad is the recomended solution for this. You can also use Jkeys to do this.

## Credits

Name: | Contribution(s):
--- | ---
Lukas Sabota | Author of this document
mjbudd77 | Qt/SDL Updates