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


Следите за новостями русскоязычного сообщества Ubuntu в Twitter-ленте @ubuntu_ru_loco

Автор Тема: Xbox gamepad. Наработки  (Прочитано 6705 раз)

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

Оффлайн heart

  • Автор темы
  • Новичок
  • *
  • Сообщений: 12
    • Просмотр профиля
Xbox gamepad. Наработки
« : 30 Августа 2013, 21:38:40 »
~$ uname -a
Linux harddrives 3.10-2-amd64 #1 SMP Debian 3.10.7-1 (2013-08-17) x86_64 GNU/Linux

Проверенная комбинация Xbox геймпада с родными линукс играми и под wine. Может, есть что дешевле полтора косаря из геймпадов, но родной стоит своих денег. Были замечены "фокусы" в играх с Xinput: сбитые оси миниджойстиков и т.д. Решал вопрос, пришёл к выводу, что нужен xboxdrv пакет (в замену стандартному xpad модулю в ядре) и пара своих конфигов. Стандартный конфиг для игр с Xinput:
[xboxdrv]
silent=true
trigger-as-button=true

[ui-axismap]
x2=ABS_Z
y2=ABS_RZ

[ui-buttonmap]
A=BTN_B
B=BTN_X
X=BTN_A
TR=BTN_THUMBL
TL=BTN_MODE
GUIDE=BTN_THUMBR

Запускается от имени администратора:
# xboxdrv --config xpadconfigs/skyrim --detach-kernel-driver
--detach-kernel-driver для выгрузки xpad модуля.

Прекрасно играю в Skyrim с геймпада. Ещё геймпад ощущается, как родной для игры Alien Swarm и, возможно, подойдёт для других подобных игр. Реально попробуйте.

Также были попытки в других играх, например, ARMA Cold War Assault. Мало функционально.

Пока не знал про xboxdrv в Left 4 Dead пробовал играть и пришлось менять настройки в нём. Из моего controller.cfg:
//joy_advaxisx 3 // x-axis controls GAME_AXIS_SIDE (strafing left and right)
//joy_advaxisy 1 // y-axis controls GAME_AXIS_FORWARD (move forward and back)
//joy_advaxisz 0 // z-axis is treated like a button
//joy_advaxisv 2 // r-axis controls GAME_AXIS_PITCH (look up and down)
//joy_advaxisu 4 // u-axis controls GAME_AXIS_YAW (look left and right)
//joy_advaxisr 0 // v-axis is unused

joy_advaxisx 3 // L stick X to strafing (side)
joy_advaxisy 1 // L stick Y to forward/back (forward)
joy_advaxisu 4 // R stick X to turning (yaw)
joy_advaxisv 2 // R stick Y to look up/down (pitch)
joy_advaxisz 0
joy_advaxisr 0

Также пришлось поменять название некоторых кнопок:
/// Alternate control 1
+jlook // enable joystick look
bind "A_BUTTON" "+jump;+menuAccept" // (A) button - Jump  -menuAccpt allows us to make selections on hud menus
bind "B_BUTTON" "+reload" // (B) button - Reload
bind "X_BUTTON" "+use" // (X) Use
bind "Y_BUTTON" "lastinv" // (Y) button - swap pistol/rifle or z_abort -used to respawn as a ghost.
bind "R AXIS POS" "+attack" // RT - Main weapon - Primary trigger
bind "Z AXIS POS" "+attack2" // LT - Melee
bind "R_SHOULDER" "+lookspin" // RB - Fast 180 spin
bind "L_SHOULDER" "toggle_duck" // LB - Duck
bind "STICK1" "vocalize smartlook" // LS - vocalize
bind "STICK2" "+zoom" // RS click - Rifle Zoom

// Fixed bindings, do not change these across joystick presets
bind "BACK" "togglescores" // (back) button - scores
bind "START" "gameui_activate" // (start) button - pause
bind "S1_UP" "+menuUp" // Hud menu Up
bind "S1_DOWN" "+menuDown" // Hud menu Down
bind "UP" "impulse 100" // DPad Up - Toggle flashlight
bind "LEFT" "slot3" // DPad Left - grenade
bind "RIGHT" "slot4" // DPad Right - health
bind "DOWN" "slot5" // DPad Down - Pills

Заметьте sk_autoaim_mode включен. В мультиплеере не работает, но в Alien Swarm работает.

Вообще посмотреть, как работает ваш контроллер можно в пакете jstest-gtk.
« Последнее редактирование: 30 Августа 2013, 21:45:24 от heart »

