Last Updated on January 18, 2020.
I’ve always enjoyed tinkering with electronics. Nothing terribly serious, just a few notches beyond basic understanding of circuits, primarily to control servos and power/manipulate LEDs. I can at least say I’ve never ‘Electro-Boomed’ myself. Maybe I’m not really an amateur electronics enthusiast until I have? I also enjoyed gaming on an Atari 2600 (Actually, the Sears version) and a Commodore 64. This is how my recent and first real Pi project came to be. Think of this first post as you would the formation of a planet. Bits and pieces swirling around, not quite coming together yet to form the whole.
A slice of retro
Last year I was using a Raspberry Pi to measure pH shifts in my aquariums that naturally occur from CO2 injection. I just received one of the newer Pi-2 Model B‘s and asked my self what next? What can I do with this thing? Searching on google for raspberry pi projects, I came across a wonderful little project called RetroPie. Retro gaming on this little credit card sized computer? Consider me signed up. As an aside, there’s numerous projects like this for the Pi, such as PiPlay
What is RetroPie? It’s essentially a project that integrates required components to launch, emulate, and gather meta-data about any ‘retro’ games you might install. It’s a large endeavor as it attempts to make the setup as simple as possible, and given that while it may only use one front end, there are many emulators necessary to make this happen, depending on what you want to support.
The Front side
Underneath the project wrapper itself, you’re looking at a simple yet elegant front end known as Emulation Station. Not just for your Linux Pi installs, Emulation Station works on Debian Linux and Windows. You don’t technically need a front end to play a game, but it surely helps. An emulation front end separates you from having to remember which emulator to play which game, how to launch it, how to configure it, etc. While there are as many front ends as there are emulators, Emulation Station is a good fit for the RetroPie project as it looks sleek but covers your basic needs of wiring menu to emulator to software. Even more important is the RetroPie script that just installs this all for you.
EmulationStation acts as your interface to select the game you want to play. As such, it supports various control mechanisms, from keyboards to joysticks, even your classic arcade controllers if you can wire them in yourself or they’re USB compatible.
Also included is a scraper. You’ve wired up a game you’ve saved onto your Pi, perhaps by taking that old floppy drive from your Commodore 64 and interfacing it with your Linux machine by writing your own drivers and wiring your own connection interface, right? No? Me neither. The task of collecting ROMs or Disk Images isn’t here, so move along. I’m assuming you’ve got some already. Ah yes, the scraper. Sure, you can add ‘Panzer’s East!’ as a menu item in Emulation Station to use the Vice emulator. But what about at least a little flair? Some box art? Some text describing the game? That’s where the scraper comes in. Scanning open and internet based databases containing game information and pointers to images, scraping turns your emulation station front end into more eye candy than you had before. I like that idea, though when I played around with Emulation Station I ran some scrapers as scripts in the background, as the embedded scraper seemed to be slow and a bit clunky to use, but perhaps that has improved.
The Back side(s)
RetroPie takes best of breed emulators for various gaming platforms and installs them all with default configurations. These emulators cover a wide range from Apple to NES, from MAME to Commodore, from Sega to Atari. These emulators, through the power of the RetroPie script, are wired into Emulation Station for you, no explicit configuration required unless you feel like tinkering.
While there are experimental builds of some emulators, the defaults generally work well out of the box, and some emulators are patched with the Pi in mind, taking advantage of certain pieces of Pi hardware or patched to work with the limited power the Pi has compared to a full desktop system. It’s a little give and take. While most of the early console systems worked well for me, DOSBOX emulation started to struggle. Since I’m a child of the 80s, a lot of my stuff was covered, but I also gamed into the 90s, so a lot of my DOS and early Windows games would need emulation on something with more oomph than a Raspberry Pi 2 Model B. (The first generation Pi does work with RetroPie, but it suffers on the console side a lot more than the Pi 2).
If you’re used to tinkering with Raspberry Pi’s, you already know about images. The RetroPie project has you covered there and if you follow along and are already comfortable with the basics of Raspberry Pi usage, you’ll be fine. I wouldn’t recommend it as your very first Pi Project if you’ve never used one and never touched a Linux/Unix OS before. That’s more akin to hitting the ground hurtling instead of running, in my opinion.
Pi installed, let’s play!
One of my favorite games from the days when I had a Commodore 64 was a strategy game by Avalon Hill called ‘Panzers East!’. You’re the Axis powers and you must take out Russia before winter sets in, and you must utilize your Luftwaffe and supply lines to keep the pressure on while maintaining your ground.
My father and I played the crap out of that game. I could open that old game box if I still had it and there would be zero crap in there. He was Panzers and infantry, I was Luftwaffe. My mother had access to a copy machine (Yeah, I’m old) so we blew up the 8 1/2″ x 11″ map to fill the wall behind the old Commodore 64. This map, to be precise:
To this day, I still remember cringing every time I saw the phrase ‘Insufficient German troops, Russians retake Bessarabia’. God damn it, not again!
There it is, on a Raspberry Pi, running the Vice emulator launched by Emulation Station.
It was right about this point I knew I’d end up not only having a RetroPie emulator, but I’d actually try and build an arcade box out of this, because I knew I wanted Pops to have one. I couldn’t just hand him over a bunch of wires and an HDMI cable and say ‘Hey, let’s play a game!’.
So I knew I was going to make something to house a raspberry Pi in. I just didn’t know how far I’d go and what it would actually be. I just knew it was for Pops and it would be special. It wasn’t until I was past prototyping that I thought… “Tardis“.