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

Mapping for NSO Mega Drive/Genesis 3btn controller #546

Closed
nfp0 opened this issue Jan 30, 2022 · 10 comments
Closed

Mapping for NSO Mega Drive/Genesis 3btn controller #546

nfp0 opened this issue Jan 30, 2022 · 10 comments

Comments

@nfp0
Copy link

nfp0 commented Jan 30, 2022

Here is the mapping for the Nintendo Switch Online Mega Drive/Genesis 3btn controller straight out of the Steam config file:

Linux:
050000007e0500001720000001000000,dev:gen:Nintendo Switch Online Mega Drive/Genesis 3btn,platform:Linux,a:b1,b:b0,start:b9,guide:b12,back:b7,dpup:h0.1,dpleft:h0.8,dpdown:h0.4,dpright:h0.2,righttrigger:b5

Windows:
030000007e0500001720000000000000,dev:xb1:Wireless Gamepad,platform:Windows,a:b1,b:b0,righttrigger:b5,guide:b12,back:b7,start:b9,dpup:h0.1,dpleft:h0.8,dpdown:h0.4,dpright:h0.2

I've followed the mapping from the README, with the exception of mapping the home button to Steam's "guide" button. Feel free to remove it if you find it best.
Mega Drive's "Mode" button is mapped to the "Back" button on the Xbox controller and I left the "Screenshot" button unmapped.

Careful, because the IDs conflict with the Nintendo Switch Online SNES controller.

@offalynne
Copy link
Collaborator

Thank you so much for following up @nfp0, I appreciate it !

@nfp0
Copy link
Author

nfp0 commented Jan 31, 2022

No problem!

@offalynne
Copy link
Collaborator

offalynne commented Feb 10, 2022

@PitiBatou would you be able to provide mappings for the Sega 6b and N64 controllers on platforms available to you ?

@PitiBatou
Copy link

PitiBatou commented Feb 11, 2022

@offalynne just had a read through the project's README, this is awesome! I should be able to whip up profiles for Windows & Linux over the weekend. It seems the N64 Windows mapping is already in the db?

I think I can contribute some other stuff as well that I haven't seen in the database yet -- given enough time ;)

@offalynne
Copy link
Collaborator

That would be a huge get, thank you !

seems the N64 Windows mapping is already in the db

I authored it after your RA-AC contribution as the Windows GUIDs are simplified, feel free to check if it is working correctly, would appreciate it!

You can probably skip the Hori Battle Pad as I have one and have authored maps to cover it as well (it’s ID conflicts with other Hori Switch pads on some platforms), though feel free to confirm.

The NES style controllers I believe report as JoyCons, but again feel free to check in case they present unique GUIDs etc.

Rest sounds great !

@PitiBatou
Copy link

@offalynne

Here is the code for the NSO N64 controller (Linux). The only difference with the Windows profile seems to be the GUID. Kindly note I added a mapping for button 12 (the Switch "screenshot" button) as "back".

050000007e0500001920000001000000,Nintendo Switch N64 Controller,+rightx:b8,+righty:b2,-rightx:b3,-righty:b7,a:b1,b:b0,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,back:b13,leftshoulder:b4,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,righttrigger:b10,start:b9,platform:Linux,

And the one for the MD/Gen 6B for both platforms. I mapped physical Z to LB and physical C to RB and MODE as RT. Let me know if this needs changing. Similar to the N64, I have the "screenshot button" b12 as "back".

050000007e0500001720000001000000,Nintendo Switch MD/Gen 6B Control Pad,a:b1,b:b0,x:b6,y:b2,back:b13,guide:b12,start:b9,leftshoulder:b4,rightshoulder:b5,dpup:h0.1,dpleft:h0.8,dpdown:h0.4,dpright:h0.2,righttrigger:b7,platform:Linux,

030000007e0500001720000000000000,Nintendo Switch Online MD/Gen 6B,a:b1,b:b0,x:b6,y:b2,back:b13,guide:b12,start:b9,leftshoulder:b4,rightshoulder:b5,dpup:h0.1,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,righttrigger:b7,platform:Windows,

I'll get to my other controllers in the coming days. One question: what would be the mapping for Neo Geo (A.B,C,D as A,B,X,Y?). Thanks!

@PitiBatou
Copy link

PitiBatou commented Feb 13, 2022

@offalynne

OK, turns out this went much quicker than I thought, owing to the fact that a lot of my controllers/adapters are already in the list (similar GUID).

The "BigBigWon Elitist-S" identifies as an Xbox 360 Controller.

030000005e0400008e02000010010000,Xbox 360 Controller,a:b0,b:b1,x:b2,y:b3,back:b6,guide:b8,start:b7,leftshoulder:b4,rightshoulder:b5,leftstick:b9,rightstick:b10,dpup:h0.1,dpleft:h0.8,dpdown:h0.4,dpright:h0.2,leftx:a0,lefty:a1,rightx:a3,righty:a4,lefttrigger:+a2,righttrigger:+a5,platform:Linux,

