https://github.com/r57zone/dsadvance
Advanced Xbox controller emulation for DualSense, DualShock 4, Pro Controller, Joy-Cons / Продвинутая эмуляция Xbox геймпада для DualSense, DualShock 4, Pro контроллера, Джойконов
https://github.com/r57zone/dsadvance
dualsense dualshock4 gamepad gamepads gyro gyro-aiming gyroscope joy-con joy-cons joycons motion-aiming motion-control motion-gaming motion-racing pro-controller vigem windows
Last synced: about 1 year ago
JSON representation
Advanced Xbox controller emulation for DualSense, DualShock 4, Pro Controller, Joy-Cons / Продвинутая эмуляция Xbox геймпада для DualSense, DualShock 4, Pro контроллера, Джойконов
- Host: GitHub
- URL: https://github.com/r57zone/dsadvance
- Owner: r57zone
- License: other
- Created: 2022-04-19T18:11:20.000Z (about 4 years ago)
- Default Branch: master
- Last Pushed: 2025-03-02T09:38:44.000Z (over 1 year ago)
- Last Synced: 2025-03-31T17:17:33.389Z (about 1 year ago)
- Topics: dualsense, dualshock4, gamepad, gamepads, gyro, gyro-aiming, gyroscope, joy-con, joy-cons, joycons, motion-aiming, motion-control, motion-gaming, motion-racing, pro-controller, vigem, windows
- Language: C++
- Homepage: https://youtu.be/gkyqO_HuPnk
- Size: 1.21 MB
- Stars: 94
- Watchers: 2
- Forks: 2
- Open Issues: 5
-
Metadata Files:
- Readme: README.RU.md
- License: LICENSE
Awesome Lists containing this project
README
[](https://github.com/r57zone/DSAdvance/)
[](https://github.com/r57zone/DSAdvance/blob/master/README.RU.md)
# DSAdvance
Продвинутая эмуляция Xbox геймпада для Sony DualSense, DualShock 4, Nintendo Pro контроллера или Джойконов. Поддерживается прицеливание и вождение наклонами геймпада, эмуляция стиков на тачпаде, эмуляция клавиатуры и мыши, а также [внешние педали](https://github.com/r57zone/XboxExternalPedals). Работает на базе драйвера [ViGEm](https://github.com/nefarius/ViGEmBus).
[](https://youtu.be/gkyqO_HuPnk)
[](https://youtu.be/gkyqO_HuPnk)
# Особенности
✔️ Поддержка вождения наклонами и прицеливания (гироскоп, без каких-либо настроек);
✔️ Простое переключение между режимами вождения и прицеливания (максимум инновационного геймплея);
✔️ Управление Windows, изменение громкости, создание скриншотов, с помощью геймпада;
✔️ Показ заряда батареи на световой панели и индикаторах игрока (для геймпадов Sony);
✔️ Различные режимы эмуляции для игр с адаптивными курками;
✔️ Выключение подсветки для полного погружения в темноте;
✔️ Поддержка внешних модифицированных педалей для гонок;
Поддерживается несколько режимов работы, переключение нажатиями по тачпада DualSene и DualShock 4 или кнопками `Capture`, и `Home` для Pro контроллера, и Джойконов (повторное нажатие `Home` переключает режим прицеливания - всегда/L2).

Для включения прицеливания по кнопке `L1` измените параметр `AimingWithL2` на `0`, в конфиге.
Для выхода из режима эмуляции стиков нажмите на режим по умолчанию.
Нажимая на профиль по умолчанию, на DualSense, белые светодиоды отображают текущий статус заряда аккумулятора (1 - 0..25%, 2 - 26..50%, 3 - 51..75%, 4 - 76..100%), также на DualSense и DualShock 4 показывается статус батареи на световой панели (зелёный - 100..30%, жёлтый - 29..10%, красный - 9..1%), отключается в конфиге, параметр `ShowBatteryStatusOnLightBar`. Также статус батареи отображается в самой программе на `ALT + I`.
Есть 3 режима эмуляции:
* Простая эмуляция Xbox геймпада с расширенными функциями;
* Эмуляция Xbox геймпада только для режима вождения и прицеливание мышью (для определенных игр с адаптивными триггерами);
* Только мышь;
* Эмуляция клавиатуры и мыши для управления Windows и некоторых старых игр;
Переключение режимов происходит на `ALT + Q` или `PS/Home + ←/→` и `PS/HOME`. Эмуляция клавиатуры и мыши поддерживает разные профили, выберите нужный профиль или [создайте новый профиль](https://github.com/r57zone/DSAdvance/blob/master/BINDINGS.RU.md). Профили переключаются на клавиши `ALT + ↑/↓`, если окно активно или на геймпаде, с помощью `PS/Home + ↑/↓`. Профиль по умолчанию позволяет работать в Windows.
Для подключения [внешних педалей (DInput)](https://github.com/r57zone/XboxExternalPedals#setup-dinput-pedals-mh-et-live-board) измените параметр `DInput` на `1`, в разделе `ExternalPedals`. Для подключения [внешних педалей на Arduino](https://github.com/r57zone/XboxExternalPedals#setup-arduino-pedals) измените номер COM-порта, изменив параметр `COMPort`.
[](https://youtu.be/aK1SV_eXJ_4)
[](https://youtu.be/liI_7U_R0as)
Для выключения DualSense или DualShock 4 удерживайте кнопку PS в течении 10-15 секунд, пока контроллер не выключиться.
### Горячие клавиши
Действие | Кнопки Sony | Кнопки Nintendo | Windows
------------ | ------------- | ------------- | -------------
Открытие игровой панели Xbox (нажатие `Win + G`) | `PS` | `Capture + Home` | -
Уменьшение и увеличение громкости Windows | `PS + □` и `PS + ○` | `Capture + Y` и `Capture + A` | -
Скриншот (нажатие `Win + ALT + PrtScn`) | Кнопка микрофона или `PS + X` | `Capture + B` | -
Режим прицеливания: эмуляция мыши или смещение правого стика | `PS + R1` | `Capture + R1` | `ALT + A`
Изменение чувствительности прицеливания: увеличение и затем уменьшение | `PS + △` | `Capture + X` | -
Сброс чувствительности прицеливания | `PS + RS` | `Capture + RS` | -
Изменение силы вибрации или её отключение | `PS + Options` | `Capture + Плюс` | `ALT + >`
Выключение и включение нажатия тачпада для переключения режимов (Sony) | `PS + Share` | - | `ALT + W`
Автонажатие стика при определённом наклоне стика (значение в конфигурационном файле), а также инвертирование | `PS + LS` | `HOME + LS` | `ALT + S`
Режимы скриншота: Игровая панель Xbox, Steam, Игровая панель Xbox + Steam, заданная кнопка в конфиге (параметру `MicCustomKey` задать [нужное значение кнопки](https://github.com/r57zone/DSAdvance/blob/master/BINDINGS.RU.md) | - | - | `ALT + X`
Выключение подсветки (Sony) | `PS + L1` или 2 раза нажмите на область яркости тапада и проведите пальцем влево или вправо. Если изменение яркости заблокировано `LockChangeBrightness`, то подсветка будет выключаться по двойному клику. | - | `ALT + B`
## Настройка
1. Установить [ViGEmBus](https://github.com/nefarius/ViGEmBus/releases).
2. Установить Microsoft Visual C++ Redistributable 2017 или новее.
3. Подключить геймпад Sony DualSense, DualShock 4, Nintendo Pro контроллер или JoyCon-ы.
4. Распаковать и запустить DSAdvance.
5. При необходимости изменить мёртвые зоны стиков, триггеров или другие параметры, в конфигурационном файле `Config.ini`.
6. При использовании со Steam играми, в настройках контроллера, отключите `персональные настройки Playstation`.
7. Также рекомендуется установить [HidHide](https://github.com/nefarius/HidHide/releases), после чего в `HidHide Configuration Client` нужно добавить `DSAdvance.exe` и включить параметр `Enable device hiding` (если выключен). Необходимо для того, чтобы игра не видела наш контроллер, а видела только эмулируемый Xbox 360 геймпад.
8. (Необезательно) Для запуска из области уведомлений (tray), по двойному клику, можно добавить ярлык на `Launcher.exe` в автозагрузку Windows `%AppData%\Microsoft\Windows\Start Menu\Programs\Startup`.
9. (Необезательно) Для запуска сторонних утилит через Launcher укажатие имя и путь до приложения в конфигурационном файле.
## Загрузка
>Версия для Windows 10, 11.
**[Загрузить](https://github.com/r57zone/DSAdvance/releases)**
## Возможные проблемы
• **Игра видит 2 геймпада одновременно (DualSense / DualShock 4 / Nintendo Pro контроллер или JoyCon-ы и Xbox)**
Если игра поддерживает современный геймпад можно выключить эмуляцию Xbox геймпада на клавиши `ALT + Q` или вовсе скрыть этот геймпад, с помощью программы [HidHide](https://github.com/ViGEm/HidHide), или попробовать в беспроводном режиме.
• **Постоянное изменение значков клавиатуры и геймпада**
Можно изменить режим прицеливания на `Mouse-Joystick`, в программе или используйте прицеливание, с помощью левого триггера.
• **Не работают адаптивые триггеры или световая панель в игре**
Добавьте игру в список исключений программы `HidHide` и измените режим DSAdvance на `только мышь` или `Xbox геймпад (только вождение) и прицеливание мышкой`.
• **Не работает вождение, в играх с поддержкой DualSense (без HidHide)**
Сначала запустите DSAdvance, а только потом саму игру, игра может отдать приоритет эмулируемому геймпаду Xbox и вождение будет работать. Также можно включить режим эмуляции `Xbox геймпад (только вождение) и прицеливание мышкой`, чтобы геймпад включался только в режиме вождения.
• **Не работает эмуляция клавиатура, в некоторых играх**
В некоторых играх, например, Max Payne или Crysis 2, к сожалению, это пока не работает.
• **Не работает вибрация на Nintendo Pro контроллере**
Пока не поддерживается, решения ищуться.
## Благодарности
* Sony и Nintendo за самые продвинутые геймпады и инвестирование в инновации, а также за продвижение инноваций в игры.
* [ViGEm](https://github.com/ViGEm) за возможность эмуляции разных геймпадов.
* [HIDAPI library](https://github.com/signal11/hidapi), с [исправлениями](https://github.com/libusb/hidapi), за библиотеку для работы с USB устройства. В проекте используется этот [форк](https://github.com/r57zone/hidapi).
* [JoyShockLibrary](https://github.com/JibbSmart/JoyShockLibrary) за классную библиотеку геймпадов, позволяющую легко получить вращение контроллера. Также используется некоторый код из этой библиотеки и [пример JibbSmart](https://gist.github.com/JibbSmart/8cbaba568c1c2e1193771459aa5385df) для прицеливания.
* DS4Windows[[1]](https://github.com/Jays2Kings/DS4Windows)[[2]](https://github.com/Ryochan7/DS4Windows) за уровень заряда батареи.
* [JoyCon-Driver](https://github.com/fossephate/JoyCon-Driver/blob/857e4e76e26f05d72400ae5d9f2a22cae88f3548/joycon-driver/include/Joycon.hpp) за вибрацию джойконов.
## Сборка
1. Загрузите исходники и распакуйте.
2. [Загрузите Microsoft Visual Studio Code 2017+](https://code.visualstudio.com/download) и [установите](https://github.com/r57zone/RE4ExtendedControl/assets/9499881/69dafce6-fd57-4768-83eb-c1bb69901f07).
3. Измените в свойствах проекта набор инструментов и SDK на ваш.
4. Выберите тип сборки `Release` (если установлен `Debug`) и `x86`, после чего скомплириуйте проект.
## Обратная связь
`r57zone[собака]gmail.com`