Оффлайн Grigory Smirnov

  • Старожил
  • *
  • Сообщений: 1339
  • Дайте мне исходники, и я переверну Землю.
    • Просмотр профиля
    • Дафтер
Re: Xbox gamepad. Наработки
« Ответ #1 : 07 Сентября 2013, 11:18:39 »
Спасибо за починку изделия темной стороны. Скажите, сами догадались?

Оффлайн DjSpike

  • Активист
  • *
  • Сообщений: 311
    • Просмотр профиля
Re: Xbox gamepad. Наработки
« Ответ #2 : 21 Сентября 2013, 23:59:27 »
А можно такой конфиг для игры Trine 2 ???.

И еще один вопрос у тебя геймпад как подключен к компьютеру ???
AvReg  - Видеонаблюдение под Linux.
ДЭНСИ:КАССА -  Рабочее место кассира под Linux.
rx@etersoft  - Сервер терминалов под Linux...

Оффлайн heart

  • Автор темы
  • Новичок
  • *
  • Сообщений: 12
    • Просмотр профиля
Re: Xbox gamepad. Наработки
« Ответ #3 : 16 Октября 2013, 18:07:49 »
Цитировать
И еще один вопрос у тебя геймпад как подключен к компьютеру
С помощью USB.

Цитировать
А можно такой конфиг для игры Trine 2
В следующем сообщении выложу конфиг.

Цитировать
Спасибо за починку изделия темной стороны. Скажите, сами догадались?
Плясал с бубном.

Небольшое дополнение к предыдущему сообщению:
Всё началось вот с этой ссылки http://www.playonlinux.com/ru/topic-3174.html в гугле. Она посмотрела на меня, я посмотрел на неё. Вообщем, как гласит тамошнее высказывание:
Цитировать
1)Here how I got it to work.
downloaded xbox360cemu.v.3.0
http://code.google.com/p/xinput/downloads/detail?name=xbox360cemu.v.3.0.rar&can=2&q=

2)Then copy
dinput8.dll
xinput1_3.dll
xinput9_1_0.dll
xbox360cemu.ini

at the root of the folder where the executable reside ,in the steam folder ex: /home/rcmn/PlayOnLinux's virtual drives/AssassinsCreed/drive_c/Program Files (x86)/Steam/SteamApps/common/Assassins Creed
чего я забыл упомянуть. Рабочая комбинация для Skyrim, почему-то, обязательно подразумевает наличие этих четырёх вышепроцитированных файлов (три dll и один ini) в корне игры. Теперь всё.

Выкладываю рабочий конфиг xboxdrv для Left 4 Dead 1(2):
[xboxdrv]
deadzone=5000 # значение по своему усмотрению
silent=true
trigger-as-zaxis=true

[ui-buttonmap]
A=BTN_B
B=BTN_X
X=BTN_A
TR=BTN_THUMBL
TL=BTN_MODE
GUIDE=BTN_THUMBR
плюс небольшой штрих в файле Steam/SteamApps/common/Left 4 Dead 2/left4dead2/cfg/360controller.cfg
joy_advaxisx 3 // x-axis controls GAME_AXIS_SIDE (strafing left and right)
joy_advaxisy 1 // y-axis controls GAME_AXIS_FORWARD (move forward and back)
joy_advaxisz 0 // z-axis is treated like a button
joy_advaxisv 2 // r-axis controls GAME_AXIS_PITCH (look up and down)
joy_advaxisu 4 // u-axis controls GAME_AXIS_YAW (look left and right)
joy_advaxisr 0 // v-axis is unused
Примечание: играю в Left 4 Dead 2 через Wine. Игра почему-то увидела пятую ось (первые две - левый стик, одна общая для триггеров, четвёртая и пятая - правый стик), как "joy_advaxisv" (по-умолчанию не используется), а должна, как "joy_advaxisr" (смотреть вверх/вниз). Я пока не искал корень проблемы, если кому-то будет интересно - дерзайте.

Пользователь решил продолжить мысль 16 Октября 2013, 19:55:38:
Конфиг xboxdrv для игры Trine 2 (в Trine 1 не проверял):
[xboxdrv]
silent=true
trigger-as-button=true

[ui-axismap]
x2=ABS_Z
y2=ABS_RZ

[ui-buttonmap]
A=BTN_B
B=BTN_X
X=BTN_A
TR=BTN_THUMBL
TL=BTN_MODE
GUIDE=BTN_THUMBR

Вариант настройки управления в игре:


