I've wanted to do a DIY-joystick for the Commodore 64, but since it uses slightly-more-than-cheap Cherry MX (or compatible clones such as Gateron) - I wanted something that could do more than just one thing. With that design requirement fuzzily defined I set out to make it support up to three fire buttons, then I wanted to use it on a whole bunch of different systems I set out to add a set of adapters for it. The system is now compatible with Commodore Amiga, Atari 7800 and Sega Master System, but I'm sure there are more to this list because I only include those I've tested it with.Sounds cool, but why all the adapters? I wanted to build my adapters so they are as close as electrically possible to the original controllers for those systems. What that means is that instead of having a microcontroller that's pretending to be a specific controller, I built the actual controller instead. There's no lag because it's impossible for it to exist.Yes, but I can see that you added an Arduino Pro Micro to it? It implements USB-support, that way you can set it up to act as an ordinary keyboard or something that'll look like a gamepad on a modern computer. The firmware is open and you can add features to it if you would like to, use it as a simple streamdeck or macro keyboard if you want to. An alternative firmware sees the system transformed into a programmable Autofire system with a dedicated rapid fire button, it's a pretty awesome way of playing R-type on the C64. For the later hardware revisions it also takes care of features such as lighting effects on the keys.Yes, I've made the controller of my own weird dreams! Included is a ton of different options so you'll need to have a read-through of the documentation over on my github to figure out which parts you'll need, possibly by first figuring out what you want it to do for you.This specific shared project is the main keyboard module, this has all the active and passive components. I've added some additional faceplates, these are mostly there to reduce flexing of the PCB during use - it'll also make the end product look a lot better. Additionally, not all vintage systems that used a DE-9 (often incorrectly referred to as a DB9 connector), for those systems you may require an additional adapter. For all related projects, adapters and and faceplates - see C64 JoyKEY.