The following explanations are taken from SDL's source code. This varies depending on the SDL.
Complete list of used SDL version can be found in the "Plugins\SimpleController\Source\ThirdParty\include\SDL_hints.h" file.
Just search for SDL_HINT_JOYSTICK_HIDAPI and then scroll down.
brief A variable controlling whether the HIDAPI joystick drivers should be used.
This variable can be set to the following values:
"0" - HIDAPI drivers are not used
"1" - HIDAPI drivers are used (the default)
This variable is the default for all drivers, but can be overridden by the hints for specific drivers below.
SDL_HINT_JOYSTICK_HIDAPI
brief A variable controlling whether the HIDAPI driver for Nintendo GameCube controllers should be used.
This variable can be set to the following values:
"0" - HIDAPI driver is not used
"1" - HIDAPI driver is used
The default is the value ofHIDAPI
SDL_HINT_JOYSTICK_HIDAPI_GAMECUBE
brief A variable controlling whether "low_frequency_rumble" and "high_frequency_rumble" is used to implement
the GameCube controller's 3 rumble modes, Stop(0), Rumble(1), and StopHard(2)
this is useful for applications that need full compatibility for things like ADSR envelopes.
Stop is implemented by setting "low_frequency_rumble" to "0" and "high_frequency_rumble" ">0"
Rumble is both at any arbitrary value,
StopHard is implemented by setting both "low_frequency_rumble" and "high_frequency_rumble" to "0"
This variable can be set to the following values:
"0" - Normal rumble behavior is behavior is used (default)
"1" - Proper GameCube controller rumble behavior is used
SDL_HINT_JOYSTICK_GAMECUBE_RUMBLE_BRAKE
brief A variable controlling whether the HIDAPI driver for Nintendo Switch Joy-Cons should be used.
This variable can be set to the following values:
"0" - HIDAPI driver is not used
"1" - HIDAPI driver is used
The default is the value ofHIDAPI
SDL_HINT_JOYSTICK_HIDAPI_JOY_CONS
brief A variable controlling whether Nintendo Switch Joy-Con controllers will be combined into a single Pro-like controller when using the HIDAPI driver
This variable can be set to the following values:
"0" - Left and right Joy-Con controllers will not be combined and each will be a mini-gamepad
"1" - Left and right Joy-Con controllers will be combined into a single controller (the default)
SDL_HINT_JOYSTICK_HIDAPI_COMBINE_JOY_CONS
SDL_HINT_JOYSTICK_HIDAPI_JOY_CONS
brief A variable controlling whether Nintendo Switch Joy-Con controllers will be in vertical mode when using the HIDAPI driver
This variable can be set to the following values:
"0" - Left and right Joy-Con controllers will not be in vertical mode (the default)
"1" - Left and right Joy-Con controllers will be in vertical mode
SDL_HINT_JOYSTICK_HIDAPI_VERTICAL_JOY_CONS
brief A variable controlling whether the HIDAPI driver for Amazon Luna controllers connected via Bluetooth should be used.
This variable can be set to the following values:
"0" - HIDAPI driver is not used
"1" - HIDAPI driver is used
The default is the value ofHIDAPI
SDL_HINT_JOYSTICK_HIDAPI_LUNA
brief A variable controlling whether the HIDAPI driver for Nintendo Online classic controllers should be used.
This variable can be set to the following values:
"0" - HIDAPI driver is not used
"1" - HIDAPI driver is used
The default is the value ofHIDAPI
SDL_HINT_JOYSTICK_HIDAPI_NINTENDO_CLASSIC
brief A variable controlling whether the HIDAPI driver for NVIDIA SHIELD controllers should be used.
This variable can be set to the following values:
"0" - HIDAPI driver is not used
"1" - HIDAPI driver is used
The default is the value ofHIDAPI
SDL_HINT_JOYSTICK_HIDAPI_SHIELD
This variable can be set to the following values:
This variable can be set to the following values:
"0" - HIDAPI driver is not used
"1" - HIDAPI driver is used
The default is the value of SDL_HINT_JOYSTICK_HIDAPI on macOS, and "0" on other platforms.
It is not possible to use this driver on Windows, due to limitations in the default drivers
installed. See https://github.com/ViGEm/DsHidMini for an alternative driver on Windows.
SDL_HINT_JOYSTICK_HIDAPI_PS3
brief A variable controlling whether the HIDAPI driver for PS4 controllers should be used.
This variable can be set to the following values:
"0" - HIDAPI driver is not used
"1" - HIDAPI driver is used
The default is the value ofHIDAPI
SDL_HINT_JOYSTICK_HIDAPI_PS4
brief A variable controlling whether extended input reports should be used for PS4 controllers when using the HIDAPI driver.
This variable can be set to the following values:
"0" - extended reports are not enabled (the default)
"1" - extended reports
Extended input reports allow rumble on Bluetooth PS4 controllers, but
break DirectInput handling for applications that don't use SDL.
Once extended reports are enabled, they can not be disabled without
power cycling the controller.
For compatibility with applications written for versions of SDL prior
to the introduction of PS5 controller support, this value will also
control the state of extended reports on PS5 controllers when the
SDL_HINT_HIDAPI_PS5_RUMBLE hint is not explicitly set.
SDL_HINT_JOYSTICK_HIDAPI_PS4_RUMBLE
brief A variable controlling whether the HIDAPI driver for PS5 controllers should be used.
This variable can be set to the following values:
"0" - HIDAPI driver is not used
"1" - HIDAPI driver is used
The default is the value ofHIDAPI
SDL_HINT_JOYSTICK_HIDAPI_PS5
brief A variable controlling whether the player LEDs should be lit to indicate which player is associated with a PS5 controller.
This variable can be set to the following values:
"0" - player LEDs are not enabled
"1" - player LEDs are enabled (the default)
SDL_HINT_JOYSTICK_HIDAPI_PS5_PLAYER_LED
brief A variable controlling whether extended input reports should be used for PS5 controllers when using the HIDAPI driver.
This variable can be set to the following values:
"0" - extended reports are not enabled (the default)
"1" - extended reports
Extended input reports allow rumble on Bluetooth PS5 controllers, but
break DirectInput handling for applications that don't use SDL.
Once extended reports are enabled, they can not be disabled without
power cycling the controller.
For compatibility with applications written for versions of SDL prior
to the introduction of PS5 controller support, this value defaults to
the value ofHIDAPI_PS4_RUMBLE.
SDL_HINT_JOYSTICK_HIDAPI_PS5_RUMBLE
brief A variable controlling whether the HIDAPI driver for Google Stadia controllers should be used.
This variable can be set to the following values:
"0" - HIDAPI driver is not used
"1" - HIDAPI driver is used
The default is the value ofHIDAPI
SDL_HINT_JOYSTICK_HIDAPI_STADIA
brief A variable controlling whether the HIDAPI driver for Steam Controllers should be used.
This variable can be set to the following values:
"0" - HIDAPI driver is not used
"1" - HIDAPI driver is used for Steam Controllers, which requires Bluetooth access
and may prompt the user for permission on iOS and Android.
The default is "0"
SDL_HINT_JOYSTICK_HIDAPI_STEAM
brief A variable controlling whether the HIDAPI driver for Nintendo Switch controllers should be used.
This variable can be set to the following values:
"0" - HIDAPI driver is not used
"1" - HIDAPI driver is used
The default is the value ofHIDAPI
SDL_HINT_JOYSTICK_HIDAPI_SWITCH
brief A variable controlling whether the Home button LED should be turned on when a Nintendo Switch Pro controller is opened
This variable can be set to the following values:
"0" - home button LED is turned off
"1" - home button LED is turned on
By default the Home button LED state is not changed. This hint can also be set to a floating point value between 0.0 and 1.0 which controls the brightness of the Home button LED.
SDL_HINT_JOYSTICK_HIDAPI_SWITCH_HOME_LED
brief A variable controlling whether the Home button LED should be turned on when a Nintendo Switch Joy-Con controller is opened
This variable can be set to the following values:
"0" - home button LED is turned off
"1" - home button LED is turned on
By default the Home button LED state is not changed. This hint can also be set to a floating point value between 0.0 and 1.0 which controls the brightness of the Home button LED.
SDL_HINT_JOYSTICK_HIDAPI_JOYCON_HOME_LED
brief A variable controlling whether the player LEDs should be lit to indicate which player is associated with a Nintendo Switch controller.
This variable can be set to the following values:
"0" - player LEDs are not enabled
"1" - player LEDs are enabled (the default)
SDL_HINT_JOYSTICK_HIDAPI_SWITCH_PLAYER_LED
brief A variable controlling whether the HIDAPI driver for Nintendo Wii and Wii U controllers should be used.
This variable can be set to the following values:
"0" - player LEDs are not enabled
"1" - player LEDs are enabled (the default)
This driver doesn't work with the dolphinbar, so the default is SDL_FALSE for now.
SDL_HINT_JOYSTICK_HIDAPI_WII
brief A variable controlling whether the player LEDs should be lit to indicate which player is associated with a Wii controller..
This variable can be set to the following values:
"0" - player LEDs are not enabled
"1" - player LEDs are enabled (the default)
SDL_HINT_JOYSTICK_HIDAPI_WII_PLAYER_LED
brief A variable controlling whether the HIDAPI driver for XBox controllers should be used.
This variable can be set to the following values:
"0" - HIDAPI driver is not used
"1" - HIDAPI driver is used
The default is "0" on Windows, otherwise the value ofHIDAPI
SDL_HINT_JOYSTICK_HIDAPI_XBOX
brief A variable controlling whether the RAWINPUT joystick drivers should be used for better handling XInput-capable devices.
This variable can be set to the following values:
"0" - RAWINPUT drivers are not used
"1" - RAWINPUT drivers are used (the default)
SDL_HINT_JOYSTICK_RAWINPUT
brief A variable that lets you disable the detection and use of Xinput gamepad devices
The variable can be set to the following values:
"0" - Disable XInput detection (only uses direct input)
"1" - Enable XInput detection (the default)
SDL_HINT_XINPUT_ENABLED