P.S. изображение сделано в Inkscape + GIMP + фото геймпада
« Последнее редактирование: 06 Ноября 2013, 01:09:18 от heart »

Оффлайн artifactor

  • Старожил
  • *
  • Сообщений: 1769
    • Просмотр профиля
    • Leaf Watoru's notes
Re: Xbox gamepad. Наработки
« Ответ #4 : 21 Октября 2013, 14:41:46 »
у меня тоже xbox-подобный джойстик.
вот моя инфа для работы в некоторых играх из стима.
Xubuntu 16.04 x64
Обои для рабочего стола и Space Ambient

Оффлайн CityAceE

  • Активист
  • *
  • Сообщений: 483
  • Ubuntu 18.04 amd64
    • Просмотр профиля
    • Speccy - наш выбор!
Re: Xbox gamepad. Наработки
« Ответ #5 : 26 Октября 2013, 06:16:03 »
А вот моя инфа по беспроводному паду - https://forum.ubuntu.ru/index.php?topic=223829.0
С уважением, Станислав.

Оффлайн heart

  • Автор темы
  • Новичок
  • *
  • Сообщений: 12
    • Просмотр профиля
Re: Xbox gamepad. Наработки
« Ответ #6 : 06 Ноября 2013, 01:20:15 »
Пример файла Steam/SteamApps/common/Alien Swarm/swarm/cfg/360controller_xbox.cfg (можно создать свой и в игре открыть консоль и ввести "exec имя_вашего_cfg_файла") с использованием стандартного модуля xpad:

joy_name "Xbox360 controller"
joy_advanced 1

joy_advaxisx 3 // L stick X to strafing (side)
joy_advaxisy 1 // L stick Y to forward/back (forward)
joy_advaxisu 4 // R stick X to turning (yaw)
joy_advaxisv 2 // R stick Y to look up/down (pitch)
joy_advaxisz 0
joy_advaxisr 0

joy_forwardsensitivity -1
joy_sidesensitivity 1
joy_pitchsensitivity 1.0
joy_yawsensitivity -1.0
joy_autoaimdampenrange 0.85
joy_autoaimdampen 0.5
joy_lowend 0.65
joy_lowmap 0.15
joy_accelscale 1.4
joy_response_move 5
joy_response_look 1
joyadvancedupdate
asw_controller_lag 75
crosshair 0
hud_draw_fixed_reticle 1

bind "Z AXIS POS" "+attack2" // left trigger
bind "R AXIS POS" "+attack" // right trigger

bind "A_BUTTON" "+jump" // A
bind "B_BUTTON" "+alt1" // melee  // B
bind "X_BUTTON" "+use" // X
bind "Y_BUTTON" "asw_weapon_switch" // Y
bind "L_SHOULDER" "+grenade1"  // offhand item   // Left Bumper
bind "R_SHOULDER" "+reload"  // Right Bumper

bind "BACK" "ingamebriefing" // select
bind "START" "pause" // start

bind "STICK1" "asw_orderMarinesHold" // left stick in
bind "STICK2" "asw_orderMarinesFollow" // right stick in

bind "LEFT" "asw_squad_hotbar 1"
bind "UP" "asw_squad_hotbar 2"
bind "RIGHT" "asw_squad_hotbar 3"

joy_deadzone_mode 1

joystick 1
sk_autoaim_mode 2
hud_fastswitch 2
+jlook

Работает конфигурация следующим образом:


Примечания: настройка произведена на моё усмотрение. Мне показалось логичным разместить рядом основную и вторичную атаку на правый указательный палец, а рукопашную и бросок вещей из инвентаря на левый палец. Действие на X, смена оружия на Y и перезарядка на B по умолчанию в игре Left 4 Dead 2, поэтому я решил, что разработчики заранее продумали оптимальный вариант расположения. Мне он показался удобным и я решил использовать его в других играх, назначая похожие действия на кнопки (перекат на A соотношу с приседанием в L4D).

Оффлайн Legik

  • Новичок
  • *
  • Сообщений: 35
  • Ubuntu 14.04.3
    • Просмотр профиля
Re: Xbox gamepad. Наработки
« Ответ #7 : 11 Ноября 2013, 02:09:54 »
xf∞, спасибо, настроил Bit.Trip 2

Оффлайн artifactor

  • Старожил
  • *
  • Сообщений: 1769
    • Просмотр профиля
    • Leaf Watoru's notes
