Live data from Hacker News

Building a USB SNES Controller

blog.chybby.com

11–20 of 101 posts

Re: Building a USB SNES Controller

#11
post #6

I'm fairly novice with Arduino and interfacing with buttons/pots but I thought delays / loop interrupts were discouraged versus a reset-able counter variable?

They are if you have anything else that needs to be done at the same time. I would say they're fine if you have nothing else to do while waiting, or you need microsecond delays to generate a signal like in this case.

Re: Building a USB SNES Controller

#12

Great write-up. Next logical step is adding Bluetooth support so you can use it on the Switch: https://www.instructables.com/DIY-ESP32-Bluetooth-GamePad-fo...

Don't forget that these controllers operate at 5V logic and the ESP32 at 3.3V. Supposedly the ESP32 can tolerate 5V inputs [0], but it's probably best to put a level shifter between the two.

Re: Building a USB SNES Controller

#13
I've tried building an arcade stick in the past by having the Arduino emulate a keyboard and doing standard Arduino lib digitalRead of the buttons and sending keypresses (for MAME) over USB. It worked, but the lag was terrible. I wonder if this fares any better.

In any case, if you can handle the wait, you can get a knockoff SNES USB pad from China for a few bucks. The plastic will feel way off, but you can probably swap over the shell from your original pad with little effort. And you'll get fresh rubber button pads, rather than 30 year old spongy ones, as a bonus. :)

Re: Building a USB SNES Controller

#14
Reminds me of that meme that says

> Look What They Need to Mimic a Fraction of Our Power!

That tiny arduino has a 16Mhz chip, while the NES main CPU ran at 1.66 MHz. Just a funny fact :)

Re: Building a USB SNES Controller

#16
post #4
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 did try different 8BitDo controllers, and one issue with them is the "multi-mode": in order to make them work with Android/iOS/Windows/whatever, you need to press some key before connecting them, to change the way the OS recognizes the input. Which is a deal-breaker for small children, and prevents keeping things simple (e.g. "remember to disconnect and reconnect the USB before turning the power on", e.g. when usin…

The ones I have (SF30/SN30) remember which mode they're in so I just press the start button and it connects to my Switch. Then if I change it to bluetooth, it's the same for my Steam link until I switch it back. Plus there's a sticker on the back that gives the combos to change modes (Y+Start=Switch, X+Start=Bluetooth, etc). Some models, like the Lite 2, do have that physical mode switch.

Re: Building a USB SNES Controller

#17
post #4
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 did try different 8BitDo controllers, and one issue with them is the "multi-mode": in order to make them work with Android/iOS/Windows/whatever, you need to press some key before connecting them, to change the way the OS recognizes the input. Which is a deal-breaker for small children, and prevents keeping things simple (e.g. "remember to disconnect and reconnect the USB before turning the power on", e.g. when usin…

I have four of the bluetooth SN30's for couch co-op games on my SteamDeck. I agree that if I switched between devices often (like my son's switch) I'd need a lookup table for the power-on chording. Mine have the key combinations printed onto the label on the back.

Fwiw, the ones I have remember their last pairing setup, so I only need to power them back on via the "Start" button.

Re: Building a USB SNES Controller

#18

RetroUSB has adapters for those not looking for a project. I bought one of their NES adapters years ago. https://www.retrousb.com/product_info.php?cPath=21&products_...

Kind of amazing that you can get a whole controller (including buttons etc.) for a fraction of the cost of an adapter. Probably a less authentic experience though: https://www.aliexpress.com/item/1005005998083106.html

Re: Building a USB SNES Controller

#19
Before the existence of Blue Retro or any commerically available adapter, I wanted to use Playstation 4 Dual Shock wireless controllers with my Sega Saturn as an analog controller. I used the Arduino USB Shield Adapter since that supported wireless Dual Shock controller and all I needed to handle was the Saturn side of things with emulating a controller protocol so the Saturn things it had a 3D controller plugged into it.

This was my introduction to Arduino programming, bitmasks and direct port manipulation. I have changed the recently to not use direct port manipulation since it really isn't need for the Saturn and I wanted to make the code more portable.

I have since made a wireless for the official 3D controllers for the Saturn with no noticeable latency. Something it seems is still taking others a while to figure out it. I am not doing anything fancy so I don't know how they can't figure that out yet. They are using Blue Retro though where as I am just using an nRF24L01. So maybe the Blue Retro is adding some unnecessary over head. This i have not released the source for though.

Post reply on HN