Recently, the NES Classic made a big splash. The ability to play all your old favorites on a tiny device! However, it only plays NES games, and can fit upwards of 30 games maximum on it. We would all like the ability for a device like this to play our entire library of roms, including SNES and Sega!
Luckily, if you buy a Raspberry Pi, know a little bit about Linux, and can use Emulators and Roms, you can build a miniature SNES! Luckily for you, I knew nothing about Raspberry Pi, or linux when I first started this project, so this tutorial will cover every single step from the beginning. So let’s learn how to build a Raspberry Pi SNES.
1. Install Raspbian directly to Raspberry Pi
You will need to download the software ‘Raspbian’ to your Micro SD card in order to make your Raspberry Pi work. Think of this as the Windows or Mac OS.
You can download a fresh Raspbian Image from here. The Raspbian image can be installed the same way as the RetroPie image (as described here).
You can check your free disk space with
df -h
/dev/root is your main partition. Then, I would recommend to update and upgrade the existing APT packages with
sudo apt-get update && sudo apt-get upgrade
Verify Local Settings
Most of the install scripts will attempt to install a variety of packages and libraries that each emulator requires. These installations will fail if your system locale settings are invalid. You can easily verify this by executing locale command. A valid locale will return values set for all options.
If any of the above configuration lines are unset (particularly LANG, LANGUAGE, and LC_ALL), you should set them before installing RetroPie. The easiest way to set each item is to use the update-locale command, such as $ sudo update-locale LC_ALL="en_US.UTF-8".
Users can also set the local through the raspi-config tool.
A reboot is required before these changes will be reflected by the locale command.
2. Install RetroPie
What is RetroPie?
To turn our Raspberry Pi into a true console, we need RetroPie. This is a software built for Raspberry Pi, that powers our mini SNES. RetroPie contains a bunch of emulators to play old games from an array of systems, including the NES, SNES, Nintendo 64, Sega Genesis, TurboGrafx-16, GameBoy, and many more.
There are two ways, manually using command or on an SD card. I chose manual, but will put both here.
Install RetroPie Manually
After that, we install the needed packages for the RetroPie setup script:
sudo apt-get install git lsb-release
Then we download the latest RetroPie setup script with
cd
git clone --depth=1 https://github.com/RetroPie/RetroPie-Setup.git
The script is executed with
cd RetroPie-Setup
chmod +x retropie_setup.sh
sudo ./retropie_setup.sh
The screen should look like below:
Install RetroPie from image on MicroSD card
To get this up and running, you will need to install RetroPie to the Micro SD card. If this seems too difficult, please install manually.
!Important – When you format a MicroSD card that already has data on it, you are essentially wiping it clean.
Download the file locally, and extract the image. If you’re on Windows, a program like winzip, or 7-Zip might be needed. If you’re a Mac user, the built-in Archive Utility will do the job just fine.
Now you need to install that image (which is about 2GB) onto your microSD card. If you’re using Windows, use the Win32DiskImager to install the image on your micro SD card. Mac users can use an app called Apple Pi Baker.
Grab that micro SD card and toss it in the Raspberry Pi!
For video instructions, check out this instructional video from the RetroPie team. For more information check out RetroPie wiki.
The Roms
Now that RetroPie is installed, we need to configure a controller to use it.
1. Configuring Controllers
On first boot your filesystem will be expanded automatically, you will then be welcomed with the following screen- this menu will configure your controls for both Emulationstation and RetroArch Emulators:
After you’ve loaded RetroPie to your SD card and put it in the Pi, plug in the power adaptor and boot it up.
Connect it to your TV set or monitor and plug in your USB controller.
It will take a few minutes to boot up, and then you’ll be met with a configuration screen for your controller.
You can use your controller to navigate through the interface, which will offer access to the various emulators installed on the device.
Now it’s time to get some games installed on the device.
2. Install Roms
Basic Install >> Quick Install
This will install the core and main packages which are equivalent to what is provided with the RetroPie SD image. Once your SD card is ready, you can pop it into your Raspberry Pi, and connect to it remotely.
First, find your IP address on Raspberry Pi. You then have host, username, and password. you still need to turn on SSH access. Feel free to watch the below video tutorial for a more in-depth explanation.
Once connected to your Raspberry Pi with the help of the video above, you will need to copy all your ROM files into the ROMs directory.
If you followed the steps above the main directory for all ROMs is ~/RetroPie/roms (or /home/pi/RetroPie/roms, which is the same here). In this directory there is a subdirectory for every emulated system, e.g., nes, snes, megadrive.
Attention has to be taken for the extensions of the ROM files. All the information needed for each system is detailed in thiswiki (see wiki home page or sidebar for systems).
Copy Roms to Raspberry Pi using FTP
To do this, I used FTP. Your Raspberry Pi will already have an IP address, the username will be ‘pi’ – this is default, and the password is preset to ‘raspberry’.
You may choose to use Samba Shares, or SSH. I will include instructions for FTP only here.
In order to FTP:
If you don’t already have it, Download FileZilla (Client only) on your computer. You can get this for free at this site. https://filezilla-project.org/
If you need a video tutorial on how to use FileZilla, check out this youtube video.
Obtain your raspberry pi IP address. You can do this by opening command on the raspberry pi, and typing the following command:
sudo ifconfig
Next to the wlan0 entry (3rd paragraph usually) you will see ‘inet addr: 192.168.1.10‘ which is the IP address of the Raspberry Pi. This may not reflect your actual IP address.
FileZilla pictured below with settings, instructions follow.
Open up FileZilla. There are 4 fields total on top. Host, username, password, and port.
In HOST, type your IP address. In this example, it would be 192.168.1.10
In username field, type pi
In password field, type raspberry
In the port, type 21. 21 is default for FTP connection.
Press ‘Quick Connect’.
Once connected to FileZilla and Raspberry Pi, you will see both your computer on the left-hand side, and Raspberry Pi file structure on the right-hand side.
Transfer your ROMS into the correct subfolders. For instance, if you have NES ROMS, they would go into ~/RetroPie/roms/nes/ Simply drag and drop ROMS into that folder.
And, YOU’RE DONE! Now it is time to test out the Roms and your new SNES.
Open Emulationstation, on your Raspberry Pi.
EmulationStation can be run from the terminal by typing emulationstation in the terminal.
This will simply load RetroPie and you can use your newly configured controller to navigate to the games you loaded, and start playing!