【BUG修复】手柄支持补丁(支持PS4、XBoxOne等手柄)
本帖最后由 Ritard 于 2020-6-28 05:15 编辑特别追加说明:
1.本补丁因为仍是通过外部模拟Steam实现的控制器支持,所以对于部分电脑硬件仍无法做到完全支持(存在各种各样无法识别的Bug)。
2.FitGirl版附带补丁与本补丁相同。
3.目前Epic上的版本已移除Denuvo,若不久之后Epic的新版分流放出就能彻底解决手柄支持的问题。
由Proper大佬带来的手柄支持补丁,虽然仍有只能支持单一手柄的问题(不能用双手柄进行双人模式),但至少在完全支持了XBox全系列手柄的同时还支持了PS4手柄及其陀螺仪。
补丁焊接:https://pan.blacksheepgame.com/s/1D636GWr_m_RC5SLRFQQjDQ
密匙:hekd
以下为原帖内容:
之前坛里用于解决Xbox One手柄识别问题的文件实际上是Git上一个叫Goldberg Emu的Steam模拟器的实验项目。因此使用手柄识别文件实际上是存在下述缺陷的:
1.对于Xbox手柄的按键映射实际上是不全的,缺少的按键如何设置下文会详细说明。
2.因为这个Steam模拟器目前只支持XInput输入,所以是不支持DS3、DS4手柄的,进而也不支持游戏内原本会有的陀螺仪操作。
3.使用手柄修复文件版本的这个模拟器的文件会导致语音的语言被锁定为英语不能更改。
因为Steam的内部对于输入按键事件是以行为代码的方式接收处理的,所以所有的按键行为(如按下十字键的上键、按下扳机键)都会被映射为一个具体的事件名称(如DUP、DRTRIGGER)。
所以只有通过Windows的设备输入api将系统硬件输入的事件对应的翻译为Steam接收的行为事件才能让游戏真正识别到这些输入(比如系统api告知你接收到了事件dpad_up,也就是你按下了十字键的上键,此时你要告诉Steam行为事件DUP它才能识别)。
因此,对于Goldberg Emu来说,GamepadSetting.txt这个文件就负责了这个事件一一对应的工作(具体可对应Steam内部行为名称见https://github.com/su6ur6an/goldberg_emulator/blob/master/Readme_release.txt,文档末尾还有关于更改语言的部分能解决上面的问题3)。
所以,现在这个修复文件仍然解决不了的问题就是怎么支持DS3、DS4的问题。现在我想到的方案是在作者源码的Controller部分链入windows direct input的事件处理api,然后想办法找到对应PS手柄的行为名称,最后再将其映射为对应的ACTION_NAME。
66666666666666666666666666
顶顶顶顶顶顶顶
页:
[1]