PPSSPP Joystick 按键映射
某天感兴趣买了一个北通蝙蝠D2(BTP-BD2F)手柄,安装了PPSSPP模拟器。满脸的期待打开PPSSPP准备体验一下游戏的感觉,结果游戏手柄按映射不对,欲哭无泪。开始各种爬文寻找解决办法,确定是按键映射不对。最终还是无解,一度怀疑PPSSPP不支持这个手柄,放弃了。过了一段时间搬完家闲来无事又搞了一下,终于找到了解决办法。
- PPSSPP平台: Linux-SDL
- Linux发行版: openSUSE Tumbleweed
解决过程
有了最初问题确定知道是PPSSPP的joystick按键映射不对,那么想办法寻找按键映射的方法。在此过程中了解了Linux Joystick API编程,SDL-Joystick API,SDL-GameController API,在我系统中安装的为PPSSPP-SDL版本,在查看PPSSPP源码SDLJoystick.cpp
中发现可以使用gamecontrollerdb.txt
映射手柄按键,将手柄SDLJoystick
按键映射为SDL-GameController
按键。该文件在/usr/share/ppsspp/assets/gamecontrollerdb.txt
或/usr/lib/ppsspp/assets/gamecontrollerdb.txt
不同的Linux发行版路径不一定相同。然后将SDLGameController
映射字符串添加到gamecontrollerdb.txt
文件中。
确定了在何处能够生效配置文件,那就开始调校手柄的按键映射,在此过程中写了一个小工据用作将SDL-Joystick按键映射为SDL-GameController,以下是我的手柄: 北通蝙蝠D2(BTP-BD2F)按键映射:
03000000bc2000006412000011010000,BETOP CONTROLLER,a:b2,b:b1,y:b0,x:b3,start:b9,guide:b30,back:b8,dpup:h0.1,dpleft:h0.8,dpdown:h0.4,dpright:h0.2,leftshoulder:b4,rightshoulder:b5,leftstick:b10,rightstick:b11,leftx:a0,lefty:a1,rightx:a2,righty:a3,lefttrigger:b6,righttrigger:b7,platform:Linux,
注意需要指定platform:Linux
以及最后需要以,
结尾,否则识别不正确。
Linux SDL手柄按键映射工具
https://gitee.com/koyst/sample/tree/master/game/sdl-joystick-button-view
原文: https://www.koyst.com/tech/174.html