Problem playing NES games on an Emulator

I have a setup to play NES games according to this link. I ordered two of these controllers. I am not able to play the games smoothly.

Problem: when playing Contra I press the down button on D-pad but often the player starts moving right with gun pointed down. When I tap the A button quickly (causes the player to jump), the second tap gets ignored.

Its not that the controllers are completely messed up and I have the wrong key bindings. The player gets down at times but more often than not it would move right. Both controllers are giving this issue. I am not sure if its problem with controller or the emulator or both?. I also downloaded Nestopia for PC and tried the controllers on PC and had the same problem. Also I have tried other games besides Contra and the issue is still there with them as well.

Has anyone experienced this and know what I am talking about? How can I fix this please?

EDIT: Wanted to add few updates here. Tried the diagnostic tool reported by agent86. No issues found there.
enter image description here

Also retropie is using the lr-fceumm emulator, not nestopia. Some probem is definitely there as retropie sometimes does strange things like going back to previous menu even though I don't press any key etc.

This review also reports same kind of issue.

EDIT: Adding another update for benefit of others. The fact that there are issues when tested against two different emulators seems to suggest that this is a problem with the controller (also there are many other users on amazon that report such problems) BUT I think the emulators also may not be without flaws. I tested the controllers I have against windows diagnostics (screenshot above) and the buttons seem to work properly there. I will update this page if I get my hands on an original NES controller to see how that performs vs. the USB controllers I have right now. In the meantime its definitely a pain to play games like Mario where I need to jump quickly e.g., I tap the A button quickly twice but the player jumps only once and the second tap gets ignored.


Solution 1:

The easy way to check the controller is to use Windows' built-in controller diagnostic screen. It can be tricky to find, at least on recent versions of Windows this procedure should work:

  • Plug the controller into your Windows PC
  • Open Control Panel
  • Open Devices and Printers
  • Right click on the controller's icon
  • Select "Game controller settings"
  • Make sure the controller is selected in the list
  • Click the "Properties" button at the bottom

This should bring up a screen that shows the various buttons that the controller has. From here, you can press each button and make sure that the proper button is being registered by the computer.

If you see that pressing/holding "Down" causes "Right" to register pretty often, that's a good sign that the controller has issues.

Nintendo never made a USB-based NES pad, so all the USB NES controllers you will find on the internet are off-brand knockoffs. That makes me initially suspect the hardware is the issue here. Chances are good that the controller is pretty cheaply made, and has some sort of design issue that is causing the problem, even across multiple units.

Although it won't give the most "authentic" experience, my best experiences with USB controllers is the wired Xbox 360 controller. They're available used pretty cheaply, and work with Windows and Linux (Raspberry Pi, etc) natively. They've also got a D-pad, which works for NES games well.