快科技资讯 09月18日
老游戏《DOOM》在老PDA上运行2.5年后因BUG崩溃
index_new5.html
../../../zaker_core/zaker_tpl_static/wap/tpl_guoji1.html

 

1993年发布的经典射击游戏《DOOM》的源代码于1997年公开。近日,一位玩家Minki将《DOOM》安装在一台2003年的华硕PDA上,并对其进行了电源改装以保证长时间运行。在游戏运行了大约2.5年后,Minki发现游戏崩溃了。崩溃的原因源于《DOOM》的一个BUG:在回放游戏内的“demo”文件时,“gametic”值(用于跟踪游戏时间,每秒增加35次)在开始新的演示回放时不会重置。这个32位整数“gametic”值最终会因溢出导致游戏崩溃。在Windows Mobile 2003系统上,游戏无法处理这种数值异常。若游戏频率被降低至30Hz以优化帧率,溢出时间会相应延长。

💾 经典游戏《DOOM》的源代码于1997年公开,使其得以在各种平台上运行。本次事件中,该游戏被成功安装在一台2003年的华硕MyPal A620 PDA上,该设备运行Windows Mobile系统并搭载英特尔XScale ARMv5芯片,展现了老游戏的生命力和移植潜力。

⚡️ 为了确保PDA能够长时间稳定运行《DOOM》,Minki对其进行了电源改装,使用了一个基于“DIY 18650锂电池”的不间断电源系统,并连接到路由器USB接口以提供稳定的5V电源,为游戏的长时间运行提供了硬件保障。

⏳ 《DOOM》游戏出现崩溃的原因是其内部一个鲜为人知的BUG:在回放游戏内的“demo”文件时,“gametic”值(用于跟踪游戏时间,每秒增加35次)在开始新的演示回放时不会重置。这个32位整数值最终会溢出,导致游戏崩溃,在Windows Mobile 2003系统上尤为明显。

🕰️ 理论上,“gametic”值每秒增加35次,大约需要1.95年才能溢出。然而,若游戏频率被降低到30Hz以获得更好的帧率(在主机版本中常见),溢出时间则会延长至约2.26年,这与Minki观察到的约2.5年时间吻合,为崩溃原因提供了有力证据。

快科技9月18日消息,1993年12月发布的《DOOM》是第一人称射击游戏的开山之作,其源代码于1997年公开。

Minki在LenOwO上发帖称,他将WinDOOM安装在一台2003年的华硕MyPal A620 PDA上,这台设备搭载了当时新兴的Windows Mobile系统和英特尔XScale ARMv5芯片。

为了保证设备长时间运行,Minki对其进行了改装,使用了一个基于“DIY 18650锂电池” 的不间断电源系统,并将其连接到路由器的USB接口,以提供稳定的5V电源。

随后,他启动了游戏,便将其搁置一旁,直到最近才发现设备上弹出了一个应用崩溃的提示。

《DOOM》存在一个有趣的漏洞:在回放游戏内部的“demo”文件时,“gametic”值在开始新的演示回放时不会重置,这个值用于跟踪游戏时间,每秒增加35次。

“gametic”值不重置最终会导致数值巨大最终溢出,但该值使用的是32位整数,最大值为2147483647,不出所料,游戏在Windows Mobile 2003系统上无法处理这种情况,也就是说它会崩溃。

每秒35次的增加速度,大约需要1.95年才能使“gametic”值溢出。有可能Minki使用的 Doom4CE版本,将游戏频率降低到30Hz,以获得更好的帧率和降低硬件需求。

在《DOOM》的主机版本中这种做法很常见,如果是这样,那么“gametic”值溢出大约需要2.26年,这更接近Minki所说的2.5年。

当然除此之外,还有很多其他原因会导致《DOOM》崩溃,而且由于Minki中间几乎忘了这件事,也没法确定游戏崩溃的确切时间。

Fish AI Reader

Fish AI Reader

AI辅助创作,多种专业模板,深度分析,高质量内容生成。从观点提取到深度思考,FishAI为您提供全方位的创作支持。新版本引入自定义参数,让您的创作更加个性化和精准。

FishAI

FishAI

鱼阅,AI 时代的下一个智能信息助手,助你摆脱信息焦虑

联系邮箱 441953276@qq.com

相关标签

DOOM 第一人称射击游戏 Windows Mobile PDA 游戏BUG gametic overflow
相关文章