Здесь будут описаны некоторые хитрости и общие советы по настройке Wine/DualSense для Linux, а также таблица совместимости со всей информацией, которую мне удалось собрать. Список будет со временем пополняться и изменяться в зависимости от того, удастся ли исправить те или иные проблемы, связанные с геймпадом от Sony.
Таблица совместимости игр
https://docs.google.com/spreadsheets/d/1YvnaCKplTCEyWBWw-ypcDK1N_saDmuygA3RWhpcO8Ak/edit#gid=0
Если вашей игры нет в списке, это не значит, что она не работает, автор чисто физически не может протестировать абсолютно все игры на планете. Если у вас есть положительные тесты, вы можете отправить сообщение мне с вашими настройками запуска.
Исправления работоспособности DualSense
Общие исправления для DualSense
Ниже приведены команды для исправления работы DualSense в играх:
Способ первый (универсальный)
Открываем файл:
sudo nano /etc/udev/rules.d/80-dualsense.rules
и вставляем строчку ниже
SUBSYSTEM=="sound", ACTION=="change", ATTRS{idVendor}=="054c", ATTRS{idProduct}=="0ce6", ENV{SOUND_DESCRIPTION}="Wireless Controller"
И перезагружаем правила командой:
sudo udevadm control --reload-rules
Способ второй (только для пользователей с системой звука pipewire)
Открываем файл:
nano ~/.config/wireplumber/main.lua.d/80-dualsense.lua
и вставляем в него конфиг
rule = {
matches = {
{
{ "node.name", "matches", "*DualSense_Wireless_Controller*" },
},
},
apply_properties = {
["node.description"] = "Wireless Controller",
},
}
table.insert(alsa_monitor.rules,rule)
Перезагружаем pipewire командой:
systemctl --user restart pipewire wireplumber
Важно!
Первый фикс применяется глобально ко всем играм с пропатченным WINE или PROTON версии 8.X и выше
Второй фикс применяется только для пользователей с системой звука pipewire вместо pulseaudio. Применение данного фикса не требует первого, при этом оба фикса не конфликтуют между собой
Примечание: для распознавания DualSense игрой необходимо включить параметр “DINPUT PROTOCOL” в настройках PP. PROTON_LG или WINE_LG должны быть версии 8.X и выше. Рекомендуются версии 9.X и выше.
![image](https://linux-gaming.ru/uploads/default/original/1X/89cf46dcc288ceb10561a7b802ca584ef8ac4e58.png)
Для работы всех функций DualSense должен быть подключен по проводному соединению USB Type-C! (желательно в гнездо USB 3.1 и выше)
Также для работы Haptic Feedback (Тактильной отдачи) необходимо включить звук DualSense Wireless Controller в настройках звука, например в KDE (громкость больше 0)
![image](https://linux-gaming.ru/uploads/default/original/1X/45a1a8cc2198487f141301bc9da8802a860013cd.png)
Исправление Haptic Feedback
На примере игры Alan Wake 2.
- Открываем окно запуска нашей игры. В данном примере “AlanWake2.exe”
и выбираем из списка WINE и меняем на “PROTON_LG-9-5-1” (или выше). В PREFIX стираем DEFAULT и пишем свой префикс, например “AW2” (без кавычек).
- Переходим в НАСТРОЙКИ и активируем опцию DINPUT PROTOCOL (важно!). Ползунок должен быть в правом положении.
- Сохраняем изменения и запускаем игру.
Дополнительная проверка работы Haptic Feedback: открываем программу pavucontrol или в моем случае Helvum. Если присутствуют две колонки со звуком и одна из них проецирует звук на DualSense Wireless Controller (PS5), то все сделано правильно (колонки может и не быть, так как в этот момент вы могли переключиться на клавиатуру + мышь. Следует протестировать вибрацию непосредственно в игре).
![image](https://linux-gaming.ru/uploads/default/original/1X/c11e21808d0c12a13793dfde62e93a9c2106c237.png)
Отдельные исправления для игр
Animal Well
Добавьте “грязный” хак для второй колонки. Подробнее описано в статье под спойлером “Грязный” хак для использования Haptic Feedback… ниже.
![image](https://linux-gaming.ru/uploads/default/original/1X/126d1b9bb1f8988e3334cfe774200fa22075b923.png)
GhostWire: Tokyo
В последнем обновлении иконки кнопок геймпада отображаются от геймпада Xbox, но DualSense игрой распознается и все функции работают корректно:
![image](https://linux-gaming.ru/uploads/default/original/1X/70622fb3ea1ecb48fdcff63c2f7ebf41371c16c7.png)
Scars Above
Та же самая проблема, что и в GhostWire: Tokyo: все функции DualSense работают, но вместо привычных кнопок показываются иконки от геймпада Xbox (что не мешает играть).
Грязный хак для использования Haptic Feedback (Тактильной отдачи/HD вибрации) везде
Для работоспособности хака необходима программа, которая реализует “patchbay” механику, например pavucontrol или в моем случае Helvum.
Открываем pavucontrol/Helvum и любую программу/бразуер/игру, где есть звук.
Теперь в левой стороне видим, что у нас отображаются отдельные колонки со звуком (устройств может быть больше или меньше в зависимости от установок системы).
![image](https://linux-gaming.ru/uploads/default/original/1X/92322df6b9b72ab50500d5dba211523723202f24.png)
У меня включена игра Apex Legends, на ней и протестируем. Как видно на скриншоте, весь звук сейчас передается на мои наушники. Но что, если звук будет передаваться одновременно и наушникам, и геймпаду? Добавим Output_FL и output_FR в playback_RL и playback_RR соответственно. Тянем Output_FL в playback_RL с помощью мыши и точно так же с Output_FR в playback_RR. Наглядный пример:
![image](https://linux-gaming.ru/uploads/default/original/1X/89f091138b5f6ee5c14c53a1445ab769bf53f2cd.png)
Если в игре играет музыка, ее вибрация передается непосредственно в DualSense благодаря технологии Haptic Feedback, основанной на звуке.
Вот так легко мы можем внедрить свою поддержку Haptic Feedback, даже если это не задумано изначально разработчиком. =)
Программы/Софт
Программа dualsensectl для настройки геймпада DualSense
Доступна программа со всякими настройками для геймпада DualSense под названием dualsensectl
Ссылка: https://github.com/nowrep/dualsensectl
Вкратце можно изменять подсветку, делать собственные адаптивные триггеры, узнать примерный процент зарядки, включать/выключать микрофон и динамик, проверять моторчики тактильной вибрации и отдачи триггеров и т.д.
Удобная программа с графическим интерфейсом для настройки своих адаптивных триггеров и не только
Ссылка: https://github.com/Etaash-mathamsetty/trigger-control
Источники
https://www.pcgamingwiki.com/wiki/
https://github.com/ValveSoftware/Proton/issues/5900/
https://github.com/ClearlyClaire/wine
https://github.com/ClearlyClaire/wine/commits/proton-wine-9.0-1%2Bdualsense/
https://github.com/nowrep/dualsensectl
https://github.com/Etaash-mathamsetty/trigger-control