@@ -716,12 +716,32 @@ static GamepadMapping_t *SDL_CreateMappingForHIDAPIGamepad(SDL_GUID guid)
716
716
// GameCube driver has 12 buttons and 6 axes
717
717
SDL_strlcat (mapping_string , "a:b0,b:b2,dpdown:b6,dpleft:b4,dpright:b5,dpup:b7,lefttrigger:a4,leftx:a0,lefty:a1~,rightshoulder:b9,righttrigger:a5,rightx:a2,righty:a3~,start:b8,x:b1,y:b3,misc3:b11,misc4:b10,hint:!SDL_GAMECONTROLLER_USE_GAMECUBE_LABELS:=1," , sizeof (mapping_string ));
718
718
} else if (vendor == USB_VENDOR_NINTENDO &&
719
- (product == USB_PRODUCT_NINTENDO_SWITCH2_GAMECUBE_CONTROLLER )) {
720
- // Switch 2 GameCube has additional buttons for ZL and C
721
- SDL_strlcat (mapping_string , "a:b1,b:b3,dpdown:b8,dpleft:b10,dpright:b9,dpup:b11,guide:b16,leftshoulder:b13,lefttrigger:a4,leftx:a0,lefty:a1~,misc1:b17,misc2:b20,misc3:b4,misc4:b12,rightshoulder:b5,righttrigger:a5,rightx:a2,righty:a3~,start:b6,x:b0,y:b2,hint:!SDL_GAMECONTROLLER_USE_GAMECUBE_LABELS:=1," , sizeof (mapping_string ));
719
+ product == USB_PRODUCT_NINTENDO_SWITCH2_GAMECUBE_CONTROLLER ) {
720
+ SDL_strlcat (mapping_string , "a:b0,b:b1,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b4,leftshoulder:b6,lefttrigger:a4,leftx:a0,lefty:a1,rightshoulder:b7,righttrigger:a5,rightx:a2,righty:a3,start:b5,x:b2,y:b3,misc1:b8,misc2:b9,misc3:b10,misc4:b11,hint:!SDL_GAMECONTROLLER_USE_GAMECUBE_LABELS:=1," , sizeof (mapping_string ));
722
721
} else if (vendor == USB_VENDOR_NINTENDO &&
723
- (product == USB_PRODUCT_NINTENDO_SWITCH2_PRO )) {
724
- SDL_strlcat (mapping_string , "a:b0,b:b1,dpdown:b8,dpleft:b10,dpright:b9,dpup:b11,guide:b16,leftshoulder:b12,lefttrigger:b13,leftx:a0,lefty:a1~,misc1:b17,misc2:b20,rightshoulder:b4,righttrigger:b5,rightx:a2,righty:a3~,start:b6,back:b14,x:b2,y:b3,leftstick:b15,rightstick:b7,paddle1:b18,paddle2:b19,hint:!SDL_GAMECONTROLLER_USE_BUTTON_LABELS:=1," , sizeof (mapping_string ));
722
+ product == USB_PRODUCT_NINTENDO_SWITCH2_PRO ) {
723
+ SDL_strlcat (mapping_string , "a:b0,b:b1,back:b4,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b5,leftshoulder:b9,leftstick:b7,lefttrigger:a4,leftx:a0,lefty:a1,rightshoulder:b10,rightstick:b8,righttrigger:a5,rightx:a2,righty:a3,start:b6,x:b2,y:b3,misc1:b11,misc2:b12,paddle1:b13,paddle2:b14,hint:!SDL_GAMECONTROLLER_USE_BUTTON_LABELS:=1," , sizeof (mapping_string ));
724
+ } else if (vendor == USB_VENDOR_NINTENDO &&
725
+ product == USB_PRODUCT_NINTENDO_SWITCH2_JOYCON_LEFT ) {
726
+ if (SDL_GetHintBoolean (SDL_HINT_JOYSTICK_HIDAPI_VERTICAL_JOY_CONS , false)) {
727
+ // Vertical mode
728
+ SDL_strlcat (mapping_string , "back:b4,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b9,leftstick:b7,lefttrigger:a4,leftx:a0,lefty:a1,misc1:b11,paddle2:b14,paddle4:b16," , sizeof (mapping_string ));
729
+ } else {
730
+ // Mini gamepad mode
731
+ SDL_strlcat (mapping_string , "a:b0,b:b1,guide:b5,leftshoulder:b9,leftstick:b7,leftx:a0,lefty:a1,rightshoulder:b10,start:b6,x:b2,y:b3,paddle2:b14,paddle4:b16," , sizeof (mapping_string ));
732
+ }
733
+ } else if (vendor == USB_VENDOR_NINTENDO &&
734
+ product == USB_PRODUCT_NINTENDO_SWITCH2_JOYCON_RIGHT ) {
735
+ if (SDL_GetHintBoolean (SDL_HINT_JOYSTICK_HIDAPI_VERTICAL_JOY_CONS , false)) {
736
+ // Vertical mode
737
+ SDL_strlcat (mapping_string , "a:b0,b:b1,guide:b5,rightshoulder:b10,rightstick:b8,righttrigger:a5,rightx:a2,righty:a3,start:b6,x:b2,y:b3,misc2:b12,paddle1:b13,paddle3:b15,hint:!SDL_GAMECONTROLLER_USE_BUTTON_LABELS:=1," , sizeof (mapping_string ));
738
+ } else {
739
+ // Mini gamepad mode
740
+ SDL_strlcat (mapping_string , "a:b0,b:b1,guide:b5,leftshoulder:b9,leftstick:b7,leftx:a0,lefty:a1,rightshoulder:b10,start:b6,x:b2,y:b3,misc2:b12,paddle1:b13,paddle3:b15,hint:!SDL_GAMECONTROLLER_USE_BUTTON_LABELS:=1," , sizeof (mapping_string ));
741
+ }
742
+ } else if (vendor == USB_VENDOR_NINTENDO &&
743
+ product == USB_PRODUCT_NINTENDO_SWITCH2_JOYCON_PAIR ) {
744
+ SDL_strlcat (mapping_string , "a:b0,b:b1,back:b4,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b5,leftshoulder:b9,leftstick:b7,lefttrigger:a4,leftx:a0,lefty:a1,rightshoulder:b10,rightstick:b8,righttrigger:a5,rightx:a2,righty:a3,start:b6,x:b2,y:b3,misc1:b11,misc2:b12,paddle1:b13,paddle2:b14,paddle3:b15,paddle4:b16,hint:!SDL_GAMECONTROLLER_USE_BUTTON_LABELS:=1," , sizeof (mapping_string ));
725
745
} else if (vendor == USB_VENDOR_NINTENDO &&
726
746
(guid .data [15 ] == k_eSwitchDeviceInfoControllerType_HVCLeft ||
727
747
guid .data [15 ] == k_eSwitchDeviceInfoControllerType_HVCRight ||
@@ -840,7 +860,7 @@ static GamepadMapping_t *SDL_CreateMappingForHIDAPIGamepad(SDL_GUID guid)
840
860
// GC Ultimate Primary Map
841
861
SDL_strlcat (mapping_string , "a:b0,b:b1,x:b2,y:b3,back:b11,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b4,lefttrigger:a4,leftx:a0,lefty:a1,misc1:b13,misc2:b14,rightshoulder:b7,rightstick:b5,righttrigger:a5,rightx:a2,righty:a3,start:b10,misc3:b8,misc4:b9,hint:!SDL_GAMECONTROLLER_USE_GAMECUBE_LABELS:=1," , sizeof (mapping_string ));
842
862
break ;
843
- }
863
+ }
844
864
break ;
845
865
case USB_PRODUCT_HANDHELDLEGEND_SINPUT_GENERIC :
846
866
switch (sub_type ) {
@@ -850,7 +870,7 @@ static GamepadMapping_t *SDL_CreateMappingForHIDAPIGamepad(SDL_GUID guid)
850
870
break ;
851
871
}
852
872
break ;
853
-
873
+
854
874
case USB_PRODUCT_BONZIRICHANNEL_FIREBIRD :
855
875
default :
856
876
// Unmapped device
0 commit comments