Retro games and a retro joystick

A lot of people of a certain age (cough – that’d be me) have been using their Raspberry Pis to play the games that we wasted spent endless 10p coins on down at the arcade when we were kids. MAME (the Multiple Arcade Machine Emulator) is a really popular download for the Raspberry Pi, and you can run an increasing number of games on your Pi as developers in the community work on recompiling for Raspbian. Below, for example, is the most excellent Metal Slug 3. (If you want a MAME download for your own Raspberry Pi, Shea Silverman has a handy little tutorial on his site along with the relevant binaries.)

I don’t know about you, but I find that what controller you use has a massive impact on the satisfaction you get from a game. Sure, you can use keyboard commands, but a joystick built for the game is a tremendously cheering thing. And sure, you can use a modern USB joystick – but where’s the fun in that?

Chris Swan thinks so too, and has hacked a lovely 1980s Competition Pro 5000 (hurrah for eBay) to work with the GPIO pins on his Raspberry Pi.

Competition Pro 5000

The Competition Pro 5000 - back in the day, the Amiga user's joystick of choice. I'm looking at my DualShock3 PS3 controller and experiencing feelings of vertigo.

If you want to adapt your own retro joystick, there are hardware instructions and Python script to get everything working on his site. Frankly, the whole thing has me feeling like a 9-year-old with a bad haircut and twitchy thumbs again. Thanks Chris!

23 comments

unitman avatar

Mame is so cool. Have to do this and hook my pi up to an lcd and get this running as a tabletop. Get some old school games going like pacman or donkey kong. That would be cool.

Ade McC avatar

That reminds me, I’ve a Competition Pro joystick in the cupboard somewhere. Almost exactly the same as the 5000 above but with an additional button + usb connection. No GPIO hack required!
http://www.amazon.co.uk/Competition-Pro-USB-Joystick/dp/B000MGOB4S

Didier avatar

Hi,

You think it will be possible to have 2 USB Joystick (like the one you mentioned above) connected to the RPI ?
And with MAME, browse, select a game .. and play some 2 players game ?

pero avatar

Where does he get the ROMs from? Downloading them from the Internet is illegal. They only legal way to get them (and that is only legal in some countries) would be to dump them from actual arcade machines as backups.

reiuyi avatar

Shhh!! Don’t tell anyone when you’re torrenting that 6000+ rom package

Jason avatar

Some ROMs are legal. Check the official MAME website for their list of ROMs that can be legally downloaded.

pero avatar

But Metal Slug isn’t.

Alfred avatar

But why all this trouble to interface the joystick to an external RasPi when the Pi is small enough to fit in the joystick case? Like the C64 DTV: http://en.wikipedia.org/wiki/C64_Direct-to-TV

Joefish avatar

Because you still have to wire the switches in the joystick into the Pi somehow. But yes, you could build the Pi into the base of a joystick and wire a stick and button(s) up this way. What it needs now is support for more buttons.

Reggie avatar

I like the hacks and mods but it didn’t need python and could’ve used gpio-keys:

http://www.raspberrypi.org/phpBB3/viewtopic.php?f=50&t=8842

P@sNox avatar

Excellent, it’s exactly why i bought a Raspberry Pi!
Enjoy :D

Scott (@ScottsCreations) avatar

speaking of emulations i have been creating a launcher for the pi. The UI is being designed for snes input ports (gpio) my brother is working on and it also handles a usb gamepad or keyboard for navigating the UI. It can launch any rom as long as the emulator for the rom is installed. We are also making key combos to quit the running emulator to go back to the UI. We are trying to make a all in one system for a tv so when you launch the pi it takes you straight to this launcher.
http://www.raspberrypi.org/phpBB3/viewtopic.php?f=33&t=13149

Brian Smith avatar

actually, if you are simply playing Neo geo games on your rapbian, you would actually want the authentic NeoGeo controllers, not some knock off with only 2 of the 4 buttons – for the original feel and capability of King of Fighters and other NeoGeo games that require the extra buttons.
http://videogamecritic.net/images/systems/neo_cont2.jpg
Can you wire that up to the GPIO next?

Dr. Stephen Shephard avatar

Love MAME. Spent far too much time in my youth playing arcade games, used to be pretty good at Tempest. I am still surprised at how good some of those early arcade games still are, and also how bad some others are that I used to love. My kids love Pacman.
I wonder if you could fit the pi into the joystick case.

Tom D avatar

I was the ‘Double Dragon’ king. Just elbow all the way to your girlfriend with one credit! I loved how the game slowed down when you elbowed 3 villains at a time :-)

Ryan avatar

MAME is great, but I’d love to see some actual progress on FCEU and ZSNES or SNES9X. Performance of FCEU on the Pi is abysmal, even worse with sound enabled and there is not even a partially working SNES emulator in the repos. Too bad most emulators rely on OpenGL and hardware acceleration, and even worse most of them are i386 only. and no amount of sudo dpkg -i –force-architecture is going to fix that.

Toad King avatar

If you’re looking for other console emulators, you can check out the RetroArch project. Since it uses OpenVG for video, you gain some speed from the lack of X overhead:
https://github.com/Themaister/RetroArch

bazza14 avatar

Let me know when Elite is available

Florian avatar

I love these emulators! Until now, I have not tried anything else than the RetroArch emulator. If you want to give it a try with an auto-installer script, you can find everything at http://petrockblog.wordpress.com/2012/07/22/retropie-setup-an-initialization-script-for-retroarch-on-the-raspberry-pi/. Have fun!

Moxy avatar

Might want to check this out for those retro joysticks…

http://dangerousprototypes.com/forum/viewtopic.php?f=56&t=2971

Chris Swan avatar

What a great project – thanks for the pointer.

I’ve now adapted the Python to use internal pullups, so the DB9-GPIO connection is now nothing but wiring. I’m planning to make something to attach the joystick port(s) to GPIO, but that should be cheap, simple and robust.

Joefish avatar

Great work! I’ve been trying to find a way of doing this myself, to avoid the need to occupy USB ports, or to have to buy a USB keyboard encoder for interfacing arcade quality joysticks & buttons (they generally cost more than a Pi!). I assumed it would require delving into drivers.

This would allow you to build an emulation gaming rig into the base of a joystick, but still allow you to plug in a mouse/keyboard for config or extra USB gamepads for multiplayer.

Chris avatar

Those competition pro’s have some serious lag/timely delay problems and have gotten horrible reviews, I’ve been using a couple of these:

http://www.syzygycompany.com/store/index.php?route=product/product&product_id=50

They work perfectly on the Rasberry Pi’s as well as just regular PC’s and I think Mac’s too (dont know for sure, never tried myself)

Plus they have extra spots to solder on more buttons, I think this joystick better than the other they have because it has a jumper on it that turns its controls in arrow keys and spacebar for use with flash webgames which is cool.

Comments are closed