Let BeagleBone Black Give Your Old Games an Extra Life!
by Jason Kridner
Don't let the fun you had playing childhood video games disappear and decay as forgotten memories — give them an extra life! Help make sure that generations to come will still be able to run the same software you run today, including the video games of yesterday. Open source enables us to preserve the information to run those games, passing them on to the next generation. In fact, there's already a huge movement of people saving their old games using "retro-gaming systems," but not all of them are fully open source. Because the BeagleBone Black not only runs open source software, but is also open source hardware, taking the time to bring it your games your games up on BeagleBone Black means you'll be able to bring those games with you into the future.
Why BeagleBone Black?
Why does BeagleBone Black make an awesome choice for building your retro-gaming system? Firstly, it is affordable. If you're on a budget, all you need to add is a gaming controller, a USB charger (one like you already have for your phone) and a microHDMI cable to connect up to your TV. You can use the pre-installed system on BeagleBone Black's on-board 2GB eMMC flash as a basis for compiling and running your game system emulators, such as MAME, which lets you run old arcade games, Stella, which lets you run your old Atari 2600 games and DEmul, which lets you run your old Dreamcast games.
Having a compiler and full set of build tools without needing to download and configure anything can make for a wonderful experience. Nevertheless, if you aren't very familiar with embedded Linux, you might want to switch to a more familiar Linux distribution. For my simplest setup, I chose to flash Debian onto my BeagleBone Black's eMMC. I used a microSD card to put the new operating system on my BeagleBone Black. If I was feeling especially cheap, I could have opted for a tool developed by Vlad Victor Ungureanu, one of the BeagleBoard.org students who participated in the 2013 Google Summer of Code. Vlad has provided a utility that can be used to flash a BeagleBone Black from an Android phone or Linux computer without needing a microSD card ( https://github.com/ungureanuvladvictor/BBBlfs).
Not just affordable, it's also easy
Of course, if all this talk of "compiling" and "Linux distributions" has you feeling uneasy, remember — no need to fear, BeagleSNES is here! Take a virtual stroll over to http://www.beaglesnes.org and you can download an image for a microSD card that's ready to boot 'n roll. This image is built on Ubuntu and a full set of documentation is available to get you started. In the future, it might even get easier as I've been working on a Buildroot based image that will let you boot and run off of a FAT-formatted microSD card, rather than needing to copy over an exact disk image .
It is also really easy to put a case around your new retro-gaming system such that it can sit neatly in the living room without getting chewed up by the dog. Here's a quick look at some of my favorites, including very affordable plastic and laser-cut cases as well as stamped metal cases you could stand on, if somehow the need arose:
Make it your own
Off the shelf software and cases make it easy, but small, low-power, open software and hardware means that you can customize to your heart's content. For me, that meant putting my BeagleBone Black into a cabinet and attaching a 10" LCD screen. For my first case, I was a bit lazy and started with an off-the-shelf cabinet — the iCade. It is a nice case with solid controllers, originally built for an iPad, but I was able to easily mount my LCD panel using a 2-by-4 and some velcro I got at my local hackerspace (i3 Detroit) and connect to the controls using a USB Bluetooth dongle. For the LCD screen, I used the one from Chalkboard Electronics.
For my next upright version, I got some custom components and ideas from the folks at i3 Detroit, including a smaller laser-cut cabinet partially inspired by the iCade and a less-expensive, more-flexible 7" LCD that takes an HDMI input. I ended up buying the LCD off of eBay for less than $50. I'm told LCD system seems to have been designed for backing-up cameras in cars, but I haven't been able to find a more traditional distributor stocking these displays.
This new cabinet looks really promising and there is already one setup at i3 Detroit showing constant weather updates, but the killer case has got to be the laser-cut handheld case with the battery-powered GamingCape by Max Thrun he did as part of the TI 2013 Intern Challenge. Unfortunately, you can't buy the case or cape anywhere, so we set out to build our own at i3 Detroit. I ordered 3 PCBs from OSHPark and purchased most of the components at Digi-Key. All said and done, I'll have ended up paying about $160 each (including BeagleBone Black) for 3 units hand assembled by one of the members of the space (in exchange for getting one of the units) and assembly has begun. It wouldn't take a much larger order to drastically cut the price, but we just want our hands on a couple of these bad boys on our own for now.
It is worth a few minutes to watch Max's amazing video of his assembly.
Final thoughts on retro-gaming, custom-gaming and physical-gaming
In addition to being affordable, easy, supported by off-the-shelf enclosures and highly customizable, you might also simply choose to use BeagleBone Black for a retro-gaming project simply because of its performance and interfacing abilities. The super-scalar ARM Cortex-A8 can execute 2 instructions every cycle and has a vector accelerator called NEON that can perform up to 8 operations per cycle — and it runs at 1GHz. This is in addition to having a built-in 3D graphics accelerator and two 200MHz microcontrollers to handle all of the real-time interfacing aspects. You might have already seen how these microcontrollers can be used to drive huge LED displays without consuming any of the primary CPU in projects like Disorient Pyramid.
These performance and interfacing aspects, in addition to providing ways to run game system emulators faster and in more environments with more input and display devices, also open up entirely new types of gaming. One example is the Node.JS-based multiple-room physical-gaming system built by Eric Gradman (https://vimeo.com/60993092, http://www.pehub.com/2010/04/gradman-bushnell-aim-to-create-new-gaming-experience/ ). For those of you concerned about retro-gaming copyright issues (http://www.nintendo.com/corp/legal.jsp), creating and exploring entirely new games and new gaming experiences might be just the cure for your worries and boredom. Then again, you might simply be looking to bring back old games on your own without emulators and creating new experiences around them, like with Benjamin James' 30-foot Tetris wall.
Retro-gaming or custom-gaming, good times are here for you and your Beagle.