Logo Logo

Back to BMC64

You can build your own PCB that can mount inside a C64 shell for a replica machine. It will let BMC64 scan a real C64 keyboard and joysticks using GPIO rather than USB. It can also provide power to your C64's power LED. There are a few advantages to using this over a Keyrah:

#1, It can give you a 1 frame advantage over USB gamepads due to USB's polling interval of 8ms being out of sync with the emulator's frame gen. (USB's worst case is a 3 frame lag.)

#2. It can give you up to 2 frame advantage over the Keyrah due to Keyrah's 10ms polling + usb polling (see Oscilloscope measurements off the main page)

#3. It was recently discovered that the Keyrah has a limitation whereby one user's joystick movements can block another user's movements on the other joystick port. That means two (simultaneous) player games won't play well using the Keyrah. BMC64's PCB has no such limitations. In fact, all 10 signals can be pressed independently of one another just like on the real machine.

#4. The switch and power jack are actually used for switching the power unlike the Keyrah whose switch is a mode switch and power jack is typically unused when enclosed in a C64 shell. (The connection to the Pi is made from the inside).

* Paddles are not supported

The design for this PCB is made available on upverter. BMC64 PCB Design

The PCB design is bare bones. It has no ESD protection. So just like the real C64, a static discharge directly into the joy port pins could damage your Pi's GPIO pins. Take caution to discharge yourself and avoid touching the DB9 pins directly. This is a do-it-yourself project that involves soldering and patience. All the parts are available from DigiKey.

If you are mounting this inside a breadbin, it's relatively straight forward. However, if you plan to mount it inside a C64-C shell, then you will need brackets to support the keyboard. Not all brackets will fit since the header for the keyboard and IDC connectors will get in the way of some. I used these: Ultimate 64 Support brackets


© 2019 Randy Rossi (randyrossi at gmail dot com) - All rights reserved (2019/01/30)