The RetroPie Project: An Interim Report

It has been some weeks ago since my last post, but things regarding the Raspberry Pi and the idea of the universal console did not stand still. Actually, there has been a lot of progress in many aspects of (what I will call from now on) the "RetroPie Project".

I prepared a logo for that as shown on top of this post. What do you think?

What is achieved in the meantime

In a previous post, I have pointed out several aspects that have (at least) to be considered for turning the Raspberry into a retro-gaming machine. Several people actively work on solutions for the individual aspects and, currently, there is a lot of drive in the development. Te vivid usage of the official forum is an essential part of that. Let me give you a brief overview about what has happened within the last few weeks:

  • Emulation Station: In order to browse and run your game collections on the Raspberry Emulation Station provides a graphical front-end that is specifically designed for the Raspberry Pi platform. Comments, suggestions, or bug reports are welcome and constructively discussed for the further development of the front end.
  • Emulators: A wide variety of emulators that are running on the Raspberry exists in the meantime and people are still working on additional emulator ports or exploring which emulators are running on the RPi. Currently, emulators for 18 systems can be installed with the RetroPie Setup script.
  • Raspberry Pi Firmware: The official firmware of the Raspberry Pi is constantly developing. Among others, outstanding updates in the last weeks were the improvements with the analog audio output and the introduction of the "turbo mode" without voiding the guaranty.
  • RetroPie Setup Script: RetroPie Setup Script intends to ease the installation of various emulators as well as the configuration and setup of controllers, drivers, and the front-end. With the feedback from this blog and the thread in the official forum the script is permanently enhanced.
  • Gaming case with slots for SNES connectors: The acrylic case that I wrote about has proved to be useful and robust in practice. I will revise the design of the case to account for the RetroPie GPIO adapter that I will present soon.
  • (S)NES-controller GPIO adapter: The PCBs of the revised version of the SNES-controller GPIO adapter board have recently arrived! I will post an article about it in the next days. Let me just tell me for now that they are great!
  • Gamecon driver for GPIO interface: A gamecon driver has become part of the RetroPie Setup script and provides the possibility to use the GPIO pins for connecting various Nintendo controllers. The GPIO adapter board mentioned above can be used with this driver out-of-the-box. The latest version of the driver makes use of Dynamic Kernel Module Support (DKMS) which "enables kernel device drivers to be automatically rebuilt when a new kernel is installed" [Wikipedia].

To everyone involved in this so far I have to say "well done and thank you for all the work and what was achieved in the meantime"!

Open issues

There are still open issues:

  • Better Sound Quality: The ALSA drivers are still leading to cracking noise when running a RetroArch based emulation core. Even though the use of SDL audio drivers leads to good improvements a more stable implementation of the ALSA drivers would decrease the computational load and, thus, increase the performance of the emulator.
  • Controller configuration: Currently, most of the configuration of gamepads and joysticks has to be done from the command line and can be a challenge.
  • Keyboard-less setup: If the Raspberry should be used as a dedicated console the interface must be controllable without a keyboard. Since the RPi does not have an on-off button or a reset switch or any other programmable buttons, this can only be solved by adding additional hardware. The GPIO adapter that I mentioned above will solve this problem and allow for a keyboard-less setup. Right now, however, SNESDev and/or the gamecon driver still need to be adapted for that piece of hardware.
  • Improved Stability: The ongoing enhancement of the various components leads to instabilities from time to time. As long as there is an active development I am sure that the overall stability will reach a point where the system is experienced to work reliable in (gaming-)practice.
  • Themes for all systems: Currently, not all systems that can be installed by the RetroPie Script have a theme for Emulation Station. There is, however, ongoing work and any suggestions or help is appreciated.
  • RetroPie image: Having a working image with a ready-to-go installation that people can simply download and copy to their SD card would significantly simplify things for many people. This will become a hot topic as soon as the individual components of the system (firmware, front-end, scraper(s), emulators, drivers etc.) are mature enough.

This concludes my brief interim report about the RetroPie Project. Thank you again to everyone who has contributed to this so far! Everyone who has not yet put his hands on this, but has interest I would like to encourage to have a look and to contribute in whatever way!

As always, if you have any comments, suggestions, or questions feel free to get in contact with me.


  • velourfog

    So great to see progress updates :)
    Looking forward to seeing details about this new GPIO adapter you're making.

  • Pingback: The RetroPie Project: An Interim Report @Raspberry_Pi #piday #raspberrypi « adafruit industries blog

  • Pingback: The RetroPie Project ทำ emulators เครื่องเล่นเกมย้อนอดีตกันสารพัด | Raspberry Pi Thailand

  • Jacob


    I am having trouble configuring my USB NES controllers via command line. I have followed these instructions,-e.g.,-withing-the-snes-emulator%3F and the controllers still do not work in the games. They work for browsing the Emulation Station menus, but when I start a game they do nothing. Please help!

    • petRockBlog

      The organization of the retroarch.cfg files has been changed in one of the recent script updates. You would now have to append the ouput of retroarch-joystick to ~/RetroPie/configs/all/retroarch.cfg. Hope this helps!?

  • RonDroid

    Hey :)

    I'm a complete noob to anything linux etc, but I bought a Rasberry Pi hoping to get a retrogaming system up and running. Sadly I've run into some problems. I've run the RetroPie script and I can launch Emulationstation. I've added some roms to the appropriate folders, and they show up in Emulationstation. I'm running Rasbian btw. BUT....when I try to launch a ROM it won't start, and I get some warnings and errors:

    "XDG_CONFIG_HOME is not defined. Will look for config in $HOME/.retroarch.cfg"
    "system_directory is not set in config. Assuming system directory is same folder as game"

    "dylib_load() failed: "--config: cannot open shared object file: No such file or directory""
    "failed to open dynamic library: "--config"
    "fatal error received in : "load_dynamic()""

    I have not made any changes to any .cfg files or anything like that. Everything is exactly what it was at default.

    Does anyone have any suggestions?

    • petRockBlog

      I am currently running an installation on the recently published Raspbian image (2013-02-09-wheezy-raspbian). Maybe I find the problem ...

      Until then you could have a go with the SD-card image in the Downloads section.

  • Pingback: The RetroPie Project: An Interim Report