[dropcap]S[/dropcap]ome of you might have heard or notices that there has been an update of the RetroPie SD-card image recently. This is a major update with some big changes. This article describes these.

Major Changes

In the following, you will get an overview about the major changes that come with the update to version 2.0 version 2.1 of RetroPie.

EmulationStation 2

EmulationStation 2 was recently released after ten months of development. It is a major update that brings a new rock-solid look-and-feel. Also, it comes with an internal scraper for ROMs meta data and a new input configuration handling.

EmulationStation 2 also introduces some changes regarding a typical RetroPie installation. Here is a short list of important things related to EmulationStation 2:

SDL 2.0.1 is needed by EmulationStation 2. This can be installed with the RetroPie-Setup Script and is already located in the RetroPie SD-card image.

is needed by EmulationStation 2. This can be installed with the RetroPie-Setup Script and is already located in the RetroPie SD-card image. The binary of EmulationStation is located at /opt/retropie/supplementary/EmulationStation/

of EmulationStation is located at The theme files are now located at /etc/emulationstation/themes

are now located at The systems configuration file for EmulationStation, previously located at ~/.emulationstation/es_systems.cfg has moved to /etc/emulationstation/es_systems.cfg If you would like to customize it, you should copy it to ~/.emulationstation/es_systems.cfg and edit that file according to your needs.

for EmulationStation, previously located at has moved to If you would like to customize it, you should copy it to and edit that file according to your needs. As with the previous version of EmulationStation the input configuration is located at ~/.emulationstation/

is located at EmulationStation 2 makes way more use of graphic elements. Depending on the number of emulated systems it is probable that you need a Raspberry Pi Model B with 512 MB shared RAM, where 256 MB are reserved for the GPU. This is the default configuration of the RetroPie SD-card image.

Also, EmulationStation 2 introduces a much nicer look-and-feel, an internal scraper for ROM meta data, and a simple way for maintaining multiple themes. Overall, it is an awesome update.

Folder Reorganization

The components that can be installed with the RetroPie-Setup Script were relocated to a user-independent location. In future updates, this will be used to better support updates and installation with the APT package system.

All components that come with RetroPie are relocated at /opt/retropie as root directory:

[code lang=bash]

pi@raspberrypi ~ $ find /opt/retropie -maxdepth 1

/opt/retropie

/opt/retropie/emulatorcores

/opt/retropie/emulators

/opt/retropie/configs

/opt/retropie/supplementary

[/code]

It can be seen that

The ROMs directory still resides in the user’s home directory and is located at /home/pi/RetroPie/roms per default.

still resides in the user’s home directory and is located at per default. Also the BIOS directory is still located in the user’s home directory at /home/pi/RetroPie/BIOS

Rebuild of all Components

All emulators and LibretroCores were compiled with their latest sources.

Reorganization of the RetroPie-Setup Script

The RetroPie-Setup Script has been rewritten and refactored heavily. The recent version of the RetroPie-Setup Script now allows to run all functionalities from command line by using the script retro_packages.sh that has become part of the RetroPie-Setup Script. While most users will not have a direct usage for this command line capability, this will make things easier to maintain in the long-term:

[code lang=shell]

./retropackages.sh [sources|build|install|configure|package]

This is a list of valid commands:

Command-ID: Description: List of available actions [sources|build|install|configure|package]

————————————————–

100: RetroArch : dependencies sources build install configure

101: AdvMame : dependencies sources build install configure

102: Amiga emulator UAE4All : sources build install configure

103: Atari 800 emulator : sources build install configure

104: Armstrad CPC emulator : sources build configure

105: DOS Emulator Dosbox : install configure

106: Atari2600 emulator STELLA : install configure

107: Macintosh emulator : sources build install configure

108: C64 emulator VICE : sources build install configure

109: C64 ROMs : install

110: Duke3D Port : install

111: GameBoy Advance emulator : sources build configure

