Setting up RetroPie
I wanted to play some old video games, and I had a Raspberry Pi B+ lying around, so I thought I would check out RetroPie and get that working.
Flashing an image to an SD card using OS X
I downloaded the image (I used retropie-v3.3.1-rpi1), flashed it to a 4GB SD card, and set up the Pi.
Finding your hard-wired Pi without keyboard access
I use a MacBook as my primary computer and don’t have any other keyboard, so typing on the Pi was my first difficulty. The Pi may output its IP address during the bootup process, but I didn’t catch it. Fortunately, this is pretty easy to work around for a hard-wired Pi: I can just use the default hostname. This wouldn’t work if my Pi had been using wifi, because I would have needed to configure the SSID and password, but I’m fine since I am using a wire.
In this case, the hostname didn’t work. Maybe my router was misconfigured, or maybe this distribution doesn’t support this feature. Still, we can use nmap to find the IP address, then ssh in using the default login (pi
/ raspberry
):
I’m going to be looking for something with ssh running. My Pi ended up being this one:
Setting up AFP to connect to a Time Capsule
Now that I had the keyboard set up I proceeded to use the on-TV instructions to set up an XBox 360 wired controller. Then it was time to set up some games. My games are stored on a Time Capsule file server, so I will need to set up that service. I basically followed this guide.
Note for anyone following along here, I was getting an obnoxious error that was quite difficult to track down. The error was:
This error is very uninformative, but I was able to use strace to find out that the problem was related to not having the fusermount
program installed. This is provided by the fuse
package, so make sure to install that.
Trying again with CIFS
I spent a lot of time trying to set up the connection to the service using AFP, but the daemon was crashing and I decided to switch to using CIFS, which was much easier to set up as well.
I also needed to add a line to my /etc/fstab so that the share would be mounted on reboot (\040
is how you escape a space in fstab):
Using the scraper with CIFS
I had a collection of ROMs and wanted to get the titles / box art in EmulationStation. EmulationStation’s builtin scraper is ludicrously slow and only does 1 game at a time however, so I searched around and found a faster program that lives in the RetroPie “experimental” section, called Sselph’s Scraper. However, it has a problem where it doesn’t follow symlinks, which means that my symlinked ROMs folder isn’t scanned. The workaround is as simple as adding a trailing slash to the pathname and running the scraper manually.
Future ideas:
While I was working on this project, I kept a list of the things that could be better. Maybe this will give you an idea for how to improve RetroPie.
- I’d like to fix the wired XBox 360 controller blinking LED. Looks like the kernel module (xpad) does not have LED support compiled in?
- I want a power switch for the Pi so I don’t have to unplug the device to turn it off. Ideally, I’d like to find out how to get something that allows wireless xbox 360 controllers to power on the device using the button.
- The libretro GUI (rgui) is rather primitive, and doesn’t seem to be able to save configuration changes in the latest release.
- I would like to automatically restore my save state when I power on an emulator.
- I’d like to upgrade to a Raspberry Pi 2 and get N64 emulation running.
- The bootup time is pretty high. What could be shaved out to speed it up?