В настоящее время я пытаюсь заставить 2 контроллера PS3 (которые подключены через USB) работать на моей машине с Ubuntu 12.04. Для большинства игр это работает «из коробки», но некоторые игры, такие как Shutter, идентифицируют два контроллера как один. Я обнаружил, что в «случае с осколками» информация «Bus-Vendor-Product-Version», которая предоставляется, например, cat / proc / bus / input / devices используется для идентификации геймпада (который идентичен для обоих контроллеров):
I: Bus=0003 Vendor=054c Product=0268 Version=0111
N: Name="Sony PLAYSTATION(R)3 Controller"
Существует файл конфигурации для Shatter (~ / .sidhe / Shatter / data /profiles/default_plr_profile.xml), в котором хранится информация, подобная этой: )?
Это похоже на ошибку в SDL2. GUIDS создаются следующим образом:
http://hg.libsdl.org/SDL/file/a9d1c47bb1aa/src/joystick/linux/SDL_sysjoystick.c#l117
И используются в основном для настройки контроллера. Однако GUID идентифицирует только тип контроллера , а не фактический контроллер, поэтому два контроллера одного типа генерируют один и тот же GUID, что не должно делать GUID.
Что касается обходного пути, xboxdrv
имеет поддержку контроллеров PS3 при подключении через USB. В случае, если вы предпочитаете, Blutooth xboxdrv
также может эмулировать виртуальный контроллер поверх обычного и позволяет вам работать с виртуальным продуктом, поставщиком и т. Д., См. examples/evdev.xboxdrv
.
Составил отчет об ошибке: https://bugzilla.libsdl.org/show_bug.cgi?id=2327