Я пытаюсь сыграть в snes9x-gtk с двумя игроками, использующими PS3 Dualshock. Моя проблема заключается в конфигурации ввода для игрока 2. Он не регистрирует мои нажатия кнопок для js1. js0 отлично работает. Jtest для калибровки джойстика показывает, что оба контроллера работают.
1) Мой джойстик действительно слышал операционная система?
В терминале:
cat /dev/input/js0
показывает какой-то резкий вывод и реагирует на нажатие моей кнопки. Первый подключенный двойной шок был слышен. Теперь:
cat /dev/input/js1
показывает то же самое, а также реагирует на нажатия кнопок. (Удерживая нажатой кнопку, вы увидите на экране рисунок в ответе терминала ...)
2) Теперь запустите программу snes9x-gtk, перейдите к настройкам, а затем к настройкам, работает ли нажатие на текстовое поле для кнопок snes?
Для джойстика 1 программа отвечает на вход контроллера для js0 и привязывает правильный ввод к правильной кнопке snes.
Для джойстика 2 (раскрывающийся список и выберите 2) по большей части отсутствует отклик. Вот где мне повезло, я случайно нажал на текстовое поле для кнопки snes 'right', и нажал правый ввод d-pad на js1, зарегистрированном "Joystick 2 Button 5", я переключился на джойстик 1 и нашел "Joystick 1" Кнопка 5 ". Так это сработало, и была правильная кнопка! Проблема, однако, никаких других кнопок контроллера не было слышно. Итак, я
gedit ~/.snes9x/snes9x.xml
и нашел под джойстиком 0 все числа привязок для js0.
В джойстике 1 (в программе js1, но в программе джойстик 2). (Языки программирования начинают списки с 0, а не с 1). Я нашел:
<binding name="Right" binding="570425349"/>
любую другую кнопку имел привязки 0, поэтому они не были установлены. Я оглянулся на джойстик 0 и обнаружил, что эквивалентная привязка для js0 была
<binding name="Right" binding="553648133"/>
, так что это сразу не поможет, если у вас есть все привязки для js0, которые с момента ввода для джойстик 1 в настройках слышал все нажатия кнопок, у меня были все привязки. Используя немного логики и математики, я посмотрел на привязку left под joypad 0 и получил:
<binding name="Left" binding="553648135"/>
, поэтому вход левой привязки был на 2 больше, чем правая привязка. Итак, под джойстиком 1 (js1)
это: <binding name="Left" binding="0"/>
стало таким: <binding name="Left" binding="570425351"/>
и я сохранил файл XML, и снова открыл snes9x-gtk, lo и вот под джойстиком 2 он показал для левой кнопки «Джойстик 2, кнопка 7», что на 7 на 2 больше, чем на кнопку 5! Я смог отредактировать остальные нужные мне кнопки под js1. Надеюсь, я объяснил это достаточно хорошо, не уверен, что привязки универсальны для всех двойных шоков.
3) Игры наконец заработали? Да, я протестировал Super Mario World для 2 игроков, и Луиджи ответил на второй Dualshock, который я подключил.