- DS4Windows: рассматриваем возможности приложения
- реклама
- реклама
- реклама
- реклама
- controller 1s latency over 10 ms #1106
- Comments
- ludoff21 commented Feb 11, 2020
- mika-n commented Feb 11, 2020 •
- Problem with high latency «Input Delay» #1089
- Comments
- Veronika133 commented Feb 1, 2020
- Veronika133 commented Feb 1, 2020
- mika-n commented Feb 1, 2020 •
- Veronika133 commented Feb 1, 2020 •
- mika-n commented Feb 1, 2020 •
DS4Windows: рассматриваем возможности приложения
реклама
Все владельцы геймпадов DUALSHOCK 4, использующие эти замечательные контроллеры совместно с персональным компьютером, знакомы с приложением DS4Windows, которое является сильно переработанной версией утилиты ds4tools. Проблема тут в том, что автор DS4Windows (Jays2Kings) давно забросил разработку приложения, но большинство пользователей, не углубляясь в вопрос, вбивают в гугл: «Скачать DS4Windows», попадают на сайт программы и качают устаревшую версию. На самом деле, поддержка и разработка приложения активно продолжается, но уже другим энтузиастом Ryochan7. Им, со времени выхода последней версии DS4Windows от Jays2Kings, сделано немало изменений. Самым значимым является тот факт, что приложение сменило старый враппер ScpVBus на более новый и продвинутый ViGEmBus. К слову, этот же враппер использует, находящаяся в стадии вечного бета теста, утилита SC Controller, предназначенная для полноценной работы Steam Controller в отвязке от Steam. Для версии от Ryochan7, постоянно вносятся улучшения и исправления. В отличие от старой DS4Windows, в новой поддерживается не только проводное и Bluetooth сопряжение, но и подключение через родной беспроводной адаптер от Sony:
Кроме этого в приложении реализована поддержка некоторых сторонних PS4-совместимых геймпадов, например Hori Fighting Commander и Nacon Revolution Unlimited Pro. Возможно есть и другие, но я не нашёл списка совместимости.
Вернёмся к работе с DS4Windows. Первым делом скачиваем архив с актуальной версией программы. Извлекаем папку с приложением в любое место на вашем жёстком диске, желательно не в системную папку, в этом случае вам постоянно придётся запускать утилиту от администратора:
реклама
При первом запуске нам предлагается выбрать место сохранения файлов конфигурации:
Я настоятельно советую выбирать вариант Program Folder. В таком случае все настройки будут храниться в папке с программой, что позволит вам не заниматься настройкой «с нуля», каждый раз, когда вы переустановите Windows или при других форс-мажорных обстоятельствах. Такой себе вариант Portable. Достаточно просто периодически бэкапить папку с программой, целиком.
реклама
В следующем окне выбираем Step 1, для установки ViGEmBus драйвера (если он у вас не был установлен до этого):
Сам драйвер можно скачать и установить заранее:
реклама
Если у вас на ПК всё ещё стоит ОС Windows 7, дополнительно нажмите на кнопку Step 2 и установите XInput драйвер. Для Windows 10 этого делать не нужно, можно сразу нажимать на «Finished»:
Для перестраховки заглянем в диспетчер устройств и убедимся, что ViGEmBus драйвер на месте:
Всё. Приложение установлено, драйвер встал корректно и при первом запуске DS4Windows в системе появляется дополнительный XBox 360 контроллер:
Но! Сам DUALSHOCK 4 никуда не исчез из игровых устройств и остался видимым для системы. Такой «двойной расклад» может привести к проблемам с нормальной инициализацией геймпада в играх. На этот случай в приложении есть чудесный чекбокс, который называется: «Hide DS4 Controller«. При включении этого режима в системе остаётся только эмулируемый контроллер:
Далее по списку во вкладке «Settings» идут чекбоксы:
- Swipe Touchpad to Switch Profiles. Этот флажок включает\отключает возможность переключения свайпом двумя пальцами созданных вами профилей;
- Run as Startup добавляет приложение в автозагрузку;
- Show Notification предлагает выбрать варианты уведомлений в сайдбаре Windows;
- Disconnect from BT when stopping отключает геймпад при выходе из приложения;
- Flash Lightbar at High Latency позволяет выставить задержку в миллисекундах, по достижению которой световая панель геймпада начнёт моргать красным цветом;
- Start Minimized запуск приложения в свёрнутом состоянии;
- Minimize to Taskbar\CloseMinimize сворачивать окно приложение в трей (окно не висит в панели задач);
- Quick Charge эта функция позволяет на лету заряжать геймпад не отрываясь от игрового процесса. Избавляет от эффекта двойного подключения, когда система видит ваш геймпад и по проводу, и по беспроводу;
- White DS4Windows включает белый цвет иконки приложения в трее;
- Check for DS4Windows Update at Startup проверка обновлений при запуске приложения (можно выбрать интервал проверки обновлений);
- UDP Server этот чекбокс нужен для подключения гироскопа в эмулятор CEMU;
- Use language pack выбор языка локализации. Есть и русский, но я привык к дефолтному, английскому, языку приложения;
- Use custom Steam Folder сюда можно прописать путь до основной папки Steam, если он установлена не в дефолтную директорию.
Вкладка «Auto Profiles» позволяет добавлять пути до папок и отдельных игр\приложений к которым будут автоматически применяться созданные вами профили:
На вкладке «Controllers» можно посмотреть статус вашего геймпада и заряд аккумулятора. Помимо этого, можно быстро включить доступный профиль и выбрать цвет подсветки:
И наконец вкладка «Profile». На этой вкладке вы можете: создать, отредактировать, удалить, скопировать, импортировать и экспортировать ваши профили:
Давайте рассмотрим возможности профайлера подробнее. Настроек огромное количество. Я не буду расписывать всё, просто пробегусь по самым значимым возможностям. На вкладке «Other» наибольший интерес представляет меню «Controller», тут можно выбрать, какой контроллер будет эмулироваться в систему: XBox 360 или проводной DUALSHOCK 4 v1. С первым вариантом всё понятно. Зачем нужен второй? Вариант с эмуляцией DUALSHOCK 4 v1 нужен для тех ПК-игр, которые нативно поддерживают DUALSHOCK 4, но только при подключении по проводу и\или только первую ревизию:
Вкладка Gyro позволяет выбрать варианты эмуляции для управления гироскопом и назначить направления осей стиков, на которые вы примените действия сенсора:
Вкладка Lightbar управляет настройкой подсветки. Кроме статического цвета профиля, можно назначить эффект радуги для процесса зарядки, изменение цвета лайтбара в зависимости от уровня заряда и световую сигнализацию для низкого заряда батареи:
Вкладка Axis Config предназначена для тонкой настройки осей:
Для любой кнопки, курка и направления стика можно назначить или записать макрос, например комбинацию кнопок клавиатуры, кликов мыши или управление курсором мыши:
Важно, что прямо «из коробки» с помощью тачпанели геймпада можно управлять курсором мыши. Включение и отключение осуществляется комбинацией PS + тап по тачпанели. По-умолчанию эта функция включена, но можно поставить галку «Start with Slide/Scroll Off» и функция будет включаться только после активации вышеуказанной комбинацией. Прочие настройки подбираются индивидуально. Вот мои:
На вкладке Special Action доступны специальные возможности, их можно назначить на сочетания кнопок геймпада:
Вкладка Controller Reading предназначена для проверки работы элементов управления, а также проверки задержки связи в миллисекундах:
Вроде всё. Вот вам моя уже сконфигурированная версия DS4Windows. В ней создано три профиля:
- Зелёная подсветка — стандартный XBox 360 controller;
- Жёлтая подсветка — проводной DUALSHOCK 4 v1;
- Синяя подсветка — профиль для управления ПК с дивана (геймпад скрыт от системы).
Управление курсором на тачпанели в положении OFF для всех профилей, кроме синего. Для переключения используйте комбинацию PS + тап по тачпанели.
Варианты Special Action видны на этом скриншоте:
Например, комбинацией PS + левый стик вверх\вниз можно управлять системной громкостью, а комбинация PS + L3 отключает системный звук. Комбинация OPTION + PS показывает заряд аккумулятора. Остальное можно удалить, там специфические настройки.
controller 1s latency over 10 ms #1106
Comments
ludoff21 commented Feb 11, 2020
hello, I have a problem with my ps4 controller and my scuf controller, I have these messages that appear every 1 second, can you help me please, the one who solves this problem I send him paypal money /
https://preview.redd.it/r5qqwa6v0ag41.png?width=846&format=png&auto=webp&s=4d6648cc5bd0246c432602b72c5966893393e4f2
thank you for the work you provided
The text was updated successfully, but these errors were encountered:
mika-n commented Feb 11, 2020 •
Please share the complete log file. It would show the version and connection method (usb or bt) you are using. The log file is shown in Logs tab page in DS4Windows or in %APPDATA%\ds4windows\log folder.
Anyway. you are probably using bluetooth connection? The bad news is that not all BT chipsets are compatible with DS4 gamepads (Sony or 3rd party copies). You may be able to workaround these issues by tweaking few options
- «BT Poll Rate» setting in DS4 profile settings (profile editor and Others tab page).
- If «Flush hid» is checked then untick it (this option is usually not needed).
Another way to fix the issue is to make sure WinOS bluetooth drivers are up to the task and in good shape. Try to update those.
Or unpair the BT gamepad and re-pair it.
Here are few links to similar topics where users have solved these weird BT compatibility issues using all or some of the mentioned tweaks.
#1089
#896
Problem with high latency «Input Delay» #1089
Comments
Veronika133 commented Feb 1, 2020
Hi,
Excuse my bad English, my primary language is Czech.
My gamepad is this: Sony PS4 DualShock 4 Sunset Orange V2
OS: Windows 10 (v10.0.17763 Build 17763)
Notebook: Acer Predator Helios 300 (PH317-51-746B)
Gamepad over cable (2 meters long) works well = Input Delay 4 ms
But via bluetooth I have an Input Delay in the range over 600-1000.
(gamepad I have one meter from the notebook)
I tried different OS and DS4Windows settings but nothing worked for me.
https://i.imgur.com/NUDiJCP.png
https://www.acer.com/ac/en/US/content/support-product/7309?b=1
Bluetooth_Intel_19.50.0.5_W10x64_A.zip
I also installed the bluetooth drivers from the Acer site but it wouldn’t affect anything.
(in fact I do not understand what these drivers are, all bluetooth drivers have the date of the drivers still 2006)
The text was updated successfully, but these errors were encountered:
Veronika133 commented Feb 1, 2020
Here is the log of «DS4WindowsDebug.exe» (Default profile=NORMAL)
log1.txt
I changed my mac address to: 10:10:10:10:10:10
mika-n commented Feb 1, 2020 •
Hmmmm. Gyro calibration seems to work (ie. DS4Windows app writes and reads data from the gamepad). This is good because if a gamepad is a fake chinese copy then usually those fake gamepads fail in this step.
But, later on incoming data packets are not in expected format (crc32 error) and type0=1 (ie. the data packet is in PC-friendly mode and not in native DS4 mode). Almost like the PCFriendlyMode -> DS4 native mode switch command was never received by the gamepad.
Eventually «ERROR. writeOutput failed» error message breaks the neck and DS4Windows app ignore the gamepad because it doesn’t seem to behave like a first class Sony DS4 or compatible BT gamepad.
For testing purposes try tweaking following DS4WindowsDebug.exe.config options:
Debug_SendRumbleLightbarData=false
This option disables «data writing» (ie. DS4Windows app sends data to gamepad) of lightbar and rumble information. By disabling this we can verify if at least the data reading part works. Do you see any button activity after setting the mentioned option as FALSE? How about touchpad and gyro?
Does everything work OK over USB connection? Rumble/Lightbar/Gyro/Touchpad?
And to test BT lag then you can try to tweak Debug_HidDSetNumInputBuffers option if it makes any difference. The default value is 2 (cache buffers). Try using 0 or 3..6 values also.
Close DS4Windows app while modifying these options and re-start the app normally from FileExplorer double-click instead of using RunAsTask/Program automatic startup option.
Veronika133 commented Feb 1, 2020 •
Only a combination of both of these options to «false» results in bluetooth delay 1ms
«Debug_GyroCalibration» value=»false»
«Debug_SendRumbleLightbarData» value=»false»
interestingly, I set
«Debug_GyroCalibration» value=»false» and the gyroscope works.
when I added the second combination «Debug_SendRumbleLightbarData» value=»false» the gyroscope stopped working.
I tried the combination:
«Debug_GyroCalibration» value=»false»
«Debug_ReadGyroData» value=»false»
the gyroscope did not work but the delay was still 300ms+
the same thing when I set only: «Debug_SendRumbleLightbarData» value=»false» > 300ms+
can I copy the settings like this: DS4WindowsDebug.exe.config > DS4Windows.exe.config
and use DS4Windows.exe normally?
PS: via cable everything works with delay 4ms
mika-n commented Feb 1, 2020 •
No, you cannot copy these debug tweak options to the vanilla version. It doesn’t support those (at least in current vanilla version).
Only a combination of both of these options to «false» results in bluetooth delay 1ms
interestingly, I set «Debug_GyroCalibration» value=»false» and the gyroscope works.
Yes. Even when gyro calibration is FALSE then gyro may work, but calibration could be a bit off (well, there are numerous DS4 compatible gamepads which support gyro but doesn’t do/need/support calibration like genuine DS4 gamepad needs in BT).
when I added the second combination «Debug_SendRumbleLightbarData» value=»false» the gyroscope stopped working
Okey. This is important piece of information. It means that the gamepad stays in «PC-friendly mode» in BT (a bit like xbox360 compatible interface in WinOS) and the gamepad didn’t make an internal DS4 native mode switching.
This is understandable because PCFriendly->DS4 native switch is made when DS4Windows app either sends the gyro calibration data OR sends out lightbar/rumble data. Now when both calibration and SendLightbarRumble are false then the gamepad stays in PC-friendly mode.
But, the interesting part is that when GyroCalibration=FALSE and SendRumbleLightbar=TRUE then the ds4 mode switch is received by the gamepad even when it complains about crc32 and write data failure.
Please send a complete log file from the case where you have GyroCalibration=FALSE and SendRumbleLightbarData=TRUE.
So, gyro works with these two options (GyroCalib=FALSE, SendData=TRUE). How about touchpad? You can easily test it by mapping touchpad as a mouse in DS4Windows. And what happens when you press «test rumble» buttons in DS4Windows? Any write data failure errors in logfile?
GyroCalibration does make an additional tweak. It sends the calibration data AND sets the BT update frequency of ds4 gamepad. This frequency value is taken from DS4Windows profile option «BT Poll rate». What happens when you try different poll rate options? Significant changes in lag? Anyway, when GyroCalibratio=FALSE then this frequence rate value is not modified and the gamepad stays in some default rate.