Re: Xbox gamepad. Наработки
« Ответ #8 : 11 Ноября 2013, 07:31:13 »
wasp3r, оказалось, что это не только для bit.trip runner 2. ещё для glare и наверняка ещё для какой-нибудь игры понадобится.
Xubuntu 16.04 x64
Обои для рабочего стола и Space Ambient

Оффлайн tinitun

  • Любитель
  • *
  • Сообщений: 70
    • Просмотр профиля
Re: Xbox gamepad. Наработки
« Ответ #9 : 16 Января 2014, 14:22:34 »
а как сделать чтоб геймпад любой работал как в винде на Xbox 360 Emulator, чтоб в любую игру на геймпаде qjoypad пробовал, но не то.

Оффлайн heart

  • Автор темы
  • Новичок
  • *
  • Сообщений: 12
    • Просмотр профиля
Re: Xbox gamepad. Наработки
« Ответ #10 : 15 Августа 2014, 17:56:03 »
Давно уже вышла новая версия Trine 2 с нормальной поддержкой xbox геймпада. Пляски с бубнами не нужны.

Оффлайн Zerak

  • Участник
  • *
  • Сообщений: 200
    • Просмотр профиля
Re: Xbox gamepad. Наработки
« Ответ #11 : 27 Марта 2015, 17:50:21 »
Давно уже вышла новая версия Trine 2 с нормальной поддержкой xbox геймпада. Пляски с бубнами не нужны.
а как сделать чтоб геймпад любой работал как в винде на Xbox 360 Emulator, чтоб в любую игру на геймпаде qjoypad пробовал, но не то.

То же интересно как сделать, на винде пользуюсь эмулятором, один раз подвел только, но там ни кто не смог настроить его на игру, с остальными проблем не было.
А вот как тут, почитал бы, а то есть два геймпада, а как их настроить не знаю.

Оффлайн heart

  • Автор темы
  • Новичок
  • *
  • Сообщений: 12
    • Просмотр профиля
Re: Xbox gamepad. Наработки
« Ответ #12 : 06 Октября 2015, 21:19:25 »
Интересно, есть ли что-то вроде wiki для "сброса" всей информации ищущим? Потому что, когда сам сталкиваешься и мучаешься при решении, хочется поделиться решением. Получается эдакий сбор и обмен информацией.

Вот, например, недавно пришлось решить вопрос с управлением в SpeedRunners и Castle Crashers. Решил через приминение программы xboxdrv со своими конфигами, в итоге эмулируются нажатия клавиатуры. Конфиги сохранить в виде тектового файла. Проверял с геймпадом PS3. Для SpeedRunners:
############### Стандартное управление ###############
## Действие    Клавиатура  XBOX            PS3
## Прыжок      Z           A               Крест
## Захват      X           X               Квадрат
## Подкат      Down        Y               Треугольник
## Предмет     C           B               Круг
## Ускорение   Space       Правый триггер  Правый триггер
## Насмешка    F           Правое плечо    Правое плечо
## Влево       Left                       
## Вправо      Right                       
## Инфо        Tab         Назад           Назад

[xboxdrv]
silent = true
trigger-as-button = true
dpad-only = true

[ui-buttonmap]
back = KEY_TAB # Инфо
start = KEY_ESC # Меню

A = KEY_Z # Прыжок
B = KEY_C # Предмет
X = KEY_X # Захват
Y = KEY_DOWN # Подкат

RB = KEY_F # Насмешка
RT = KEY_SPACE # Ускорение

DR = KEY_RIGHT # Вправо
DL = KEY_LEFT # Влево

DU = KEY_UP
DD = KEY_DOWN
Для Castle Crushers:
################### Стандартное управление #######################
## Действие                Клавиатура  XBOX            PS3
## Вверх                   Вверх
## Вниз                    Вниз
## Влево                   Влево
## Вправо                  Вправо
## Тяжёлая атака           W           Y               Треугольник
## Лёгкая атака            D           X               Квадрат
## Прыжок                  Space       A               Крест
## Использовать предмет    A           B               Круг
## Магия                   LeftShift   Правый триггер
## Блок                    LeftCtrl    Левый триггер
## Выбор предмета вправо   E           Правое плечо
## Выбор предмета влево    Q           Левое плечо
## Пауза                   Enter       Start

[xboxdrv]
silent = true
trigger-as-button = true
dpad-only = true

[ui-buttonmap]
start = KEY_ENTER

A = KEY_SPACE
B = KEY_A
X = KEY_D
Y = KEY_W

RB = KEY_E
LB = KEY_Q
RT = KEY_LEFTSHIFT
LT = KEY_LEFTCTRL

