本文无脱水篇,老手请无视。实在想看“脱水”部分,建议直接跳“划重点”部分。
前言篇
Retroarch,全能模拟器(以下简称RA),众所周知的难用。
这个模拟器野心很大,要把几乎所有流行的模拟器都做进去,所以对各机种模拟器的差异有通配化需求。然而,通配是不可能通配的,把不同的面团捏到一起去,本身就很困难,只能说想办法让各方面尽可能协调起来。所以开发者在软件兼容性方面必然要做出一定程度的妥协,这表现在控制、图形、音频、模拟精度、文件存储格式等方方面面。其中,按键的映射是最为让人头痛的。
初次接触RA时,最为劝退的就是其手柄设置,因为它的映射逻辑不像其他任何模拟器。单一的模拟器只需要对自己进行服务,RA则需要应对玩家的不同设备及多个模拟器核心的操控方式,因此采用了一种反直觉、甚至被大众称为“反人类”的映射逻辑。然而,当你理解了它的逻辑后,你会明白RA开发者的良苦用心——这恰恰不是想刁难玩家,而是体现出开发者最大善意的,极具人性化的开发目标。
本文主要针对RA的初学者,把逻辑和设置方法讲清楚,帮初学者渡过劝退期,这样以后就能充分体会到RA的强大和乐趣。实际上,RA最为劝退的,也主要就是按键映射。过了这道坎儿,其他的设置也就没太大难度。RA熟手请自动无视本教学。
原理篇
先说RA为什么要把按键配置搞那么复杂。
普通单一机种的模拟器,玩家只需要把自己的控制器(键盘也好手柄也罢),在映射里一一设置好就行,对不同游戏的操控异化,顶多在模拟器里多出一些保存不同方案的选项,这些都比较直观。
一般模拟器设置按键是这个样子的,非常直观
但是RA却有两个设置,很容易把人绕糊涂了。我们在RA中看到的手柄设置是这样的:在设置里,有一个输入- RetroPad binds(RA手柄绑定)-端口1控制。在打开游戏后,呼出RA菜单时,竟然在快捷菜单里还有一个控制——端口1控制!
上图是在设置里的控制器映射,你只运行RA而不打开任何游戏,或者在运行游戏时,都能看到这个设置。
上图是必须运行任意游戏时,呼出RA菜单,才能看到的快捷菜单。在菜单-快捷菜单-控制-端口1控制。如果你只打开RA而不载入任何游戏,菜单右边的选项是看不到“快捷菜单”的选项的。
初学者此时往往一头雾水:为什么有两套按键设置?我到底设置哪个好?模拟转数字类型又是什么鬼?B键(下)A键(右)——这括号里的方向又是什么鬼?我到底应该怎么设置按键?设备编号(不可用),我明明映射了功能,为什么还显示(不可用)?
别着急,我会针对这些问题一一解答。
首先,为什么有两套按键设置系统?这是RA与其他模拟器最大的区别。
先看一下这张图:右边一列代表RA包含的众多模拟器,如果RA参照普通模拟器那套映射逻辑,那么玩家在切换不同操控方式时需要进行映射的次数用连接线表示,可以看到数量相当可观。
我们举例说明一下操作的复杂情况。当你用Xbox手柄玩RA时,会像在现实中使用不同模拟器一样,在MAME、FBN、VBA等模拟器中分别设置一次……每增加一个模拟器就需要多设置一次。当你把Xbox手柄换成键盘、摇杆或其他手柄,那就需要重新设置所有模拟器的映射。RA内置了那么多模拟器,一旦玩家更换控制器,就面临着数十次重新映射的工作。如果玩家操作设备多且经常更换的话,这会更加麻烦,将成为上图所示的情况,玩家面临排列组合很多次的映射。
为了应对这种情况,RA不允许玩家的控制器(手柄、摇杆、键盘)直接与模拟器建立联系,而是建立了一个“虚拟手柄”的角色,即上图正中间的手柄,让它充当“中介”。这个手柄在现实中是不存在的,它只是逻辑上存在于RA内部,是一个具有通用按键的“标准化手柄”。你可以把它理解为一名看不见的“管家”或者是“翻译”。图中左侧一列是玩家们在现实中可能使用的各种手柄,它们的键值键位和驱动都存在差异。RA各个核心(即不同模拟器)对这些手柄键值的理解自然存在差异,此时,我们的“管家手柄”就充当现实手柄在RA内部的化身。只要我们将“总管家”与模拟器对应的键值一一绑定好,那么无论外部的真实手柄如何变化,都不需要在RA内重新映射每个模拟器的操作。
应用篇
第一次运行RA时,最重要的是使用你目前的手柄与这个“虚拟手柄”进行键值绑定。此时,单独启动RA,切勿从天马或其他前端进入RA,因为那样设置不会被保存,然后到设置-输入里改映射。配置时,首先要确认设备编号是你插上电脑的手柄。如果是“不可用”状态的话,那只能将按键映射给键盘。“设置所有控制”就是RA自动安排你依次输入所有的按键来绑定。“重置所有默认”则是恢复RA给的默认键值。你也可以从“十字键”开始挨个点击鼠标,再输入键值来自由映射。输入键值时,需要长按某个键3秒钟才能被识别(1.18.0版后不需要长按),以防误触。虚拟手柄支持外部多个键值的输入,例如方向键,你输入键盘W后,下次插手柄输入上方向,原有的W也不会被取消。这样做的好处是,当你更换回键盘时也不用重新绑定。
当设置到按键时,看到ABXY旁边都带“上下左右”的方向,这个方向和摇杆或十字键无关。因为每个玩家用的手柄ABXY位置不一样,RA开发者怕玩家将现实中这四个键的位置与虚拟手柄对应起来而搞错映射,所以标注了四个键在虚拟手柄中的相对位置。换句话说,这里在按键字母旁标注上下左右只是为了告诉玩家RA的虚拟手柄按键是什么分布。按照RA中B(下)、A(右)、Y(左)、X(上)的位置关系,可以推测其虚拟手柄的按键是任系的布局。此时,如果你现实中用Xbox手柄(与任系正好相反),你就把Xbox的A映射给RA的B(下),B映射给RA的A(右),以此类推。如果你使用的是索尼手柄,你可以把□映射给同样处在左侧的Y(左),△映射给同样处在上面的X(上)。总之,无论你用什么手柄,只要按键成菱形四向排布,都按照它的上下左右关系来映射,不是按印刷字来,就不会错乱。映射时如果不小心输错了,想把该键留空怎么办?只要把光标移动到上面,按键盘“delete”或你手柄对应图中“Y(左)”的那个键就行。
如果你用世嘉MD的6键手柄呢?虽然键位和RA虚拟手柄不一样,但我们可以在脑子里进行转换。习惯上来说,RA默认将Y(左)当成按键1,往往对应动作游戏的攻击键。B(下)默认当成按键2,通常对应动作游戏的跳跃键或飞机游戏的炸弹键。按键3和4分别对应A(右)和X(上),而L和R肩键对应的就是MD手柄的第5和第6个按键。
本图提供一个习惯上的布局供参考,你也可以根据个人习惯自定义映射
把你在现实中的按键与RA“虚拟大管家”按键一一绑定起来后,一般来说,任何模拟器在打开游戏时都不需要重新映射,因为RA的作者已经把虚拟手柄的按键为所有模拟器都映射好了,这些映射符合大部分人的操作习惯。但是,如果有少部分游戏的按键不符合你的习惯,还可以在运行游戏时用快捷菜单重新映射。
下面是用FC宇宙巡航机举例说明:
如果我们用FCEUmm这个模拟器核心玩《宇宙巡航机》,这个游戏官方给的键值是按键1强化,按键2攻击,而玩惯《沙罗曼蛇》的玩家喜欢将按键1设为攻击,按键2设为强化。此时,我们可以进入菜单-快捷菜单-控制-端口1控制。
这里更改键值的方法很多,不需要像在通配设置里那样长按某个键。你只需将光标移到相应选项上,按确认键或鼠标单击进入二级菜单,选择对应的按键即可。你也可以不进入二级菜单,直接在光标放在选项上时按左右键来调整键值。如果想清除键值,和前面一样,将光标移动到相应选项上,按键盘“delete”或手柄上对应的“Y(左)”键。
设置完之后,如果不把按键配置单独保存,那会被RA识别为全局更改,下次进入任何FCEUmm打开的游戏时,都会将AB键顺序搞反——这不是我们想要的效果。因为我们仅仅想将《宇宙巡航机》这个游戏的操作改成自己习惯的反官方键位。所以,在完成上述设置后,我们从“端口1控制”返回上级菜单,进入“管理重映射文件”,选择“保存游戏自定义键位文件”。这样,下次只有进入这个游戏时会加载我们自定义的键位设置,其他游戏则保留原有的键位顺序。其他保存方式在图中的文字也有说明。当用FCEUmm打开任何ROM时,会自动载入一套映射方案,但载入按键方案的优先级总是:按游戏保存 > 按文件夹保存 > 按核心(模拟器)保存。
RA的映射方案文件以.rmp后缀命名,存放在RetroArch\config\remaps路径下。这里有很多以模拟器核心命名的文件夹,每个文件夹会将按核心、按文件夹、按游戏保存的.rmp文件存放在一起。
街机的映射由于引入了MAME核心,会更加复杂一些。MAME核心运行游戏后,除了RA给出的映射外,还有一套它自己的体系。它可以像PC版MAME那样,按下Table键弹出MAME菜单再进行设置,包括自定义映射、金手指等。
如果在“输入设备(此系统)”改过按键,RetroArch\saves\mame\cfg路径下自动生成该ROM名称命名的.cfg文件。由于街机游戏操作的差异性,建议在使用fbneo核心或mame核心运行游戏后,根据个人需求调整映射。举个简单的例子,惩罚者默认1P使用惩罚者,如果你只有一个手柄但又想用神盾局长尼克弗瑞,可以在RA菜单中呼出快捷菜单,选择“控制” -> “端口2控制”,将映射端口改为“1”,然后将原来的端口1设备编号改为其他的。如果使用mame运行游戏,还可以利用其自身菜单重新定义第二玩家,将1P以外玩家的按键映射到你的手柄上。当然,这仅适用于需要第二玩家手柄的游戏,你应该在“输入配置(此系统)”中进行调整,以免弄乱所有游戏的配置。类似的游戏还有《落日骑士》,玩家一般偏爱3号Bob和4号Cormano,也可以通过这种方式选择。
前面提到的“模拟转数字类型”,其实是指将十字键的四个方向同时赋予左摇杆或右摇杆。这主要针对比较旧的机种,如FC或SFC,如果你想使用摇杆来控制移动,就要将此项设置为“左摇杆”。一般来说,默认开启它后就不需要再调整了。
关于映射中系统提示“不可用”,这个你不需要理会。在设备编号里提示的不可用,指的是你在没有外接手柄的情况下,RA检测不到额外的控制设备,此时你用键盘鼠标一样可以进行映射。某些地方如摇杆的方向,你没有映射,它显示不可用,也不用理会,这不影响你使用摇杆,也许是系统的显示bug。
其他映射篇
关于RA的按键映射,还需要介绍一下系统按键。主要包括在RA配置中纯手柄操控菜单的功能键和快捷键设置。单独打开RA(不要运行游戏),进入“设置” -> “输入” -> “菜单控制”。在这里,你可以根据个人喜好选择美式或日式操作风格,并设置是否“对调菜单中的确定键和取消键”。选项“统一菜单控制”,影响键盘操作的功能,开启后会强制把手柄和键盘都用你自己映射的那套操作来控制RA菜单——一旦你开启了,想用键盘控制菜单光标时,只能使用自定义的asdw来上下左右移动,而原本的方向键↑↓←→失效了。如果你关闭这个选项,键盘可以兼容asdw和↑↓←→控制,所以我建议你关闭它。选项“全部用户控制菜单”允许同时连接的每个手柄都能呼出和操作菜单。“快捷键”部分允许你用手柄或键盘设置常用的热键。
值得注意的是,“启用快捷键”选项主要用于手柄键位有限时的设置。由于手柄按键数目有限,若你随意将一个按键定义为退出游戏的热键,可能在游戏中误触退出。因此,RA增加了“启用快捷键”功能,你可以将其视为热键开关。只有在按住该键时,再按退出键热键,退出操作才会生效,这样可以最大程度地防止误操作。
“快捷键启用延迟(帧)”是在1.19.1版本中新增的选项。举例来说,如果你将选择键设为快捷键启动热键,当你只想在游戏中使用选择键功能时,如果不小心同时按到某个热键,可能会误触发该热键功能。因此,设置了快捷键启用延迟,可以在按下快捷键后的几帧延迟内,再按退出键热键,避免误操作。
“快捷键设备类型融合”是在1.18.0版本中新增的选项。举例来说,以前的RA版本要求玩家如果将手柄上的LT键设为热键开关,无论使用手柄还是键盘操作,都要求在使用热键前按住手柄上的LT键。这样如果手柄不在身边,只能用键盘操作时,无法使用热键功能。现在的1.18.0版及更新版本分别为键盘和手柄设备提供了独立的快捷键方案,默认关闭。键盘有足够的按键来直接分配给快捷键,而手柄则可以设置带有热键开关的方案,更加人性化。
连发键篇
新版RA的连发一共有四个模式,推荐使用新版(1.19.1之后的版本),因为老版三个模式classic、toggle和hold可能存在名称和功能不对应的情况,以及一定程度的bug。
新版RA的四个连发模式
假设现在以键盘ctrl键作为连发功能的激活键,以合金弹头举例说明:
经典模式(对应老版classic):
在这种模式下,玩家可以通过两种不同的方式实现连发功能。
第一种方式:按住开枪键,然后再按一下Ctrl。这样一来,主角会持续开枪,直到你松开开枪键,此时又会切换回单发模式。
第二种方式:先按住Ctrl再按住开枪键,就可以实现连发。只要你保持按住Ctrl键,再按下任何键都会进行连发射击。如果想切换回单发模式进行蓄力射击,只需松开Ctrl键,此时按下任何键都会进行单发射击。
推荐使用第二种方式,因为它更符合直觉,也更加灵活,特别适合需要频繁切换射击模式的游戏场景。
经典模式(对应老版classic)
经典(切换)模式(新版新增,老版不具备此功能):
要实现开枪连发,只需按住开枪键,然后再按一下Ctrl,即可开启连发功能。之后,持续按住开枪键即可进行连发射击。只需再按住开枪键然后按一下Ctrl,即可切换为单发模式。这种模式适用于任意按键的切换连发功能,是最理想的连发切换模式,推荐使用。
经典(切换)模式
单个按钮(翻转)(对应老版toggle):
单个按钮(翻转)模式
此模式和“连发默认按钮”有关
此模式下连发默认按钮是你能设定的唯一具有连发功能的按键。例如,这里将开枪键(B)设置为连发默认按钮。一旦按下Ctrl,主角就会持续开枪。要停止开枪有两种方法:再次按下Ctrl将停止连射状态,或者按住开枪键,主角将停止射击;松开开枪键后,主角又会恢复连射状态。这种设置适用于特定游戏,例如某些不需要蓄力攻击的飞机游戏,可以解放右手拇指,只需左手控制方向即可。
单个按钮(长按)(对应老版hold):
和上面那种模式类似,不过如果你想让开枪持续的话,必须持续按住Ctrl,松手后就停火。在不松开Ctrl的情况下想停火,必须按住开枪键,主角就会停止射击。感觉这种模式挺反直觉的,比较多余,暂时想不到它的适用场景。
单个按钮(长按)模式
有些模拟器核心自带按键连发功能,可以把连发键映射到独立的按键上,无需开关激活。
如FC游戏,不同模拟器核心对连发的功能的设置还有点区别:
Nestopia核心:只要在按键设置里把Turbo映射给相应按钮就行了。
FCEUmm核心:除了映射,还需要呼出菜单,核心选项-输入,把Turbo-Enable选成全部,也就是两名玩家的连发功能都打开。
组合键篇:
目前RA对组合键支持不是很友好,只对部分游戏做了优化和支持,比如在使用FBN核心时,可以将三个按键同时映射给L、R来使用。
对部分游戏的支持
而新版的RA,对IGS的游戏也优化了一些组合键,例如《西游释厄传》里的聚气。
对西游记释厄传聚气的支持
另外,贴吧大佬【光之心M】编译过的核心fbneo_plus,优化了neogeo游戏的组合键,增加了PGM和CPS1游戏的组合键。
https://github.com/lrf739146825/FBNeo/releases
如果是RA没有优化的组合键,你又想实现,应该怎么办呢?会麻烦一点,照这个思路来做: 比方说要L1映射ABC组合,就在“设置-输入-端口 1 控制”里把L1,R1,R2设为同一个键值给L1。再到“快捷菜单-控制-端口 1 控制”里把A,B,C对应键值分别赋予L1,R1,R2。最后L1就能实现ABC的组合键了。不过这样会更改全局的映射,我不推荐这么做。事实上,RA目前有优化组合键的那些游戏差不多够用了,完全没必要自己再来回映射。比起组合键,我觉得新版RA更新了连发键的经典(切换)模式才是重大进步。实在需要自定义更多的组合键,可以使用各种第三方支持宏或组合键功能的手柄。
划重点:
1.首次运行RA时,先把你的实体手柄和RA虚拟手柄按键一一绑定。具体操作:在PC或安卓上单独启动RA,输入-RetroPad binds(RA手柄绑定)-端口1控制,逐个映射就好。顺便可以把快捷键也映射一下。菜单控制里可以对调确定和取消键,打开是美式操作,关闭则变成日式。
2.进入任意游戏时,一般RA默认会帮你设置好,不需要改动。如果有改动需求,可以到菜单-快捷菜单-控制-端口1控制里自定义映射,之后可以按本游戏、本文件夹或本核心保存映射文件到RetroArch\config\remaps下的rmp文件。下次运行该核心游戏时,载入映射的优先级是游戏>文件夹>核心。对于MAME核心的游戏,还可以在菜单中使用table打开mame菜单进行二次映射,按游戏保存的映射文件放在RetroArch\saves\mame\cfg下的cfg文件中。
3.连发键设置:首先启动RA(单独启动RA而非通过天马运行游戏),设置-输入-全能手柄按键绑定-端口1控制,最下面找到连发,设置一个连发功能的开关。运行游戏时,在菜单-快捷菜单-控制-连发-连发模式-经典(切换),之后你要启用/关闭哪个键的连发,只需要先按住它,然后再按一下开关键就行。
4.个别模拟器连发需单独设置,如FCEUmm核心玩FC游戏时想映射连发键,需呼出菜单,进入核心选项-输入,将Turbo-Enable选项设置为全部。
5.组合键只有部分模拟器核心的部分游戏支持,如果实在想自由使用组合键,可以考虑各种支持宏或组合功能的第三方手柄,也可以等RA更新对组合键支持更好的核心。
结语:
RA模拟器比较难用,但并不是因为开发者想让它如此。那些复杂甚至难以理解的选项背后,都有着开发者的深思熟虑。正是因为它太庞大了,开发者又想在细节上面面俱到,才让新手感到困惑。
实际上,当你掌握了RA映射的逻辑,其他设置也会触类旁通,逐渐变得熟悉起来。
RA的手柄映射虽然复杂,但正如前文所说,它体现了人性化的一面。例如,普通模拟器像MAME这种,若你在有手柄的状态下映射好,一旦换个手柄,或者断开手柄只想用键盘时,所有的键值就会自动清空,你又得重新为键盘映射一次,换回手柄又得如此。而RA支持键盘和手柄同时映射,一旦设置好后断开手柄也不会被这种问题困扰。
当然,RA的映射始终有不尽如人意的一面,例如组合键方面,还有进一步改进的空间。总体来说,随着RA的迭代,目前它的按键功能已经非常好用了。只需要学会映射按键,就能驾驭RA70%的功能了。