《DOOM》在華碩MyPal上運行兩年半終于崩潰!可能達到32位整數極限
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中間幾乎忘了這件事,也沒法確定游戲崩潰的確切時間。