Upcoming shows/vending:





 Know of a show I should go to? Tell me!

* indicates big show (attendance in the thousands)

Retro Pie + Raspberry Pi +DIY

A slightly more organized overview of RetroPie/ Raspbery Pi/ My Arcade Hardware. This section was meant to replace the Software guide I wrote in the early days. In the early days this software section was part of the pdf manual. I've updated it and it covers the basic steps I did when using the plain RetroPie image available at PetRockBlock.com.


If you've used Retro Pie before and know your way around [slightly], use the subpage navigation at the left to skip to the topics you need. 


This was written for RetroPie V2.3 which is running on my Porta Pi OS v4.x. I prefer this image as it also contains Rasbian. Having both gives new-comers a better footing to comprehend the layout and navigation of this linux system and OS.

I wrote this to teach others what I struggled with over the past years developing the Porta Pi Arcade. I claim nothing regarding all the hard work done with Retro Pie, Rasbian and the Raspberry Pi.  Do however, respect the work I've done to document this guide and the assembly guide for my Porta Pi Arcade.


 This guide should help you familaize yourself with what a Raspberry Pi is, the Operating Systems installed on it, and how to setup both the hardware + software.



What is “Retro Gaming”?

Commonly referred by the gaming community, ‘retro’ gaming is the love or appreciation of video games and their respective consoles more than two generations old. For example, the “16-bit” console generation of the early 90’s (like Nintendo’s Super NES) is succeeded by four video game generations; Nintendo 64 >Gamecube>Wii>Wii U making the Super NES a retro console.

Current Commercial Products

The vast majority of retro video games are out of print and no longer being published. Hardware for these game has been discontinued and left behind as they are replaced with the more powerful, updated game consoles.. This leaves the retro community with a hunger to play the classics of yesteryear and subsequently adds value and demand for games and systems no longer available in the market. The demand that cannot be met with the finite production of video games left in the market is satisfied by means of playing games on modern systems via emulation. The main video game industry (Sega, Nintendo, Sony, Microsoft) has been a late adopter of emulation as the it relies heavily on multiple factors; broadband server infrastructure, licensing, system cross-compatibility and developer royalty agreements for games no-longer in print. Not to mention studios and developers that are no longer in business.Sega and Ninendo are the bigger adopters of emulation (Vitual Console, Compilation disks) as both own their internally developed IPs.  

What is Emulation?

Emulation allows more capable processors to mimic older hardware architectures in software. Retro game consoles can be emulated in software with a substantially more powerful system than the hardware being emulated. The Raspberry Pi, is a great candidate for this task, as it’s 700MHz processor is between 40x and 700x more powerful than retro game consoles from the early 1990’s to late 1970’s. The Raspberry Pi community has made this Linux system a prime contender for emulation.

Computer Architecture

Best to get a book on this. It's a 'lengthy' topic :)

The Raspberry Pi

There are three important pieces to getting your Raspberry Pi emulating the classic games you own. These pieces are the Raspberry Pi (computer), an SD card (memory), the RetroPie Operating System, an input device (game controller) and an output device (HDMI monitor).


For the hardware, we will be using a Raspberry Pi Model B+, a single board Linux computer with a 700MHz Broadcom processor at its core. 

The Raspberry Pi features some capable hardware in a tiny package, with a tiny price to match. The 700MHz Broadcom (BCM2835 ARM) processor is a heart of the this board, paired with a capable 512MB of RAM. Connect your mouse, keyboard, monitor and SD card into your RPi (Raspberry Pi).  Your SD cards were pre-installed with RetroPie v2.3, a open-source community project of programmers and retro-gaming enthusiasts for emulating retro games on the RPi computer. You can find the download link for the current version of RetroPie at petrockblock.com.


The Image

Let’s discuss the steps for “mounting” a OS to an SD card for your Raspberry Pi.

You will need Win32DiskImager (Needed to write the EXT file format with a Windows (FAT) file system).

Once you have the imaged downloaded, unzip it. You will now have a .img file. Open Win32DiskImager.

1) Select the image (img file) you want to write to the SD card.
2) Select the device/ drive letter, (this is the USB SD card reader with SD card plugged in). Make absolutely sure this the correct drive letter. If you have an external HDD plugged in and select it accidently, all its data will be forever lost if you continue.
3) Click "Write". Unplug the device when it's complete. You now have a bootable SD card for your Raspberry Pi!

Hands On Raspberry Pi

