很遗憾,对我来说m64py不是一个有效的解决方案,“试错法”太麻烦了。这里有一个解决方案,任何当前运行mupen64plus的人都可以使用,无论是否带有图形界面。
您需要手柄校准工具
jscal
来确定每个按钮的功能。如果需要帮助,请参考
Ubuntu论坛-游戏与休闲-HOWTO:在Ubuntu下使用游戏手柄
假设您已经设置好并且手柄已经正确校准,您只需要运行
jstest-gtk /dev/input/js0 &
,其中
js0
是您当前测试的设备的校准文件。
您将看到一个带有编号轴和按钮的图形界面。它看起来类似于这样:
![jscal controller and joystick button mapping for mupen linux](https://istack.dev59.com/fbl28.webp)
现在您可以按下控制器上的按钮,查看它对应的轴或按钮。
将自定义控制器配置应用于mupen
找到InputAutoCfg.ini
运行locate InputAutoCfg.ini
。对我来说,它位于目录/usr/share/games/mupen64plus/InputAutoCfg.ini
中。
使用您喜欢的文本编辑器打开InputAutoCfg.ini
vim /usr/share/games/mupen64plus/InputAutoCfg.ini
。
找到您的设备并编辑设置。
您可以通过在命令行终端上运行mupen64plus
并找到您控制器的名称来确定mupen正在使用哪个设备(控制器)。
我的显示为Input: N64 Controller #1: Using auto-config with SDL joystick 0 ('Generic X-Box pad')
。所以对我来说,设置可以在[Generic X-Box pad]
下找到。
保存/写入更改到文件中,下次运行mupen64plus
时,更改将生效。
经过一些更改后,我的文件看起来像这样:
[Generic X-Box pad]
plugged = True
plugin = 2
mouse = False
AnalogDeadzone = "4096,4096"
AnalogPeak = "32768,32768"
DPad R = "hat(0 Right)"
DPad L = "hat(0 Left)"
DPad D = "hat(0 Down)"
DPad U = "hat(0 Up)"
Start = "button(7)"
Z Trig = "button(4)"
B Button = "button(2)"
A Button = "button(0)"
C Button R = "axis(3+)"
C Button L = "axis(3-)"
C Button D = "axis(4+)"
C Button U = "axis(4-)"
R Trig = "button(5)"
L Trig = "axis(2+)"
Mempak switch = "axis(5+)"
Rumblepak switch = "button(2)"
X Axis = "axis(0-,0+)"
Y Axis = "axis(1-,1+)"
使用
jstest
,你应该能够弄清楚如何配置
InputAutoCfg.ini
来自定义你的输入设置,使用
输入事件词。
有时候查看 N64 控制器布局可以帮助你弄清楚你想要映射的参数。
![N64 controller buttons layout configuration](https://istack.dev59.com/fudlU.webp)