@@ -659,20 +659,19 @@ extension PVRetroArchCoreCore: PVDOSSystemResponderClient, KeyboardResponder, Mo
659659 }
660660 public var gameSupportsMouse : Bool {
661661 guard virtualInputSupport. supportsMouse else { return false }
662- // Always delegate to MouseGameRegistry when a valid system identifier is available .
663- // The registry handles both always-mouse systems (DOS, Macintosh, etc.) and
662+ // Always delegate to MouseGameRegistry for per-game detection .
663+ // The registry handles always-mouse systems (DOS, Macintosh, etc.) and
664664 // conditional systems (Dreamcast, SNES, etc.) with per-game MD5/title checks.
665- // This prevents false positives where e.g. all Dreamcast games show a cursor.
666- if let sysID = SystemIdentifier ( rawValue: systemIdentifier ?? " " ) {
667- return MouseGameRegistry . shared. gameSupportsMouse (
668- systemIdentifier: sysID,
669- md5: romMD5,
670- title: romName
671- )
665+ // Without this, generic RetroArch sessions (systemIdentifier = "com.provenance.retroarch")
666+ // would incorrectly show the cursor for all games on mouse-capable cores like Flycast.
667+ guard let sysID = SystemIdentifier ( rawValue: systemIdentifier ?? " " ) else {
668+ return false
672669 }
673- // Unknown system identifier — fall back to the static support table.
674- // This only triggers for unresolved/generic RetroArch sessions.
675- return true
670+ return MouseGameRegistry . shared. gameSupportsMouse (
671+ systemIdentifier: sysID,
672+ md5: romMD5,
673+ title: romName
674+ )
676675 }
677676 public var requiresMouse : Bool {
678677 virtualInputSupport. requiresMouse
0 commit comments