Здесь будут описаны некоторые хитрости и общие советы по настройке 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 и выше.
Для работы всех функций DualSense должен быть подключен по проводному соединению USB Type-C! (желательно в гнездо USB 3.1 или Type-C и выше)
При запуске игры из-под Steam, убедитесь, что система ввода Steam отключена!
Также для работы Haptic Feedback (Тактильной отдачи) необходимо включить звук DualSense Wireless Controller в настройках звука, например в KDE (громкость больше 0)
Исправление 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), то все сделано правильно (колонки может и не быть, так как в этот момент вы могли переключиться на клавиатуру + мышь. Следует протестировать вибрацию непосредственно в игре).
Отдельные исправления для игр
Animal Well
В настройках PortProton добавляем в колонку Принудительно использовать/отключить библиотеки
:
xaudio2_8,xaudio2_9=b
Запускаем игру под PROTON_LG_9-7 в новом префиксе, например
ANIMAL_WELL
После сворачиваем игру и запускаем
pavucontrol
(проделываем данный трюк каждый раз при включении игры), указываем для Animal Well: audio stream #2
DualSense wireless controller (PS5)…GhostWire: Tokyo
В последнем обновлении иконки кнопок геймпада отображаются от геймпада Xbox, но DualSense игрой распознается и все функции работают корректно:
Scars Above
Та же самая проблема, что и в GhostWire: Tokyo: все функции DualSense работают, но вместо привычных кнопок показываются иконки от геймпада Xbox (что не мешает играть).
Грязный хак для использования Haptic Feedback (Тактильной отдачи/HD вибрации) везде
Для работоспособности хака необходима программа, которая реализует “patchbay” механику, например pavucontrol или в моем случае Helvum.
Открываем pavucontrol/Helvum и любую программу/бразуер/игру, где есть звук.
Теперь в левой стороне видим, что у нас отображаются отдельные колонки со звуком (устройств может быть больше или меньше в зависимости от установок системы).
У меня включена игра Apex Legends, на ней и протестируем. Как видно на скриншоте, весь звук сейчас передается на мои наушники. Но что, если звук будет передаваться одновременно и наушникам, и геймпаду? Добавим Output_FL и output_FR в playback_RL и playback_RR соответственно. Тянем Output_FL в playback_RL с помощью мыши и точно так же с Output_FR в playback_RR. Наглядный пример:
Если в игре играет музыка, ее вибрация передается непосредственно в 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
Последнее обновление: 12.08.2024.
Причина: добавлено напоминание об отключении системы ввода Steam.