PiNES – A Raspberry Pi retro gaming console

The basic idea is simple: A retro gaming console consisting of serveral emulators running on the RaspberryPi, completely controllable with wireless or original (S)NES controllers. Finally I want to put the entire thing into an old NES console case, because if you want to put it in your living room it really should look like something. :-)

In this first post I will describe the basic steps necessary to set up the needed software. In the following posts I will keep you up to date on the progress of the project.

Parts list

  • A RaspberryPi, Captain Obvious! Model B with 512MB RAM would be best.
  • USB power source – at least 1A
  • USB <-> MicroUSB cable for the power connection
  • SD-Card. Class 10, at least 4GB. The faster and bigger the better since you may want to store quite a number of ROM files on it.
  • A network cable so you can connect to your Raspberry Pi via SSH and so the Pi can retrieve all needed packages during installation from the internet.
  • USB keyboard during the installation process.

Let’s get startet

After some research on the internet I found the very excellent RetroPie Project. This project contains, amongst other great things, a script which installs a load of emulators along with a GUI (EmulationStation) to select the emulator and ROM you want to play. So luckily for me the basic functionality was already out there! \o/

Raspbian
First you will need an operating system – Raspian is the recommended operating system for the Raspberry Pi. On the official page, http://www.raspberrypi.org/downloads, you will find the most recent image along with detailed instructions on how to install it onto your SD-Card. Once installed you can log in with pi/raspberry. Upon your first login you will be presented with the initial setup where you should set the following things:

  • Extend the root filesystem to fit the SD card.
  • Set the keyboard layout if necessary
  • Set the memory split to 192, so the GPU will get 192 MB of dedicated memory.

You can access this setup any time by typing:

sudo raspi-config

After you’re done with the setup, save everything and reboot your Pi.

RetroPie
Now we can get the RetroPie Script and install the emulators with it. Detailed instructions on how to install the script and emulators can be found here. This is how you get the RetroPie Script:

cd;
sudo apt-get update; sudo apt-get upgrade;
sudo apt-get install -y git dialog
git clone git://github.com/petrockblog/RetroPie-Setup.git
cd RetroPie-Setup
chmod +x retropie_setup.sh
sudo ./retropie_setup.sh

After starting the script you will have two options to install the emulators – Source based installation and Binary based installation. The source based installation will compile all emulators on your Pi from scratch, which will take a lot of time (~6 hours). The benefit of choosing this method is that you will get the most recent versions of the emulators and supplementary files. A much quicker way is the binary based installation which will installed pre-compiled binaries on your system. Whatever option you choose, once the installation is complete you need to reboot your Pi.

After the reboot, start the setup again.

sudo ./RetroPie-Setup/retropie_setup.sh

Via the setup option you can configure EmulationStation to be started upon boot so the GUI for selecting emulators/roms is started whenever you boot your Pi.

The ROM files for the various emulators can be stored in their respective folders in /home/pi/RetroPie/roms/EMULATOR. Now just type

emulationstation

to start the GUI and select the game you want to play. The following keys are used to control EmulationStation and some special functions within the games:

## Within a game
F2 - Save
F4 - Load
F6 - Save Slot -
F7 - Save Slot +
F8 - Screenshot

## Within EmulationStation
Arrow keys for Navigation
ENTER - Select
F4 - Quit EmulationStation

You should now be able to play your first game. At least the SNES emulator might show some sound issues if connected via HDMI. I will discuss a possible solution to this in the next post. If you connect your TV/Monitor via Composite and audio jack, you shouldn’t experience these problems.

UPDATE

Florian, the guy who developed the RetroPie script is now offering an SD-Card image which already has Raspian, the emulators and everything else pre-configured on it. How cool is that?! So getting your initial setup running is as easy as putting this image on your SD-Card. The method described here might still be useful if you want to install a more up-to-date version of the software.