为什么 SNES 硬件的运行速度比预期的要快,以及为什么这是一个问题
快速阅读: 《Ars Technica》消息,TASBot团队发现,SNES主机因时钟同步和组件启动顺序的不确定性,难以实现稳定操作。尽管面临挑战,团队仍致力于通过非侵入方式还原其预期行为,体现了对经典主机奥秘的执着追求。
迈出的第一步
对于TASBot团队来说,了解真实SNES硬件时序与官方规格(以及模拟器)之间的差异,是迈向更一致结果的关键一步。但这一认知并未彻底解决他们的同步难题。即便塞西尔用一款更精准的石英版本替换了他的Super NES中的陶瓷APU谐振器(经过精确调整以符合任天堂的书面规格),他向Ars坦言,“我们并未看到预期中的完美表现”。除了时钟速度的不一致性之外,塞西尔还向Ars解释称,团队的测试发现APU采样中存在一种“抖动模式”。这种模式会在不同的运行中引入时间上的波动,从而在不同运行间“注入一些时间上的变化”。这导致了即使在同一硬件上,性能也变得非确定性,塞西尔表示,这意味着“TASBot在大多数SNES游戏中玩几分钟后就可能失去同步”。
SNES重置时,各组件启动的顺序对时钟同步影响显著。
图片来源:Rasteri
经Rasteri深入研究显示,在同一台游戏机的不同运行中出现的不一致性,很可能是由于“非常不确定的复位电路”。每次开机都会改变游戏机各组件的具体启动顺序与时序。这实际上存在“无数可能性”,即每次新运行时CPU和APU时钟在“同步周期”中开始的相对位置,因此无法准确预测延迟帧何时出现。Rasteri写道:“这种不确定性使得预测变得极为困难。”
塞西尔提到,这些类似“蝴蝶效应”的时序问题,让Super NES成为一台相当复杂的主机,它抵制了团队完全建模并使其表现一致的努力。但他依然抱有希望,认为团队最终能找到一条途径,“在无需进行侵入性修改的情况下,将SNES恢复到游戏开发者根据提供的文档所期望的行为……”
然而,最终,塞西尔似乎对SNES奇特架构如何在实际操作中导致如此不可预测的结果产生了一种近乎勉强的敬意。“如果你有意制造随机性和非确定性行为的源头,让两个时钟源独立相互循环运行是一种绝佳选择,”他说。
这一探索之路充满挑战,但也展现了技术团队对经典主机深层次奥秘的执着追求。
(以上内容均由Ai生成)