
当大多数人设法使旧事物复活时,他们会很高兴。 渴望重新体验青年的经历的无穷渴望使我们以我们早已被遗忘的方式。 在途中,有时我们会遇到被遗忘的回忆,这些回忆会唤起其他被遗忘的回忆,这些回忆使我们能够重温多年来甚至数十年来从未想过的快乐时刻。 有人回到高中,到
傍晚的汽车走路 ,收音机的音量被调到最大,返回了
福特温莎发动机的轰鸣声。 对于80年代和90年代出生的人来说,此类游戏可以触发视频游戏。 谁能忘记来自Microsoft Office的辅助剪辑,来自《最终幻想》的优美音乐或
自上而下-左上右下左上右下巴选择开始的第一次会议 ?
处理器技术的进步使我们能够通过模拟器(模拟旧计算机处理器的程序)将时间重新花在我们最喜欢的游戏上。 游戏从ROM芯片下载到文件。 然后可以将这些文件下载到仿真器,并像在原始系统上一样玩游戏。
NES Zapper内部构件技术是一件奇妙的事情。 它使我们能够前进,今天做昨天没有的事情。 但是,在某些情况下,这种范例是不正确的。 其中之一是NES游戏机,任天堂娱乐系统及其枪支控制器Zapper。 NES有一次成为了最受欢迎的游戏机,这是有充分的理由的。 任天堂的工程师,程序员和音频专家催生了一些迄今为止最好的视频游戏。 不幸的是,由于Zapper与现代数字显示器不兼容,因此某些游戏无法在您最喜欢的Raspberry Pi模拟器上播放。 不可能有人会忘记玩
Duck Hunt有多么有趣。 该游戏与所有NES系统捆绑在一起,因此我们所有人都玩过。 但是由于尚未解决的技术特征,与之相关的怀旧情绪被掩盖了。
我会告诉您,作为骇客对骇客来说-再也无法容忍了。 因此,我们首先来看看Zapper的工作原理以及为什么它不适用于数字显示器。 然后,我们将考虑如何解决它。
问题
Zapper手枪只是带有开关的光电管。 当按下扳机(开关)时,NES在屏幕上执行某些操作,以了解枪所指向的位置。 哪些-我们稍后再讨论。 但是首先我们需要了解它们仅适用于模拟
CRT电视。 如果将仿真器连接到此类电视,则不会有任何问题。 问题在于没有人拥有一台CRT电视。 所有客房均配有数字平板电视和监视器。 当连接到这样的监视器时,游戏将无法正常工作。 我们需要了解为什么会这样。
揭穿神话
关于NES如何知道Zapper的发展方向,甚至在那些精通电子学的人中,都存在很多困惑。 他们中的一些人考虑并继续传播这个神话:NES从CRT读取扫描线。 CRT定期从屏幕的顶部到底部绘制扫描线。 通过比较图形的开始时间和Zapper看到线条的时间,NES可以找出Zapper指向的位置。 而且,由于现代显示器同时显示所有线条,因此无法计算出Zapper确切指向的位置。 某些较旧的光电管手枪可能起作用了,但NES不能那样工作。 绝对是
NES Zapper如何运作
该系统非常棘手。 按下触发器时,NES将在电视上绘制纯黑框。 NES每秒绘制60帧,因此屏幕上显示一帧的时间约为0.0166或17 ms。 在下一帧中,白色矩形代替鸭子出现,并且前缀询问枪中光电管的状态。 光电二极管的输出是完全不同的,取决于它是对准黑屏还是对准白色矩形。 所有这一切都发生在演示两个帧(34毫秒)的过程中。 男人几乎没有注意到它。 下一个帧再次绘制运动场,命中或未命中将计入您。 精巧!
“但是,当屏幕上有两个目标时,该系统如何工作?” 好问题。 NES工程师只需重复整个过程即可解决此问题。 第一帧为黑色,其后为一个带有白色矩形的帧,以代替一个目标和一个光电元件测量。 如果屏幕上还有另一个目标,则第三帧将在第二个目标周围带有一个矩形。 全部三帧大约需要半秒钟,因此您将没有机会一次拍摄两只鸭子。 您只能拍摄一张,而这项技术可使NES知道哪一张。
“如果NES只是轮询光电管的状态,我是否可以将枪对准明亮的光线并每次记录击中次数?” 另一个好问题。 NES工程师摆脱了这种欺骗,即使在出现第一个黑框时也正在询问光电管的状态。 如果光电管看到黑屏以外的东西,则前缀会将您计为未命中。 有传言说,在最早的游戏版本中,此错误没有得到纠正,但是到目前为止,没有人能够证明这种错误。

再看问题
现在,了解了Zapper的工作原理,我们可以继续解决数字监视器的问题。 如果游戏只是测量黑白之间的差异,则喷枪在数字显示器上应该可以正常工作。 但这显然行不通。 有人认为光电管对CRT发出的红外线很敏感,并且数字监视器不会发出红外线。 但是,请看以下视频:Zapper效果很好!
[视频显示了修改后的Zapper /大约 perev。]我们知道扫描线与它无关,Zapper可以在数字屏幕上区分白色和黑色之间的对比度。 我们可以得出结论,我们的问题与时间有关。 显然,CRT可以比数字同事更快地显示图像。 在NES中,硬接线需要在16 ms之后检查白色矩形。 如果您的数字屏幕不能以足够的速度处理NES输出,则控制台将在屏幕上仍显示游戏的同时寻找白色矩形。
NES的输出分辨率为256 x 240像素。 数字监视器需要将每个帧缩放到工作分辨率。 这个过程产生的延迟可以达到70毫秒,严重超过了我们的16毫秒。
如何修复
这并不容易。 如果数字显示器本质上太慢,则唯一的解决方案是降低NES的速度。
选项1:降低时钟速度
我们都听说过通过增加时钟频率对处理器进行超频。 刹车呢? 我们可以降低NES处理器的时间而不超频到光速的几分之一吗? 游戏必须以正常速度运行,但是当按下触发器时,它将切换为较慢的操作,实际上会增加延迟时间。 请记住,NES会在黑屏上显示16毫秒,然后绘制一个白色矩形。 通过减慢处理器速度,我们可以增加此延迟并给出数字监控器的响应时间。
选项2:编辑ROM
ROM只能在十六进制编辑器中进行编辑。 如果我们研究了仿真器并发现在按下触发器后在哪个位置设置了延迟值,该怎么办? 我们可以将其扩大,并希望我们不会破坏任何东西。
选项3:您的选择
现在,您知道NES Zapper的工作原理,以及为什么它不适用于现代数字显示器,现在您已经解决了一半,可以释放残酷的技术命运剥夺了我们的怀旧之情。 您如何做才能使Zapper与数字显示器配合使用并成为互联网的英雄?
工作计划并不是那么复杂-可以肯定的是,我们所有人都可以一起思考如何使Zapper停止在我们的数字世界中闲逛。 在评论中分享您的解决方案。
原始文章