DSAdvance

Продвинутая эмуляция Xbox геймпада для Sony DualSense, DualSense Edge, DualShock 4, Nintendo Pro контроллера или Джойконов. Поддерживается прицеливание и вождение наклонами геймпада, эмуляция стиков на тачпаде, эмуляция клавиатуры и мыши, а также внешние педали, с дополнительными кнопками и другие джойстики Digispark. Работает на базе драйвера ViGEm.

Особенности

✔️ Поддержка вождения наклонами и прицеливания (гироскоп, без каких-либо настроек);
✔️ Простое переключение между режимами вождения и прицеливания (максимум инновационного геймплея);
✔️ Управление Windows, изменение громкости, создание скриншотов, видео, с помощью геймпада;
✔️ Переназначение кнопок Xbox контроллера, различные профили. Поддерживается "колесо жестов", наклонами геймпада, +8 доп. кнопок;
✔️ Эмуляция клавиатуру и мыши для старых игр, а также профили. Поддерживается "колесо жестов", наклонами геймпада +8 доп. кнопок;
✔️ Поддержка адаптивных триггеров для Sony DualSense (пистолет, автомат, винтовка, лук, педаль авто);
✔️ Различные режимы эмуляции для игр с адаптивными триггерами;
✔️ Поддержка двух геймпадов, первый с полным функционалом, а второй с упрощённым (необходимо включить в конфиге);
✔️ Поддержка игры на одном Джойконе, с полноценной эмуляцией всех кнопок, с помощью "колеса жестов" (наклоны геймпада);
✔️ Показ заряда батареи на световой панели и индикаторах игрока (для геймпадов Sony);
✔️ Выключение подсветки для полного погружения в темноте;
✔️ Поддержка внешних модифицированных педалей для гонок с любыми 16 кнопками;
✔️ Поддержка эмуляции нажатий любых кнопок Xbox-контроллера, с помощью Digispark джойстиков (до 16 кнопок);
✔️ Поддерживается режим для левшей, в котором кнопки отзеркалены справо налево, переключите профиль Xbox на Left-Handed;

Поддерживается несколько режимов работы, переключаются они нажатими по тачпаду на DualSene и DualShock 4, кнопками Capture, и Home для Pro контроллера, и Джойконов (повторное нажатие Home переключает режим прицеливания - всегда/L2), а также нажатием тачпада для геймпадов совместимых с DualShock 4, но без сенсороной панели (если изменить параметр ChangeModesWithoutAreas на 1). Также можно изменять режимы работы на ALT + 1/2, повторное нажатие на ALT + 1 выключает вождение, а ALT + 2 переключает режим прицеливания (всегда/L2).

Изменить цвет геймпада по умолчанию и цвета областей можно в конфигурационном файле.

Для включения прицеливания по кнопке L1 или любой другой кнопке измените параметр AimingButton на нужную кнопку, например, на L1, в конфиге.

По умолчанию внизу по центру находится область управления компьютером. Чтобы включить тач-стики, измените параметр TouchSticksOn на 1 — вместо управления рабочим столом появится область тач-стиков. Для выхода из режима эмуляции стиков нажмите на кнопку режима по умолчанию.

Нажимая на профиль по умолчанию, на 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.

Дважды нажмите на область яркости, затем проведите по ней влево или вправо, чтобы изменить яркость подсветки. Повторное двойное нажатие заблокирует случайные изменения.

Есть 5 режимов эмуляции:

Переключение режимов эмуляции происходит на ALT + Q, ALT + ←/→ или PS/Home + ←/→. Режим игровой эмуляции клавиатуры и мыши переключается клавишами клавиатуры только при активном окне, чтобы предотвратить случайные переключения. Эмуляция клавиатуры и мыши поддерживает разные профили, выберите нужный профиль или создайте новый профиль. Профиль по умолчанию позволяет работать в Windows. Также имеются Xbox профили, для изменения раскладки кнопок. Подробнее о создании профилей Xbox тут. Профили переключаются на клавиши ALT + ↑/↓, если окно активно или на геймпаде, с помощью PS/Home + ↑/↓.

