目前针对手柄无效,语言设置无效,DLC无效的解决办法和原因(原理)剖析
很多人以为手柄之所以无效,是因为南梦宫在搞鬼,其实是大冤枉.其实主要原因是因为游戏对手柄的处理,并非是直接调用XINPUT库去处理,因为这样做的话,
就只能支持XBOX家族的手柄,无法支持PS/NS家族的手柄.
于是南梦宫就采取调用STEAM INPUT(简称SI)的API来桥接手柄,SI其实就是一个手柄桥接库,主要作用是负责统一不同手柄的输入键值.
好处就是不用游戏针对不同的手柄做相对的处理.南梦宫之所以采取这个方案,完全是为了照顾玩家,这里的玩家应该是特制PS手柄的玩家.
网上流传的所谓手柄修复补丁,其实是不存在的.为什么使用了那些steam_api64.dll文件后,游戏的手柄功能就正常了,而游戏文字却乱码了?
原因其实很简单,因为你们使用的那个steam_api64.dll是"坏"的文件,是一个无效的文件.
要"修复手柄功能"其实很简单,只要将一个无效的steam_api64.dll文件替换原来的文件就行了.你可以随便去别的游戏里面找一个来替换.
不过一旦这样做了的话,那么等于是steam平台的所有功能都会丢失,比如"语言设定"和"DLC"功能.而这个游戏对手柄的处理却有两套方案,一旦Steam平台功能失效之后,它并没有崩溃,而是采取了第二个方案,就是直接调用Xinput来处理手柄了.(尴尬)
明白了否?这个就是为什么兼顾了手柄功能之后,却无法使用DLC和设置语言了
如图所示,更换了无效的steam_api64.dll之后,手柄功能虽然正常了,但是所有Steam平台功能丢失,游戏自身有报错的,不过并不影响游戏继续运行:
目前的解决方法其实很麻烦,也可以说很简单吧,你只需要模拟一个完整的Steam平台环境就可以支持Steam Input了.但是目前的所有未加密补丁,
基本上都是没有实现SteamInput功能的,我相信各大未加密组也不会为了这个游戏而帮补丁去实现Steam Input功能.
所以等待也不是办法,那么既然这个游戏可以脱离steam平台玩,那么只要处理好语言方面的问题就行了,不要DLC了.
游戏在丢失Steam平台功能之后(原本这个语言功能是由Steam平台提供),它会查询系统获取当前系统的UI语言是什么,使用系统的语言作为游戏的默认语言.
所以也有人利用修改系统的默认语言来解决了这个问题,不过这样未免太麻烦了.
我简单修改了一下游戏的主程序,让其获取系统默认语言的时候,返回的是zh-TW,那么它就可以正常显示繁体中文了.
以上,就等于是解决了手柄问题和语言问题,但是,DLC问题是无法在脱离Steam平台功能下使用的,所以,DLC就只能放弃了.
这个简单修改过的游戏程序,我提供给大家下载:
https://pan.baidu.com/s/1wSaoLtMm_u-Ln4iqyEByVA 提取码: drha
里面附带了一个"steam_api64.dll",必要时候,你可以使用这个替换掉你现在使用的文件.
大神每次都是最靠谱的 牛B的技术贴,给大神一个大大的赞!! 学习了~ 这也太硬核了 置頂:):):) 不明觉厉 楼主牛逼 有用 太棒了!感谢讲解以及分享!
厉害,学习了 原来是这样,其实dlc不怎么重要 几件衣服而已 这都下班了,技术大神终于现身了 谢谢分享 终于等到谢谢大佬 我下载了之前那个可以用手柄但是无法解锁dlc的steam_api64.dll再把dlc解锁的steam_api64.dll覆盖之后手柄可以用但是原本的按键混乱了,比如手柄a和b都变成了确认,没有返回键了,移动键变成调整视角的了:@:@:@:@:@ 会出现一刀一卡顿的情况吗? 那为什么绯红能直接玩啊 好厉害!! 虽然其实并没有看懂,但是我大受震撼,,感谢大佬的分享 大佬我有个问题,那么失效dll的情况下存档在哪? 我来反馈下,用了楼主这个确实可以用手柄,而且是中文的。没有DLC。
感谢楼主~~~~~~ 感谢大佬!终于能用手柄玩了! 目前唯一完美解决的,瑞斯拜 看技术还是要看大神..
这么一来.除非官方自己出补丁或者出gog epic版本不然就是无解了 我去 厉害了 66666666666666666666 可真牛啊! 厉害了,谢谢大神分享 这就是大神吗,爱了爱了 貌似就是要手柄就不要DLC
要DLC就不要手柄~~~
但是目前的情况是都想要啊!