Getting started with DS4Windows 5¶
What you need¶
- Windows x64, with a Windows edition supported by the bundled .NET 10 runtime. Windows 11 is the current desktop starting point; check the Windows 10 edition limits before using Windows 10. The VIIPER packages do not support x86 Windows.
- A supported controller and a USB connection or suitable Bluetooth adapter.
- The Microsoft Visual C++ x64 runtime.
- Administrator permission for driver installation and repair.
The release packages include the .NET runtime, matching VIIPER backend, USB/IP driver, and optional HidHide and FakerInput installers. You do not need to find a separate VIIPER download or choose a driver version yourself. The Visual C++ runtime remains a separate system prerequisite.
Install¶
Download only from this repository's Releases page. Starting with 5.0.14, new releases use numeric versions and are marked Latest. Check the release notes for limitations and signing status; this fork currently publishes unsigned builds.
Uninstalling the standard installation¶
Run DS4Windows Setup from Windows Installed apps and choose Uninstall. The confirmation shows what will be removed and what will be kept:
- DS4Windows and its managed VIIPER copy are removed, along with their owned shortcuts and startup tasks.
- USB/IP, HidHide and FakerInput are kept because other applications may use them.
- Profiles, application settings and user-created files are preserved.
Open profiles folder opens an existing Profiles folder for the current Windows user or the installed program folder. If both exist, choose which one to open. This shortcut does not create folders or change the storage location. Manage shared drivers… opens Windows Installed apps; remove a shared driver through its own uninstaller only if you no longer need it for any application.
Moving from another fork¶
If you are moving from another DS4Windows distribution, including forks by schmaldeo or hbashton, start with a clean set of application files and the matching bundled backend. Different releases may use different VIIPER and USB/IP versions. For a routine update of this fork, follow Update without losing your profiles instead; you do not need to uninstall a working installation first.
- Back up your profiles and settings. Check both
%APPDATA%\DS4Windowsand the old application folder, including anyportable-datafolder. Keep the backup until you have verified your controllers and profiles in the new installation. - Disable the old copy's startup entry, then close games, exit every DS4Windows copy, and quit VIIPER from its tray icon. Remove old launch shortcuts so you do not accidentally start both distributions.
- Remove the old application installation. For an installed copy, use its registered uninstaller in Windows' installed-apps list. For a portable copy, keep its folder as a backup but stop launching it; extract this fork into a fresh folder. Do not overlay a different fork's program files.
- Run this fork's x64 Setup EXE and follow the USB/IP replacement and restart instructions below. Portable users must also complete driver setup when prompted.
- Test with fresh settings before restoring a backup. Reinstalling the
program or extracting a new portable folder can still reuse settings in
%APPDATA%\DS4Windows. If the new copy picks up old settings, close it and rename that settings folder to a backup name instead of deleting it. Keep old portable configuration files in the backed-up application folder; do not copy them into the fresh installation for this first test. - Restore profiles gradually. Start with the individual profile XML files
from the backup's
Profilesfolder, select a profile in Controllers, and test it.Profiles.xmlbeside the app or in its settings folder is an application-settings file, not the folder containing your individual profiles. Avoid merging whole configuration folders from different forks or very old backups. Re-create application settings, linked profiles, Auto Profiles and permanent Output Slots assignments as needed, testing after each change. - Test each controller alone, then together, including connecting Joy-Cons after another physical controller is already recognized. Enable startup for the new copy once the setup works.
Do not restore old executables, DLLs, runtimes, updater files, VIIPER or driver installers over the new installation. Keep your backup until you are satisfied with the restored profiles and settings.
In issue #48, a user reported Joy-Con 2 slot-activation failures after merging very old backups and confirmed that a clean install allowed the Joy-Cons to connect after a DualSense Edge. The exact conflicting configuration was no longer reproducible. This is a good reason to test with fresh settings after migrating from another fork.
Existing USB/IP drivers¶
An incompatible old USB/IP package must be removed before the bundled replacement is installed. Let Setup perform this check and removal: it can reuse an exact, verified supported package, so manually uninstalling USB/IP is not required for every installation or update.
When replacing a recognized older package, Setup removes it and asks you to restart Windows before installing the replacement. Use Restart, then rerun the same Setup EXE and complete Install / Repair as directed. Complete any further requested restart before testing controller output. Copying new application files alone does not replace a system driver.
If Setup cannot safely identify or remove the existing package, use that package's original uninstaller or its entry in Windows' installed-apps list, restart Windows, and rerun Setup. If removal still fails, use Open log or Copy diagnostics and follow the USB/IP recovery guidance. Do not force-delete driver files, DriverStore entries, or Setup's replacement-state file to bypass the checks. If another application uses USB/IP, coordinate its requirements before removing a shared installation.
Keep working, compatible HidHide, FakerInput, and controller-specific drivers such as those used by DualShock 3; migrating DS4Windows does not require removing every controller driver. Use the USB/IP version bundled with this fork rather than independently upgrading or downgrading it.
Recommended: all-in-one installer¶
- Close games, exit DS4Windows, and quit any running VIIPER from its tray icon.
- Run the release's x64 Setup EXE and follow the prompts.
- Review the Installation status list, including HidHide and FakerInput. Missing HidHide is selected by default to prevent double input; an existing installation is shown as Installed — kept unchanged and left unticked. Setup also recognises HidHide driver installations from other releases. FakerInput remains opt-in when missing. Existing optional drivers are preserved during application installation and repair, and a newer related FakerInput MSI is not replaced by the bundled older package. The status list shows the DS4Windows version being installed. Optional drivers show their detected installed version when kept, or their bundled version when missing. If installed-version metadata is unavailable, setup says so rather than showing the bundled version as the installed version.
- Restart Windows if setup requests it, then complete any requested repair.
The installer places DS4Windows and VIIPER under
%ProgramFiles%\DS4Windows. It includes the required driver payloads;
avoid independently upgrading or downgrading USB/IP for this installation.
Portable ZIP¶
- Extract all of the release's
DS4Windows_<version>_x64.zip(older RCs useDS4Windows_VIIPER_x64.zip) into a permanent, writable folder. Do not launch from inside the ZIP or copy onlyDS4Windows.exe. Keep theLangfolder with the application; it contains the translations. - Run
DS4Windows.exefrom that folder. On a new PC, complete driver setup when prompted; portable does not mean driver-free. - DS4Windows starts its bundled VIIPER when needed. A verified matching running copy can be reused. If a conflicting copy is reported, quit that VIIPER instance before relaunching DS4Windows.
The marked portable package does not create or retarget the installed DS4Windows/VIIPER startup tasks just by launching. VIIPER stays beside DS4Windows. Install / Repair restores the matching version in that folder, downloading it only if needed, without moving your files or closing DS4Windows. Controller output pauses briefly during an active repair.
Connect and choose a profile¶
Connect a supported controller and select it in DS4Windows. Controller-family options are in Settings > Controllers > Device Options; optional Moonlight/Sunshine input must be enabled separately. Some devices, including DualShock 3, need their own compatible driver setup.
For Switch 2 Pro, use USB or DS4Windows' Bluetooth discovery and association controls in Settings → Controllers. For Joy-Con 2, use those Bluetooth controls. Put the controller into pairing mode and associate it there. See Nintendo setup for reconnecting, pairing and hardware-specific options.
In Controllers, use Link/Unlink for Joy-Cons, or enable automatic pairing. Pairs require an opposite-side controller from the same generation. Choose a single Joy-Con's upright or sideways holding style manually.
Create or edit a profile and choose the emulated controller the game should see. Auto Profiles can select profiles when a matching game or application is active. Restart a game after changing emulation if it does not detect the new controller.
See Compatibility to choose an output and check hardware/connection limits. Profile Editor explains its controls, and Controller audio covers speakers and microphones.
For native DualSense advanced haptics, select DualSense output and enable controller audio/speaker support. The game must support advanced haptics. Disable overlapping Steam Input remapping for that game so it can see the emulated DualSense. Trigger Lab overrides game trigger effects only on the triggers where it is enabled.
Nintendo HD-rumble translation adapts the source feedback to Nintendo motors; it is not identical to a physical DualSense and cannot add adaptive-trigger resistance. Original Joy-Cons do not have Joy-Con 2 optical mouse hardware.
Update without losing your profiles¶
Close games, DS4Windows, and VIIPER first. Back up profiles and settings before updating, especially when moving between versions or installation types.
- Installed: run the new release's Setup EXE. Existing profiles are retained.
- Portable: extract the whole new ZIP into your existing portable folder,
replacing the packaged app files. Keep your profiles, settings and
portable-datafolder. Do not copy old program or dependency files back over the updated ones.
Settings may be in %APPDATA%\DS4Windows or beside the application, depending
on your configuration. Check both before removing an old portable folder.
Follow the release's update instructions when a matching backend update is
required.
Current fork builds check this repository and use the matching fork DS4Updater (2.0.9 or newer) for supported installed/portable updates. Configure checks under Settings → Updates & tools, or install manually from Pav-Osmolski/DS4Windows Releases.
If something isn't working¶
- Double input: check HidHide is installed and enabled for the physical controller, then disable overlapping remapping software for the game.
- No virtual controller / backend not ready: follow the displayed startup error. Use Settings > Controllers > Install / Repair VIIPER when requested, and restart only if setup asks. Keep DS4Windows and its bundled VIIPER version together.
- No native haptics: confirm the game supports them, the profile emulates DualSense, controller audio/speaker support is enabled, and Steam Input is not replacing the virtual pad. Restart the game after changing these settings.
- Game Bar navigation: enable compatibility under Profile Editor → Advanced → Output and run DS4Windows elevated. Xbox Game Bar must be installed. See Game Bar setup.
Still stuck? Open an issue with
your DS4Windows version, physical controller, USB/Bluetooth connection,
emulated controller, and steps to reproduce. Attach the relevant log from your
DS4Windows settings folder's Logs directory; check it for personal information
before sharing. If requested, enable verbose logging and reproduce the problem
once, then turn it off again.
For setup failures, use the installer's Open log or Copy diagnostics
buttons. Detailed setup logs are also under
%ProgramData%\DS4Windows\Installer.