112: NeoGeo emulator GnGeoPi : sources build install configure

113: Atari emulator Hatari : install

114: MAME emulator MAME4All-Pi : sources build configure

115: Gamegear emulator Osmose : sources build configure

116: Intellivision emulator : sources build configure

117: Apple 2 emulator Linapple : sources build configure

118: N64 emulator MUPEN64Plus-RPi : sources build configure

119: SNES emulator SNES9X-RPi : dependencies sources build configure

120: FBA emulator PiFBA : sources build install configure

121: SNES emulator PiSNES : sources build configure

122: DOS Emulator rpix86 : install configure

123: ScummVM : install

124: ZMachine : install

125: ZXSpectrum emulator Fuse : install

126: ZXSpectrum emulator FBZX : sources build

127: MSX emulator OpenMSX : dependencies sources build configure

128: DOS emulator FastDosbox : sources build install

200: SNES LibretroCore PocketSNES : sources build configure

201: Genesis LibretroCore Picodrive : sources build install configure

202: Atari 2600 LibretroCore Stella : sources build configure

203: Cave Story LibretroCore : sources build configure

204: Doom LibretroCore : sources build configure

205: Gameboy Color LibretroCore : sources build configure

206: MAME LibretroCore : sources build configure

207: FBA LibretroCore : dependencies sources build configure

208: NES LibretroCore fceu-next : sources build configure

209: Genesis/Megadrive LibretroCore : sources build configure

210: TurboGrafx 16 LibretroCore : sources build configure

211: Playstation 1 LibretroCore : sources build configure

300: Update APT packages : install

301: Package Repository : install

302: SDL 2.0.1 : dependencies sources build install

303: EmulationStation : dependencies sources build install configure package

304: EmulationStation Theme Simple : install

305: Video mode script 'runcommand' : install

306: SNESDev : sources build install configure

307: Xarcade2Jstick : sources build install configure

308: RetroArch-AutoConfigs : install

309: Bash Welcome Tweak : install

310: Samba ROM Shares : install configure

311: USB ROM Service : install configure

312: Enable/disable Splashscreen : configure

313: Select Splashscreen : configure

314: RetroNetplay : configure

315: Modules UInput, Joydev, ALSA : install

316: Set avoid_safe_mode : install

317: Disable system timeouts : install

318: Handle APT packages : install

319: Auto-start EmulationStation : configure

320: Install XBox contr. 360 driver : install

321: Install PS3 controller driver : install

322: Register RetroArch controller : install

323: Install SDL 2.0.1 binaries : install

324: Configure audio settings : configure

==================================================

[/code]

Later, this interface will also be used for generating Raspbian APT packages.

Upgrading from RetroPie Version 1.X

First of all, there is not automatic upgrade function, if you would like to migrate your configurations from a RetroPie version 1.X installation. That being said a migration is not too difficult. As described above most folder that previously were located at /home/pi/RetroPie are now located at /opt/retropie (Please note the upper and lower case here). So you need to copy the folder shown above to /opt/retropie The ROMs stay in /home/pi/RetroPie/roms Note that RetroPie version 2 has two ROM folders for arcade games now: fba and mame. These two folders are connected with the corresponding emulators (piFBA and imame4all-rpi per default).

Conclusions

The update to version 2.0 of the RetroPie-Setup Script together with the release of EmulationStation 2 and an updated RetroPie SD-card image introduce some major changes to the folder organization. EmulationStation 2 adds a new look-and-feel to the RetroPie experience.

However, all the restructoring and reorganization has probably introduced one or another bug. Please post any findings at the issues list of the RetroPie-Setup Script at Github and discuss possible improvements in the forum.

It is still needed to manually configure the various emulators. An automatic configuration of the controllers for the emulators would be a major gain for the user experience. The realization of this feature is not that easily to accomplish, though. But we will see with which ideas the community members will come up with …

If you think that there are important information missing in this post about the recent update, feel free to say so, e.g. in the comments below.