Recently, I’ve been drowning in personal projects, but I feel that one of them is finally to the point where I can start to release information about it. Project Gamestation is a Raspberry Pi based emulation machine. The vast majority of the code and configuration is incredibly easy to implement thanks to RetroPie-Setup, a GitHub project by PetRockBlog.
Really, the only configuration I’ve done with this project is controller configuration, automated RackSpace Cloud backups, OS configuration, and lots of testing. If you’re looking to build one of these, you must have Linux experience (or a willingness to learn), and you can’t be afraid of the command line.
The majority of NES and SNES games can be played with overclocking set to
modest
. The only time I ran into game slowdown is when playing complex
SNES games like Super Metroid and most Genesis games. I ended up
settling on the High
setting. Medium
was too slow for Sonic 3, and
Turbo
was corrupting SD cards fairly frequently.
For the controllers, I’m using two cheap $10 USB controllers, one an SNES imitation, the other an NES imitation. The NES one I bought was fine, although a little flimsy. The SNES controller had a DPAD issue with the construction, I had to take it apart and move around the DPAD internals to get everything lined up correctly.
I am going to do a more thorough series of posts about the actual
commands and setup later, but for now, I’ll just give you a little bit of
insight. HDMI sound isn’t enabled by default, but you can fix this
pretty
easily.
Autologin is done with the raspi-config
command, a wonderful
menu-driven way to configure and update your Raspberry Pi. To exit the
emulator, I read about a way to
make
this happen
easily. It
involves holding one button and pressing another to get back to the main
menu. I did have trouble getting this to work in DGEN
, the Genesis
emulator, but I know this issue has gotten more visibility lately, so
hopefully a fix is on the way.
My contribution to this whole project is cloud backups. You can configure
emulationstation
to throw all of your save games in a single directory,
so I decided to combine this with RackSpace Cloud
Files for automatic backups every
4 hours (via a cronjob). You will need to install duplicity,
python-cloudfiles, and python for this to work:
#!/bin/bash
UPLOAD_TO_CONTAINER="$HOSTNAME-Saves" #adjust it as you like
export CLOUDFILES_USERNAME= # THIS IS YOUR RACKSPACE USERNAME #
export CLOUDFILES_APIKEY= # THIS IS YOUR RACKSPACE API KEY #
export PASSPHRASE=
export BACK_THIS_UP=/home/pi/saves
duplicity --no-encryption $BACK_THIS_UP cf+http://${UPLOAD_TO_CONTAINER}
Like I said before, I am planning an entire series related to creating your own GameStation, but if you feel like getting started right now, hopefully this gives you a bit to go on. The system isn’t perfect, by any means, but it is a decent start to a cheap emulation system.