SDL: Fixed detecting the Steam virtual gamepad when HIDAPI is disabled

From ec0066aa0b8de1e8fca9e179ad3e33c0607e9a97 Mon Sep 17 00:00:00 2001
From: Sam Lantinga <[EMAIL REDACTED]>
Date: Fri, 29 May 2026 10:55:57 -0700
Subject: [PATCH] Fixed detecting the Steam virtual gamepad when HIDAPI is
 disabled

---
 src/joystick/apple/SDL_mfijoystick.m | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/src/joystick/apple/SDL_mfijoystick.m b/src/joystick/apple/SDL_mfijoystick.m
index ea38169dce60b..ef3cf00329208 100644
--- a/src/joystick/apple/SDL_mfijoystick.m
+++ b/src/joystick/apple/SDL_mfijoystick.m
@@ -1772,6 +1772,11 @@ bool IOS_SupportedHIDDevice(IOHIDDeviceRef device)
         return false;
     }
 
+    if (IOHIDDeviceGetProperty(device, CFSTR(kIOHIDVirtualHIDevice)) == kCFBooleanTrue) {
+        // Steam virtual gamepads always have kIOHIDVirtualHIDevice property unlike real devices, and are also not exposed as GCController
+        return false;
+    }
+
     if (@available(macOS 11.0, *)) {
         const int MAX_ATTEMPTS = 3;
         for (int attempt = 0; attempt < MAX_ATTEMPTS; ++attempt) {