← Choose language | Выберите язык
Advanced Xbox gamepad emulation for Sony DualSense, DualShock 4, Nintendo Pro controller or Joy-cons. Supports aiming and driving by tilting the gamepad, stick emulation on the touchpad, keyboard and mouse emulation, and external pedals with extra buttons, and other Digispark-based joysticks. Works based on the driver ViGEm.
✔️ Tilt driving and aiming support (gyroscope, no additional settings required);
✔️ Easy switching between driving and aiming modes (maximum innovative motion gameplay);
✔️ Windows control, volume adjustment, and screenshot creation using a gamepad;
✔️ Remapping Xbox controller buttons, different profiles;
✔️ Keyboard and mouse emulation for old games, as well as profiles;
✔️ Support for adaptive triggers for Sony DualSense in USB connection mode (pistol, rifle, sniper rifle, bow, car pedal);
✔️ Various emulation modes for games with adaptive triggers;
✔️ Battery level display on the light bar and player indicators (for Sony gamepads);
✔️ Turning off the light bar for full immersion in the dark;
✔️ Support for two gamepads, the first with full functionality, and the second with simplified features (must be enabled in the config);
✔️ Support for external modified racing pedals with any 16 buttons;
✔️ Support for emulating any Xbox controller button presses using a Digispark joystick (up to 16 buttons);
Multiple operation modes are supported. You can switch between them by pressing the touchpad on DualSense and DualShock 4, the Capture and Home buttons on Pro Controllers and Joy-Cons (pressing Home again toggles aim mode — always/L2), or by pressing the touchpad on gamepads compatible with DualShock 4 but lacking a touch sensor (if the ChangeModesWithoutAreas parameter is set to 1). You can also change operation modes using ALT + 1/2. You can also switch operation modes using ALT + 1/2. Pressing ALT + 1 again disables driving mode, and pressing ALT + 2 again toggles the aim mode (always/L2).
The default gamepad color and the area colors can be changed in the configuration file.
To enable aiming with the L1 button, change the AimingWithL2 parameter to 0 in the config.
By default, the computer control area is located at the bottom center. To enable touch sticks, set the TouchSticksOn parameter to 1 — the desktop control area will be replaced with the touch stick area. To exit stick emulation mode, press the default mode button.
When pressing the default profile button on the DualSense, white LEDs indicate the current battery charge status (1 - 0..25%, 2 - 26..50%, 3 - 51..75%, 4 - 76..100%). On DualSense and DualShock 4, battery status is also shown on the light bar (green - 100..30%, yellow - 29..10%, red - 9..1%). This can be disabled in the config via the ShowBatteryStatusOnLightBar parameter. Battery status is also displayed in the program via ALT + I.
Double-tap the brightness area, then swipe left or right to adjust the backlight brightness. Double-tap again to lock it and prevent accidental changes.
There are 5 emulation modes:
- Xbox gamepad emulation with extended features;
- Xbox gamepad emulation only for driving mode and mouse aiming (for games with adaptive triggers);
- Mouse only (if you want to use native gamepad support but with more precise aiming);
- Keyboard and mouse emulation for Windows control;
- Keyboard and mouse emulation for old retro games;
Emulation Mode switching is done via ALT + Q, ALT + ←/→ or PS/Home + ←/→. Keyboard and mouse emulation supports different profiles; select the required profile or create a new one. There are also Xbox profiles for changing the button layout. Profiles can be switched using ALT + ↑/↓ when the window is active, or on the gamepad using PS/Home + ↑/↓. The default profile allows Windows operation.
Adaptive triggers for Sony DualSense in USB mode are supported, you can switch between different modes with ALT + 3/4.
To connect external pedals (DInput) and Digispark joystick based devices, change the parameter change the DInput parameter to 1 in the ExternalPedals section. To connect external pedals on Arduino, change the COM port number by modifying the COMPort parameter.
There are 2 modes:
- "Always pedals" - the pedal axes are always bound to the controller triggers.
- "Dependent (driving/aiming)" - in driving mode, the pedal axes are bound to the triggers, in aiming mode, you can bind button presses to the axes. The degree of force is determined by the
PedalValuePressparameter. You can switch modes using the keysALT + E. You can set the default mode by changing theDefaultModeparameter.
You can also set pedals or other devices to have up to 16 buttons, which can be assigned to any Xbox gamepad buttons by changing the Button1..16 parameter.
To turn off DualSense or DualShock 4, hold the PS button, to turn off Nintendo controllers, hold the Capture or Home button for 10-15 seconds until the controllers turn off.
| Action | Sony Buttons | Nintendo Buttons | Windows |
|---|---|---|---|
| Reset/Search Controllers | - | - | CTRL + R or Numpad 0 (default, can be changed) |
| Swap first and second controllers | - | - | ALT + V |
| Emulation mode switching (gamepad, keyboard and mouse, etc.) | PS + ←/→ |
Home + ←/→ |
ALT + Q, ALT + ←/→ |
| Switching profiles Xbox / Keyboard and mouse | PS+ ↑/↓ |
Home + ↑/↓ |
ALT + ↑/↓ |
Open Xbox Game Bar (Win + G press) |
PS |
Capture + Home |
- |
| Decrease and increase Windows volume | PS + □ and PS + ○ |
Capture + Y and Capture + A |
- |
Screenshot (Win + ALT + PrtScn press) |
Microphone button or PS + X |
Capture + B |
- |
Record video (press Win + ALT + R) |
Hold the microphone button or PS + X |
Hold Capture + B |
- |
| Aiming mode: mouse emulation or right stick offset | PS + R1 |
Capture + R1 |
ALT + A |
| Operation mode (driving or aiming) | Touchpad areas or touchpad press (for controllers without touch panel, enable in config) | Capture/Home (press Capture again to reset, press Home again to toggle aim mode — always/L2) |
ALT + 1, ALT + 2 (press ALT + 1 again to reset, press ALT + 2 again to toggle aim mode — always/L2) |
| Change aiming sensitivity: increase and then decrease | PS + △ |
Capture + X |
- |
| Reset aiming sensitivity | PS + RS |
Capture + RS |
- |
| Change rumble strength or disable it | PS + Options |
Capture + Plus |
ALT + </> |
| Enable/disable touchpad press for mode switching (Sony) | PS + Share |
- | ALT + W |
| Auto stick press when tilted at a certain angle (value set in the configuration file), either once or continuously | PS + LS |
HOME + LS |
ALT + S |
Screenshot modes: Xbox Game Bar, Steam, Xbox Game Bar + Steam, custom-configured button (MicCustomKey parameter should be set to the desired key) |
- | - | ALT + X |
| Turn off light bar (Sony) | PS + L1 or double-tap the brightness area of the touchpad and swipe left or right. If brightness adjustment is locked (LockChangeBrightness), the light bar will turn off with a double tap. |
- | ALT + B |
- Study the documentation to be aware of all features and specifics.
- Install ViGEmBus.
- Install Microsoft Visual C++ Redistributable 2017 or newer.
- Connect the Sony DualSense, DualShock 4, Nintendo Pro controller or Joy-Cons.
- Unzip and launch DSAdvance.
- If necessary, change the dead zones of the sticks, triggers or other parameters in the configuration file
Config.ini. - (Optional) To enable operation of two gamepads, change the
Enabledparameter to1in theSecondaryGamepadsection. You can also adjust dead zones for sticks, triggers, and colors. - When used with Steam games, in the controller settings, disable
Playstation personal settings. - It is also recommended to hide the controller for modern games so that games only see the emulated, advanced Xbox 360 controller. To do this, install HidHide. Then, in
HidHide Configuration Client, addDSAdvance.exein theApplicationssection, check your controller (e.g., Sony Wireless Controller) in theDevicessection, and enableEnable device hiding(if it is disabled). You can also refer to this guide showing where to click. Through the Launcher, you can do the same, except adding the gamepad to the hide list. - (Optional) To launch from the notification area (tray), by double-clicking, you can add a shortcut to
Launcher.exeto Windows startup%AppData%\Microsoft\Windows\Start Menu\Programs\Startup. - (Optional) To run third-party utilities via Launcher, specify the title and path to the application in the configuration file.
Version for Windows 10, 11.
• The game sees 2 controllers at the same time (DualSense / DualShock 4 / Nintendo Pro controller or JoyCons and Xbox)
If the game supports a modern gamepad you can turn off the emulation of the Xbox gamepad on the keys ALT + Q or hide this gamepad at all using the program HidHide or try in wireless mode.
• Permanently changing keyboard and gamepad icons
You can change the aiming mode to Mouse-Joystick, in the program, or use aiming by left trigger.
• Adaptive triggers or light bar don't work in the game
Add the game to the "HidHide" exceptions list and change the DSAdvance mode to Only mouse or Xbox gamepad (only driving) & mouse aiming.
• Driving don't work in games with DualSense support (without HidHide)
Launch DSAdvance first, and only then the game itself, the game can give priority to the emulated Xbox controller and driving will work. You can also enable Only driving & aiming emulation mode so that the controller will only turn on in driving mode.
• Nintendo Pro controller or Joy-Cons rumble constantly after starting the program
Unfortunately, rumble may not work correctly on some gamepads. Turn off the gamepad and disable rumble in the configuration file by changing the RumbleStrength parameter to 0.
• Nintendo controllers don't rumble in wired mode
Unfortunately, this feature is not implemented.
- Sony and Nintendo for the most advanced gamepads and investment in innovation, and for driving innovation in games.
- ViGEm for the ability to emulate various gamepads and HidHide for hiding them.
- HIDAPI library with fixes for the library to work with a USB devices. The project uses this fork.
- JoyShockLibrary for a cool gamepad library that makes it easy to get controller rotation. Also uses some code from this library and JibbSmart snippet for aiming.
- DS4Windows[1][2] for the battery level.
- JoyCon-Driver for Joy-Cons rumble.
- Download the sources and unzip them.
- Download and install Microsoft Visual Studio Code 2017+.
- Update the project properties with your tools and SDK.
- Choose the
Releasebuild type (ifDebugis installed) andx86, then compile the project.
r57zone[at]gmail.com




