给USB-C扩展坞刷个固件,它就变成了Switch 2便携底座
一位开发者发现带屏幕的USB-C扩展坞离Switch 2底座只差几个固件补丁,于是动手补上了私有协议、HDR色彩空间,也坦白了还差什么。
任天堂 Switch 2 的官方底座体积不小,看起来也不是为随身携带设计的。而市面上那些带视频输出的 USB-C 扩展坞虽然常见,却不能直接给 Switch 用——除非,你愿意动一点手脚。
线索:其实已经很接近了
[Nozomi] 经常带着 Switch 2 出门,于是把目光投向了一个普通的 USB-C 扩展坞。经过一番排查,他发现两者的差距并没有想象中那么大。
- 扩展坞能给 Switch 充电,说明 USB Power Delivery 协商是通的。
- 用嗅探器抓包可以看到,DisplayPort 的初始化流程也正常发生了。
问题卡在最后一步:Switch 与底座之间还有一套私有协议需要完成握手。给扩展坞刷入一段固件后,这个协议得以走通,电视模式成功点亮。
HDR 发灰,问题在色彩空间
电视模式虽然能用,但 HDR 画面明显发灰、发白。[Nozomi] 判断这是色彩空间标记不匹配导致的,而这一环节由另一颗芯片负责,因此需要另写一个补丁。再次刷写之后,扩展坞会向 HDR 电视强制发送正确的色彩标签。
不过故事并未到此结束:如果要走 DisplayPort 路径输出 HDR,还需要第三个补丁,而这个补丁目前并不存在。同样,可变刷新率(VRR)也无法工作。
仍然值得一读的排障过程
原文没有给出补丁的具体代码,但整个“从现象反推协议、再逐颗芯片打补丁”的侦探过程本身就很有意思。毕竟对一部分人来说,底座越小越好;而对另一部分人来说,路线恰恰相反——与其买便携底座,不如自己铣一个更不便携的。
原始记录见 [Nozomi] 的博客。
讨论
0 条评论