22.04 Контроллер Xbox для вина имеет ошибку, как исправить?

Вопрос или проблема

  1. Прежде всего, я установил wine, следуя шагам с этого сайта, не устанавливая winehq из-за этого, а также установив больше, прописав следующие команды:

     $ sudo apt-get install wine32
    
     $ sudo apt-get install winetricks
    
     $ winetricks dotnet45
    
     $ export WINEPREFIX="$HOME/.wine"
    
     $ wineboot
    
  2. Я ввел команду wine64 uninstaller для добавления пакетов:

  1. Я следовал шагам по установке xboxdrv с этого сайта, чтобы работать с моим джойстиком xbox 360.

  2. Я установил open-joystick-display-2.8.0-x64-linux.deb, чтобы проверить ввод данных моего джойстика xbox360:

Gamepad_Ubuntu

  1. Я установил open-joystick-display-2.8.0-x64-windows.exe через wine, чтобы проверить ввод данных моего джойстика xbox360:

Gamepad_wine

  1. Я ввел команды, чтобы проверить разницу между контроллерами Ubuntu (левая сторона) и wine (правая сторона):

     $ jstest.gtk
    
     $ wine control joy.cpl
    
  • Я проверил, что контроллер Ubuntu работает исправно, а у контроллера wine есть ошибка, например, как на картинке выше, вместо четырех осей — четыре кнопки, и кроме того, ось Rz вообще не работает.

Gampepad_Ubuntu-wine

Может кто-нибудь сказать, как это исправить?

  • Я выяснил, что проблема в Редакторе реестра 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, чтобы контроллер работал)

enter image description here

Наконец, следуя шагам с этого сайта; В Редакторе реестра, перейдите к ключу HKEY_CURRENT_MACHINE -> System -> CurrentControlSet -> Services -> winebus, щелкните правой кнопкой мыши в правом окне и выберите New -> Key и установите имя Map, нажмите на ключ Map в левом окне, а затем щелкните правой кнопкой мыши в правом окне и выберите New -> String Value, установите ТО ЖЕ имя контроллера джойстика в wine и установите значение Mapping String (Здесь есть объяснение внизу, как его получить) и закройте Редактор реестра, это все. Чтобы протестировать контроллер джойстика в wine, введите в Терминале:

$ wine control joy.cpl

enter image description here

Я установил приложение под названием 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

enter image description here

Установка AntiMicroX осуществляется, вводя в Терминале:

$ sudo add-apt-repository ppa:ryochan7/antimicro

$ sudo apt-get update

$ sudo apt-get install antimicro

Больше информации о том, как использовать AntiMicroX, на этом сайте.

enter image description here

.

Ответ или решение

Если у вас возникли проблемы с Xbox-контроллером в Wine на Ubuntu 22.04, чтобы исправить это, выполните следующие шаги:

1. Удаление ненужных драйверов

Сначала необходимо удалить драйверы, которые могли вызвать конфликт. Вы установили драйвер «DirectInput Force Feedback Driver for XInput – Masahiko Morii». Чтобы его удалить, выполните команду:

wine64 uninstaller

Зайдите в установщик Wine и удалите перечисленные драйверы.

2. Настройка реестра Wine

Проблема может быть связана с неправильной конфигурацией контроллера в реестре Wine. Чтобы это исправить:

  1. Откройте редактор реестра Wine, введя в терминале:

    wine regedit
  2. Перейдите в путь: HKEY_CURRENT_USER -> Software -> Wine -> DirectInput.

  3. Щелкните правой кнопкой мыши в правой части окна и выберите New -> String Value. Установите имя, совпадающее с именем контроллера в Wine, показанным на картинке, например, Xbox Gamepad (userspace driver) (event).

  4. Установите значение строк, обозначив оси стиков следующим образом: X,Y,Rx,Ry,Z,Rz,POV1. Это значение учитывает все стики и добавляет номер «1» к POV, чтобы активировать контроллер.

3. Дополнительная конфигурация Wine

Теперь необходимо настроить сервис winebus:

  1. Откройте редактор реестра Wine и перейдите в: HKEY_CURRENT_MACHINE -> System -> CurrentControlSet -> Services -> winebus.

  2. Щелкните правой кнопкой и создайте ключ Map.

  3. Выберите новый ключ 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.

Оцените материал
Добавить комментарий

Капча загружается...