{"id":20801342,"url":"https://github.com/r57zone/dsadvance","last_synced_at":"2025-04-07T19:17:08.176Z","repository":{"id":48180368,"uuid":"483358602","full_name":"r57zone/DSAdvance","owner":"r57zone","description":"Advanced Xbox controller emulation for DualSense, DualShock 4, Pro Controller, Joy-Cons / Продвинутая эмуляция Xbox геймпада для DualSense, DualShock 4, Pro контроллера, Джойконов","archived":false,"fork":false,"pushed_at":"2025-03-02T09:38:44.000Z","size":1267,"stargazers_count":94,"open_issues_count":5,"forks_count":2,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-03-31T17:17:33.389Z","etag":null,"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"],"latest_commit_sha":null,"homepage":"https://youtu.be/gkyqO_HuPnk","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/r57zone.png","metadata":{"files":{"readme":"README.RU.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-04-19T18:11:20.000Z","updated_at":"2025-03-30T01:47:04.000Z","dependencies_parsed_at":"2023-02-12T18:31:04.754Z","dependency_job_id":"eff820c0-cd94-4852-8517-e8e7b5fcff77","html_url":"https://github.com/r57zone/DSAdvance","commit_stats":null,"previous_names":[],"tags_count":34,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/r57zone%2FDSAdvance","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/r57zone%2FDSAdvance/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/r57zone%2FDSAdvance/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/r57zone%2FDSAdvance/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/r57zone","download_url":"https://codeload.github.com/r57zone/DSAdvance/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247713258,"owners_count":20983683,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["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"],"created_at":"2024-11-17T18:17:44.625Z","updated_at":"2025-04-07T19:17:08.147Z","avatar_url":"https://github.com/r57zone.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"[![EN](https://user-images.githubusercontent.com/9499881/33184537-7be87e86-d096-11e7-89bb-f3286f752bc6.png)](https://github.com/r57zone/DSAdvance/) \n[![RU](https://user-images.githubusercontent.com/9499881/27683795-5b0fbac6-5cd8-11e7-929c-057833e01fb1.png)](https://github.com/r57zone/DSAdvance/blob/master/README.RU.md)\n\n# DSAdvance\nПродвинутая эмуляция Xbox геймпада для Sony DualSense, DualShock 4, Nintendo Pro контроллера или Джойконов. Поддерживается прицеливание и вождение наклонами геймпада, эмуляция стиков на тачпаде, эмуляция клавиатуры и мыши, а также [внешние педали](https://github.com/r57zone/XboxExternalPedals). Работает на базе драйвера [ViGEm](https://github.com/nefarius/ViGEmBus).\n\n[![](https://user-images.githubusercontent.com/9499881/164945071-5b9f86dd-c396-45a5-817b-fc7068450f02.gif)](https://youtu.be/gkyqO_HuPnk)\n[![](https://user-images.githubusercontent.com/9499881/164945073-cfa1bfb7-cb82-4714-b2ad-7ecd84a5bcfc.gif)](https://youtu.be/gkyqO_HuPnk)\n\n# Особенности\n✔️ Поддержка вождения наклонами и прицеливания (гироскоп, без каких-либо настроек);\u003cbr\u003e\n✔️ Простое переключение между режимами вождения и прицеливания (максимум инновационного геймплея);\u003cbr\u003e\n✔️ Управление Windows, изменение громкости, создание скриншотов, с помощью геймпада;\u003cbr\u003e\n✔️ Показ заряда батареи на световой панели и индикаторах игрока (для геймпадов Sony);\u003cbr\u003e\n✔️ Различные режимы эмуляции для игр с адаптивными курками;\u003cbr\u003e\n✔️ Выключение подсветки для полного погружения в темноте;\u003cbr\u003e\n✔️ Поддержка внешних модифицированных педалей для гонок;\u003cbr\u003e\n\nПоддерживается несколько режимов работы, переключение нажатиями по тачпада DualSene и DualShock 4 или кнопками `Capture`, и `Home` для Pro контроллера, и Джойконов (повторное нажатие `Home` переключает режим прицеливания - всегда/L2).\n\n![](https://github.com/user-attachments/assets/ad09be05-6744-444c-9f05-1581adf9a521)\n\nДля включения прицеливания по кнопке `L1` измените параметр `AimingWithL2` на `0`, в конфиге.\n\nДля выхода из режима эмуляции стиков нажмите на режим по умолчанию. \n\nНажимая на профиль по умолчанию, на 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`.\n\nЕсть 3 режима эмуляции:\n* Простая эмуляция Xbox геймпада с расширенными функциями;\n* Эмуляция Xbox геймпада только для режима вождения и прицеливание мышью (для определенных игр с адаптивными триггерами);\n* Только мышь;\n* Эмуляция клавиатуры и мыши для управления Windows и некоторых старых игр;\n\nПереключение режимов происходит на `ALT + Q` или `PS/Home + ←/→` и `PS/HOME`. Эмуляция клавиатуры и мыши поддерживает разные профили, выберите нужный профиль или [создайте новый профиль](https://github.com/r57zone/DSAdvance/blob/master/BINDINGS.RU.md). Профили переключаются на клавиши `ALT + ↑/↓`, если окно активно или на геймпаде, с помощью `PS/Home + ↑/↓`. Профиль по умолчанию позволяет работать в Windows. \n\nДля подключения [внешних педалей (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`.\n\n[![](https://github.com/r57zone/XboxExternalPedals/assets/9499881/f4b55990-d795-4455-918f-a08a59122171)](https://youtu.be/aK1SV_eXJ_4)\n[![](https://user-images.githubusercontent.com/9499881/195859587-65cdaca4-5abd-4594-b079-e388721ae25d.gif)](https://youtu.be/liI_7U_R0as)\n\nДля выключения DualSense или DualShock 4 удерживайте кнопку PS в течении 10-15 секунд, пока контроллер не выключиться.\n\n### Горячие клавиши\nДействие | Кнопки Sony | Кнопки Nintendo | Windows \n------------ | ------------- | ------------- | -------------\nОткрытие игровой панели Xbox (нажатие `Win + G`) | `PS` | `Capture + Home` | -\nУменьшение и увеличение громкости Windows | `PS + □` и `PS + ○` | `Capture + Y` и `Capture + A` | -\nСкриншот (нажатие `Win + ALT + PrtScn`) | Кнопка микрофона или `PS + X` | `Capture + B` | -\nРежим прицеливания: эмуляция мыши или смещение правого стика | `PS + R1` | `Capture + R1` | `ALT + A`\nИзменение чувствительности прицеливания: увеличение и затем уменьшение | `PS + △` | `Capture + X` | -\nСброс чувствительности прицеливания | `PS + RS` | `Capture + RS` | -\nИзменение силы вибрации или её отключение | `PS + Options` | `Capture + Плюс` | `ALT + \u003c/\u003e`\nВыключение и включение нажатия тачпада для переключения режимов (Sony) | `PS + Share` | - | `ALT + W`\nАвтонажатие стика при определённом наклоне стика (значение в конфигурационном файле), а также инвертирование  | `PS + LS` | `HOME + LS` | `ALT + S`\nРежимы скриншота: Игровая панель Xbox, Steam, Игровая панель Xbox + Steam, заданная кнопка в конфиге (параметру `MicCustomKey` задать [нужное значение кнопки](https://github.com/r57zone/DSAdvance/blob/master/BINDINGS.RU.md) | - | - | `ALT + X`\nВыключение подсветки (Sony) | `PS + L1` или 2 раза нажмите на область яркости тапада и проведите пальцем влево или вправо. Если изменение яркости заблокировано `LockChangeBrightness`, то подсветка будет выключаться по двойному клику. | - | `ALT + B`\n\n## Настройка\n1. Установить [ViGEmBus](https://github.com/nefarius/ViGEmBus/releases).\n2. Установить Microsoft Visual C++ Redistributable 2017 или новее.\n3. Подключить геймпад Sony DualSense, DualShock 4, Nintendo Pro контроллер или JoyCon-ы.\n4. Распаковать и запустить DSAdvance.\n5. При необходимости изменить мёртвые зоны стиков, триггеров или другие параметры, в конфигурационном файле `Config.ini`.\n6. При использовании со Steam играми, в настройках контроллера, отключите `персональные настройки Playstation`.\n7. Также рекомендуется установить [HidHide](https://github.com/nefarius/HidHide/releases), после чего в `HidHide Configuration Client` нужно добавить `DSAdvance.exe` и включить параметр `Enable device hiding` (если выключен). Необходимо для того, чтобы игра не видела наш контроллер, а видела только эмулируемый Xbox 360 геймпад.\n8. (Необезательно) Для запуска из области уведомлений (tray), по двойному клику, можно добавить ярлык на `Launcher.exe` в автозагрузку Windows `%AppData%\\Microsoft\\Windows\\Start Menu\\Programs\\Startup`.\n9. (Необезательно) Для запуска сторонних утилит через Launcher укажатие имя и путь до приложения в конфигурационном файле.\n\n## Загрузка\n\u003eВерсия для Windows 10, 11.\n\n**[Загрузить](https://github.com/r57zone/DSAdvance/releases)**\n\n## Возможные проблемы\n• **Игра видит 2 геймпада одновременно (DualSense / DualShock 4 / Nintendo Pro контроллер или JoyCon-ы и Xbox)**\u003cbr\u003e\nЕсли игра поддерживает современный геймпад можно выключить эмуляцию Xbox геймпада на клавиши `ALT + Q` или вовсе скрыть этот геймпад, с помощью программы [HidHide](https://github.com/ViGEm/HidHide), или попробовать в беспроводном режиме.\n\n\n\n• **Постоянное изменение значков клавиатуры и геймпада**\u003cbr\u003e\nМожно изменить режим прицеливания на `Mouse-Joystick`, в программе или используйте прицеливание, с помощью левого триггера.\n\n\n\n• **Не работают адаптивые триггеры или световая панель в игре**\u003cbr\u003e\nДобавьте игру в список исключений программы `HidHide` и измените режим DSAdvance на `только мышь` или `Xbox геймпад (только вождение) и прицеливание мышкой`.\n\n\n\n• **Не работает вождение, в играх с поддержкой DualSense (без HidHide)**\u003cbr\u003e\nСначала запустите DSAdvance, а только потом саму игру, игра может отдать приоритет эмулируемому геймпаду Xbox и вождение будет работать. Также можно включить режим эмуляции `Xbox геймпад (только вождение) и прицеливание мышкой`, чтобы геймпад включался только в режиме вождения.\n\n\n\n• **Не работает эмуляция клавиатура, в некоторых играх**\u003cbr\u003e\nВ некоторых играх, например, Max Payne или Crysis 2, к сожалению, это пока не работает.\n\n\n\n• **Не работает вибрация на Nintendo Pro контроллере**\u003cbr\u003e\nПока не поддерживается, решения ищуться.\n\n## Благодарности\n* Sony и Nintendo за самые продвинутые геймпады и инвестирование в инновации, а также за продвижение инноваций в игры.\n* [ViGEm](https://github.com/ViGEm) за возможность эмуляции разных геймпадов.\n* [HIDAPI library](https://github.com/signal11/hidapi), с [исправлениями](https://github.com/libusb/hidapi), за библиотеку для работы с USB устройства. В проекте используется этот [форк](https://github.com/r57zone/hidapi).\n* [JoyShockLibrary](https://github.com/JibbSmart/JoyShockLibrary) за классную библиотеку геймпадов, позволяющую легко получить вращение контроллера. Также используется некоторый код из этой библиотеки и [пример JibbSmart](https://gist.github.com/JibbSmart/8cbaba568c1c2e1193771459aa5385df) для прицеливания.\n* DS4Windows[[1]](https://github.com/Jays2Kings/DS4Windows)[[2]](https://github.com/Ryochan7/DS4Windows) за уровень заряда батареи.\n* [JoyCon-Driver](https://github.com/fossephate/JoyCon-Driver/blob/857e4e76e26f05d72400ae5d9f2a22cae88f3548/joycon-driver/include/Joycon.hpp) за вибрацию джойконов.\n\n## Сборка\n1. Загрузите исходники и распакуйте.\n2. [Загрузите Microsoft Visual Studio Code 2017+](https://code.visualstudio.com/download) и [установите](https://github.com/r57zone/RE4ExtendedControl/assets/9499881/69dafce6-fd57-4768-83eb-c1bb69901f07).\n3. Измените в свойствах проекта набор инструментов и SDK на ваш.\n4. Выберите тип сборки `Release` (если установлен `Debug`) и `x86`, после чего скомплириуйте проект.\n\n## Обратная связь\n`r57zone[собака]gmail.com`","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fr57zone%2Fdsadvance","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fr57zone%2Fdsadvance","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fr57zone%2Fdsadvance/lists"}