如何在 Retroflag GPI 上配置 DOSBox 游戏中的按键?
How to configure keys in DOSBox games on Retroflag GPI?
我在 Retroflag GPi 上安装了 DOSBox 并将一些旧的 DOS 内容复制到 roms/pc,我可以从 RetroPie/EmulationStation 菜单中 运行 它们,但是有一个问题与控制。默认情况下,箭头似乎只在某些游戏中有效,而其他键通常没有任何用处。我想以某种方式分别为每个游戏配置按键。我知道 DOSBox 有一些配置键盘的方法,但是 GPi 按钮的键码是什么?
首先,按钮被系统视为操纵杆,因此您要做的是将操纵杆动作和按钮映射到键盘。实际的按钮代码是:
Up: "stick_0 hat 0 1"
Down: "stick_0 hat 0 4"
Left: "stick_0 hat 0 8"
Right: "stick_0 hat 0 2"
A: "stick_0 button 0"
B: "stick_0 button 1"
X: "stick_0 button 2"
Y: "stick_0 button 3"
Select: "stick_0 button 8"
Start: "stick_0 button 9"
Left Shoulder: "stick_0 button 4"
Right Shoulder: "stick_0 button 5"
(如果将方向键切换到轴模式(通过长按开始+左键),方向键将获得不同的代码:
Up: "stick_0 axis 1 0"
Down: "stick_0 axis 1 1"
Left: "stick_0 axis 0 0"
Right: "stick_0 axis 0 1"
现在您需要为每个游戏创建一个单独的.conf 文件和一个.map 文件。 .map 文件包含键盘映射,例如对于典型的游戏,文件 my_game.map 可能如下所示:
key_up "stick_0 hat 0 1"
key_down "stick_0 hat 0 4"
key_left "stick_0 hat 0 8"
key_right "stick_0 hat 0 2"
key_space "stick_0 button 0"
key_esc "stick_0 button 3"
key_p "stick_0 button 9"
key_lctrl "stick_0 button 8"
mod_3 "stick_0 button 8"
key_q "stick_0 button 9 mod3"
首先映射箭头,然后映射游戏中其他有用的键,最后一部分做了一件棘手的事情:它将 Select 映射到 Ctrl 和 mod_3(虚拟修改键DOSBox),然后在 mod3+Start 上发送键 Q。这意味着按 Select+Start 实际上会发送 Ctrl+Q(退出),但 Start 本身不会发送 Q(仅 P,如上定义)。
遇到不能正常退出的游戏,可以这样杀掉DOSBox:
mod_3 "stick_0 button 8"
hand_shutdown "stick_0 button 9 mod3"
然后你在roms/pc中创建一个my_game.conf文件:
[sdl]
mapperfile=/full/path/to/my_game.map
[autoexec]
@cd /games/my_game
@my_game.exe
@exit
(不确定,也许映射器的相对路径也可以。)
而且我假设安装操作是在主 DOSBox 配置 (config/dosbox-SVN.conf) 中定义的,类似于:
[autoexec]
# Lines in this section will be run at startup.
# You can put your MOUNT lines here.
@mount c /home/pi/RetroPie/roms/pcdata
@c:
这里我把所有的DOS文件都保留在roms/pc中,而不是在roms/pcdata中,以防止exe/bat/com文件直接出现在游戏列表中。我只希望我的 conf 文件出现在那里。
最后一个通知:正如我所说,整个控制器被视为一个操纵杆,一些游戏,例如波斯王子,当使用操纵杆启动时,进入操纵杆模式并且不会对箭头做出反应根本。在这种情况下,您可以改为映射方向键,例如A到摇杆,像这样:
jaxis_0_1- "stick_0 hat 0 1"
jaxis_0_1+ "stick_0 hat 0 4"
jaxis_0_0- "stick_0 hat 0 8"
jaxis_0_0+ "stick_0 hat 0 2"
jbutton_0_0 "stick_0 button 0"
我在 Retroflag GPi 上安装了 DOSBox 并将一些旧的 DOS 内容复制到 roms/pc,我可以从 RetroPie/EmulationStation 菜单中 运行 它们,但是有一个问题与控制。默认情况下,箭头似乎只在某些游戏中有效,而其他键通常没有任何用处。我想以某种方式分别为每个游戏配置按键。我知道 DOSBox 有一些配置键盘的方法,但是 GPi 按钮的键码是什么?
首先,按钮被系统视为操纵杆,因此您要做的是将操纵杆动作和按钮映射到键盘。实际的按钮代码是:
Up: "stick_0 hat 0 1"
Down: "stick_0 hat 0 4"
Left: "stick_0 hat 0 8"
Right: "stick_0 hat 0 2"
A: "stick_0 button 0"
B: "stick_0 button 1"
X: "stick_0 button 2"
Y: "stick_0 button 3"
Select: "stick_0 button 8"
Start: "stick_0 button 9"
Left Shoulder: "stick_0 button 4"
Right Shoulder: "stick_0 button 5"
(如果将方向键切换到轴模式(通过长按开始+左键),方向键将获得不同的代码:
Up: "stick_0 axis 1 0"
Down: "stick_0 axis 1 1"
Left: "stick_0 axis 0 0"
Right: "stick_0 axis 0 1"
现在您需要为每个游戏创建一个单独的.conf 文件和一个.map 文件。 .map 文件包含键盘映射,例如对于典型的游戏,文件 my_game.map 可能如下所示:
key_up "stick_0 hat 0 1"
key_down "stick_0 hat 0 4"
key_left "stick_0 hat 0 8"
key_right "stick_0 hat 0 2"
key_space "stick_0 button 0"
key_esc "stick_0 button 3"
key_p "stick_0 button 9"
key_lctrl "stick_0 button 8"
mod_3 "stick_0 button 8"
key_q "stick_0 button 9 mod3"
首先映射箭头,然后映射游戏中其他有用的键,最后一部分做了一件棘手的事情:它将 Select 映射到 Ctrl 和 mod_3(虚拟修改键DOSBox),然后在 mod3+Start 上发送键 Q。这意味着按 Select+Start 实际上会发送 Ctrl+Q(退出),但 Start 本身不会发送 Q(仅 P,如上定义)。
遇到不能正常退出的游戏,可以这样杀掉DOSBox:
mod_3 "stick_0 button 8"
hand_shutdown "stick_0 button 9 mod3"
然后你在roms/pc中创建一个my_game.conf文件:
[sdl]
mapperfile=/full/path/to/my_game.map
[autoexec]
@cd /games/my_game
@my_game.exe
@exit
(不确定,也许映射器的相对路径也可以。)
而且我假设安装操作是在主 DOSBox 配置 (config/dosbox-SVN.conf) 中定义的,类似于:
[autoexec]
# Lines in this section will be run at startup.
# You can put your MOUNT lines here.
@mount c /home/pi/RetroPie/roms/pcdata
@c:
这里我把所有的DOS文件都保留在roms/pc中,而不是在roms/pcdata中,以防止exe/bat/com文件直接出现在游戏列表中。我只希望我的 conf 文件出现在那里。
最后一个通知:正如我所说,整个控制器被视为一个操纵杆,一些游戏,例如波斯王子,当使用操纵杆启动时,进入操纵杆模式并且不会对箭头做出反应根本。在这种情况下,您可以改为映射方向键,例如A到摇杆,像这样:
jaxis_0_1- "stick_0 hat 0 1"
jaxis_0_1+ "stick_0 hat 0 4"
jaxis_0_0- "stick_0 hat 0 8"
jaxis_0_0+ "stick_0 hat 0 2"
jbutton_0_0 "stick_0 button 0"