OpenStickFoundation / GP2040-CE

Gamepad firmware for Raspberry Pi Pico and other RP2040 microcontrollers supporting Nintendo Switch, XInput and DirectInput
https://www.gp2040-ce.info
MIT License
186 stars 42 forks source link

GP2040-CE as HID for SNES, NES , PC and other controllers... #146

Closed goyetus closed 1 year ago

goyetus commented 1 year ago

Hello!! Im about two weeks searching info to use the RP2040 as a stick HID to control SNES pads.... Im not a low level coder, so I can not convert NES code to SNES using PICO.

I think it will be awesome to have different controllers implemented inside GP2040-CE.
Anyone skilled to do it?

I have samples from :

NES to USB using PICO https://github.com/printnplay/Pico-MicroPython/blob/main/NES2USB.py

PC-DSUB to USB using PICO https://www.instructables.com/Retro-9-Pin-Joystick-to-USB-Converter/

SNES to USB using ARDUINO..... https://dragaosemchama.com/2015/11/controller-de-super-nintendo-no-pc/

Here all my data search (have a lot more code with SNES to USB using arduino)

THANKS A LOT FOR YOUR HARD WORK !!!! GP2040 IS AWESOME !!!!!

goyetus commented 1 year ago

Before closing this Thread, PLEASE CONSIDER THIS:

DaemonBite for arduino SUPPORTS :

This request is a hard request. Please Consider this well in the "planning route" for GP2040-CE.

DaemonBite

davewongillies commented 1 year ago

Before closing this Thread, PLEASE CONSIDER THIS:

DaemonBite for arduino SUPPORTS :

  • Arcade Sticks
  • C64 controllers
  • Amiga controllers
  • Atari controllers
  • NeoGeo controllers

This request is a hard request. Please Consider this well in the "planning route" for GP2040-CE.

DaemonBite

GP2040-CE already has a drop in replacement configuration for the Daemonbite Arcade Encoder with Sparkfun Pro Micro - RP2040 support. The pin mappings are 1-to-1 for arcade sticks.

It looks like there's nothing electrically different with C64, Amiga, Atari & NeoGeo controllers, so the most you'd probably need to do would be to configure GP2040-CE in its UI to tell it which pin maps to which button.

TheTrainGoes commented 1 year ago

Closing this as out of scope

epid commented 1 year ago

The NES and SNES controllers don't use a 1-to-1 pin mapping for inputs. They use a data/latch/clock system using 3 I/O pins to represent 12 possible inputs. See here: https://gamesx.com/controldata/snesdat.htm