mdqinc / SDL_GameControllerDB

A community sourced database of game controller mappings to be used with SDL2 Game Controller functionality
http://libsdl.org
zlib License
1.39k stars 524 forks source link

Mayflash N64 Controller Adapter #625

Closed briaguya-ai closed 2 years ago

briaguya-ai commented 2 years ago

image

VID_0079&PID_1879

I wasn't able to configure the device on linux (jstest didn't recognize the device at all) but i was able to configure and test on windows

There are also adapters that come in the same packaging with different hardware ids VID/PID: 0x0e8f/0x3013, those have an overlapping guid with a snes controller adapter that's already in the db, so i'm waiting on https://github.com/gabomdq/SDL_GameControllerDB/issues/609 to add those

offalynne commented 2 years ago

Thank you for the PR.

VID/PID: 0x0e8f/0x3013

I have this on hand. #609 doesn't help, because the name field is the same: USB GamePad. In the past where possible I've ambiguated mappings so both devices work. We can do that here for the desktop mappings (see below).

The only sticking point is the alpha face buttons -- the usual Nintendo layout dictates we map SDL2 a and b fields with buttons B and A respectively (south and east face buttons per Xbox layout), where N64 mappings are a -> A, b -> B for compatibility ease. In order to support both device's layouts adequately, I'll switch the SNES face button fields to match button labels instead of positions, making the SNES mapping less technically correct in order to improve coverage for both devices.

Windows, Linux

Field            HuiJia SNES    Mayflash N64

a                 b2            b1
b                 b1            b2
x                 b3            --
y                 b0            --
back              b8            --
start             b9            b9
dpup             -a1            h0.4
dpdown           +a1            h0.8
dpleft           -a0            h0.2
dpright          +a0            h0.1
leftshoulder      b6            b6
rightshoulder     b7            b7
lefttrigger       --            b8
leftx             --            a0
lefty             --            a1
rightx            --            a3~
righty            --            a2

Mac

Field            HuiJia SNES    Mayflash N64

a                 b4            b2
b                 b2            b4
x                 b6            --
y                 b0            --
back              b16           --
start             b18           b18
dpup             -a2            h0.4
dpdown           +a2            h0.8
dpleft           -a0            h0.2
dpright          +a0            h0.1
leftshoulder      b6            b12
rightshoulder     b7            b14
lefttrigger       --            b16
leftx             --            a0
lefty             --            a2
rightx            --            a6~
righty            --            a4
briaguya-ai commented 2 years ago

because the name field is the same

hmm, maybe instead of just using the name as a part of the guid it might make sense to also use some other possible differentiating info

for the n64 adapter with VID/PID: 0x0e8f/0x3013 i see

image

does the snes adapter have the same number of axes/buttons reported in jstest?

offalynne commented 2 years ago

I don't know. You'll have to take proposals for SDL changes upstream to SDL.

briaguya-ai commented 2 years ago

take proposals for SDL changes upstream to SDL.

I completely understand, I just figured knowing if the adapter had any differentiating info could help determine the feasibility of such a proposal.