Поддерживается "колесо жестов", которое позволяет назначить до 9 кнопок на одну. Эмуляция происходит путем нажатия специальной кнопки WHEEL-ACTIVATION и наклоном в одну из 4 или 8 областей (если задано 4 кнопки, то 4 направления, если 8, то 8 направлений). Параметры "колеса жестов" можно найти в разделе MOTION, в файлах профилей клавиатуры и мыши или Xbox. Мертвую зону можно изменить в параметре MotionWheelButtonsDeadZone.

Поддержаются адаптивные триггеры для Sony DualSense, переключаться между различными режимами можно на ALT + 3/4.

Поддерживаются дополнительные кнопки Sony DualSense Edge (L4, R4) и Джойконов (SL, SR), изменить их можно в профиле Xbox XboxProfiles\Default.ini, подробнее тут.

Поддерживается игра на одном Джойконе, с эмуляцией всех кнопок, с помощью "колеса жестов", наклонами геймпада. Для правильной, усредненной вибрации на одном Джойконе необходимо изменить параметр JoyconRumbleMerge на 1, в конфиге. Также переключите Xbox профиль на Joycon Left/Right Only. Для использования возможности переключения режимов вождения и прицеливания на одну кнопку измените параметр JoyconChangeModesWithButton на HOME или CAPTURE. При создании Xbox профилей можно поменять стики и триггеры местами, изменив параметры SWAP-STICKS и SWAP-TRIGGERS на 1.

Для подключения внешних педалей (DInput) и устройств на базе Digispark джойстиков, измените параметр DInput на 1, в разделе ExternalPedals. Для подключения внешних педалей на Arduino измените номер COM-порта, изменив параметр COMPort.

Есть 2 режима:

  1. "Всегда педали" - оси педалей всегда привязаны к триггерам контроллера.
  2. "Зависимый (вождение/прицеливание)" - в режиме вождения оси педалей привязаны к триггерам, в режиме прицеливания можно привязать на оси нажатие кнопок. Степень силы определяется параметром PedalValuePress. Переключить режимы можно, с помощью клавиш ALT + E. Задать режим по умолчанию можно изменив параметр DefaultMode.

Также можно задать у педалей или других устройств может быть до 16 кнопок, на которые можно задать любые кнопки Xbox геймпада, изменив параметр Button1..16.

Для выключения DualSense или DualShock 4 удерживайте кнопку PS, для выключения Nintendo контроллеров удерживайте кнопку Capture или Home, в течении 10-15 секунд, пока контроллеры не выключиться.

Горячие клавиши

Действие Кнопки Sony Кнопки Nintendo Windows
Сброс/поиска контроллеров - - CTRL + R или Numpad 0 (по умолчанию, можно изменить)
Обменять первый и второй контроллер местами - - ALT + V
Переключение режимов эмуляции (геймпад, клавиатура и мышь и т.д.) PS + ←/→ Home + ←/→ ALT + Q, ALT + ←/→
Переключение профилей Xbox / Клавиатура и мышь PS+ ↑/↓ Home + ↑/↓ ALT + ↑/↓
Открытие игровой панели Xbox (нажатие Win + G) PS Capture + Home -
Уменьшение и увеличение громкости Windows PS + □ и PS + ○ Capture + Y и Capture + A -
Скриншот (нажатие Win + ALT + PrtScn) Кнопка микрофона или PS + X Capture + B -
Запись видео (нажатие Win + ALT + R) Удерживайте кнопку микрофона или PS + X Удерживайте Capture + B -
Режим прицеливания: эмуляция мыши или смещение правого стика PS + R1 Capture + R1 ALT + A
Режим работы (вождение или прицелинваие) Области тачпад или нажатие тачпада (для контроллеров без тач панели, необходимо включить в конфиге) Capture/Home (повторно Capture - сброс, повторно Home переключение прицеливания - всегда/L2) ALT + 1, ALT + 2 (повторно ALT + 1 - сброс, повторно ALT + 2 переключение прицеливания - всегда/L2)
Включение/выключение вождения и прицеливания - - ALT + 5/6 (значение по умолчанию в конфигурационном файле)
Изменение чувствительности прицеливания: увеличение и затем уменьшение 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 задать нужное значение кнопки - - ALT + X
Выключение подсветки (Sony) PS + L1 или 2 раза нажмите на область яркости тапада и проведите пальцем влево или вправо. Если изменение яркости заблокировано LockChangeBrightness, то подсветка будет выключаться по двойному клику. - ALT + B

