Skip to content

Gamepad identity fixes - #727

Open
sl1nk3 wants to merge 9 commits into
WinNative-Emu:mainfrom
sl1nk3:gamepad-identity-fixes
Open

Gamepad identity fixes#727
sl1nk3 wants to merge 9 commits into
WinNative-Emu:mainfrom
sl1nk3:gamepad-identity-fixes

Conversation

@sl1nk3

@sl1nk3 sl1nk3 commented Sep 8, 2026

Copy link
Copy Markdown

Problem

Many games (e.g. The Stanley Parable Ultra Deluxe, Kingdom Hearts, and others) have basic gamepad support where the buttons layout is hardcoded for specific controllers like Xbox and Playstation controllers. WinNative was advertising all gamepads as "Generic HID Gamepad" with fake vendor/product IDs (0x1234/0x5678), which broke recognition in these games.

Fix

This branch makes two changes:

  1. Spoof Xbox 360 Controller identity by default. The fake input device now reports itself as an Xbox 360 Controller (VID 0x045E, PID 0x028E), which is widely recognized by games out of the box. The device name is "Xbox 360 Controller (%d)" instead of "Generic HID Gamepad %d".
  2. New "Use Real Identity" per-controller toggle for external gamepads only. Added a checkbox in the external controllers input settings that lets a gamepad broadcast its real name, vendor ID, and product ID instead of the spoofed Xbox 360 identity. This can be useful when playing with a PlayStation controller in a game that has a dedicated PlayStation input path (i.e some games use HUD glyphs specific to PlayStation controllers when one is detected).

Tested locally on an AYN Thor with a Xbox One gamepad over bluetooth as well as a Playstation 3 controller.

sl1nk3 added 7 commits August 31, 2026 19:17
… not being recognized, fixed by spoofing an Xbox 360 Controller instead.

Added a new setting to allow external gamepad to advertise their real device name and product ids (this can for example be enabled if a Dualshock gamepad is connected and the game you're plyaing has custom layout or playstation icons when a PS controller is connected)
…gle, which makes more sense and hides it when not relevant
… product id is for some reason overwritten by the device mapper
@maxjivi05

Copy link
Copy Markdown
Contributor

checking this out later today, sounds awesome.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants