Форум русскоязычного сообщества Ubuntu


Получить помощь и пообщаться с другими пользователями Ubuntu можно
на irc канале #ubuntu-ru в сети Freenode
и в Jabber конференции ubuntu@conference.jabber.ru

Автор Тема: Аналог x360ce в Linux  (Прочитано 8216 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн BrainROM

  • Автор темы
  • Активист
  • *
  • Сообщений: 351
    • Просмотр профиля
Аналог x360ce в Linux
« : 02 Августа 2014, 09:20:07 »
Здравствуйте, решил настроить свой геймпад в Linux, чтобы он имитировал поведение Xbox360Controller, так-как выглядит похоже. В Windows эту задачу решал прокси-драйвер x360ce. Для Linux я нашёл программу xboxdrv, которая должна уметь это делать. Но я не могу ещё настроить. Помогите
CD тихо не DVD меня до истерики и не USB мне мозги


Оффлайн BrainROM

  • Автор темы
  • Активист
  • *
  • Сообщений: 351
    • Просмотр профиля
Re: Аналог x360ce в Linux
« Ответ #2 : 02 Августа 2014, 09:30:56 »
Оттуда я его и нашёл, но не могу правильно забиндить, хотя все делаю по инструкции. При использовании инверта рога крашится с ошибкой float to int
CD тихо не DVD меня до истерики и не USB мне мозги

Оффлайн altwazar

  • Активист
  • *
  • Сообщений: 429
    • Просмотр профиля
Re: Аналог x360ce в Linux
« Ответ #3 : 02 Августа 2014, 11:23:49 »
Есть подводные камни с эмуляцией через xboxdrv.
Крестовина у xboxa обрабатывается как аналоговый стик с двумя осями, а на большинстве джойстиков как нормальные кнопки.
На триггерах у xboxa значения от -Y (клавиша не нажата), до +Y (полностью вдавлена). На большинстве джойстиков от 0 до Y.
При эмуляции через xboxdrv старый джойстик остается в системе и он первый по списку. Некоторые игры будут видеть только его, и после запуска эмуляции нужно спрятать его от этих игр. Так же бывают хитрые клавиатуры с дополнительными функциями, которые тоже в системе выглядят как джойстики. С ними тоже надо проделать аналогичные действия.

Может поможет: https://forum.ubuntu.ru/index.php?topic=236415.0
В этой теме я написал про настройку эмуляции для беспроводного джойстика от ps3. Скрипты там те еще костыли и с проводным геймпадом можно сделать все красивее, но принцип понять можно.

При использовании инверта рога крашится с ошибкой float to int
У меня такого не было. Можешь скинуть конфиг и вывод в консоль при краше?
« Последнее редактирование: 02 Августа 2014, 11:26:06 от altwazar »

Оффлайн BrainROM

  • Автор темы
  • Активист
  • *
  • Сообщений: 351
    • Просмотр профиля
Re: Аналог x360ce в Linux
« Ответ #4 : 04 Августа 2014, 15:26:17 »
Отвечаю. Конфиг я не использую, а назначаю через комманду, как советует Steam-сообщество.
Команда
(Нажмите, чтобы показать/скрыть)

Как правильно настроить стики я не знаю
По поводу ошибки преобразования, то вот она
xboxdrv ставил из пакета (не собирал) версия xboxdrv 0.8.5

xboxdrv: src/helper.cpp:158: float to_float(int, int, int): Assertion `value >= min' failed.

А настроить я хочу его так:
(Нажмите, чтобы показать/скрыть)
« Последнее редактирование: 04 Августа 2014, 15:42:29 от BrainROM »
CD тихо не DVD меня до истерики и не USB мне мозги

Оффлайн altwazar

  • Активист
  • *
  • Сообщений: 429
    • Просмотр профиля
Re: Аналог x360ce в Linux
« Ответ #5 : 04 Августа 2014, 16:49:30 »
Не пробовал запускать командой, но похоже дело в этом:
ABS_THROTTLE-=lt
ABS_Y-=y1
Минусы он там не должен понимать. По идее там должно быть без минусов, но затем в команде еще:
--axismap "-y1=y1,-lt=lt"
В конечном итоге получиться такая команда:
sudo xboxdrv --evdev /dev/input/event18 --evdev-absmap ABS_THROTTLE=lt,ABS_THROTTLE=rt,ABS_X=x1,ABS_Y=y1,ABS_RZ=x2,ABS_Z=y2,ABS_HAT0X=dpad_x,ABS_HAT0Y=dpad_y --evdev-keymap BTN_TRIGGER=a,BTN_THUMB=b,BTN_BASE3=back,BTN_BASE4=start,BTN_TOP2=lb,BTN_PINKIE=rb,BTN_BASE5=tl,BTN_BASE6=tr,BTN_THUMB2=x,BTN_TOP=y --axismap "-y1=y1,-lt=lt" --mimic-xpad --silent &
Это должно инвертировать эти оси. Но по мне вариант с конфигом как у меня по ссылке понятнее и удобнее.

LT=ABS_THROTTLE (мин)
RT=ABS_THROTTLE (макс)
Вот что с этим делать я не знаю. Если простого инвертирования lt не достаточно, то явно придется повозиться с параметром calibration xboxdrv.
« Последнее редактирование: 04 Августа 2014, 17:07:18 от altwazar »

Оффлайн BrainROM

  • Автор темы
  • Активист
  • *
  • Сообщений: 351
    • Просмотр профиля
Re: Аналог x360ce в Linux
« Ответ #6 : 04 Августа 2014, 17:46:58 »
Смог настроить левый стик и нажатия на стики. Ещё скачал гуевый показчик геймпадов ubuntu-xboxdrv . Правильно ли он мне показывает xbox360 gamepad
CD тихо не DVD меня до истерики и не USB мне мозги

Оффлайн altwazar

  • Активист
  • *
  • Сообщений: 429
    • Просмотр профиля
Re: Аналог x360ce в Linux
« Ответ #7 : 04 Августа 2014, 17:59:03 »
Ещё скачал гуевый показчик геймпадов ubuntu-xboxdrv . Правильно ли он мне показывает xbox360 gamepad

На первый взгляд это просто xboxdrv с jstest-gtk и интеграцией с апстартом.
Думаю проще поставить jstest-gtk отдельно, для гуевого показчика геймпадов. Управление из апстарта и конфиги в /etc могут внести путаницу в и так не простой процесс настройки геймпада.

Оффлайн BrainROM

  • Автор темы
  • Активист
  • *
  • Сообщений: 351
    • Просмотр профиля
Re: Аналог x360ce в Linux
« Ответ #8 : 04 Августа 2014, 18:10:07 »
Ради него и ставил. Использую ради показчика.
CD тихо не DVD меня до истерики и не USB мне мозги

Оффлайн BrainROM

  • Автор темы
  • Активист
  • *
  • Сообщений: 351
    • Просмотр профиля
Re: Аналог x360ce в Linux
« Ответ #9 : 06 Августа 2014, 08:59:23 »
Что подскажите насчет триггеров? Ещё попробовал настроить правый стик. По x работает на половину по y не работает вообще.
CD тихо не DVD меня до истерики и не USB мне мозги

Оффлайн altwazar

  • Активист
  • *
  • Сообщений: 429
    • Просмотр профиля
Re: Аналог x360ce в Linux
« Ответ #10 : 06 Августа 2014, 11:01:19 »
Что подскажите насчет триггеров?

Пока не представляю себе, как это правильно сделать с одной осью на lt и rt (ABS_THROTTLE=lt,ABS_THROTTLE=rt). У тебя точно геймпад одно и то же значение передает при нажатии на эти кнопки?
Можно попробовать еще так:
sudo xboxdrv --evdev /dev/input/event18 --evdev-absmap ABS_THROTTLE-=lt,ABS_THROTTLE+=rt,ABS_X=x1,ABS_Y=y1,ABS_RZ=x2,ABS_Z=y2,ABS_HAT0X=dpad_x,ABS_HAT0Y=dpad_y --evdev-keymap BTN_TRIGGER=a,BTN_THUMB=b,BTN_BASE3=back,BTN_BASE4=start,BTN_TOP2=lb,BTN_PINKIE=rb,BTN_BASE5=tl,BTN_BASE6=tr,BTN_THUMB2=x,BTN_TOP=y --axismap "-y1=y1" --mimic-xpad --silent &
Возможно не будет выдавать ошибку из-за плюса и минуса в этом случае. Если не получиться, то придется смотреть какие значения передаются при нажатии на триггеры и использовать параметр --calibration.

По x работает на половину по y не работает вообще.

На половину это в одну сторону? Если так, то это странно. Возможно отклонение в другую сторону передается как другая ось, но я такого не видел.
Стоит запустить:
xboxdrv --evdev --debug /dev/input/eventНОМЕР
И посмотреть, какие названия осей передаются при использовании стика и значения.
Проверить оси правого стика, вдруг там не две получаются а больше. И что проходя через центральное положение они передают "0".
Проверить триггеры и стоит выписать значения, которое они передают в спущенном и во вдавленном положении. Если команда выше не помогла с триггерами, то они пойдут в параметр --calibration "LT=ЗНАЧЕНИЕ_СПУЩЕННЫЙ:ПОЛОВИНА_ОТ_ЗНАЧЕНИЯ_В_ЗАЖАТОМ:ЗНАЧЕНИЕ_В_ЗАЖАТОМ"

p.s.: а какая модель геймпада?
« Последнее редактирование: 06 Августа 2014, 11:18:39 от altwazar »

Оффлайн BrainROM

  • Автор темы
  • Активист
  • *
  • Сообщений: 351
    • Просмотр профиля
Re: Аналог x360ce в Linux
« Ответ #11 : 20 Сентября 2014, 12:21:03 »
Осей для правого стика - две. Геймпад EXEQ ProAction. По поводу lt И rt - да, как и другой обычный DirectInput геймпад.
Текущий вид команды:
(Нажмите, чтобы показать/скрыть)

Пользователь решил продолжить мысль 20 Сентября 2014, 12:54:38:
Завел оба стика
(Нажмите, чтобы показать/скрыть)
Помогайти с триггерами. Калибровка никак на управление не влияет, разве что может вырубить ось.
« Последнее редактирование: 20 Сентября 2014, 12:54:38 от BrainROM »
CD тихо не DVD меня до истерики и не USB мне мозги

Оффлайн BrainROM

  • Автор темы
  • Активист
  • *
  • Сообщений: 351
    • Просмотр профиля
Re: Аналог x360ce в Linux
« Ответ #12 : 24 Сентября 2014, 06:52:48 »
up
CD тихо не DVD меня до истерики и не USB мне мозги

Оффлайн altwazar

  • Активист
  • *
  • Сообщений: 429
    • Просмотр профиля
Re: Аналог x360ce в Linux
« Ответ #13 : 24 Сентября 2014, 07:36:45 »
Помогайти с триггерами. Калибровка никак на управление не влияет, разве что может вырубить ось.

Не знаю, что тут еще может быть. Под рукой нету джойстика с подобной работой триггеров.

Оффлайн BrainROM

  • Автор темы
  • Активист
  • *
  • Сообщений: 351
    • Просмотр профиля
Re: Аналог x360ce в Linux
« Ответ #14 : 24 Сентября 2014, 14:44:37 »
А какой тогда у вас?
CD тихо не DVD меня до истерики и не USB мне мозги

 

Страница сгенерирована за 0.018 секунд. Запросов: 21.