Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Support for the official NES and SNES controllers #14

Open
photodiode opened this issue Aug 20, 2020 · 9 comments
Open

Support for the official NES and SNES controllers #14

photodiode opened this issue Aug 20, 2020 · 9 comments

Comments

@photodiode
Copy link

Hi,
Would it be possible to add in support for the official NES and SNES controllers?

@nadiaholmquist added them into an older version of this driver which worked fine, so I'm guessing any needed information can be found in there. (Links to the code: hid-ids.h, hid-nintendo.c)

Thanks for all the work put into this driver,
it's immensely appreciated!

@nadiaholmquist
Copy link

Once the driver makes it into mainline, I'm going to try and submit my patches to add support for those controllers too.

@photodiode
Copy link
Author

Thank you so much

@v1993
Copy link

v1993 commented Feb 1, 2021

Relevant PR for SNES controller on DKMS version of this module: nicman23/dkms-hid-nintendo#27

@emilyst
Copy link

emilyst commented Mar 28, 2022

Once the driver makes it into mainline, I'm going to try and submit my patches to add support for those controllers too.

It looks like the hid-nintendo driver hit mainline in 5.16 (congrats, Daniel!).

I'm aware of @nadiaholmquist's existing work to add support for the NES joycons and the SNES controller against an older version of hid-nintendo. These changes work great when I test them locally.

I'd love to help move NES and SNES support ahead, if that's possible, against the latest version of hid-nintendo. What would that entail? Applying @nadiaholmquist's patches to hid-nintendo and opening a pull request for each here? Or do I need to interact with the Linux Input Mailing List?

In addition, I have the Nintendo Switch Online Sega Genesis control pad. It has product ID 0x201e, so it unfortunately gets picked up by the hid-generic driver and does not work at all (e.g., jstest reports no events). I'd be happy to attempt to write a patch for it as well. And if I ever manage to get ahold of the N64 controller, I could try it as well.

Thanks to you both for the work you've done already. Let me know if or how I can help.

@emilyst
Copy link

emilyst commented Mar 28, 2022

I'd love to help move NES and SNES support ahead, if that's possible, against the latest version of hid-nintendo. What would that entail? Applying @nadiaholmquist's patches to hid-nintendo and opening a pull request for each here? Or do I need to interact with the Linux Input Mailing List?

In addition, I have the Nintendo Switch Online Sega Genesis control pad. It has product ID 0x201e, so it unfortunately gets picked up by the hid-generic driver and does not work at all (e.g., jstest reports no events). I'd be happy to attempt to write a patch for it as well. And if I ever manage to get ahold of the N64 controller, I could try it as well.

FYI: I have a draft of this work done, available to view in this pull request: #35. I've marked it as a draft to indicate that it's not fully done, but it's ready for input if desired. Hopefully this will speed up getting this support incorporated into kernel 5.17 or 5.18.

If I don't receive a response, I'll try emailing you, @DanielOgorchock, or going to the Linux Input list directly.

@emilyst
Copy link

emilyst commented Apr 2, 2022

I ended up closing that pull request since I got no response, but anyone who likes can install my work from here: https://github.com/emilyst/hid-nintendo.

@nfp0
Copy link

nfp0 commented Jan 27, 2024

Has there been any progress in getting the rest of the controllers mainlined?

@SuperSamus
Copy link

torvalds/linux@94f18bb
Will be merged for Linux 6.8.

@nfp0
Copy link

nfp0 commented Jan 27, 2024

Wow, I did not expect that. Great news!
Thank you for everyone involved!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

6 participants