diff --git a/pcsx2/Frontend/SDLInputSource.cpp b/pcsx2/Frontend/SDLInputSource.cpp index 00dbe81c0e..5d9e9ec6ff 100644 --- a/pcsx2/Frontend/SDLInputSource.cpp +++ b/pcsx2/Frontend/SDLInputSource.cpp @@ -164,6 +164,15 @@ void SDLInputSource::SetHints() { SDL_SetHint(SDL_HINT_JOYSTICK_HIDAPI_PS4_RUMBLE, m_controller_enhanced_mode ? "1" : "0"); SDL_SetHint(SDL_HINT_JOYSTICK_HIDAPI_PS5_RUMBLE, m_controller_enhanced_mode ? "1" : "0"); + // Enable Wii U Pro Controller support + // New as of SDL 2.26, so use string + SDL_SetHint("SDL_JOYSTICK_HIDAPI_WII", "1"); +#ifndef _WIN32 + // Gets us pressure sensitive button support on Linux + // Apparently doesn't work on Windows, so leave it off there + // New as of SDL 2.26, so use string + SDL_SetHint("SDL_JOYSTICK_HIDAPI_PS3", "1"); +#endif } bool SDLInputSource::InitializeSubsystem() diff --git a/pcsx2/PAD/Linux/SDL/joystick.cpp b/pcsx2/PAD/Linux/SDL/joystick.cpp index a07d7bdc9e..17f93ba174 100644 --- a/pcsx2/PAD/Linux/SDL/joystick.cpp +++ b/pcsx2/PAD/Linux/SDL/joystick.cpp @@ -42,6 +42,9 @@ void JoystickInfo::EnumerateJoysticks(std::vector>& vjoy // Super annoying to have a bright blue LED shining in your face all the time // New as of SDL 2.0.18, so use string SDL_SetHint("SDL_JOYSTICK_HIDAPI_SWITCH_HOME_LED", "0"); + // Enable Wii U Pro Controller support + // New as of SDL 2.26, so use string + SDL_SetHint("SDL_JOYSTICK_HIDAPI_WII", "1"); for (const auto& hint : g_conf.sdl2_hints) SDL_SetHint(hint.first.c_str(), hint.second.c_str()); diff --git a/pcsx2/gui/AppInit.cpp b/pcsx2/gui/AppInit.cpp index 0fba4c8f97..acd1ee395f 100644 --- a/pcsx2/gui/AppInit.cpp +++ b/pcsx2/gui/AppInit.cpp @@ -480,6 +480,7 @@ bool Pcsx2App::OnInit() #ifdef SDL_BUILD // MacOS Game Controller framework requires a few runs of the main event loop after interest in game controllers is first indicated to connect controllers // Since OnePad doesn't currently handle connection/disconnection events and requires controllers to be connected on start, we need to initialize SDL before OnePad looks at the controller list + SDL_SetHint(SDL_HINT_NO_SIGNAL_HANDLERS, "1"); SDL_Init(SDL_INIT_GAMECONTROLLER); #endif return true;