游戏忽略的手柄设置

Sym*_*mba 5 gamepad games

我最近买了一个有线 (USB) XBox 360 游戏手柄。它在我运行 Ubuntu 12.04 的笔记本电脑上几乎是即插即用的。然而,一些控制轴被混淆了。我使用 jstest-gtk 重新配置映射和 jscal-store 以(据说)保存新配置。但是,当我运行 Xonotic 或 Nexuiz(第一人称射击游戏)时,它们仍然使用原始的混合映射。如何让这些游戏识别新配置?顺便说一句,我更关心 Xonotic 的工作,我真的不在乎 Nexuiz。请不要抱怨我为什么要坚持使用鼠标和键盘来玩游戏。[:-) 提前致谢。

Gru*_*bel 4

问题是 jstest-gtk 仅更改操纵杆设备的映射,即/dev/input/js0. 然而,大多数使用 SDL 的现代游戏不再使用操纵杆设备,而是使用原始 evdev,即 /dev/input/eventX,并且不允许任何重新映射。

最快的解决方法是设置环境变量:

export SDL_JOYSTICK_DEVICE=/dev/input/js0
Run Code Online (Sandbox Code Playgroud)

这将强制基于 SDL 的应用程序使用旧的操纵杆设备,从而遵守映射。它对非 SDL 应用程序没有帮助。

另一种选择是xboxdrv,它是一个用户空间 Xbox360 驱动程序,允许在驱动程序级别进行各种配置选项(包括键盘和鼠标模拟)。这适用于所有游戏。