我正在尝试让 Logitech Dual Action 控制器与 Ubuntu 13.04 上的 Bastion 配合使用。据我所知,Bastion 仅与 XInput 设备兼容,而我的控制器仅支持 DirectInput。事实上,游戏将识别除按钮 7(左触发器)和按钮 10(控制台游戏手柄上的“开始”按钮)之外的大多数按钮。
是否有可能以某种方式模拟 XInput 设备,例如 xbox 360 控制器?
答案1
已解答这里Reddit 用户 theliphantGen 写道:
由于我花了相当多的时间来弄清楚,所以我只是想在某处记录这一点。
长话短说 - 我无法让 Brutal Legend 或 Shank 识别我的任何游戏手柄。今天我发现驱动精灵可以使用 evdev 在任何操纵杆/游戏手柄上工作。因此,通过这个简单的映射,我让 xboxdrv 创建另一个游戏手柄,该手柄使用 xpad 驱动程序模拟 xbox360 控制器,并且可以在 Shank 和 Brutal Legend 中开箱即用(也应该可以与其他游戏配合使用):
xboxdrv --evdev /dev/input/event15 --evdev-absmap ABS_X=x1,ABS_Y=y1,ABS_RZ=x2,ABS_Z=y2,ABS_HAT0X=dpad_x,ABS_HAT0Y=dpad_y --axismap -Y1=Y1,-Y2=Y2 --evdev-keymap BTN_TOP=x,BTN_TRIGGER=y,BTN_THUMB2=a,BTN_THUMB=b,BTN_BASE3=back,BTN_BASE4=start,BTN_BASE=lb,BTN_BASE2=rb,BTN_TOP2=lt,BTN_PINKIE=rt,BTN_BASE5=tl,BTN_BASE6=tr --mimic-xpad --silent
/dev/input/event15
应该指向您游戏手柄的正确事件设备。这是 PS2 控制器适配器的映射。您可以通过删除--silent
和添加--evdev-debug
按下按钮/轴的输出 evdev 代码来调整它