Best way to make a SNES USB controller

A board for emulation discussion. Logically, SNES emulation talk is what this board is for, but discussion of Game Boy, GBA, N64 and NDS emulation is also welcome. Relevance to DKC is preferable.
Forum rules
Remember; posting/requesting ROMs is not allowed. General ROM/emulation talk is fine, of course.

Best way to make a SNES USB controller

Postby Jomingo » July 10th, 2011, 2:30 pm

Alright, so seeing as this post is in the "Emulation" subforum, you can probably gather from my title that I'm in need of a better controller setup for SNES emulating. I've got a couple of spare SNES controllers for the project of converting them to USB so that I can use the real controller on my computer, and I'm sure there are others on this forum who have done this before. So... any tips on the easiest way to do this? I'm actually nearly finished with it, but I did it in a slightly unorthodox way, and I do have another spare that I might use to make another one with so I'm wondering if you guys have any tips on other ways to do it.

First of all, let me explain the way I've done it:
Basically, I tore apart a keyboard and took the circuit board out of that. There are 13 leads on each side of it, and when a wire is connected from one side to the other it completes the circuit to type a letter. I'm going to wire the leads on the keyboard circuit to the button traces on the circuit inside the SNES controller, and basically what will happen is that when I press each button on the SNES controller, it will be like hitting a specific key on the keyboard. Then I'll just have to write down which keys the buttons are linked to so that I can configure my emulator properly. I went with this procedure because it seemed to me that it would be a lot simpler than using a microcontroller, because all I was doing was rewiring a keyboard basically. However, I'm halfway done with the project and I've realized it was a lot more work than I thought it would be. Half the leads on the keyboard controller yielded no characters when I tested them on the computer, and so I wired each and every one of the 13 left side leads to the board so that I could test them on the 13 right side leads. In order to get 12 keys that I can actually use for my SNES commands (12 keys for Up, Down, Left, Right, L, R, A, B, X, Y, Start, and Select), I'm going to have to use at least 3 of the left side leads because none of the left side leads produced more than 4 characters on the right side (most of them didn't work for anything), and all four of those characters were produced by the same leads on the right side for all 3 of the left side wires. That means that instead of just wiring all 12 buttons to 12 unique leads, I have to wire 12 of them to only four leads, each four then linking to 3 different other side leads, and work out a circuit for that to work. I hope I don't sound really stupid right now, but it's just really hard to describe exactly what I mean so I'm hoping that you smart guys on here know what I'm talking about on the Keyboard circuit and stuff. So anyway, I'm still working out where I need to run all the wiring on the SNES circuit and where it needs to wire to on the Keyboard circuit (I don't need help with this, I'm just saying I haven't done it yet). I'm going to finish with this tomorrow, and after that I'll start work on the other controller. If you guys recognize an easier way to do what I've done, or if you have a completely different tactic to making this happen, please post it here.

Also, I've already pretty much decided how I'll do the next one using a microcontroller, but if you guys have even easier or more creative ways to do it, I might go with those instead!
Sage of Discovery
Bananas received 7
Posts: 2312
Joined: 2008

Re: Best way to make a SNES USB controller

Postby Kingizor » July 11th, 2011, 6:17 am

Keyboards can be very screwy with input. I'd imagine that limitations such as two simultaneous button presses and so on would cause problems (unless you've got one of those really fancy keyboards that doesn't have those limitations).

I'd suggest replacing the circuit in the snes controller with one from an actual usb controller. I've heard of people doing it that way, so it might be worth a try, or you could take the easy way out and buy a snes to usb adapter...
Trailblazer
Bananas received 77
Posts: 247
Joined: 2010

Re: Best way to make a SNES USB controller

Postby Jomingo » July 11th, 2011, 10:41 am

Well you are right, the finished product does have some issues with multiple button presses. I can't press 3 buttons from the same "set" at the same time. Here's how my buttons ended up laying:
L-/
R-;
Start-p
Select-\
Up-r
Down-b
Left-f
Right-v
Y-u
X-n
B-m
A-j
None of that was on purpose, it all just ended up being the only way it could work out. Because of this, I can't press Y, B, and right at the same time. So I can't run and jump to the right. Same goes for X, A, and left. I didn't see that coming because I've always used a keyboard for emulator play before, but I've never had issues because I used the arrow keys, which don't interfere with other keys. So it's difficult to use, but it does work to an extent and looks and feels good. Still, I'm going to make another one soon.
Sage of Discovery
Bananas received 7
Posts: 2312
Joined: 2008

Re: Best way to make a SNES USB controller

Postby Axis » March 23rd, 2013, 11:47 am

Bumping this.

I have an available USB third party snes controller still packaged because I use my personal two through an adapter. Jomingo, I'm not sure if your still active here but would you like the controller?
Previously "Kiddy"
Bananas received 3
Posts: 96
Joined: 2013

Re: Best way to make a SNES USB controller

Postby WesternTanager794 » February 2nd, 2023, 6:33 pm

My setup is:
L~+
R~-
up~up
down~down
right~right
left~left
B~num2
A~num6
X~num8
Y~num4
Start~enter
Select~Rshift
I doubt this is the right place to put it, though. :parry:
Sage of Discovery
Bananas received 127
Posts: 2392
Joined: 2022


Return to Emulation

Who is online

Users browsing this forum: No registered users and 1 guest

cron