DR = KEY_RIGHT
DL = KEY_LEFT

DU = KEY_UP
DD = KEY_DOWN

Запускать: xboxdrv --detach-kernel-driver --config путь_к_конфигу/имя_конфига

Оффлайн vair

  • Участник
  • *
  • Сообщений: 224
    • Просмотр профиля
    • Саит КРОшнигов
Re: Xbox gamepad. Наработки
« Ответ #13 : 24 Октября 2015, 10:11:54 »
Trine2
играем втроем, 3 джостика

через xboxdrv

единственное что сделал trigger-as-button=true

когда мне грустно, когда мне темно, я слушаю громко группу КИНО

Оффлайн heart

  • Автор темы
  • Новичок
  • *
  • Сообщений: 12
    • Просмотр профиля
Re: Xbox gamepad. Наработки
« Ответ #14 : 27 Октября 2015, 15:02:48 »
Вообще тема получается про xboxdrv, он позволяет не только настраивать геймпады от Xbone, но и любое другое устройство с интерфейсом /dev/input/event*.

Вот, например, понадобилось "завести" пад от соньки третьей по синезубу для игры SpeedRunners:
[axismap]
-Y1=Y1
-Y2=Y2
#-DPAD_Y=DPAD_X
#-DPAD_X=DPAD_Y

[evdev-absmap]
ABS_X=x1            # Стик правый
ABS_Y=y1            # Стик правый
ABS_Z=x2            # Стик левый
ABS_RZ=y2           # Стик левый
ABS_#48=lt          # Левый триггер
ABS_#49=rt          # Правый триггер

[evdev-keymap]
BTN_THUMB2=tr       # Правый триггер
BTN_THUMB=tl        # Левый триггер
BTN_BASE5=lb        # Левый бампер
BTN_BASE6=rb        # Правый бампер
KEY_#302=a          # Крест
KEY_#301=b          # Круг
BTN_DEAD=x          # Квадрат
KEY_#300=y          # Треугольник
BTN_TRIGGER=back    # Select     
BTN_TOP=start       # Start
BTN_TOP2=du         # D-pad right
BTN_PINKIE=dr       # D-pad up
BTN_BASE=dd         # D-pad left
BTN_BASE2=dl        # D-pad down

# Некоторые xinput игры требуют странного: X вместо A, Y вместо X, A вместо Y. Раскомментировать в такой ситуации нижние строки и закомментировать верхние соответственно.
#KEY_#300=a          # Треугольник
#KEY_#301=b          # Круг
#KEY_#302=x          # Крест

[xboxdrv]
trigger-as-button=true
evdev=/dev/input/event7
evdev-debug=false
mimic-xpad=false
mimic-xpad-wireless=false
silent=true
detach-kernel-driver=true
dpad-as-button=false

[ui-buttonmap]

back = KEY_TAB # Инфо
start = KEY_ESC # Меню

A = KEY_Z # Прыжок
B = KEY_C # Предмет
X = KEY_X # Захват
Y = KEY_DOWN # Подкат

RB = KEY_F # Насмешка
RT = KEY_SPACE # Ускорение

DR = KEY_RIGHT # Вправо
DL = KEY_LEFT # Влево

DU = KEY_UP
DD = KEY_DOWN

Разуплотняю содержание текста: разделы [evdev-absmap] и [evdev-keymap] отвечают за соответствие кнопок и осей ващего кнопочного монстра кнопкам и осям на Xbox геймпаде. Название KEY_#302 я узнал из программы jstest-gtk в меню Mapping. Нажимаете кнопку на вашем паде, смотрите что нажалось, смотрите как эта кнопка названа в Mapping. KEY_#302 у меня оказался крестом, и я его присвоил кнопке А на Xbox паде. Ну и т.д.

Раздел [xboxdrv] - это всякие xboxdrv заморочки. Раздел [ui-buttonmap] отвечает за переназначение кнопок уже будучи имитируемого вами Xbox пада на любые другие. В данном примере я назначил кнопки на клавиатуру для игры в SpeedRunners.



От данной конфигурации можно уже отталкиваться в любом другом направлении: для xinput игр раздел [ui-buttonmap] можно стереть. Некоторые xinput игры иначе видят кнопки A, X и Y, там в комментариях это указано. Вместо event7 укажите любое ваше устройство. Чтобы узнать его, введите в терминале:
cat /proc/bus/input/devicesищите в списке Name вашего геймпада и посмотрите его параметр Handlers.
« Последнее редактирование: 27 Октября 2015, 15:11:18 от heart »

 

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