我想在 ubuntu 启动时自动将我的 pad 安装在 js1 上,
我想要这样做的原因是我想在 steam 上玩火箭联盟,而
安装在 js1 上的操纵杆被视为第二个,所以我只能使用它来玩,就像和朋友一起玩一样,
这都是因为我试图欺骗 xbox pad 驱动程序,让它认为我的 pad 也是 Xbox one,使用命令
xboxdrv --evdev /dev/input/event19 --evdev-absmap ABS_HAT0X=x1,ABS_HAT0Y=y1,ABS_RZ=x2,ABS_Z=y2,ABS_Z=dpad_x,ABS_Y=dpad_y --axismap -Y1=Y1,-Y2=Y2 --evdev-keymap BTN_TOP=b,BTN_TRIGGER=x,BTN_THUMB2=a,BTN_THUMB=y,BTN_BASE3=back,BTN_BASE4=start,BTN_BASE=rb,BTN_BASE2=rt,BTN_TOP2=lb,BTN_PINKIE=lt,BTN_BASE5=tl,BTN_BASE6=tr --mimic-xpad --silent &
该命令会将操纵杆的“副本”创建为 js1,因此我认为如果我将原始操纵杆自动安装在 js1 上,则会在 js0 上创建副本,游戏将检测到
我想要提到的这个,我需要这样做,否则我的操纵杆不会被火箭联盟“看到”,因此我需要使用 xbox 版本。此外,有没有选项可以在启动时将我用来制作假 xbox 控制器的命令添加到 linux 中?我注意到事件编号最终会发生变化(当我第一次运行 pad 时它是 19,现在是 18),我能以某种方式检测到它吗?
答案1
好的,我的问题已经得到解答,也感谢 reddit 用户,他们为我指明了正确的方向。
所以如果你们中有人遇到同样的问题,xboxdrv 命令 100% 没问题,但较新的游戏不使用“js”格式输入,它们使用“event”,因此当您运行 steam 时,您只需输入
SDL_JOYSTICK_DEVICE=/dev/input/event20(其中 event20 是 xboxdrv“模拟”的事件数
,可能会有所不同)
而不是
SDL_JOYSTICK_DEVICE=/dev/input/js1(这也取决于
您有多少个输入设备)
答案2
另一种方法是通过删除所有权限来隐藏不需要的 js0。
游戏将无法打开 js0,并且将使用 js1 作为其第一个控制器。
这种方法可以处理多个控制器由 xboxdrv 等软件复制的情况。