Frequently Asked Questions

Project Questions

Q. There are a million emulator front-ends out there. Why should I use yours?

A. EmulationStation targets computers connected to a television (like HTPCs, media boxes, and the Raspberry Pi), is cross-platform, and completely open source.

HyperSpin has an amazing community that has created an insane amount of game-specific themes (!), but is Windows only and closed-source.

OpenEmu is fantastic for desktop use, but not well-suited to TV use and is Mac only.

XBMC does a hell of a lot more than EmulationStation, is better supported, and more extensible, but the emulator support is not quite "official" yet (regarding the RetroPlayer branch). That said, if you are already using XBMC, I would be hard-pressed to convince you to switch - the program is fantastic.


Q. How big is the team?

A. Literally two guys and whoever contributes on GitHub.

Alec Lofquist is me, the guy who does all of the programming for EmulationStation, writes the website, writes the content for the website (like this FAQ), and does most of the English community interaction. I also contribute to RetroPie from time to time.

Nils Bonenberger is the other guy, who does the UI design, makes any internal art assets that are needed, the logo, the current set of default themes, and German community interaction.

We do this project entirely in our spare time, so please forgive us if updates are infrequent and there are bugs.


Q. Can I use EmulationStation as a front-end in [project]?

A. Yes! Please do! ES is by no means RetroPie-only.


Technical Questions

Q. EmulationStation works even though there's no ~/.emulationstation/es_systems.cfg file! What's up with that?

A. There is probably a pre-configured es_systems.cfg file in /etc/emulationstation/es_systems.cfg (Linux only). See README.md for more detailed documentation.


Q. EmulationStation has themes even though the ~/.emulationstation/themes directory is empty! Black magic!

A. There is probably a pre-installed set of themes in /etc/emulationstation/themes (Linux only). See README.md for more detailed documentation.


Q. EmulationStation just crashed! Fix it!

A. Post an issue on the GitHub issues page. Check to make sure you are not opening a duplicate issue! Remember to check "Closed" issues too!


Q. My keyboard doesn't work at all on the Raspberry Pi.

A. You probably forgot to install libudev-dev before you compiled SDL2.


Q. Some systems have a white background that shouldn't.

A. You probably ran out of VRAM on the Raspberry Pi. A good rule of thumb for how much memory you should allocate to the GPU on a 1080p setup using the default themes is 8mb + 25mb + 10mb * [NUMBER_OF_SYSTEMS_WITH_GAMES] (framebuffer + fonts + high quality system art). 256mb should be fine for casual setups.


Q. Can I make a portable installation of EmulationStation on Windows so I can get up to mischief at my local high school?

A. Yes! Download the ZIP archive from the download page and extract it to your portable drive. You can use the provided "run_portable.bat" file to launch EmulationStation with the "home folder" environment variable set to that folder. Put your es_systems.cfg and themes inside a .emulationstation folder. You may have to learn some environment variables to get your paths and launch commands right (hints: using ~\roms\... as the start of a path is the same as %HOMEPATH%\roms\..., you can use %HOMEPATH%\emulators\... in a launch command). If the computers are really old, you may have to install the Microsoft Visual C++ 2013 Redistributable to get ES to start.


Q. I want to launch certain games with certain emulators, but keep them all in one system. HOW DO?

A. ES doesn't provide a silver bullet for this, but you can solve the problem through with a clever shell script. Here's an example that might help (set your launch command to /path/to/gamelaunch.sh %ROM%):

#!/bin/bash

# usage:
# gamelaunch.sh path/to/rom.sfc

# arguments:
# $1 - the path to the rom


# how to launch if the game isn't using one of the "custom" emulators
defaultemulaunch="retroarch --lib pocketsnes.so \"$1\""

# a list of games for the first emulator + the launch command
# warning: these are case sensitive and should include the extension; 
# they must match the command "basename [path/to/file.whatever]" exactly
emu1names=(\
    "Super Mario World.sfc"\
    "The Legend of Zelda - A Link to the Past.sfc"\
    "EarthBound.sfc")

emu1launch="snes9x \"$1\""


# what we're searching for
# basename strips leading directories off of the filename
gamename=`basename "$1"`

for index in ${!emu1names[*]}
do
    game=${emu1names[index]}
    if [ "$game" == "$gamename" ]; then
        # found it, launch the emulator and quit
        exit `$emu1launch`
    fi
done

# it wasn't in the list, launch the default emulator, something like:
exit `$defaultemulaunch`

Q. The scraper doesn't find my game, even though the game is named right and everything!

A. The databases we scrape from are not guaranteed to be complete, and sometimes their search functions don't work quite right.


Q. The scraper found the wrong game(s), even though it's named right and everything!

A. The search function for TheGamesDB.net is a little broken. For example, searching for "Super Mario World" returns "Super Mario World + Super Mario All-Stars" first, instead of "Super Mario World". I don't know why that is. Take it up with them.


Q. The archive.vg scraper doesn't work! Like, at all!

A. At one point, it did. Then they restructed a bunch of stuff and things broke. Let me know when the site is stable again and I'll fix it.