C64 USB Joystick Adapter by Frank Buss
Featured
setup.jpg
There are some nice emulators for vintage video games and computers out there, for example WinVice for commodore hardware like the C64, but how do you connect old joysticks to your PC, like the Competition Pro (the original one, with 9-pin D-sub for an original C64, not the USB version) ? Most emulators provides joystick emulation with the cursor keys or other configurable keys. So this project is one solution for this problem: a Freescale microcontroller implements an USB keyboard and translates the up/down etc. buttons to keyboard events, like if you have pressed the cursor keys.

Programming the microcontroller and testing the joystick with WinVice and International Karate:




 
Remove these adsRemove these ads by Signing Up

Step 1: Tools

tools.jpg
soldering.jpg
See the images for some useful tools for this project and consumption items for soldering: soldering flux, solder, and desoldering wire. A cotton bud is useful for applying the soldering flux.

I recommend a good regulated soldering iron with a 1 mm tip for the SMD parts, like my i-CON 1. The easiest way to solder it is a stereo microscope, but magnifying glasses works, too. But with some practice, the SOP-20 IC needed for this project can be soldered without any magnifying.

Nitz76 says: Oct 21, 2012. 11:42 AM
Hi Frank! Nice work! I had the same idea.
I built one based on Atmel atmega8 because I don't know very much about Freescale's microcontrollers.

See my site at http://www.retronicdesign.com/
Cheers!
Frank Buss (author) says: Oct 21, 2012. 2:14 PM
Nice, your product looks very professional. I guess you are using V-USB and low-speed USB? How much latency do you have? With the Freescale microcontroller I can use full speed USB and can set the HID update rate to 1 ms.
Nitz76 says: Oct 21, 2012. 5:39 PM
Hum interesting... I might have a look to Freescale products. I tried Atmel's own hardware USB controllers but they are quite expensive for what they bring more for this application.

Actually, my design is based on Igor Cesko's design.

Latency is not an issue here. Low speed USB is more than enough for joystick interfacing.
TheRealDutchOwner says: Jan 12, 2012. 11:12 AM
Do SEGA Genesis/Megadrive and Atari 2600/7200 controllers work on it? I'm pretty sure 2600/7200 ones should work on them, since they work the same, and have the same plug. The SEGA Genesis/Megadrive uses the plug too, and it would be nice if they would work on this.
Frank Buss (author) says: Jan 12, 2012. 3:01 PM
The pinout of the C64:

http://old.pinouts.ru/Inputs/ControlPortC64_pinout.shtml

So yes, the Sega Genesis joysticks would work with it, too, see this pinout:

http://pinouts.ru/Game/genesiscontroller_pinout.shtml

But you would have to connect pin 7 to GND to select button A or to +5V to select button B and you won't have button C with my current schematic. So you could play C64 games with a Sega Genesis joystick, but if you like to play Sega Genesis games e.g. in Mame, my schematic would need to be extended, but should be not too difficult.

The pinout of the Atari 2600:

http://old.pinouts.ru/Inputs/JoystickAtari2600_pinout.shtml

So this would work without problems.
mischka says: Jul 31, 2011. 5:10 AM
Cool, I love playing retro games, specially Commodore 64 games, because it was my first computer. I was thinking about making an adapter using a keyboard controller ("keyboard hack"). Your solution seems more professional.
Frank Buss (author) says: Jul 31, 2011. 12:33 PM
Thanks. I plan to make a PCB for it, so that it is easier to rebuild for others, and maybe a kit. Could be enhanced to support a wider range of old joysticks, or any other hardware, which needs to send keyboard events.
Pro

Get More Out of Instructables

Already have an Account?

close

PDF Downloads
As a Pro member, you will gain access to download any Instructable in the PDF format. You also have the ability to customize your PDF download.

Upgrade to Pro today!