Skip to content

New gamepad types, and "type:" db field#15970

Open
nstbayless wants to merge 5 commits into
libsdl-org:mainfrom
nstbayless:new-gamepad-types-take-2
Open

New gamepad types, and "type:" db field#15970
nstbayless wants to merge 5 commits into
libsdl-org:mainfrom
nstbayless:new-gamepad-types-take-2

Conversation

@nstbayless

@nstbayless nstbayless commented Jul 10, 2026

Copy link
Copy Markdown
  • I confirm that I am the author of this code and release it to the SDL project under the Zlib license. This contribution does not contain code from other sources, including code generated by a Large Language Model ("AI").

The gamepad db lacks a good way to actually indicate the gamepad's type (e.g. switchpro, ps5, ...). With this PR, it's now part of the db format (e.g. type:switchpro). If type: is omitted it will still use the same checks as before to determine the type.

Changes

The database parsing remains backward-compatible -- the (confusingly-named) USE_BUTTON_LABELS hint is still respected. However, I removed support for face: since it seems like these were not documented nor used anywhere, not even in the larger SDL gamepad db, except essentially as a private way for SInput controllers to squeeze some additional info through the db string. (SInput now uses the new type: field instead for that information.)

Also adds these gamepad types: n64, wii, and genesis. These are common but very different kinds of gamepads to anything else in the list, so I think it's important they have their own label.

This is part of a longer effort to make it easier for application developers to implement standardized support for button labels and confirm/cancel/etc/actions easier, which vary from gamepad to gamepad.

Existing Issue(s)

@nstbayless nstbayless changed the title New gamepad types New gamepad types, and "type:" db field Jul 10, 2026
Comment thread src/joystick/SDL_gamepad.c Outdated
Comment thread src/joystick/SDL_gamepad_db.h Outdated
Comment thread src/joystick/SDL_gamepad_db.h
Comment thread src/joystick/SDL_joystick.c Outdated
@nstbayless
nstbayless force-pushed the new-gamepad-types-take-2 branch from 72bd319 to 286513f Compare July 11, 2026 17:32
@nstbayless

nstbayless commented Jul 11, 2026

Copy link
Copy Markdown
Author
  • Added comments explaining that the gamepad types have certain minimum requirements
  • restored hint: to the db entries that used them
  • SInput now falls back to SNES or NES if it doesn't meet the requirements for switch pro
  • No such system for SInput gamecube and sony yet... do we really need one though? How likely is it for a SInput gamepad to report gamecube button layout but not have all gamecube features?

If we're concerned about sony-labelled gamepads which don't satisfy the minimum requirements for any specific playstation gamepads, I'm thinking it might be sensible to add hint:USE_SONY_LABELS to the db entries for such sinput devices.

@slouken

slouken commented Jul 12, 2026

Copy link
Copy Markdown
Collaborator
  • Added comments explaining that the gamepad types have certain minimum requirements
  • restored hint: to the db entries that used them
  • SInput now falls back to SNES or NES if it doesn't meet the requirements for switch pro
  • No such system for SInput gamecube and sony yet... do we really need one though? How likely is it for a SInput gamepad to report gamecube button layout but not have all gamecube features?

I have an SInput gamepad that is gamecube form factor, but it has all the features.

If we're concerned about sony-labelled gamepads which don't satisfy the minimum requirements for any specific playstation gamepads, I'm thinking it might be sensible to add hint:USE_SONY_LABELS to the db entries for such sinput devices.

That was what the face enumeration was for. :)

@nstbayless

Copy link
Copy Markdown
Author

I have an SInput gamepad that is gamecube form factor, but it has all the features.

I was wondering about controllers which are missing features.

That was what the face enumeration was for. :)

The problem with this is that it doesn't feed into SDL_GetGamepadButtonLabelForType, which takes only the gamepad type as an argument. I can restore the "face:" entry in the db for SInput controllers, but it won't actually affect how SDL determines face button labels.

@slouken

slouken commented Jul 13, 2026

Copy link
Copy Markdown
Collaborator

The problem with this is that it doesn't feed into SDL_GetGamepadButtonLabelForType, which takes only the gamepad type as an argument. I can restore the "face:" entry in the db for SInput controllers, but it won't actually affect how SDL determines face button labels.

Yeah, I'm not sure what to do here.

@nstbayless

Copy link
Copy Markdown
Author

I'm not sure what to do here.

I'm leaning toward adding SDL_GAMEPAD_TYPE_STANDARD_SONY and SDL_GAMEPAD_TYPE_STANDARD_AXBY as new gamepad types, which imply nothing about the gamepad except for the face button labels. Maybe SDL_GAMEPAD_TYPE_STANDARD_BAYX too if SDL_GAMEPAD_TYPE_NES would be too weird as the fallback.

