[TK] is a retro computer enthusiast who’s had some difficulty locating a joystick for his trusty Amiga 500. New ‘sticks are expensive, and battered survivors from the 80s go for more than they should.
Happily these old controllers were simple devices, having only five control lines for the four directions and a fire button which were active low. [TK] therefore cast around the available components and decided to craft his own controller from a numerical keypad.
Numerical keypads may be ubiquitous, but they’re not the perfect choice for a joypad. Instead of individual switches, they are wired as a matrix. [TK]’s controller works within that constraint without butchering the keypad PCB, though his layout has the left and right buttons below the up and down buttons. Looking at the schematic we wonder whether the 4-5-6 and 7-8-9 rows could be transposed , though joypad layout is probably a matter of personal choice.
Making the controller was a simple case of wiring the pad to a 9-pin D socket in the correct order, and plugging it into the Commodore. He reports that it’s comfortable to use and better than some of the lower-quality joysticks that were on the market back in the day. Veterans of Amiga gaming will understand that sentiment, there were some truly shocking offerings to be had at the time.
Quite a few home-made game controllers have made it onto these pages over the years. There is this one using tactile switches and a ballpoint pen, and a stick made from the idler wheel from a surplus VCR, but the ultimate crown of junkbox joysticks should go to this joystick made from clothes pins. If we take one thing away from all this home-made controller ingenuity, it is that what really matters is not the hardware but the gameplay.
With some diodes he could have made it 8 direction instead of 4 direction.
Perhaps not with a matrix pad. Haven’t actually thought it through, but it does bring a few limits to what he can do.
It’s also not the best thing to use for input, I think. Something like a SNES / NES pad adaptor with an Arduino might be good. The protocol is a simple serial shift-register that you clock yourself. That would be a bit more complex and expensive than this is.
Rather than adapting the SNES protocol to the Amiga port signals in software, I would be tempted to try just attaching wires directly to the pads on the controller’s PCB and bypass the SNES protocol at the hardware level. I did something similar a while ago to make a Bluetooth SNES controller following an Adafruit example.
why not switch fire and up to make a sane layout
We did consider having a more typical layout like that, but actually found it more comfortable in use to have up and down at the top and left and right a little lower down. While “logically” it would seem better to have the directions in a plus-sign type layout (and for fighting games this would probably be ideal), for the games I play (primarily old school 2D racers like Jaguar XJ220 the Game and Lotus III) I found this suited me more. The great thing is all you have to do is pick a different line and just shift things where you like. :D
anyone notice the Konami code? Look at the way the buttons are laid out. Another HAD fool?
No, not a fool post – it was written a few days ago and has sat in the queue.
If I’m not mistaken I seem to remember you could plug a Sega Genesis controller in and use it as a joystick. And the sticks that came with my Atari Flashback – So I’m guessing just about any “Atari Compatible” controller would work.
I connected Genesis controllers to my Amiga back in the day. Only one of the letter buttons works as the Amiga “fire” button (B, IIRC) but otherwise it works.
I also made some custom software that could support a further button (C, I think?) by looking for a right mouse button click, but of course that is not useful for any standard Amiga games. I would be tempted to try shorting together all of the buttons so that they all work as fire, so then you can just press whichever is most comfortable.
Sadly it looks like there aren’t aftermarket Genesis controllers still made like there are for SNES (as stocked by Adafruit), so that might not be any easier than an Amiga/Atari joystick at this point.
I am confused as to the claims that the joysticks are extremely expensive.. $19.99 for an atari compatible joystick that will work just fine. Looking at the pinout, there are a ton of options as the amiga copied what everyone else was doing back then so there are a ton of options. You do not have to buy Commodore Amiga specific.
I used to build Atari compatible controllers (for my Commodore computers) all the time back in the day. I imagine the hardest part now would be sourcing a 9 pin connector.
Isn’t that a standard DB9 connector ?
Yes. No problem finding them new as they are still being used. Finding the DB 23 connector for the Amiga video out is a problem!
That 23 pin was a problem back in the day too. We used to saw the end off the slightly larger connectors and file them to shape.
Now, that’s a hack!