Live data from Hacker News

Building a USB SNES Controller

blog.chybby.com

41–50 of 101 posts

Re: Building a USB SNES Controller

#41
This is really cool!

One thing I'm wondering is how the SNES implemented its Multitap support[1] with such a simple "wire protocol". Could it be that the two missing wires and/or 4 unused slots in the polling cycle are used for some kind of adressing scheme when a multitap is plugged in?

https://nintendo.fandom.com/wiki/Super_Multitap

Re: Building a USB SNES Controller

#42
post #2

Of course completely awesome to make a modification like this. However, if you yourself want a USB SNES controller, consider buying one instead. 8BitDo offers them with the SN 30 Pro - the quality is good, they work with the Nintendo Switch or PC (including Linux), they have the additional buttons needed for modern games, there is a wired and a wireless version and the newer variant has afaik a replaceable battery (u…

I wish they would have proper Linux and fwupd support, which they seem to have dropped.

Re: Building a USB SNES Controller

#44
post #7

Earlier quoted context omitted.

Completely agree. I even had that situation myself - I misremembered how the mode switch/bluetooth pairing mode worked and was not able to connect my controller to a switch, thinking it was broken, until I realized what had happened. A small toggle switch really would be much easier. Still think it's worth it, also to not destroy an original one. On the other hand, better to modify it like this than to throw it away…

The new version does actually use a switch instead of the magic button combination. Agreed on the previous version being annoying. Had many kid debugging sessions when they accidentally switched the mode and “broke” it.

Wireless ones have a switch, the wired ones all have the "maybe you have to hold a letter depending on the game, kernel version and OS" problem.

Re: Building a USB SNES Controller

#46
post #2

Of course completely awesome to make a modification like this. However, if you yourself want a USB SNES controller, consider buying one instead. 8BitDo offers them with the SN 30 Pro - the quality is good, they work with the Nintendo Switch or PC (including Linux), they have the additional buttons needed for modern games, there is a wired and a wireless version and the newer variant has afaik a replaceable battery (u…

I'm using the 8BitDo wireless pads on my Switch and am very happy with them— vastly more comfortable than joycons, but a fraction of the price of the official pro controller.

Re: Building a USB SNES Controller

#47
post #26

Looking at the described protocol it seems the SNES controller uses a simple 16-bit parallel-in-serial-out shift register - and a quick Google confirmed that. This means the timing is almost certainly quite loose, and there's a pretty decent chance you might even be able to poll it as the 1kHz "needed" for "serious" gaming. And it'd be pretty trivial to offload the readout to the MCU's SPI peripheral.

I converted a DOS-era joystick like this, and the shift registers inside were stable at higher speeds, I don't remember needing to care about the timing much. I may have just run the clock in a for-loop during the polling loop.

Re: Building a USB SNES Controller

#48
post #26

Looking at the described protocol it seems the SNES controller uses a simple 16-bit parallel-in-serial-out shift register - and a quick Google confirmed that. This means the timing is almost certainly quite loose, and there's a pretty decent chance you might even be able to poll it as the 1kHz "needed" for "serious" gaming. And it'd be pretty trivial to offload the readout to the MCU's SPI peripheral.

It's extremely loose! Using a custom PCB to connect the controller over RJ45 to a custom Pi hat I wrote some code to simply display the button presses on screen, to test the functionality of the controller (we are modifying hundreds). I had to play around a lot with the timings to match up the response of the program with the speed of my finger pushing a button, else the program would return "you pushed B" a dozen ti…

The physical switches may actually bounce, so you might need some debounce logic, if it wasn't the shift register glitching out. It's pretty common for buttons to need this, often seen in keyboard firmware as well for similar reasons, the physical mechanism actually will oscillate a bit between states.

Re: Building a USB SNES Controller

#49
post #2

Of course completely awesome to make a modification like this. However, if you yourself want a USB SNES controller, consider buying one instead. 8BitDo offers them with the SN 30 Pro - the quality is good, they work with the Nintendo Switch or PC (including Linux), they have the additional buttons needed for modern games, there is a wired and a wireless version and the newer variant has afaik a replaceable battery (u…

It's not the same... It's like buying a non-nintendo controller in the past. They simply don't feel and respond the same
Post reply on HN