The Hori EDGE 301 identifies as "Generic Xbox pad".

030000000d0f00006d00000020010000,Generic X-Box pad,a:b0,b:b1,x:b2,y:b3,back:b6,guide:b8,start:b7,leftshoulder:b4,rightshoulder:b5,leftstick:b9,rightstick:b10,dpup:h0.1,dpleft:h0.8,dpdown:h0.4,dpright:h0.2,leftx:a0,lefty:a1,rightx:a3,righty:a4,lefttrigger:+a2,righttrigger:+a5,platform:Linux,

What is the best practice here? Do you leave the description as Xbox 360 Controller/XInput pad or do you prefer the commercial name?

NeoGeox X Arcade Stick. That one was straightforward enough:

0300000092120000474e000000010000,TOMMO NEOGEOX Arcade Stick,a:b0,b:b1,x:b3,y:b2,back:b8,start:b9,dpup:h0.1,dpleft:h0.8,dpdown:h0.4,dpright:h0.2,platform:Linux,

Elecom JC-W01UWH "Wii Classic Controller to USB"

030000006e0500000720000010010000,HuiJia JC-W01U,a:b2,b:b3,x:b0,y:b1,back:b8,start:b9,leftshoulder:b4,rightshoulder:b5,dpup:h0.1,dpleft:h0.8,dpdown:h0.4,dpright:h0.2,leftx:a0,lefty:a1,rightx:a2,righty:a3,lefttrigger:b6,righttrigger:b7,platform:Linux,

Another HuiJia chip, which are found in a number of USB adapters, including the many MayFlash.

Speaking of which, my two MayFlash adapters -- N64 and SNES (2ports) -- were both detected as "HuiJia USB GamePad" with the GUID 030000008f0e00001330000010010000. This GUID is already in the DB with the "HuiJia SNES Controller" descriptor. The N64 analog joystick was seemingly not detected and in both cases only a single port actually registered any input. Probably safer to leave them out at this stage?

The batteries of my Famicom Classic controllers are flat, will update later this week together with the Windows GUID for the controllers in this post.

@offalynne
Copy link
Collaborator

Thank you ! I appreciate the thorough details — glad to contribute the necessary edits to the name field etc, not a worry !

@PitiBatou
Copy link

PitiBatou commented Feb 15, 2022

@offalynne Thanks for taking care of the edits.

Here are the binding for the two Famicom Controllers. As you rightly guessed, they share the same GUID as JoyCons. Of note is that Controller II does not have start/select buttons, true to its roots =).

050000007e0500000720000001000000,HVC Controller (1),a:b0,b:b1,back:b8,start:b9,leftshoulder:b4,rightshoulder:b5,dpup:h0.1,dpleft:h0.8,dpdown:h0.4,dpright:h0.2,platform:Linux,

050000007e0500000720000001000000,HVC Controller (2),a:b0,b:b1,leftshoulder:b4,rightshoulder:b5,dpup:h0.1,dpleft:h0.8,dpdown:h0.4,dpright:h0.2,platform:Linux,

And now for the Windows bindings. I went the Steam route to get the mappings unless otherwise stated:

BigBigWon Elitist-S
030000005e0400008e02000000007801,XInput Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b10,leftshoulder:b4,leftstick:b8,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Windows,

Hori EDGE 301
030000000d0f00006d00000000007801,XInput Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b10,leftshoulder:b4,leftstick:b8,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Windows,

Elecom JC-W01UWH "Wii Classic Controller to USB"
030000006e0500000720000000000000,JC-W01U,a:b2,b:b3,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b1,platform:Windows,

NeoGeo X Arcade Stick. Steam just didn't detect this one so I went with the deprecated GamePad Tool (couldn't find a windows binary for the newer ControllerMap?)
0300000092120000474e000000000000,NEOGEOX Arcade Stick,platform:Windows,a:b0,b:b1,x:b3,y:b2,back:b8,start:b9,dpup:h0.1,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,

NSO MD/Gen 6B:
030000007e0500001720000000000000,NSO MD/Gen 6B,a:b1,b:b0,y:b2,x:b6,start:b9,guide:b12,back:b13,leftshoulder:b4,rightshoulder:b5,dpup:h0.1,dpleft:h0.8,dpdown:h0.4,dpright:h0.2,righttrigger:b7,platform:Windows

NSO N64. The Steam mapping tool doesn't seem to allow for each direction of the right analog stick to be mapped to individual buttons. Other than that, all clear. I got the same GUID that is already in the database and the same mappings as the Linux ones.

I think that should be all of it. I'll happily revisit the project if I come across some exotic controllers/adapters over here. I hope this DB gets more and more use, it's a neat idea!

@offalynne
Copy link
Collaborator

The XInput mappings are unnecessary and the rest are already in the DB so I’ll close this for now, feel free to open a new issue or PR if you have additional mapping data to provide. Thanks again!

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

3 participants