There are plenty of people out there who still enjoy playing games on vintage computers like the Commodore 64. But while they likely return to these classic games themselves out of a sense of nostalgia, the feeling doesn’t always extend to the hardware itself. For example, one can enjoy playing Impossible Mission without having to use a contemporary C64 joystick.
Thanks to an open source project developed by [Robert Grasböck], C64 owners who want to take advantage of the improvements made to gaming controllers in the nearly 40 years since the system’s release now have another option. Called Nunchuk64, it allows you to use various Nintendo controllers which make use of the Wii “Nunchuk” interface on original C64 hardware. This includes the controllers from the recent “Classic Edition” NES and SNES systems, which offer a decidedly retro feel with all the benefits of modern technology and construction techniques.
Both the hardware and software for Nunchuck64 are open source, and everything you need to build your own version is in the project’s repository. [Robert] even has assembly instructions, complete with images, which walk you through building your own copy of the hardware and flashing the firmware onto it. This is a nice touch that we very rarely see even in open source projects. The board is populated with a ATmega328P microcontroller and a handful of passive components, making assembly fairly straightforward assuming you are comfortable with SMD work.
Bringing more modern controllers to classic systems seems to be gaining popularity recently, within the last few months we’ve seen Xbox 360 controllers on the Nintendo 64, and newly manufactured pads for the Atari 5200.
Huh, the trick about detecting when the SID is discharging the capacitor and then manually pulling the node high at a fixed delay afterwards (to fake a specific R for the RC time constant the SID is measuring) is a nice one.
I had the chance to obtain the Nunchuk64 as a kit directly from Robert and it’s working great. This is an awesome project!
Commodore CIA are connected to both joystick ports and keyboard. This is why Genesis controller are discouraged from being used on C64, they pull pins high when not used rather than float pin. They interfere with keyboard and blow out CIA.
I do hope the creator made this so the controller output are floating when the button aren’t pressed. I made something similar for other console, my code is to set the AVR’s pin low and toggle between output (to pull to low) and input (to float pin) so they won’t risk causing short when you use keyboard and joystick at the same time.
…my code is to set the AVR’s pin low and toggle between output (to pull to low) and input (to float pin)…
I do it the same way, and I didn’t blow out my CIAs so far. :D
I have a project for doing the same for Atari 2600. One of interesting aspects found during development is that the knockoff (clone) controllers need clock stretching in I2C, whilst some ready available I2C libraries do not support such feature
https://hackaday.io/project/7944-at26-chuck
https://cdn.hackaday.io/images/1541221447899198580.jpg
https://cdn.hackaday.io/images/2500321447899178203.jpg
That is also a nice adapter! Thank you for posting!
I presume that would also work on a C64, since they’ll accept most Atari 2600 controllers too.
Or you could just use a real nintendo controller. They’re trivially easy to hack. Here’s a link to a faq I wrote over two decades ago on how to convert them to use on an amiga/atari2600/etc.
https://gamefaqs.gamespot.com/nes/916386-nes/faqs/9624
The point is that these Wii, NES and SNES Classic Controller with the Wii Connector are very cheap and easy to get.
And the coolest thing, there are lots of wireless controller available. For example the 8bitdo SNES Controller, which works very well.
problem with replacing joystick systems with joypads and vice versa is that the control layout on these systems is designed for the controller… you gotta be able to phisically re-map up to a button on the joypad for jump on platformers.
there’s a reason marios jump was mapped to a button on the NES and not up on the d-pad, if you can’t re map then many atari, commodore and amiga games respond very poorly.
Very nifty. One thing that might make this even more compact, easier to assemble, and potentially cheaper, is embedding the nunchuck connector on the PCB. It can be handled with fingers on the edge of the PCB and a cutout around them. Just a thought.
The Nunchuk Connectors are not that expansive. And I think they give a better connection.
But if someone likes to build a version without WII Extension Connectors look at this fork for user bwack: https://github.com/bwack/nunchuk64. He changed the layout to PCB edge fingers.