Skip to content

Controllers, outputs and feature compatibility

Documentation index · Getting started · Troubleshooting

The physical controller provides your buttons, sensors and feedback hardware. The virtual output is the controller DS4Windows presents to the game. Changing output can improve game compatibility, but cannot add sensors, a speaker or adaptive triggers to your physical controller.

Supported input families

Physical input Connection and setup Features to explore
DualShock 3 Requires compatible controller drivers; see Device Options Button/stick mapping and rumble; do not assume DS4/DualSense feature parity
DualShock 4 USB or Bluetooth Touchpad, gyro, lightbar, rumble and supported controller-audio routes
DualSense / DualSense Edge USB or Bluetooth Touchpad, gyro, lighting, audio, advanced haptics and adaptive triggers
Switch Pro USB or Bluetooth Mapping, motion and Nintendo feedback/settings
Original Joy-Con Bluetooth; standalone or a same-generation left/right pair Holding styles, motion and Nintendo feedback; no Joy-Con 2 optical mouse sensor
Switch 2 Pro USB or DS4Windows Bluetooth discovery/association Nintendo motion/feedback; headset support over USB
Joy-Con 2 DS4Windows Bluetooth discovery/association; standalone or a same-generation pair Optical mouse, motion, dual Joy-Con aiming and Nintendo feedback
Supported Moonlight/Sunshine virtual input Enable admission on the Sunshine host Mapping of supported virtual HID identities; not arbitrary virtual devices

These are supported families, not a guarantee for every third-party clone, Bluetooth adapter or game. Device Options are under Settings → Controllers. See Nintendo setup and Moonlight/Sunshine for their distinct connection procedures.

Controller polling

Profile Editor → Advanced → Controller polling shows whether DS4Windows can request a different input reporting rate for the selected physical controller. Currently this is implemented for the DualShock 4 protocol. Saving the profile applies the selection on Bluetooth; it does not change USB polling. Offline profiles can still configure and retain this value for a compatible controller. Automatic Bluetooth input rate is enabled for new profiles and uses the conservative DS4-compatible 250 Hz (4 ms) request. This is a default policy, not a probe of the controller's supported rates. Turn Automatic off to request a manual rate; switching it on retains the manual choice for later use. Existing profiles with an explicit rate keep that manual selection. Changes take effect when the profile is saved. This setting does not change VIIPER feedback pacing.

DualSense/Edge and Nintendo controllers use their backend's automatic reporting behaviour; this setting does not add a configurable rate to those controllers.

Supported intervals cannot be reliably queried from every controller. Recognized Sony DS4 IDs identify a known protocol, but copies can reuse those IDs. For an unrecognized DS4-compatible identity the page marks the rates as unverified: the controller may ignore a request. Even a recognized ID does not prove genuine hardware or confirm that a requested rate was accepted. A measured arrival rate can also vary with Bluetooth interference and host scheduling, so it is not a reliable list of supported rates.

For a connected USB controller, the same section reads the physical device's active configuration and negotiated speed through its parent USB hub. It shows advertised HID interrupt input/output intervals separately, without guessing from the controller name or applying an overclock. Composite devices are matched to the HID interface rather than their audio endpoints. Ambiguous, inaccessible or malformed descriptors display unknown. Reopening the editor after reconnecting reads the current connection again. These are advertised intervals, not measured arrival rates or proof that all alternative rates are supported. Driver filters and host scheduling may change the rate actually observed.

Input reporting and feedback output have separate timing requirements. This selection does not set VIIPER's virtual USB output interval or the Bluetooth speaker/haptics packet cadence.

Choose the controller the game should see

Open Profile Editor → Advanced → Output and choose Emulated Controller.

Virtual output When to choose it Important limit
Xbox 360 A starting point for games expecting XInput Does not expose PlayStation touchpad/audio interfaces to the game
Xbox One / Series Games that support this output, including impulse-trigger feedback Physical feedback still depends on the connected controller and translation settings
DualShock 4 Games expecting a DS4, including compatible touchpad/lightbar/audio behaviour Does not make a physical controller into a DualSense
DualSense / DualSense Edge Games supporting PlayStation output and native DualSense features Advanced haptics require a compatible audio path; adaptive resistance needs physical DualSense/Edge triggers
Switch 2 Pro Software expecting the supported Nintendo output Nintendo rumble translation does not reproduce adaptive-trigger resistance
Virtual controller disabled Keyboard/mouse-only mappings or other deliberate configurations Games receive no virtual gamepad from this profile

Restart a game after changing output if it keeps using the old device. Configure HidHide and overlapping Steam Input mappings so the game sees the intended pad.

Hardware and connection limits

Feature Requirement or boundary
Native game haptics A supporting game, compatible virtual output and physical feedback path; different from capturing game sound
Adaptive-trigger resistance Physical DualSense/Edge; Trigger Lab can override the game's effects per trigger
PlayStation controller audio USB uses Windows audio endpoints where required; Bluetooth uses the supported controller transport. Follow the model-specific controls in Advanced → Audio
Bluetooth microphone routing Supported PlayStation microphone transport plus a compatible VIIPER virtual audio capture endpoint
Joy-Con optical mouse Joy-Con 2 optical hardware; unavailable on original Joy-Cons
Dual Joy-Con aiming A joined pair and separately configured motion output/activation
Switch 2 Pro headset/microphone USB and a suitable headset; Bluetooth headset audio is unsupported
Game Bar compatibility Xbox Game Bar installed; an optional mapped-input companion, not a change to the selected native output

For detailed setup, use Controller audio and feedback, Audio Haptics, Trigger Lab and Nintendo Options. Technical transport contracts and dated hardware investigations are linked from Technical reference; their validation claims apply to the recorded hardware and build.

Virtual controller battery reporting

The virtual DualShock 4, DualSense/Edge and Switch 2 Pro can receive the selected physical controller's reliable battery and power state. Sony reports expose approximately ten-percent bands; Nintendo reports use coarser bands. A source without a reliable reading cannot provide a real percentage. Native DualSense status passthrough remains authoritative, and physical Switch 2's existing runtime-status route preserves its measured voltage.

Virtual Xbox 360 and Xbox One devices identify as wired USB controllers. Windows and games can therefore show wired/no battery; this is different from reporting the physical controller as fully charged. DirectInput and keyboard/mouse output have no universal battery display. The DS4/DualSense browser tester does not establish battery support for those other protocols.

A browser tester's Factory info > Build Time is the emulated controller's firmware/factory date. It is independent of the DS4Windows application's build or release date. The fixed, valid factory date is intentionally retained rather than replaced with an invented physical manufacturing date.