EmulationStation
A cross-platform graphical front-end for emulators with controller navigation.
Project website: http://emulationstation.org
Raspberry Pi users: A cool guy named petrockblog made a script which automatically installs many emulators and ES. It also includes options for configuring your RPi and setting it up to boot directly into ES. You can find it here: https://github.com/petrockblog/RetroPie-Setup
Download
Download a pre-compiled version at emulationstation.org.
I found a bug! I have a problem!
-
First, try to check the issue list for some entries that might match your problem. Make sure to check closed issues too!
-
If you're running EmulationStation on a on Raspberry Pi and have problems with config file changes not taking effect, content missing after editing, etc., check if your SD card is corrupted (see issues #78 and #107). You can do this with free tools like h2testw or F3.
-
Try to update to the latest version of EmulationStation using git (you might need to delete your
es_input.cfgandes_settings.cfgafter that to reset them to default values):
git pull
cmake .
make
- If your problem still isn't gone, the best way to report a bug is to post an issue on GitHub. Try to post the simplest steps possible to reproduce the bug. Include files you think might be related (except for ROMs, of course). If you haven't re-run ES since the crash, the log file
~/.emulationstation/es_log.txtis also helpful.
Building
EmulationStation uses some C++11 code, which means you'll need to use at least g++-4.7 on Linux, or VS2010 on Windows, to compile.
EmulationStation has a few dependencies. For building, you'll need CMake, SDL2, Boost (System, Filesystem, DateTime, Locale), FreeImage, FreeType, Eigen3, and cURL. You also should probably install the fonts-droid package which contains fallback fonts for Chinese/Japanese/Korean characters, but ES will still work fine without it (this package is only used at run-time).
On Debian/Ubuntu: All of this be easily installed with apt-get:
Then, generate and build the Makefile with CMake:
cmake .
make
On the Raspberry Pi:
Complete Raspberry Pi build instructions at emulationstation.org.
On Windows:
Boost (you'll need to compile yourself or get the pre-compiled binaries)
Eigen3 (header-only library)
FreeType2 (you'll need to compile)
cURL (you'll need to compile or get the pre-compiled DLL version)
(Remember to copy necessary .DLLs into the same folder as the executable: probably FreeImage.dll, freetype6.dll, SDL2.dll, libcurl.dll, and zlib1.dll. Exact list depends on if you built your libraries in "static" mode or not.)
CMake (this is used for generating the Visual Studio project)
(If you don't know how to use CMake, here are some hints: run cmake-gui and point it at your EmulationStation folder. Point the "build" directory somewhere - I use EmulationStation/build. Click configure, choose "Visual Studio [year] Project", fill in red fields as they appear and keep clicking Configure (you may need to check "Advanced"), then click Generate.)
Configuring
~/.emulationstation/es_systems.cfg:
When first run, an example systems configuration file will be created at ~/.emulationstation/es_systems.cfg. ~ is $HOME on Linux, and %HOMEPATH% on Windows. This example has some comments explaining how to write the configuration file. See the "Writing an es_systems.cfg" section for more information.
Keep in mind you'll have to set up your emulator separately from EmulationStation!
~/.emulationstation/es_input.cfg: When you first start EmulationStation, you will be prompted to configure an input device. The process is thus:
-
Hold a button on the device you want to configure. This includes the keyboard.
-
Press the buttons as they appear in the list. Some inputs can be skipped by holding any button down for a few seconds (e.g. page up/page down).
-
You can review your mappings by pressing up and down, making any changes by pressing A.
-
Choose "SAVE" to save this device and close the input configuration screen.
The new configuration will be added to the ~/.emulationstation/es_input.cfg file.
Both new and old devices can be (re)configured at any time by pressing the Start button and choosing "CONFIGURE INPUT". From here, you may unplug the device you used to open the menu and plug in a new one, if necessary. New devices will be appended to the existing input configuration file, so your old devices will remain configured.
If your controller stops working, you can delete the ~/.emulationstation/es_input.cfg file to make the input configuration screen re-appear on next run.
You can use --help or -h to view a list of command-line options. Briefly outlined here:
--resolution [width] [height] - try and force a particular resolution
--gamelist-only - only display games defined in a gamelist.xml file.
--ignore-gamelist - do not parse any gamelist.xml files.
--draw-framerate - draw the framerate.
--no-exit - do not display 'exit' in the ES menu.
--debug - show the console window on Windows, do slightly more logging
--windowed - run ES in a window, works best in conjunction with --resolution [w] [h].
--vsync [1/on or 0/off] - turn vsync on or off (default is on).
--scrape - run the interactive command-line metadata scraper.