The alternative is to say that SDL_GAMEPAD_TYPE_GAMECUBE and SDL_GAMEPAD_TYPE_PS3 or something have no actual minimum requirements and imply only button labels. Maybe for switchpro as well.

@slouken

slouken commented Jul 13, 2026

Copy link
Copy Markdown
Collaborator

I'm leaning toward adding SDL_GAMEPAD_TYPE_STANDARD_SONY and SDL_GAMEPAD_TYPE_STANDARD_AXBY as new gamepad types, which imply nothing about the gamepad except for the face button labels.

Yeah, that seems reasonable to me.

@nstbayless

Copy link
Copy Markdown
Author

If at some point we want gamepads to support custom labels, such unusual SInput gamepads could use that system too.

@nstbayless
nstbayless force-pushed the new-gamepad-types-take-2 branch from 286513f to 762b00c Compare July 14, 2026 16:52
@nstbayless
nstbayless force-pushed the new-gamepad-types-take-2 branch from 762b00c to 636f333 Compare July 14, 2026 17:02
@nstbayless

Copy link
Copy Markdown
Author

Added type:sony, type:axby, type:bayx. Ready for a new review now I think.

SDL_GAMEPAD_TYPE_PS4, /**< At least Cross/Circle/Square/Triangle, d-pad, two bumpers, two clickable sticks, two analog triggers, share, start, touchpad, guide */
SDL_GAMEPAD_TYPE_PS5, /**< At least Cross/Circle/Square/Triangle, d-pad, two bumpers, two clickable sticks, two adaptive triggers, create, start, touchpad, guide, mic */
SDL_GAMEPAD_TYPE_NINTENDO_SWITCH_PRO, /**< At least B/A/Y/X, d-pad, two bumpers, two clickable sticks, two triggers (digital or better), -, +, and guide */
SDL_GAMEPAD_TYPE_NINTENDO_SWITCH_JOYCON_LEFT,

@slouken slouken Jul 14, 2026

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
SDL_GAMEPAD_TYPE_NINTENDO_SWITCH_JOYCON_LEFT,
SDL_GAMEPAD_TYPE_XBOX360, /**< An Xbox 360 or compatible third party controller */
SDL_GAMEPAD_TYPE_XBOXONE, /**< An Xbox One, Xbox Series X/S, XBox Elite, or compatible third party controller */
SDL_GAMEPAD_TYPE_PS3, /**< A Sony Dualshock 3 or compatible third party controller */
SDL_GAMEPAD_TYPE_PS4, /**< A Sony Dualshock 4 or compatible third party controller */
SDL_GAMEPAD_TYPE_PS5, /**< A Sony DualSense or compatible third party controller */
SDL_GAMEPAD_TYPE_NINTENDO_SWITCH_PRO, /**< A Nintendo Switch Pro controller or compatible third party controller */

These are supposed to be the actual controllers or official third party controllers of this type.

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

why not unofficial third party controllers and knock-offs too?

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm mentally including those in "compatible third party controller"

Comment thread include/SDL3/SDL_gamepad.h Outdated
SDL_GAMEPAD_TYPE_GAMECUBE,
SDL_GAMEPAD_TYPE_GAMECUBE, /**< At least A/X/B/Y, d-pad, one bumper, two sticks, two analog triggers, start */
SDL_GAMEPAD_TYPE_STEAM,
SDL_GAMEPAD_TYPE_STANDARD_BAYX, /**< A non-specific gamepad with B/A/Y/X face button layout */

@slouken slouken Jul 14, 2026

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
SDL_GAMEPAD_TYPE_STANDARD_BAYX, /**< A non-specific gamepad with B/A/Y/X face button layout */
SDL_GAMEPAD_TYPE_STANDARD_BAYX, /**< A non-specific gamepad with Nintendo Switch Pro style (B/A/Y/X) face button layout */

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

could equally say SNES style

Comment thread include/SDL3/SDL_gamepad.h Outdated
SDL_GAMEPAD_TYPE_STEAM,
SDL_GAMEPAD_TYPE_STANDARD_BAYX, /**< A non-specific gamepad with B/A/Y/X face button layout */
SDL_GAMEPAD_TYPE_STANDARD_AXBY, /**< A non-specific gamepad with A/X/B/Y face button layout */
SDL_GAMEPAD_TYPE_STANDARD_SONY, /**< A non-specific gamepad with Cross/Circle/Square/Triangle face button layout */

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
SDL_GAMEPAD_TYPE_STANDARD_SONY, /**< A non-specific gamepad with Cross/Circle/Square/Triangle face button layout */
SDL_GAMEPAD_TYPE_STANDARD_SONY, /**< A non-specific gamepad with Sony PlayStation style (Cross/Circle/Square/Triangle) face button layout */

