nand2mario / nestang

NESTang is an FPGA Nintendo Entertainment System implemented with Sipeed Tang Primer 25K, Nano 20K and Primer 20K boards
https://nand2mario.github.io/nestang
GNU General Public License v3.0
348 stars 38 forks source link

[help needed] 2nd controller not working properly #13

Open siffland opened 1 year ago

siffland commented 1 year ago

I was playing Super Mario Bros with 2 players, utilizing the Sipeed ps2 controller adapters (Both wired on pins 15-20). The first controller works fine. With the second controller the d-pad left, B and A buttons work as expected. The d-pad up runs luigi to the right and d-pad right and down do nothing.

Contra the start button is up and the right button is right and down combined for the second player.

I did swap the controllers and the adapter boards and all work fine on the player 1, it is only player 2

I also created a wiki page on here for connecting the adapters on the breadboard (with a picture). I believe they are hooked up correctly and this is an issue with the firmware. I am using Nestang v0.5 on a Tang Nano 20k with the included ps2 controller adapters.

Chandler-Kluser commented 1 year ago

@nand2mario

nand2mario commented 1 year ago

Thanks for contributing the wiki pages. Let me take a look at the 2nd controller issue.

nand2mario commented 1 year ago

I can reproduce this on my side. If someone has time, help will be appreciated in debugging this.

somhi commented 1 year ago

Following is working: In nestang.cst file I changed the pin locations as you can see below. That implies that the second joystick should be connected through Dupont wires to the corresponding pins. ´´´ // Joystick 2 IO_LOC "joystick_clk2" 28; IO_PORT "joystick_clk2" PULL_MODE=NONE IO_TYPE=LVCMOS33; IO_LOC "joystick_mosi2" 52; IO_PORT "joystick_mosi2" PULL_MODE=NONE IO_TYPE=LVCMOS33; IO_LOC "joystick_miso2" 53; IO_PORT "joystick_miso2" PULL_MODE=UP IO_TYPE=LVCMOS33; IO_LOC "joystick_cs2" 27; IO_PORT "joystick_cs2" PULL_MODE=NONE IO_TYPE=LVCMOS33; ´´´

A much better solution would be to adapt the dualshock controller to handle two gamepads, and so only another CS pin will be necessary to control both joysticks. I don't have the level to do that. Hope someone could work on it. Help Wanted :)

For reference some of the test I made are in this duplicated issue