|
|
各位刚拿到Valve新款Steam Controller 2、正因为它没有原生XInput支持、每次玩游戏都得挂着Steam后台才能正常识别而头疼不已的硬核玩家,平时喜欢捣鼓开源固件、没事就往单片机开发板上刷程序、享受从零开始打造专属设备的DIY极客,家里既有任天堂Switch又有索尼PS5还有微软Xbox、桌面上摆满了各式手柄、充电线缠成一团乱麻的跨平台游戏佬,买了Steam Deck之后天天琢磨怎么才能把它当成一个无线手柄接到客厅电视上用的掌机发烧友,还有那些自己不动手但特别喜欢看民间大神怎么把官方没做好的功能亲手补全、一边看一边喊“卧槽还能这样”的技术围观群众——今天要聊的这个项目,绝对能让你们这群人全都兴奋得从椅子上蹦起来。就在最近这几天,国外一位ID叫Safijari的折腾达人,硬是靠一己之力把Valve新出的Steam Controller 2那个接收器给逆向工程了一遍,然后搞出来一套名为“OpenPuck”的开源固件方案。这玩意儿的牛逼之处在于:它能让你的Steam Controller在不依赖Steam Input、不需要电脑后台运行任何软件的前提下,实时模拟出任天堂Switch Pro手柄、微软Xbox手柄、索尼DualSense(也就是PS5手柄)以及DualShock 4(也就是PS4手柄)的按键布局和通信协议。换句话说,你只需要一个自己动手做的接收器,就能让你的Steam Controller变成一把万能钥匙,想连哪个平台就连哪个平台。而且根据项目介绍,这个接收器的延迟只有1毫秒,比很多原厂无线手柄还快。这操作,简直就是把Valve官方没给的兼容性,自己用手搓了出来,还搓得比原厂更漂亮。
先给不太了解背景的朋友们交代一下来龙去脉。Valve在不久前推出了新一代的Steam Controller,也就是大家俗称的Steam Controller 2。这款手柄延续了初代的设计基因,正面有两个圆形的触控板,背面还有四个可自定义的背键,整体造型跟传统游戏手柄那种双摇杆加十字键的路数完全不一样。Valve做这个手柄的初衷,是想给PC玩家提供一种更灵活、更适合键鼠类游戏的操作方式,尤其是在玩那些需要精确瞄准或者复杂操作的策略游戏、模拟游戏时,触控板的优势很明显。但问题也随之而来:这个新款Steam Controller没有原生支持XInput协议。XInput是微软在DirectX时代定义的一套手柄输入标准,现在Windows平台上绝大多数的PC游戏都是基于这个协议来识别手柄的。没有原生XInput支持,就意味着你不能直接把它当成一个普通的Xbox手柄来用。虽然可以通过在后台运行Steam客户端、让Steam Input帮忙做一层信号转换,但这个流程始终有点绕——你得一直开着Steam,有时候还会遇到某些游戏对Steam Input兼容性不好的情况。对于那些只想插上接收器就直接开打、不想折腾任何中间软件的玩家来说,这个体验确实差了那么一口气。
Safijari显然也被这个问题折磨了很久,但他选择的解决方式不是跑到论坛上抱怨,也不是干等Valve出更新补丁,而是直接撸起袖子自己干。他花了大量时间去逆向分析Steam Controller 2那个接收器的通信协议,然后写出了一套完整的开源固件,取名叫OpenPuck。这个固件的定位非常明确:它是一个专门给微控制器(也就是单片机开发板)准备的底层程序。你只需要去市面上买一块常见的开发板——比如Safijari本人就是从亚马逊上淘来的那块Pro Micro NRF52480,这块板子集成了蓝牙和2.4GHz双模无线模块,正好适合做手柄接收器——然后按照教程把固件刷进去,这块小小的开发板就摇身一变,成了一个专属于你的Steam Controller无线接收器。这个接收器的工作方式也很巧妙:它直接拦截手柄发出的原始数据信号,然后在设备本地完成信号的翻译和映射,完全不需要经过Steam Input那一层中转。这样一来,你就可以获得完整的、实时的、不依赖任何后台软件的手柄模拟体验。
具体怎么操作呢?Safijari在GitHub上已经把整个项目的源代码、编译好的固件文件、以及详细的刷写教程都公开了。你先把那块Pro Micro NRF52480开发板通过USB-C线连接到电脑上,然后让它进入DFU模式——在这个模式下,开发板可以被重新写入固件程序。接着,你把你下载好的Arduino草图文件(也就是固件的源代码编译后的文件)直接拖拽到开发板的存储区里,几秒钟的功夫,这块开发板就变成OpenPuck了。整个过程不需要任何复杂的命令行操作,也不需要安装额外的编程工具,基本上就是“拖进去就完事”。如果你想让最终的成品看起来更精致、更像一个正经厂家出的接收器,还可以用3D打印机自己做一个外壳,把电路板装进去,整体效果就跟商店里卖的无线接收器没啥两样。当然,如果你懒得做外壳,裸板也能用,就是稍微丑了点。
固件刷好之后,怎么管理和切换模式呢?Safijari还专门做了一个配置网页,这个网页通过WebUSB接口跟你的OpenPuck接收器通信。你打开那个网页,连接上接收器,就能看到一个简洁的控制面板,在上面可以随意切换不同的手柄模式。目前支持的模式包括:Switch Pro手柄模式、Xbox手柄模式、DualSense也就是PS5手柄模式,还有DualShock 4也就是PS4手柄模式。每一种模式都有各自的特性。比如说Switch Pro模式,它是原生支持任天堂Switch主机的,陀螺仪和震动反馈都能正常工作,你拿着Steam Controller玩《塞尔达传说》或者《喷射战士》,手感跟在Switch上用原装Pro手柄几乎没区别。当然,如果你遇到某些对兼容性要求比较特殊的游戏或者外设,也可以选择模拟成Hori Pad模式,这个模式会关闭陀螺仪和震动这些额外功能,只保留最基本的按键映射。PlayStation系列的模式目前只能在PC上使用,但有一个例外——DualShock 3模式可以原生支持索尼的PlayStation 3主机,连陀螺仪和六轴感应(Sixaxis)都能用。当然,默认的Steam Controller模式也是保留着的,你要是想用回原本的手柄功能,随时可以切回去。
切换模式的方式也设计得很人性化。大部分情况下,你只需要同时按住手柄背面那四个按键,再配合按下A、B、X、Y中的某一个按钮,就能在不同模式之间快速跳转。不过PlayStation系列的那些模式稍微特殊一点,需要通过那个Web配置页面来手动切换。一旦设置好了,你的Steam Controller就能像原装的Switch Pro手柄、Xbox手柄或者PlayStation手柄那样正常工作,而且完全不需要在后台开着Steam客户端。这一点是Safijari这个方案最厉害的地方——它彻底摆脱了对Steam Input的依赖,实现了真正的即插即用。你带着这个接收器和手柄去朋友家,插上电脑就能直接用,不用管对方电脑上有没有装Steam。
说到性能,项目描述里写得明明白白:这个OpenPuck接收器的延迟只有1毫秒。这个数字放在无线手柄领域可以说是相当亮眼了。要知道很多原厂无线手柄的延迟都在5到10毫秒这个区间,1毫秒基本上已经接近有线连接的响应速度了。当然这个数据是在理想测试环境下得到的,实际使用中可能会受到电磁干扰、距离远近、墙壁阻隔等因素的影响,但从原理上来说,NRF52480这颗芯片本身的射频性能就很优秀,同时支持蓝牙和2.4GHz两种无线协议,用来做手柄接收器绰绰有余。而且因为固件是开源的,如果你对延迟有更高的要求,或者想针对特定的使用环境做优化,完全可以自己去修改代码、调整参数。
除了这个主力项目之外,Safijari还顺手搞了一个很有意思的子项目,叫做“ReversePuck”。这个名字起得也挺调皮,就是把OpenPuck的思路反过来用。具体怎么回事呢?如果你再买一块NRF52840 Pro Micro开发板,刷上对应的固件之后插到Steam Deck上,就可以把Steam Deck变成一个外置无线控制器。它能支持Steam Controller的所有功能——唯一的例外是握持感,毕竟你拿着的是一整台掌机而不是一个手柄,背部那四个握持按键(grip)没法直接映射过来。通过2.4GHz频段,你可以把Steam Deck的按键信号传输到另一台装有OpenPuck接收器的电脑上,相当于凭空多出来一个Steam Controller。这个玩法对那些喜欢在客厅大电视上玩游戏、但又想用Steam Deck的按键布局和触控板来操控的玩家来说,简直是神器。比如你躺在床上,Steam Deck放在床头柜上作为发射端,电脑连着电视在房间另一头,你照样可以用Steam Deck的按键无线控制电脑上的游戏,延迟还很低。
回过头来看看这个项目在整个游戏外设生态里的意义。Valve做Steam Controller的初衷是想打破传统手柄的局限,通过触控板和高度自定义的按键布局来适配各种类型的游戏。这个理念本身没有问题,但现实是大多数玩家还是习惯了Xbox和PlayStation那种传统的双摇杆加按键布局,尤其是在玩那些非Steam平台的游戏时,兼容性问题就成了一个绕不过去的坎。Safijari的OpenPuck等于是在官方方案之外,给玩家提供了一个更灵活、更开放的替代选择。而且因为是开源项目,任何人都可以去审查代码、提交改进意见、甚至根据自己的需求定制功能。这种社区驱动的力量,恰恰是Valve一直以来推崇的开源精神的体现——虽然这次是社区反过来帮Valve补上了短板。
当然,这个方案也不是完全没有门槛。你需要自己去买开发板、刷固件、可能还要3D打印外壳,整个过程对普通玩家来说还是有一定的学习成本的。但换个角度想,这正是DIY项目的魅力所在——你付出的那点时间和精力,换来的是一个市面上买不到的、完全属于自己的定制化设备。而且随着项目在社区里传播开来,说不定很快就会有第三方商家推出预装好固件的成品接收器,到时候普通玩家也能轻松上手了。另外值得一提的是,Safijari在项目说明中提到,市面上其实还有其他类似的解决方案,但他选择使用从亚马逊购买的Pro Micro NRF52480开发板,因为这块板子内置了合适的蓝牙和2.4GHz无线模块,既能保证性能,又容易买到,价格也不贵。
总的来说,Safijari这次搞出来的OpenPuck,用一个不到十美元的单片机开发板,就把Valve官方没做好的兼容性问题给解决了。它不仅让Steam Controller 2能够无缝兼容Switch、Xbox和PlayStation三大平台的手柄协议,还顺手整出了一个能把Steam Deck变无线手柄的反向玩法。1毫秒的延迟、开源可定制的固件、直观的Web配置界面、多种模式一键切换——这些元素加在一起,让这个项目成了近期游戏外设DIY圈子里最亮眼的存在。对于喜欢折腾的玩家来说,这无疑是一个周末消遣的好项目;对于只想好好打游戏的普通用户来说,它也预示着未来可能会有更成熟的商业产品出现。反正不管你是哪一类人,这个故事都挺值得关注的——毕竟,还有什么比一个玩家自己动手把官方产品做得更好、更强大、更自由,更让人热血沸腾的呢?
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
x
|