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
346 stars 38 forks source link

USB controller (DIY) not working [ Tang Nano 20K ] #31

Open rorrexatnys opened 12 months ago

rorrexatnys commented 12 months ago

Update - I reflashed v0.6 and it seemed to work a bit better. However, trying all my controllers I was only able to achieve any input functionality with (1) ROM, and (1) controller. All buttons responded only in the nestang menu and a 240p test suite NES rom using an NES-to-USB adapter.

However, testing any common NES game (SMB1, TMNT3, etc.) none of the controls would respond via USB gamepad, using the same NES-to-USB adapter or any other controller I have.

-- Old post -- I followed the guide and wired my own USB port:

I've tried the following USB gamepads I own and haven't had any response from ROM select menu:

Sega Genesis Classic 3-Button | ID 0ca3:0025 | Sega Corp. 3B controller
SNES to USB Adapter | ID 0925:8866 | Lakeview Research WiseGroup Ltd, MP-8866 Dual Joypad
Gravis Gamepad Pro  | ID 0428:4001 | Advanced Gravis Computer Tech, Ltd GamePad Pro (if this isn't low-speed I'm not sure what is.)

This one controller eventually worked, but only on the nestang menu and one NES test ROM, but not in any common game like SMB1. NES Controller to USB Adapter | ID 1d57:0021 | Xenta NES PC Game Pad

This is a great project, just not sure what I'm missing here for USB gamepad to work. Perhaps I'm overlooking something. Thanks in advance!

Chandler-Kluser commented 11 months ago

I don't know if @nand2mario agrees, but I stick to the blueretro alternative (or using a cheap microcontroller to handle USB host through a library like tinyusb).

It is not a demerit to manage the peripherals to a microcontroller like MiSTer FPGA does, you save costly FPGA resources for things that are not necessarily related to the system processing besides the project cost will keep low since these devices are cheap.

If there is no issue about merging this idea to the project, I commit myself to do that.

mariogazziro commented 11 months ago

WhatsApp Image 2023-10-11 at 13 03 18 i have sucessfully use ortital low speed joysticks of any kind with nestang.. gamepads usually have glitchs. in the picture we disassembly this joysticks and install inside the wood console

nand2mario commented 11 months ago

I don't know if @nand2mario agrees, but I stick to the blueretro alternative (or using a cheap microcontroller to handle USB host through a library like tinyusb).

It is not a demerit to manage the peripherals to a microcontroller like MiSTer FPGA does, you save costly FPGA resources for things that are not necessarily related to the system processing besides the project cost will keep low since these devices are cheap.

If there is no issue about merging this idea to the project, I commit myself to do that.

I think we should support both external IO controller (the blueretro approach you mentioned), and internal IO approach. The most important benefit of the blueretro approach is actually better compatibility with different peripherals like controllers. It is the approached used by MIST. The benefit of the internal approach, on the other hand, is ease-of-use. So we'll also keep that.

In short, I'll merge blueretro related code if it is clean enough.

BennehBoy commented 3 months ago

Is USB controller via GPIO deprecated now?

Would it make sense to use an M0S dock similar to NanoMig, MySTeryNano etc?