StrollerRalphy 发表于 2020-1-20 15:08

[教学]Mr_Goldberg的手柄补丁 按键信息是如何取得的

写在前面:本文是为回应网友的请求而写 @dfgy84

获得手柄按键信息的前提是拥有游戏的原始副本,然后获得合法授权(即正版)或使用GLR+acf进入,当然,对于老鸟来说acf文件可以自己做。但无论如何,对于一般的“解压即玩”式的玩家,可操作性都不是很高,毕竟每个人的基础不一样。因此,本文的教学在于解惑,且并不奢望能帮到所有玩家。


如今Mr_Goldberg EMU的手柄补丁也应用在了不少不支持手柄的游戏上,细心的朋友会发现手柄补丁的文件结构很统一,一般是由一个api文件+一个steam_settings文件夹组成,而steam_settings文件夹中一般包含了游戏的APPID、DLC信息和控制器按键设置信息。有坛友问我如何确定按键设置的信息,也就是controller文件夹中的txt是如何确定的。按照约定,我出一篇教程,告诉各位按键控制信息是如何获得的。



这里就以《生存者同盟:高清重制版(The Alliance Alive HD Remastered)》(https://bbs.3dmgame.com/thread-5991074-1-1.html)这款游戏为例,重现一遍我制作手柄补丁的流程。

首先当然是编译Mr_Goldberg提供的API和查询各类DLC添加信息等。当然,这不是本文的重点,如果你不懂C语言,那我就是在对牛弹琴,此处表过不提。

然后,使用Steam启动正版游戏或使用GLR+acf的方法启动游戏,进入steam游戏库中。这也不是本文的重点,关于GLR+acf的使用方法,可以翻查我之前写的一些教程:
https://bbs.3dmgame.com/thread-5930502-1-1.html
https://bbs.3dmgame.com/thread-5872932-1-1.html

下面就是如何获得手柄按键信息的正文了:

在插上手柄的情况下,点击下图“控制器配置”:


一般来说,此类不支持手柄的游戏,官方都会很贴心的提供推荐的按键设置,进入控制器配置后会如图所示:


当然,你也可以按X键(在这里的按键一律以XBOX1类手柄为例,下同)选择其他方案,按A导入,我这里还是以官方推荐的方案导入为准:


不管你选择导入哪种手柄配置,还是选择自创按键设置,最后都请回到有手柄图案和按键设置的界面。


在手柄按键设置界面按Y键 导出配置,保存设置 --> 个人 --> 只在本地保存新的按键设置文件:


保存按键方案的名字,我这里为了演示,给起个方便的名字:ABC123,按下保存:


完成这一切后,进入文件夹:Steam客户端\userdata,直接搜索ABC123,也就是刚刚我们保存的按键方案名称:


搜到了,右键,打开文件所在的位置:

将文件复制出来,然后用记事本或Notepad++等文本编辑器打开,搜索action_layers,在它下面几行会发现按键信息,我在这里把我提供的手柄补丁中的按键方案拿来对比一下:


聪明的你应该知道如何设置按键的了吧。

按键设置txt文件中,等号右边的信息是固定的,记下来一一对应就可以了。



总结一下,Mr_Goldberg的手柄补丁之所以可以生效,就是因为其整合了Steam提供给开发者使用的控制器SDK,所以取得按键方案的方法也是靠Steam平台本身获得的。
这一切既要归功于Mr_Goldberg的工作,也要得益于Steamworks SDK的开放性,不过需要强调的是,V社开放SDK并不是因为G胖仁慈,而是这么做能吸引游戏开发者更方便地在Steam平台发布游戏,弊端就是黑客们拿到SDK后制作EMU(未加密补丁的一部分)十分简单,算是有利有弊吧。(Steamworks SDK下载:https://partner.steamgames.com/downloads/steamworks_sdk.zip)




dfgy84 发表于 2020-1-21 05:02

感謝大大解惑以及詳細的教學,
好文值得收藏!

huirejr 发表于 2020-1-21 10:57

這個太複雜了(飄過{:3_93:}

newkyo 发表于 2020-1-21 11:54

这个和S组那种支持手柄的未加密区别在哪? 呃,,其实我主要想问问能不能解决S组的大神未加密,手柄开震动就会掉帧的问题。。

tomn123456 发表于 2024-8-15 00:51

這個太複雜了

咖啡苦 发表于 2024-8-15 12:15

看起来不错

exgbit 发表于 2024-10-31 08:44

感谢分享这篇详细的教程,这对于想要了解手柄补丁实现原理的玩家来说无疑是一个很好的帮助。看起来手柄补丁的制作流程并不算简单,不过通过这个指南,相信不少人都能尝试自己动手。
页: [1]
查看完整版本: [教学]Mr_Goldberg的手柄补丁 按键信息是如何取得的