Настройка

  1. Изучите документацию, чтобы быть в курсе всех фишек и особенностей.
  2. Установите ViGEmBus.
  3. Установите Microsoft Visual C++ Redistributable 2017 или новее.
  4. Подключите геймпад Sony DualSense, DualShock 4, Nintendo Pro контроллер или JoyCon-ы.
  5. Распакуйте и запустите DSAdvance.
  6. При необходимости измените мёртвые зоны стиков, триггеров или другие параметры, в конфигурационном файле Config.ini.
  7. (Необязательно) Для включения работы двух геймпадов измените параметр Enabled на 1, в разделе SecondaryGamepad. Также можете изменить мёртвые зоны стиков, триггеров и цвет.
  8. При использовании со Steam играми, в настройках контроллера, отключите персональные настройки Playstation.
  9. Также рекомендуется скрыть контроллер для современных игр, чтобы игры видели только эмулируемый, продвинутый Xbox 360 контроллер. Для этого необходимо установить HidHide, после чего в HidHide Configuration Client, в разделе Applications нужно добавить DSAdvance.exe, а в разделе Devices отметить галочкой ваш контроллер (например, Sony Wireless контроллер) и включить параметр Enable device hiding (если выключен). Можно также посмотреть эту инструкцию, где показано куда нажимать. Через Launcher можно проделать все тоже самое, кроме добавления геймпада в список для скрытия.
  10. (Необязательно) Для запуска из области уведомлений (tray), по двойному клику, можно добавить ярлык на Launcher.exe в автозагрузку Windows %AppData%\Microsoft\Windows\Start Menu\Programs\Startup.
  11. (Необязательно) Для запуска сторонних утилит через Launcher укажатие имя и путь до приложения в конфигурационном файле.

Загрузка

Поддерживается Windows 10, 11.

Загрузить

Возможные проблемы

Игра видит 2 геймпада одновременно (DualSense / DualShock 4 / Nintendo Pro контроллер или JoyCon-ы и Xbox)
Если игра поддерживает современный геймпад можно выключить эмуляцию Xbox геймпада на клавиши ALT + Q или вовсе скрыть этот геймпад, с помощью программы HidHide, или попробовать в беспроводном режиме.

Постоянное изменение значков клавиатуры и геймпада
Можно изменить режим прицеливания на Mouse-Joystick, в программе или используйте прицеливание, с помощью левого триггера.

Не работают адаптивые триггеры или световая панель в игре
Добавьте игру в список исключений программы HidHide и измените режим DSAdvance на только мышь или Xbox геймпад (только вождение) и прицеливание мышкой.

Не работает вождение, в играх с поддержкой DualSense (без HidHide)
Сначала запустите DSAdvance, а только потом саму игру, игра может отдать приоритет эмулируемому геймпаду Xbox и вождение будет работать. Также можно включить режим эмуляции Xbox геймпад (только вождение) и прицеливание мышкой, чтобы геймпад включался только в режиме вождения.

Nintendo Pro контроллер или Джойконы постоянно вибрируют после старта программы
К сожалению, на некоторых геймпадах вибрация может работать некоректно, выключите геймпад и отключите вибрацию в конфигурационном файле, изменив параметр RumbleStrength на 0.

Nintendo контроллеры не вибрируют в проводном режиме
К сожалению, это не реализовано.

Благодарности

Сборка

  1. Загрузите исходники и распакуйте.
  2. Загрузите Microsoft Visual Studio Code 2017+ и установите.
  3. Измените в свойствах проекта набор инструментов и SDK на ваш.
  4. Выберите тип сборки Release (если установлен Debug) и x86, после чего скомплириуйте проект.

Обратная связь

r57zone[собака]gmail.com