For retro gaming, there’s really no substitute for original hardware. As it ages, though, a lot of us need to find something passable since antique hardware won’t last forever. If a console isn’t working properly an emulator can get us some of the way there, but using an original controller is still preferred even when using emulators. To that end, [All Parts Combined] shows us how to build custom interfaces between original Nintendo controllers and a PC.
The build starts by mapping out the controller behavior. Buttons on a SNES controller don’t correspond directly to pins, rather a clock latches all of the button presses at a particular moment all at once during each timing event and sends that information to the console. To implement this protocol an Adafruit Trinket is used, and a thorough explanation of the code is given in the video linked below. From there it was a simple matter of building the device itself, for which [All Parts Combined] scavenged controller ports from broken Super Nintendos and housed everything into a tidy box where it can be attached via USB to his PC.
While it might seem like a lot of work to get a custom Nintendo controller interface running just because he had lost his Mega Man cartridge, this build goes a long way to understanding a custom controller protocol. Plus, there’s a lot more utility here than just playing Mega Man; a method like this could easily be used to interface other controllers as well. We’ve even seen the reverse process where USB devices were made to work on a Nintendo 64.
5 thoughts on “Understanding Custom Signal Protocols With Old Nintendos”
ya know its just a p>s shift register and SPI right?
That was the first thing I thought. But then, that’s just how things are done these days. You don’t see programmable logic devices or CPLDs any more either, because everything is easier with microcontrollers. I’m not really defending this, but it is what it is. Sure, you could try educating the newer generation by sending them to [Ben Eater]’s YouTube page (https://www.youtube.com/user/eaterbc), but they would just say, “why order a special part when I have a drawer full of microcontroller dev boards?”
Sure, but the way we have to interface things has radically changed. I recall when I was in high school electronics modifying an SNES controller to be used on a parallel port with the ZSNES “controller on lpt1” settings.
It’s refreshing to see people going back to the basics adapted to how we work with things today, even if it’s not how we used to remember it.
That paint wrinkling was probably caused by using two different types of paints that are not compatible, so the solvent used in the purple paint caused the gray paint to swell and soften.
or its layers are too thick
Please be kind and respectful to help make the comments section excellent. (Comment Policy)