2013-12-09-let-beaglebone-black-give-your-old-games-an-extra-life

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:



Adafruit #1555

($9.95 – plastic)


Logic Supply BB100

($14.95 – metal)


Hammond 1593HAMDOGBK

($5.40 – plastic)


LaserGoodies.com Slim Case

($11.99 – acrylic)


Adafruit #699

($19.95 – acrylic)

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.