PS4 / DualShock 4 Controller Not Detected in PC Emulator — DS4Windows Fix
I connected my PS4 DualShock 4 controller to my PC via USB or Bluetooth, but my emulator (PCSX2, Dolphin, Cemu, RetroArch, RPCS3, or shadPS4) either doesn't detect it at all, shows it as "Unknown controller," or the buttons are mapped incorrectly. What's the fix?
Solutions
solution #859
Root cause: The DualShock 4 uses the DirectInput (DInput) protocol natively. Most Windows emulators expect XInput (the Xbox controller standard). DS4Windows creates a virtual Xbox controller that Windows and all XInput applications see instead of the raw DualShock 4.
Install DS4Windows:
- Download DS4Windows from the official GitHub: search "DS4Windows GitHub Ryochan7" and go to the Releases page. Download the latest
DS4Windows_X.X.X.zip. - Extract to a permanent folder (e.g.,
C:\DS4Windows\) — do not leave it in Downloads, as Windows may block it. - Run
DS4Windows.exe. On first launch it asks where to save profiles — choose Program Folder for portability. - If prompted, install the ViGEmBus driver (the virtual gamepad driver) — click Install Driver and follow the wizard.
- Plug in or pair your DualShock 4. DS4Windows should show it on the Controllers tab with a green light.
- Open your emulator — it will now see a virtual Xbox 360 Controller instead of the DualShock 4.
Keep DS4Windows running in the system tray while gaming. It must be active for the virtual controller to exist.
Bluetooth pairing: Hold the PS button + Share button simultaneously until the light bar flashes rapidly, then pair on Windows Bluetooth settings. DS4 uses standard Bluetooth (not BLE), so any Bluetooth adapter works.
solution #860
If Steam is installed, it includes its own DS4 support via Steam Input — no separate DS4Windows install needed.
- Open Steam → Settings → Controller → General Controller Settings.
- Enable PlayStation Configuration Support.
- Launch your emulator through Steam (add it as a Non-Steam Game: Library → Add a Game → Add a Non-Steam Game).
- Steam Input presents the DS4 as an XInput controller to the emulator automatically.
Limitation: this only works when you launch the emulator via Steam. If you launch the emulator directly (not through Steam), DS4Windows is the better choice.
solution #861
A few emulators support DInput directly without DS4Windows or Steam Input:
- PCSX2: Settings → Controllers → Controller 1 → set type to DualShock 2. In the pad bindings section, click each button and press the corresponding DS4 button. PCSX2 reads DInput natively — the DS4 will map 1:1 (same button layout).
- RetroArch: Settings → Input → find the DS4 listed as a DirectInput device. RetroArch auto-configures most controllers including the DS4; check Settings → Input → Port 1 Controls to verify the mapping loaded.
- Dolphin: Also supports DInput — GameCube Configuration → Standard Controller → Configure → the DS4 appears as a DirectInput device in the dropdown.
For RPCS3, shadPS4, and Cemu, DS4Windows or Steam Input is still the most reliable path.
solution #862
If DS4Windows is running but doesn't detect the DualShock 4:
- HidHide conflict: Some DS4Windows versions bundle HidHide (a device-hiding driver). If the DS4 is hidden from other apps, it may also be hidden from DS4Windows. Open HidHide Configuration (search it in Start) → check the Blacklist tab and remove the DS4 entry.
- Exclusive mode conflict: DS4Windows has an Exclusive Mode setting (grabs the device from all other software). If another app already holds the device, DS4Windows can't see it. Close any other controller mapping apps (reWASD, JoyToKey, Antimicro) before launching DS4Windows.
- USB cable issue: Some USB cables are charge-only and carry no data. Try a different cable known to work for data transfer (most phone cables that came with Android phones work).
- Driver conflict on Windows 11: Windows 11 sometimes installs its own gamepad driver that conflicts. In Device Manager, under Human Interface Devices, find the DS4 entry and Uninstall device (check "Delete driver software"). Unplug and re-plug — Windows will reinstall a clean driver, and DS4Windows should then detect it.
Comments (0)
Sign in to_leave_comment