Plug in the power to you RPi. You will see the raspberry Pi Boot into Emulationstation.

With your RPi powered on and booted, you will be prompted to configure an input device like your keyboard. Do this now. For this class we are going to use the following for navigation (you can change this at a later time):


Keyboard Key   Function

Up (Arrow)........ Up

Down (Arrow).... Down

Left (Arrow)....... Left

Right (Arrow)..... Right

Enter ..................Start/Menu

R Shift ................Select

A  ........................Accept

B ........................Back


You should be able to navigate left and right between the emulators that are shown. What you are seeing now is called a “front end” or a fancy GUI to launch the emulators pre-installed on the backbone of the operating system (Rasbian). Emulation Station simply lets the user select any emulator + game on the Pi and opens it with a clean menu selection- much easier than navigating the directories of Rasbian to launch each emulator. “Where are the other systems?” The other emulators only populate when there is a rom file in their respective folder. We will add more roms files (a.k.a. games) later.


The Software

The nitty gritty details of RetroPie lie deep within many configuration files. The performance and user game interface of the Raspberry Pi have their own set of configuration files and menu systems. We will start with basic navigation of these Graphic User Interfaces (GUIs).

Let’s exit Emulation Station by using the default quit to terminal shortcut, F4, on your keyboard.

The basic black screen you see is called the Terminal. The Terminal is similar to MsDOS in its look and feel. Type “startx” to load “X” which is the GUI for Rasbian.

Its look and feel is similar to Windows XP with the performance of Windows 95. Logout (exit) of X by using the ‘log out’ feature located in the lower right (red button).

While we are in the Terminal it is time to set up our RPi properly. Before we do, let's summarize the navigation between the "X" GUI, the Terminal, and Emulation Station:

Configuring the Raspberry Pi

Type “sudo raspi-config” to begin.

            Expanding the roots of the file system, enables your RPi so may see and access the entire memory space of the SD card. Select the first option and then Finish. Your RPi will now restart.

Next is to overclock the RPi to squeeze a little bit more performance from the CPU. This will ensure the majority of our emulators will run at the native speed of the systems we are emulating.

Exit to terminal, and type “sudo raspi-config”.

Select “Overclock” and select “Medium 900MHz”. 

We are increasing the cpu speed by 28%. Doing so requires more power (note the 2 overvolt) and subsequently will make the CPU run hotter. We are also overclocking the RAM speed by 50MHz. This overclocking speed has been thoroughly tested and will not harm your RPi. Higher clock speeds however, might do harm unless you add heat sinks and forced cooling (a fan).

We can also allocate how much RAM is shared between the CPU and GPU. This is usually pre-configured with RetroPie, but adjusting it is straightforward and should be known for all RPi owners. In the raspi-config menu select Advanced Options, then Memory Split. The memory allocation should be done in multiples of 64. Allocating fewer than 64MB to either the GPU or CPU will have adverse effects and is not advised.


Maybe you plan to connect your Raspberry Pi to a HDTV,  an HDMI monitor, or a SDTV via the composite video connector. For the most part, the RPi will automatically find the correct video source (provided only one video cable is connected at a time). However, you might have to manually tell the RPi which audio mode to use (digital=HMDI or analog= composite aka the headphone jack). To select the audio mode select Advanced Options, then select Audio.


Finally, depending on the video source you are using (HDMI or analog) some fine tuning may be needed to correct the aspect ratio or stretch the screen to prevent vertical or horizontal cropping. Exit to Terminal if you have not already done so. In the Terminal type, “sudo nano /boot/config.txt” .


For HDMI add or modify so your boot.txt has these lines  
#remove black borders
#set specific CVT mode
hdmi_cvt 1024 768 60 6 0 0 0
#set CVT as default


This creates a mode that is 1024x768, 60Hz refresh with a 16:9 aspect ratio.There's a wiki page that explains all the parameters, this is just a short overview.


To adjust the screen size in pixels for a SDTV change;




to the following (be sure to uncomment the lines):



(The pixel ratio of 640x480 is a common size for SDTVs.)




Well, those are the basics. Check out my videos and FAQs that lead to more advanced topics. And if you want answers to all your questions, see the forums at petrockblock.com

Print Print | Sitemap
© 2013-2016 Ryan Bates and © 2013-2016 Retro Built Games, LLC. All photos, designs, documents, and graphics (C) Ryan Bates. All Rights Reserved.

This site is best viewed on a desktop PC. (Can't find the payment buttons? Use a desktop web browser or Request Desktop Site)