Not all buttons on all inputs work.
Closed this issue · 7 comments
Using the Joystick Show app on Mac to test the triple input adapter, and it works 100% correctly with the SNES input. The NES input, everything works correctly, except that Select and Start don't register as button presses. Genesis is a bit more of a mess.
Down doesn't register at all. Up and Left register as one axis, and right registers as another. A button doesn't register, nor does start. B and C work as-expected. I don't have a Genesis 6-button controller to test with. Using the latest github code as of this morning.
For hardware, I got two of the adapters from Tindie:
https://www.tindie.com/products/timville/triple-controller-classic-gaming-usb-adapter/
Using the 5v model Arduino Pro Micro from SparkFun.
Third party Genesis controller works as-expected, so perhaps my first party controller is somehow damaged. Will investigate that further.
I've found that 1st party female connectors can be a bit worn down and may not make as solid of a connection. You could try repositioning the pins inside of the DB9 port to make a tighter connection, or could also try replacing the OEM cable (if it's worn down) with one from Console5.
For the NES issue, since it's a shift register and only a single data line, seems odd that it would register button presses but not start/stop. Start/Stop should register as buttons 7/8 (index 6/7) for the NES. I would try repositioning the controller a bit in the socket - see if not putting it all the way flush makes a difference.
Yeah, on a whim I tried other NES controllers, and some are okay, some Start/Select don't register, but they all work on an actual NES. I suspect it might be another variation on the same issue, but I will do some more testing.
At this point though, I think I can say with confidence that the issue on the NES isn't a code problem, as some do indeed work. It may just be a connectivity one. I no longer recall which shift registers select/start are on, but as it works on my SNES controllers, that likely isn't a code issue at all.
I'm having a similar problem with my original NES controllers. Won't register any inputs. But my 8BitDo NES adapter works fine
The pins of the aftermarket connectors are not as large in diameter as the OEM pins on an NES console (as shown above). On more worn controllers plugs, the pins may not make solid connections, which would lead to the inconsistent performance.
A suggestion may be to slightly bend the pins in the aftermarket connector to try and make a better connection. I've tested quite a number of controllers and haven't found any issues with the 10+ that I've tested, so this is a hypothesis only at this point.
Marking this one as closed for now as I've identified that some of the controller ports individual pins (mostly Genesis) may be below spec to get a reliable connection. I'm looking for these now when packing orders.
If you do ever experience this issue, you can try gently bending the pins to make better contact to see if that helps - if it doesn't, contact where you bought them (for me, via Tindie) for a replacement.