-
-
Notifications
You must be signed in to change notification settings - Fork 2.1k
Description
I'd really love to see SDL3 support. It was released earlier this year (January 2025). Currently RetroArch only supports SDL2.
I’ve listed some benefits below, but most importantly (for me anyway), SDL3 should solve a longstanding Windows issue:
RawInput is currently required for multiple mice and light guns to work in RetroArch on Windows. However, RawInput does not provide a persistent GUID or device ID, meaning RetroArch has no reliable way to identify which physical device is which. Instead, it relies on the order devices appear in under Settings → Input → RetroPad Binds → Port X Controls → Mouse Index.
Because Windows enumerates HID devices at boot or when devices are plugged in, this order can change whenever a device is disconnected, reconnected, or after a system restart or driver update. As a result, RetroArch can assign a random device to the user each time, breaking player mappings and calibration.
This is a massive pain for anyone with light guns, because it forces us to manually set the Mouse Index for each controller port all the time. It also means that when RawInput is first selected, the mouse may not even work by default if other peripherals are connected. See #11308 as one example (this issue also happens to me on any Windows PC, with any RA version).
Some SDL3 benefits:
-
Persistent GUID and per-device IDs.
-
So less reliance on hacks like HidHide, DemulShooter, RawInput hacks, or third-party utilities for multi-gun/mouse setups.
-
Lower latency: SDL3 reports input events immediately as they occur, rather than waiting for the next poll cycle like SDL2, Xinput and Dinput. This also includes device connect/disconnect.
-
Standardises input and hotplug behaviour across Windows, macOS, Linux, and Wayland.
-
Improved touchscreen, pen and tablet support.