RetroArch的控制系统实际上比较复杂,值得专门写写。
RetroArch直接启动时候的菜单可以叫作第一层菜单,里面的控制实际上是第一次映射。
这一层的目的是将你的物理输入设备,包括键盘,鼠标,游戏手柄,映射到一层虚拟的Retropad输入,本质是个中间层。
建议进去之后直接打开”自动配置“。
对于绝大部分设备,自动就帮你配置好了各种映射关系。

下面用我的Xbox手柄来作为例子。在第一层控制设置中,请注意看左侧的虚拟层”物理”位置说明,然后看右侧你的物理设备。
注意看下图。
左侧虚拟层的A按键的图示代表最右按键,但是对应Xbox手柄的B按键。当然,在Xbox布局中B也是最右侧。
你应该也发现了,最重要的是物理上的对应关系,而不是字符的对应关系。
我将真实的最右侧按键,直接映射到了虚拟手柄的最右侧按键,实现了物理上的一一对应。
等待加载游戏了,你才会看到重映射功能。
一般来说,你在游戏加载之后按F1 (默认),才能看到"快捷菜单"功能。这个菜单中你还会看到一个”控制“菜单,这次你设置的就是所谓”重映射“。
它会将你之前配置的那个虚拟Retropad映射到实际的游戏中。


注意看上图中的图示。
上图中我框选的位置,图示代表最右侧按键(虚拟中间层)。然后它立即跟随了文字说明。说明提示了它对应的是Xbox360手柄的B按键(在第一次映射中我专门提到过),以及键盘的X按键(也在第一次映射中提到过)。右侧则对应了MD手柄的C按键。
现在你理解了这种图示代表虚拟的物理位置,文字描述代表了实际的物理设备字符的表示结构了吗?
以后你的所有设置,都应该在第二层重映射中做修改,不要去动第一层映射的物理关系对应,不然你的脑子会乱的!
具体到游戏的映射上,因为游戏和游戏是不同的,所以实际设置还不太一样。
比如火枪英雄这种游戏,只需要处理MD手柄的ABC和方向,以及开始和选择。
但是对于某些其他游戏,可能需要同时使用ABC +XYZ+其他按键。这时候想映射到Xbox手柄就需要不同设置了。
Xbox手柄在右侧只有4个按键,想要完整映射ABC+XYZ就必须使用RT或者RB等等按键。
另外,在不同的游戏中,你很可能需要交换ABC(第二次映射)跟第一次映射的关系。方法是在游戏运行之后的”快捷菜单“中选择控制,调节重映射(右侧)的内容。
在修改之后,记得选管理重映射-针对该游戏保存。
这样就只保存针对该游戏ROM的设置。
对于绝大部分情况,实际上RetroArch已经做了默认映射。
不管是第一次映射还是第二次映射都可以使用默认的,你稍微使用调节下,可以将其保存为”针对该游戏文件夹“保存。
以后,只要是这个文件夹里面的游戏rom加载,都会自动套用这个重映射方案。
再碰到特殊游戏,就保存为”针对该游戏“。
在你保存之前,会有个选项是保存游戏重映射文件。如果已经保存过了,就只能看到”删除游戏重新映射文件“。
越是具体的配置文件优先级越高,所以这种设置不影响整体。
想象一个场景,如果是直接物理设备到游戏手柄的映射,那么你每次换不同输入设备,比如从键盘鼠标换到PS手柄,换到Xbox,换到NS pro手柄,每次都会需要设置其中的关系。
现在你直接套用一个中间层,不管你怎么更换物理设备,都可以保证中间层位置到第二层的映射关系稳定。
看完这篇文章你应该基本理解原理了,下次碰到类似情况可以自行研究或者直接问Ai。