Можно ли использовать контроллер PS3 для эмуляции контроллера xbox?
У меня есть контроллер PS3, подключенный через USB, и хотя он работает нормально, ни одно приложение не поддерживает его раскладку. Поэтому мой вопрос заключается в том, возможно ли сделать так, чтобы он эмулировал контроллер xbox, аналогично тому, что MotionInJoy делает в Windows?
Я немного погуглил, но безрезультатно. Я наткнулся на QtSixA, которая позволяет мне назначать клавиши кнопкам контроллера, но я не знаю, какие идентификаторы ключей использует xbox.
1 ответ
xboxdrv может сделать это, но только когда контроллер PS3 подключен через USB:
Что касается идентификаторов, я перечислил их ниже, но они не очень вам помогут. Как вы можете видеть, Xbox360 USB и Xbox360 Wireless используют разные, и большинству игр все равно, они просто используют кнопку один за другим и не заботятся, какая кнопка сопоставлена с какой физической кнопкой, вам нужно переназначить их вручную в каждой игре.
Что касается Wine, Wine поддерживает только DirectInput и не поддерживает Xinput, а многие современные игры требуют Xinput. Чтобы обойти это, вы должны использовать эмуляцию Xinput.dll (тот же трюк, который вы должны использовать в Windows со старыми геймпадами), не пробовал сам, но это описано здесь:
-
USB Xbox360 Controller
======================
start BTN_START
guide BTN_MODE
back BTN_SELECT
a BTN_A
b BTN_B
x BTN_X
y BTN_Y
lb BTN_TL
rb BTN_TR
tl BTN_THUMBL
tr BTN_THUMBR
x1 ABS_X:-32768:32767:16:128
y1 ABS_Y:-32768:32767:16:128
x2 ABS_RX:-32768:32767:16:128
y2 ABS_RY:-32768:32767:16:128
lt ABS_Z:0:255:0:0
rt ABS_RZ:0:255:0:0
dpad_x ABS_HAT0X:-1:1:0:0
dpad_y ABS_HAT0Y:-1:1:0:0
Wireless Xbox360 Controller
======================
dpad_up BTN_0
dpad_down BTN_1
dpad_left BTN_LEFT
dpad_right BTN_RIGHT
start BTN_START
guide BTN_MODE
back BTN_SELECT
a BTN_A
b BTN_B
x BTN_X
y BTN_Y
lb BTN_TL
rb BTN_TR
tl BTN_THUMBL
tr BTN_THUMBR
x1 ABS_X:-32768:32767:0:0
y1 ABS_Y:-32768:32767:0:0
x2 ABS_RX:-32768:32767:0:0
y2 ABS_RY:-32768:32767:0:0
lt ABS_Z:0:255:0:0
rt ABS_RZ:0:255:0:0