Comment on lines +136 to +138
SDL_GAMEPAD_TYPE_N64,
SDL_GAMEPAD_TYPE_WII,
SDL_GAMEPAD_TYPE_SEGA_GENESIS,

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Descriptive comments here, similar to above?

if (SDL_GetHintBoolean(SDL_HINT_JOYSTICK_HIDAPI_VERTICAL_JOY_CONS, false)) {
// Vertical mode
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));
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,type:joyconright,", sizeof(mapping_string));

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Did you accidentally remove the hints for Joy-Con controllers?

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:b13,paddle4:b15,", sizeof(mapping_string));
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:b13,paddle4:b15,type:joyconleft,", sizeof(mapping_string));
} else {
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,paddle1:b12,paddle3:b14,", sizeof(mapping_string));

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should we add the button label hints here? Conceptually this is a way to let older code know that this is BAYX face button layout.

if (SDL_IsJoystickSteamController(vendor, product)) {
// Steam controllers have 2 back paddle buttons
SDL_strlcat(mapping_string, "paddle1:b11,paddle2:b12,", sizeof(mapping_string));
SDL_strlcat(mapping_string, "paddle1:b11,paddle2:b12", sizeof(mapping_string));

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

For historical reasons, the mappings must have a trailing comma.

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Did you mean to add ",type:steam," here?

Comment on lines +1583 to +1584
{"wiiclassic", SDL_GAMEPAD_TYPE_NINTENDO_SWITCH_PRO},
{"wiiu", SDL_GAMEPAD_TYPE_NINTENDO_SWITCH_PRO},

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should these be SDL_GAMEPAD_TYPE_WII?

I'm assuming the Wii Pro controllers are mapped as SDL_GAMEPAD_TYPE_NINTENDO_SWITCH_PRO and the remote is SDL_GAMEPAD_TYPE_WII?

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't think so. These controllers are closer to a pro controller than to a wii controller. We can set them to standard_bayx.

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sounds good.


// microsoft
{"xbox", SDL_GAMEPAD_TYPE_XBOX360}, /* original xbox */
{"xboxsx", SDL_GAMEPAD_TYPE_XBOXONE}, /* series s/x */

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Do we need a separate "xboxelite"?

* Controllers which are already b/a/y/x to begin with can stay as they are. */
if (SDL_GetGamepadButtonLabelForType(gamepad->type, SDL_GAMEPAD_BUTTON_SOUTH) != SDL_GAMEPAD_BUTTON_LABEL_B ||
SDL_GetGamepadButtonLabelForType(gamepad->type, SDL_GAMEPAD_BUTTON_EAST) != SDL_GAMEPAD_BUTTON_LABEL_A) {
gamepad->type = SDL_GAMEPAD_TYPE_NINTENDO_SWITCH_PRO;

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't think this is right. If I'm reading this correctly, this means that any gamepad in the database that doesn't have a type will get mapped to Nintendo Switch Pro. Did you mean to use SDL_GAMEPAD_TYPE_STANDARD_BAYX instead?

case SDL_GAMEPAD_TYPE_NES:
case SDL_GAMEPAD_TYPE_SNES:
case SDL_GAMEPAD_TYPE_NINTENDO_SWITCH_PRO:
// TODO: confirm joycon label conventions

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Confirmed.

{
SDL_GamepadFaceStyle face_style;

SDL_GamepadType t;

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
SDL_GamepadType t;
SDL_GamepadType type;

"03000000c82d00000161000000000000,8BitDo SN30 Pro,crc:190b,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,guide:b2,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a3,righty:a4,start:b11,x:b4,y:b3,hint:!SDL_GAMECONTROLLER_USE_BUTTON_LABELS:=1,", /* Bluetooth, firmware v1.26 uses b2 for guide, firmware v2.00 uses b12 for guide */
"030000003512000020ab000000000000,8BitDo SNES30 Gamepad,a:b1,b:b0,back:b10,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b6,rightshoulder:b7,start:b11,x:b4,y:b3,hint:!SDL_GAMECONTROLLER_USE_BUTTON_LABELS:=1,",
"03000000c82d00001930000000000000,8BitDo 64 Bluetooth Controller,a:b0,b:b1,back:-a5,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a2,misc1:b17,misc2:+a3,rightshoulder:b7,righttrigger:b9,start:b11,x:+a5,y:-a3,type:n64,",
"03000000c82d00000090000000000000,8BitDo FC30 Pro,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a3,righty:a4,start:b11,x:b4,y:b3,hint:!SDL_GAMECONTROLLER_USE_BUTTON_LABELS:=1,type:switchpro,",

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

These should probably use type:bayx instead. In general "switchpro" should be used for actual Nintendo Switch Pro form factor controllers.

"030000000d0f00008700000000000000,HORI Fighting Stick mini 4 (PS4),a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,lefttrigger:b6,rightshoulder:b5,righttrigger:b7,start:b9,x:b0,y:b3,",
"030000000d0f00006e00000000000000,HORIPAD 4 (PS3),a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,",
"030000000d0f00006600000000000000,HORIPAD 4 (PS4),a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,",
"030000000d0f00008800000000000000,HORI Fighting Stick mini 4 (PS3),a:b1,b:b2,back:b9,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,lefttrigger:b6,rightshoulder:b5,righttrigger:b7,start:b8,x:b0,y:b3,type:sony,",

@slouken slouken Jul 14, 2026

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Technically this should be type:ps3 and the one below this is type:ps4, but this is probably fine for arcade sticks.

@@ -877,7 +878,7 @@ static const char *s_GamepadMappings[] = {
"0000000050535669746120436f6e7400,PSVita Controller,crc:d598,a:b2,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:a4,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a5,rightx:a2,righty:a3,start:b7,x:b3,y:b0,",
#endif
#ifdef SDL_JOYSTICK_N3DS
"000000004e696e74656e646f20334400,Nintendo 3DS,crc:3210,a:b1,b:b0,back:b2,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b5,lefttrigger:b10,leftx:a0,lefty:a1,rightshoulder:b4,righttrigger:b11,rightx:a2,righty:a3,start:b3,x:b7,y:b6,hint:!SDL_GAMECONTROLLER_USE_BUTTON_LABELS:=1,",
"000000004e696e74656e646f20334400,Nintendo 3DS,crc:3210,a:b1,b:b0,back:b2,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b5,lefttrigger:b10,leftx:a0,lefty:a1,rightshoulder:b4,righttrigger:b11,rightx:a2,righty:a3,start:b3,x:b7,y:b6,hint:!SDL_GAMECONTROLLER_USE_BUTTON_LABELS:=1,type:bayx",

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I haven't gone through this exhaustively, but I assume that you made sure everything using hint:!SDL_GAMECONTROLLER_USE_BUTTON_LABELS:=1 has some form of BAYX type and every controller with some form of BAYX type has that hint? Also the same for the gamecube hint?

You should be careful, because if there are entries for BAYX controllers without the hint, they may actually be mapping face buttons as ABXY.

Comment thread test/gamepadutils.c
return "Steam";
case SDL_GAMEPAD_TYPE_SEGA_GENESIS:
return "Sega Genesis";
case SDL_GAMEPAD_TYPE_STANDARD:

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Missing face button variants here?

@slouken

slouken commented Jul 14, 2026

Copy link
Copy Markdown
Collaborator

In general this is looking good. Lots of feedback above. @sezero, can you review once the feedback is addressed?

@sezero

sezero commented Jul 14, 2026

Copy link
Copy Markdown
Contributor

@sezero, can you review

The whole thing is rather alien to me, and I couldn't read it
in entirety, but this change:

-    int version = analogStyle;
-    version = (version * (int)SINPUT_BUMPERSTYLE_MAX) + bumperStyle;
-    version = (version * (int)SINPUT_TRIGGERSTYLE_MAX) + triggerStyle;
-    version = (version * (int)SINPUT_PADDLESTYLE_MAX) + paddleStyle;
-    version = (version * (int)SINPUT_METASTYLE_MAX) + metaStyle;
-    version = (version * (int)SINPUT_TOUCHSTYLE_MAX) + touchStyle;
-    version = (version * (int)SINPUT_MISCSTYLE_MAX) + miscStyle;
+    Uint16 version = SINPUT_PACK_VERSION(miscStyle, touchStyle, metaStyle, paddleStyle, triggerStyle, bumperStyle, analogStyle);

/****/

+/* Pack SInput style values into a single Uint16
+ * (can fit in the version field of the GUID) */
+#define SINPUT_PACK_VERSION(misc, touch, meta, paddle, trigger, bumper, analog) \
+    ((Uint16)(((((((                                                            \
+        (analog)) * SINPUT_BUMPERSTYLE_MAX +                                    \
+        (bumper)) * SINPUT_TRIGGERSTYLE_MAX +                                   \
+        (trigger)) * SINPUT_PADDLESTYLE_MAX +                                   \
+        (paddle)) * SINPUT_METASTYLE_MAX +                                      \
+        (meta)) * SINPUT_TOUCHSTYLE_MAX +                                       \
+        (touch)) * SINPUT_MISCSTYLE_MAX +                                       \
+        (misc)))

... unless I'm missing something, doesn't seem to yield the same vale before:
Intentional, I assume?

nstbayless and others added 2 commits July 14, 2026 14:53
Co-authored-by: Sam Lantinga <slouken@libsdl.org>
Co-authored-by: Sam Lantinga <slouken@libsdl.org>
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

Successfully merging this pull request may close these issues.

3 participants