|
|
本帖最后由 麻薯滑芝士 于 2026-7-18 09:26 编辑
各位最近正窝在家里翻出落灰的红白机、接上采集卡想在电脑屏幕上重温《魂斗罗》和《超级马里奥》的复古游戏老炮们,各位对模拟器画面吹毛求疵到连扫描线的密度和像素的锯齿都要反复调试、不调到当年坐在电视机前那个味儿绝不罢休的硬核怀旧玩家们,各位小时候家里那台大屁股电视一遇上信号不好就冲上去抬手猛拍两下、深信“拍一拍就能好”这条祖传维修秘籍的80后90后们,各位在macOS上装了各种模拟器、希望能用笔记本电脑找回当年放学回家第一件事就是打开红白机那种感觉的数码折腾爱好者们,还有各位本来对技术话题不怎么感冒、但一看到“拍屏幕修电视”这几个字就忍不住嘴角上扬点了进来的吃瓜网友们——你们今天刷到我这条推送算是捡着宝了,因为就在这个星期六,也就是2026年7月18日,一位履历相当亮眼的软件工程师,放出了一个让整个复古游戏圈子都忍不住多瞅几眼的神奇玩意儿:一个专门给macOS系统开发的CRT显示器模拟器,逼真到了什么程度呢?连当年大家对付老电视画面不稳时那套“用力拍一拍显示器顶部”的土办法,它都给做进软件里了。
这事儿从头说起还挺有意思的。就在这个礼拜二,也就是2026年7月14号,一位网名叫GOROman的开发者,在社交媒体上晒出了他正在捣鼓的一个CRT模拟项目。结果那段演示视频一发出去,评论区直接就炸开了锅——不少看完的人纷纷留言说,大哥你这哪儿是模拟CRT显示器啊,你这分明就是个“CRT损坏模拟器”嘛!因为当时那个画面效果,什么屏幕疯狂闪烁啊、满屏雪花噪点啊、色彩偏移和几何失真啊,全都给拉到最大了,看起来活脱脱就是一台用了快二十年、天线接头都锈蚀了的破旧电视机在做最后的挣扎。说白了,就是大家普遍觉得他把那些CRT特有的负面效果做得有点过头了,过了那个“怀旧”的界,直接奔着“搞笑”去了。面对铺天盖地的吐槽,GOROman也没急着辩解,反而觉得这个反应挺有意思的。然后到了今天,也就是7月18号这个星期六,他又甩出了一段新的演示视频,告诉大家:你们上一回不是说我这模拟器看起来像坏电视吗?行,那我就顺着这个思路往下走——我给它加了一个功能,你要是觉得画面抖得厉害、颜色飘得离谱,就像当年对付老电视那样,抬手对准显示器顶部来一巴掌,画面立马就能给你稳住,效果立竿见影。不信是吧?他自己录了完整的操作视频,就嵌在这篇文章的下方,你们自己点开看看,亲眼见证一下这个神奇的过程。
那么这位GOROMan到底是何方神圣呢?说出来你可能得高看他一眼。他早年在世嘉当过软件工程师,后来又在Facebook干过一阵子,正儿八经的科班出身、实战经验拉满的老程序员。他现在折腾的这个项目,软件的名字挺长一串,叫做famicom-rf-hackrf-decoder,乍一看有点绕嘴对吧?我给你捋一捋你就明白了。简单来说,这个软件干的事情就是:接收来自红白机——也就是日本本土版本的Famicom,北美那边叫NES——通过射频线发射出来的VHF射频信号,而且这个信号是NTSC-J制式的。NTSC-J是日本地区专门用的电视彩色编码标准,跟我们国内以前的PAL制式不太一样。那它是靠什么来接收这个信号的呢?靠的是一个开源的软件定义无线电设备,名字叫HackRF One。你把红白机通过射频输出线连接到HackRF One上,再把HackRF One插到你电脑的USB口上,然后在macOS系统里运行这个famicom-rf-hackrf-decoder软件,就能把红白机实时跑着的游戏画面给抓取下来、显示在电脑屏幕上了。
具体操作起来是这么一回事:当软件正常运行、红白机也通过HackRF One连接妥当之后,游戏主机发出的射频调制视频信号,会被发送到VHF频段的1频道或者2频道上。按照正常的逻辑,你得有一台老式的CRT电视机才能接收到这个信号、把它转化成图像显示出来。但GOROman厉害就厉害在,他用纯软件的手段,把整个NTSC-J彩色解码的完整流程都在电脑里给跑了一遍,然后把解码之后的画面实时呈现在macOS的桌面上——用的是一块现代的LCD液晶显示器,画面就安安稳稳地待在一个窗口里,不占全屏。这个实时渲染的工作,是通过SDL2这个跨平台的多媒体开发库来实现的。换句话说,你在macOS桌面上看到的那个小窗口,里面每一帧的游戏画面,都是从红白机原始的射频信号里实时解码出来的,延迟控制得非常低,效果可以说是相当惊艳。
不过这里面藏着一个挺棘手的底层技术难题,GOROman自己也专门做过解释:红白机输出的视频信号,从根儿上就不符合标准的广播电视规范。具体来说,它的扫描方式是逐行的非隔行240p,而不是电视广播通用的隔行480i;它的色度相位每扫描一行就会超前120度;而且每一帧画面里还多出了一条短行。这些乱七八糟、不按常理出牌的信号特性,你要是直接往现代液晶显示器上怼,画面就会出现各种奇奇怪怪的毛病,比如整体漂移、局部抖动、色彩锁不住、色爆信号不稳定等等。为了解决这一堆麻烦,解码器不得不在后台同时运行好几套独立的处理流程,目的就是模拟老式模拟电视内部那颗“大脑”——也就是那些负责同步分离和色度解码的模拟电路——这样才能把画面的稳定性和色彩的准确性给牢牢锁定住。说穿了,GOROman干的这件事情,本质上就是在软件里从零开始重建了一整套完整的模拟电视信号处理系统,难度可想而知。
那他最开始放出来的那个演示视频,为什么看起来那么像一台“彻底坏掉的电视”呢?GOROman自己给出了解释:那是因为他故意把VHF的接收频率给大幅度偏移了,而且偏移的量非常大,目的就是想玩玩看效果、看看能搞出什么花样来。说白了,那根本就是一个故意做出来博大家一笑的搞笑演示,目的就是吸引眼球、制造话题。事实证明这招确实管用——评论区一片欢乐祥和,大家全都被这个“损坏模拟器”给逗得不行,讨论热度一下子就上来了。
那到了今天这个新视频里,情况就完全不同了。GOROman展示了一个全新的互动机制:当你觉得画面抖动得厉害、颜色飘得离谱的时候,伸手拍一下显示器的顶部——当然,这里拍的并不是一台真实的、几十斤重的老式CRT显示器,而是轻轻拍一下你笔记本电脑屏幕的上沿——神奇的事情就这么发生了,原本还在那儿晃来晃去的画面,竟然真的慢慢稳定下来了,就好像当年你拍完电视之后画面逐渐恢复正常那样。这个功能背后到底是怎么实现的呢?目前网上有好几种猜测。有人在X平台——也就是以前的Twitter——上留言分析说,会不会是利用了MacBook屏幕转轴里面内置的角度传感器?当你拍打屏幕顶部的时候,屏幕的开合角度会发生极其微小的变化,传感器捕捉到这个变化信号,然后触发画面稳定程序开始工作。不过我专门去翻了翻GOROman在GitHub上公开的源代码——这个项目采用的是MIT开源许可证,代码是完全对外开放的,谁都可以去看——我发现里面有一个输入变量的名字叫做“audio tap”,翻译过来就是“音频敲击”。所以这个拍打修复的功能,更大的可能性是通过MacBook自带的麦克风来采集拍打屏幕时产生的那一声闷响,软件识别到这个声音信号之后,就知道该启动画面稳定算法了。也就是说,它不是靠角度传感器,而是靠听声音来判断的。
更有意思的事情还在后面。GOROman的社交媒体评论区里已经有好事者提出了一个新的请求:能不能加一个磁铁模式?就是拿一块磁铁靠近屏幕,让画面跟着扭曲变形,就像当年老式CRT显示器一旦旁边放了音箱或者其他带磁场的物件,屏幕角落就会出现一大片诡异的色斑那样。GOROman看到这个请求之后会怎么回应呢?谁也说不准。但按照这位老哥一贯的调性——从故意搞出“损坏模拟器”到加入“拍屏幕修复”,每一步都不按常理出牌——说不定明天他就真的给你整出一个磁铁互动模式来,到时候拿块吸铁石往笔记本旁边一凑,画面就开始扭麻花,那可就更有的玩了。
说到底,GOROman做的这个东西,已经远远超出了一个普通模拟器的范畴。它把一代人对老式CRT电视那种深入骨髓的身体记忆——信号不好了抬手拍一拍、颜色不对了拧一拧旋钮、画面滚动了调一调垂直同步——全都用软件代码给复刻了出来。对于经历过那个年代、看着满屏雪花点长大的老玩家来说,这种交互方式本身就自带一股浓得化不开的怀旧气息,甚至比单纯的画面滤镜和扫描线叠加更能唤起内心的共鸣。而对于那些没赶上CRT时代、从小看着高清液晶屏和OLED面板长大的年轻玩家来说,这种“拍屏幕修画面”的操作大概会觉得既新奇又好笑——原来你们当年就是用这么简单粗暴的办法修电视的啊?
新闻来源:Tom‘s Hardware
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
x
|