Вопрос или проблема
-
Прежде всего, я установил
wine
, следуя шагам с этого сайта, не устанавливаяwinehq
из-за этого, а также установив больше, прописав следующие команды:$ sudo apt-get install wine32 $ sudo apt-get install winetricks $ winetricks dotnet45 $ export WINEPREFIX="$HOME/.wine" $ wineboot
-
Я ввел команду
wine64 uninstaller
для добавления пакетов:
- wine-mono-7.4.0.msi
- wine-gecko-2.47.2-x86.msi и wine-gecko-2.47.2-x86_64.msi
- .NET-Desktop-Runtime-6.0.10-x86 и .NET-Desktop-Runtime-6.0.10-x64
- xi.win7.x86.en.msi (Оригинальный драйвер моего джойстика xbox360)
- xi.win7.x64.en.msi (Не смог установить, поэтому выбрал вариант восстановления)
-
Я следовал шагам по установке
xboxdrv
с этого сайта, чтобы работать с моим джойстиком xbox 360. -
Я установил open-joystick-display-2.8.0-x64-linux.deb, чтобы проверить ввод данных моего джойстика xbox360:
- Я установил open-joystick-display-2.8.0-x64-windows.exe через wine, чтобы проверить ввод данных моего джойстика xbox360:
-
Я ввел команды, чтобы проверить разницу между контроллерами Ubuntu (левая сторона) и wine (правая сторона):
$ jstest.gtk $ wine control joy.cpl
- Я проверил, что контроллер Ubuntu работает исправно, а у контроллера wine есть ошибка, например, как на картинке выше, вместо четырех осей — четыре кнопки, и кроме того, ось Rz вообще не работает.
Может кто-нибудь сказать, как это исправить?
- Я выяснил, что проблема в
Редакторе реестра
wine, и не нужно устанавливать никакие драйверы, поэтому я удалилDirectInput Force Feedback Driver for XInput - Masahiko Morii
, который относится кxi.win7.x86.en.msi
иxi.win7.x64.en.msi
(которые я установил ранее), просто набрав в Терминале:wine64 uninstaller
Я решил проблему, следуя шагам с этого сайта; Сначала перейдите в Редактор реестра
wine, просто набрав в терминале:
$ wine regedit
Затем перейдите к ключу HKEY_CURRENT_USER -> Software -> Wine -> DirectInput
и щелкните правой кнопкой мыши в правом окне и выберите New -> String Value
, установите ТО ЖЕ имя контроллера джойстика в wine, как показано на картинке выше, в моем случае это Xbox Gamepad (userspace driver) (event)
и установите то же значение всех стиков, как показано на той же картинке в строке:
- Первый стик:
X,Y
- Второй стик:
Rx,Ry
- Третий стик:
Z,Rz
- Четвертый стик:
POV
Таким образом, значение без пробела, которое нужно установить в строке, будет: X,Y,Rx,Ry,Z,Rz,POV1
(Я добавил цифру 1
после POV
, чтобы контроллер работал)
Наконец, следуя шагам с этого сайта; В Редакторе реестра
, перейдите к ключу HKEY_CURRENT_MACHINE -> System -> CurrentControlSet -> Services -> winebus
, щелкните правой кнопкой мыши в правом окне и выберите New -> Key
и установите имя Map
, нажмите на ключ Map
в левом окне, а затем щелкните правой кнопкой мыши в правом окне и выберите New -> String Value
, установите ТО ЖЕ имя контроллера джойстика в wine и установите значение Mapping String
(Здесь есть объяснение внизу, как его получить) и закройте Редактор реестра
, это все. Чтобы протестировать контроллер джойстика в wine, введите в Терминале:
$ wine control joy.cpl
Я установил приложение под названием SDL2 Gamepad Tool
, которое я скачал для Linux с этого сайта; Откройте приложение и нажмите [Create A New Mapping]
с тем же именем контроллера джойстика в wine, не Ubuntu (я по ошибке ввел другое имя xbox360
, но это не было проблемой) и затем нажмите [Copy Mapping String]
, вот значение, которое я получил:
0000000058626f782047616d65706100,xbox360,a:b0,b:b1,x:b2,y:b3,back:b6,guide:b8,start:b7,leftstick:b9,rightstick:b10,leftshoulder:b4,rightshoulder:b5,dpup:h0.1,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,leftx:a0,lefty:a1,rightx:a2,righty:a3,lefttrigger:a5,righttrigger:a4,platform:Linux,
Я изменил имя xbox360
в этом значении на Xbox Gamepad (userspace driver) (event)
, чтобы исправить свою ошибку.
Альтернативой SDL2 Gamepad Tool
является AntiMicroX
, он также генерирует значение Mapping String
, но с небольшим отличием в значении Gamepad GUID
всего на две цифры в конце:
-
0000000058626f782047616d65706100
от SDL2 Gamepad Tool -
0000000058626f782047616d6570610000
от AntiMicroX
Установка AntiMicroX
осуществляется, вводя в Терминале:
$ sudo add-apt-repository ppa:ryochan7/antimicro
$ sudo apt-get update
$ sudo apt-get install antimicro
Больше информации о том, как использовать AntiMicroX, на этом сайте.
.
Ответ или решение
Если у вас возникли проблемы с Xbox-контроллером в Wine на Ubuntu 22.04, чтобы исправить это, выполните следующие шаги:
1. Удаление ненужных драйверов
Сначала необходимо удалить драйверы, которые могли вызвать конфликт. Вы установили драйвер «DirectInput Force Feedback Driver for XInput – Masahiko Morii». Чтобы его удалить, выполните команду:
wine64 uninstaller
Зайдите в установщик Wine и удалите перечисленные драйверы.
2. Настройка реестра Wine
Проблема может быть связана с неправильной конфигурацией контроллера в реестре Wine. Чтобы это исправить:
-
Откройте редактор реестра Wine, введя в терминале:
wine regedit
-
Перейдите в путь:
HKEY_CURRENT_USER -> Software -> Wine -> DirectInput
. -
Щелкните правой кнопкой мыши в правой части окна и выберите
New -> String Value
. Установите имя, совпадающее с именем контроллера в Wine, показанным на картинке, например,Xbox Gamepad (userspace driver) (event)
. -
Установите значение строк, обозначив оси стиков следующим образом:
X,Y,Rx,Ry,Z,Rz,POV1
. Это значение учитывает все стики и добавляет номер «1» кPOV
, чтобы активировать контроллер.
3. Дополнительная конфигурация Wine
Теперь необходимо настроить сервис winebus
:
-
Откройте редактор реестра Wine и перейдите в:
HKEY_CURRENT_MACHINE -> System -> CurrentControlSet -> Services -> winebus
. -
Щелкните правой кнопкой и создайте ключ
Map
. -
Выберите новый ключ
Map
и создайте строковое значение (String Value
) с именем контроллера и установите значениеMapping String
, которое ранее использовали.
4. Генерация строки сопоставления джойстика
Для получения строки сопоставления джойстика используйте «SDL2 Gamepad Tool» или «AntiMicroX»:
-
Установите
SDL2 Gamepad Tool
с этого сайта, создайте новое сопоставление и скопируйте строку сопоставления. -
Установите
AntiMicroX
следующим образом:sudo add-apt-repository ppa:ryochan7/antimicro sudo apt-get update sudo apt-get install antimicro
Это поможет получить строку сопоставления другим методом, если
SDL2 Gamepad Tool
не подойдет.
Заключение
Эти шаги помогут устранить проблему с некорректным отображением осей на контроллере Xbox в Wine. Убедитесь, что все изменения выполнены корректно, проверив работу контроллера с помощью wine control joy.cpl
. Надеюсь, эта инструкция поможет вам наладить работу вашего контроллера в системе Wine на Ubuntu.