Update 6.4.2016: RetroPie got a dedicated website. You can find it at https://www.retropie.org.uk. We keep this page solely as “historic” document about the beginnings of RetroPie. The content of this site is not up-to-date anymore and documents how RetroPie was presented during its very beginning.
Welcome to the RetroPie Project. This page provides information about all the pieces of the projects, the goals and should give you an understanding of what the RetroPie Project is.
The RetroPie Project started with the idea of turning the Raspberry Pi into a retro-gaming console and evolved ever since. Besides emulators and front-ends, a full retro-gaming experience also involves game pads or joysticks. The project offers approaches for software as well as hardware questions. In the following, you can find more detailed descriptions about the individual components of the project. The rest of this article is structured according to the following questions:
- What is the RetroPie Project?
- What is the RetroPie Setup Script?
- What are the RetroPie GPIO Adapter and the ControlBlock?
- What is the RetroPie SD-card image and what are its features?
- How can I contribute?
- What are related blog posts?
Let us start with the question:
What is the RetroPie Project?
The RetroPie Project is a collection of works that all have the overall goal to turn the Raspberry Pi into a dedicated retro-gaming console. The project uses Raspbian as OS at the bottom and integrates a large set of emulators for a wide variety of computer systems from the past decades. Besides the emulators, also a graphical front end and a lot of other software features are part of the project to let your nostalgic memories revive. The RetroPie Setup Script is a central piece of software for the installation and configuration of these components. There exists an SD-card image with a complete installation by the RetroPie Setup Script that comes with all supported emulators and functions. Besides the software aspects the RetroPie Project also consists of a solution for connecting certain original game pads directly to the Raspberry Pi. The RetroPie GPIO Adapter is a small piece of hardware that supports the connection of the game pads while also adding a push button and circuitry protection. The ControlBlock is another more advanced module that provides functionalities for reading various controller types as well as a power switch.
What is the RetroPie Setup Script?
The RetroPie Setup Script lets you install and configure all the emulators, front-ends, drivers, and other components for your retro-gaming console. Technically, it is a bash script that consists of a few thousand lines of code and is run from the command line. The complete sources are hosted at Github to support collaboration, feedback, bug reporting, and pull requests.
And what are the RetroPie GPIO Adapter and the ControlBlock?
The RetroPie GPIO Adapter is a dedicated GPIO adapter for the Raspberry Pi that allows an easy and safe connection to, for example, two NES or SNES controllers. It provides circuitry protection against transients and over currents as well as a momentary switch button for arbitrary use. A step-by-step guide for getting started with the RetroPie GPIO Adapter can be found here.
SNESDev is a user-space device driver especially written for the RetroPie GPIO Adapter. It implements two (S)NES game controllers and a virtual keyboard for up to two (S)NES controllers and a button that are connected to the GPIO pins of the Raspberry Pivia the RetroPie GPIO Adapter. The sources of SNESDev are hosted at Github and everyone is invited to contribute!
The ControlBlock is another extension board for the Raspberry Pi. The two key features of it are
- a power switch functionality and
- general purpose input/output (GPIO) pins ready to use, e.g., for connecting arcade or SNES controllers.
If you want to turn your Raspberry Pi into a keyboard-less game console, the ControlBlock might be a solution for your needs.
What is the RetroPie SD-card image and it’s features?
The RetroPie SD-card image is a ready-to-use image that provides a full installation of all systems and functions that are supported by the RetroPie Setup Script. Here is a short description about the features of the image:
- Complete installation of all available emulators that are supported by the RetroPie Setup Script (see section “supported systems/emulators for details”)
- Automatic start of Emulation Station, the front-end for browsing and running the ROMs. Emulation Station is maintained by Aloshi, who is also hosting the sources of Emulation Station at Github.
- Pre-configured splash screen that can be customized with the RetroPie-Setup Script
- SAMBA shares for each system for copying ROMs on the RPi via network
- USB daemon for copying ROMs on the RPi via USB stick
The RetroPie SD-card includes emulators for a whole range of gaming history. Some of these systems are:
- Amiga (UAE4ALL)
- Apple II (LinApple)
- Atari 800 (Atari800)
- Atari 2600 (RetroArch/Stella)
- Atari ST/STE/TT/Falcon (Hatari)
- Apple Macintosh (Basilisk II)
- C64 (VICE)
- Amstrad CPC (#CPC4Rpi)
- Final Burn Alpha (RetroArch/PiFBA, RetroArch/FBA)
- Game Boy (RetroArch/Gambatte)
- Game Boy Advance (GpSP)
- Game Boy Color (RetroArch/Gambatte)
- Sega Game Gear (Osmose)
- Intellivision (jzIntv)
- MAME (RetroArch/mame4all-pi, RetroArch/mame4all)
- MSX (openMSX)
- PC – x86 (rpix86)
- NeoGeo (PiFBA, GnGeo)
- Nintendo Entertainment System (RetroArch/FCEUmm)
- Nintendo 64 (Mupen64Plus-RPi)
- TurboGrafx 16 – PC Engine (RetroArch/Mednafen/pce_fast)
– CaveStory (RetroArch/NXEngine)
– Doom (RetroArch/PrBoom)
– Duke Nukem 3D (eDuke)
- Sega Master System / Mark III (RetroArch/Picodrive, Osmose, DGen)
- Sega Mega Drive / Genesis (RetroArch/Picodrive, DGen)
- Sega Mega-CD / CD (RetroArch/Picodrive, DGen)
- Sega 32X (RetroArch/Picodrive, DGen)
- Playstation 1 (RetroArch/PCSX ReARMed)
- Super Nintendo Entertainment System (RetroArch/Pocket SNES, snes9x-rpi)
- Sinclair ZX Spectrum (Fuse, FBZX)
A list with chronological order of release year of all supported systems can be found here.
If you would like to have another emulator supported by RetroPie, feel free to post it!
I would like to contribute! How could I do that?
The RetroPie Project would not exist, if there were not all the other great open-source projects that are combined and remixed here. All these projects evolve by the support of many people. The RetroPie Project evolves in the same way and there are many possibilities for every single one who likes to contribute in one or another way:
- Take part in the discussions in the comments sections of the blog
- Join the forum to post questions and support others
- Propose enhancements or report bugs at the repositories of the individual projects
- Inspire others by writing about your project in the forum
- Support the project with a donation
Tell me about the related blog posts!
Here, you find a summary of all essential posts that are related to the RetroPie project, which started with the post about SNESDev.
- The idea about the Raspberry Pi as a universal console and the description of a hardware interface for NES/SNES controllers. The beginning of the RetroPie project.
- An assembly guide for connecting the controllers to the Raspberry Pi.
- The RetroPie Setup script: An auto-installer and maintaining script that should make the whole software part easy.
- PetRockBlock PIE, the case for the Raspberry Pi with pre-cut slots for two SNES connectors.
- A wiki for the RetroPie script and all components that can be installed with it.
- A GPIO driver for connecting (S)NES Controllers via the GPIO pins of the RPi.
- The RetroPie GPIO adapter board: a dedicated GPIO adapter for the Raspberry Pi that allows an easy and safe connection of up to two NES or SNES controllers.
- RetroPie Project SD-card image for download.
- Recipe for creating the RetroPie image download.
- A step-by-step guide for getting started with the RetroPie GPIO Adapter