如何使用 DirectInput 游戏手柄模拟 XInput 设备?

如何使用 DirectInput 游戏手柄模拟 XInput 设备?

我正在尝试让 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 代码来调整它

相关内容