Есть такая замечательная игра от gaijin games - bit.trip runner 2. Это продолжение игры bit.trip.runner - где персонаж бежит, а мы должны уворачиваться от препятствий и собирать золото.
После очередного обновления мой джойстик Logitech Rumble Gamepad F510(его ещё иногда называют xbox controller) просто перестал определяться в этой игре. Во всех играх работает, а в этой - нет!
К счастью, есть стим-сообщество, где описали рецепт, как это можно вылечить. Ну, а я опишу это в своём блоге по-русски и это кому-то поможет, а для меня - лишний информационный бэкап.
Итак, поехали!
Сначала нам нужно установить драйвера xbox. Скажу сразу, что у меня xubuntu, т.е. ubuntu+xfce, поэтому все команды привожу для убунты.
В терминале пишем:
sudo apt-get install xboxdrv
и соглашаемся с установкой пакетов. после это выполняем другую команду:
sudo xboxdrv --silent --type xbox360 --device-by-id 046d:c21d --mimic-xpad --detach-kernel-driver
Если всё прошло хорошо, нам напишет
Your Xbox/Xbox360 controller should now be available as:
/dev/input/js0
/dev/input/event13
Press Ctrl-c to quit
Пока control+c ни в коем случае не нажимаем.
Теперь Открываем игру bit.trip runner 2 и наслаждаемся игрой с джойстиком :)
Когда поиграли, лучше зайти в терминал и нажать control+c. Если хотите, можно просто закрыть терминал, но тогда система сама себе выдаст некритичную ошибку.
Т.к. это линукс, тут вообще можно обойтись без терминала, можно взять одну программу, добавить её в автозагрузку и сделать ей кнопки для переключения джойстика.
А можно вообще пойти радикально и поставить qjoypad и эмулировать нажатия клавиш на клавиатуре - универсально и просто. Для каждой игры можно выставить свои настройки.
Но. Зачем так заморачиваться, если можно взять и скопировать одну строчку в терминале? :)
Лично я решил сделать простой скрипт, чтобы не копировать длинную команду, а просто написать определённый набор букв.
Это делается очень просто:
echo "sudo xboxdrv --silent --type xbox360 --device-by-id 046d:c21d --mimic-xpad --detach-kernel-driver" >x360
chmod +x x360
В дальнейшем мне будет нужно просто написать x360, у меня попросит пароль и я его введу.
Всем успехов в решении проблем. :)
После очередного обновления мой джойстик Logitech Rumble Gamepad F510(его ещё иногда называют xbox controller) просто перестал определяться в этой игре. Во всех играх работает, а в этой - нет!
К счастью, есть стим-сообщество, где описали рецепт, как это можно вылечить. Ну, а я опишу это в своём блоге по-русски и это кому-то поможет, а для меня - лишний информационный бэкап.
Итак, поехали!
Сначала нам нужно установить драйвера xbox. Скажу сразу, что у меня xubuntu, т.е. ubuntu+xfce, поэтому все команды привожу для убунты.
В терминале пишем:
sudo apt-get install xboxdrv
и соглашаемся с установкой пакетов. после это выполняем другую команду:
sudo xboxdrv --silent --type xbox360 --device-by-id 046d:c21d --mimic-xpad --detach-kernel-driver
Если всё прошло хорошо, нам напишет
Your Xbox/Xbox360 controller should now be available as:
/dev/input/js0
/dev/input/event13
Press Ctrl-c to quit
Пока control+c ни в коем случае не нажимаем.
Теперь Открываем игру bit.trip runner 2 и наслаждаемся игрой с джойстиком :)
Когда поиграли, лучше зайти в терминал и нажать control+c. Если хотите, можно просто закрыть терминал, но тогда система сама себе выдаст некритичную ошибку.
Т.к. это линукс, тут вообще можно обойтись без терминала, можно взять одну программу, добавить её в автозагрузку и сделать ей кнопки для переключения джойстика.
А можно вообще пойти радикально и поставить qjoypad и эмулировать нажатия клавиш на клавиатуре - универсально и просто. Для каждой игры можно выставить свои настройки.
Но. Зачем так заморачиваться, если можно взять и скопировать одну строчку в терминале? :)
Лично я решил сделать простой скрипт, чтобы не копировать длинную команду, а просто написать определённый набор букв.
Это делается очень просто:
echo "sudo xboxdrv --silent --type xbox360 --device-by-id 046d:c21d --mimic-xpad --detach-kernel-driver" >x360
chmod +x x360
В дальнейшем мне будет нужно просто написать x360, у меня попросит пароль и я его введу.
Всем успехов в решении проблем. :)
Это конечно вес хорошо, но вот второй джой xBox360 Wireless не в какую не хочет подключаться. Как сделать чтобы работали два и более джойстика с помощью xboxdrv?
ОтветитьУдалитьбеспроводной вообще не работает или не работают два одновременно?
ОтветитьУдалитьесли первое, то тут надо копать в сторону беспроводного подключения.
если второе - у джойпэда наверняка другой id или что-то ещё. они ведь должны чем-то отличаться? нужно тогда команду подправлять.
Ресивер определяется, джойстики по отдельности тоже подключаются, но вместе они не могут подключаться, так как драйвер почему-то подключает только одно устройство. Вот вывод:
ОтветитьУдалитьController: Microsoft Xbox 360 Wireless Controller (PC)
Vendor/Product: 045e:0719
USB Path: 007:003
Wireless Port: 0
Controller Type: Xbox360 (wireless)
Your Xbox/Xbox360 controller should now be available as:
/dev/input/js0
/dev/input/event9
Как заставить программу подключать оба джойстика одновременно я так и не нашел, даже на забугорных ресурсах. Все гамают на одном джое.
ID определяется только у ресивера и поэтому он всегда неизменный. А джойстики просто подключаются к нему как устройства ввода. Команду которая подключает сразу несколько устройств я не нашел, но возможно плохо смотрел.
ОтветитьУдалитьу меня только один джой, поэтому проверить не могу, но вот что можно попробовать:
ОтветитьУдалитьвместо --device-by-id написать --device-by-path BUS:DEV
правда, каждый раз устройство подключается к разному адресу.
и каждый раз нужно будет смотреть вывод lsusb, чтобы определить по какому адресу подключились устройства.
если не смотрели, то можете почитать, какие опции можно добавить: xboxdrv --help
там и про wireless что-то есть.
Ладно, спасибо за помщь, но ничего не получилось, ругается:
ОтветитьУдалить-- [ ERROR ] ------------------------------------------------------
bad lexical cast: source type value could not be interpreted as target
Нашел ответ в help, может кому-то пригодится:
ОтветитьУдалитьUSING MULTIPLE CONTROLLER
If you want to use multiple wired controllers you need to start
multiple instances of the xboxdrv driver and append the -i argument to
select the appropriate controller like this:
$ xboxdrv -i 1
If you have multiple wireless controller you need to start multiple
instances of the xboxdrv driver and append the --wid option like this:
$ xboxdrv --wid 1
У меня определяется джойстик, и все вроде бы нормально, но вот проблемы со стиками, совсем не знаю как их настроить, и работают они очень странно, правый не работает совсем, а левый работает только влево-вправо, и еще и еще при этом всем берет на себя управление правым стиком.
ОтветитьУдалить