Виліт Doom після довготривалого сеансу не був випадковістю, а мав точно відому причину. Він мав статися трохи раніше.
На LenOwO адміністратор сайту Minki повідомляє про відтворення давно відомого та очікуваного збою. Подія сталася на КПК, схожому на ASUS MyPal A620, який працює на відповідній його часам Windows Mobile 2003.
Пристрій був модифікований для використання “власного ДБЖ на базі літієвих елементів 18650, який був підключений до USB-порту мого маршрутизатора для отримання постійного живлення 5 В”. Про систему майже забули та звернули на неї увагу лише після того, як з’явилося спливне вікно про помилку.
Як і більшість портів вихідного коду тієї епохи, WinDOOM базується на оригінальному коді 1997 року, тому він відтворює більшість функцій і більшість помилок оригінальної гри. DOOM має численні відомі помилки навіть у фінальному випуску 1.9. Серед особливостей є така: значення, що постійно зростає для відстеження часу гри, збільшується зі швидкістю 35 Гц, або 35 разів на секунду, незалежно від рендерингу. З часом накопичується величезне число, яке може досягти максимального значення 2 147 483 647 тиків. На ПК x86 це завжди призводить до перекидання до мінімального від’ємного значення -2 147 483 647. Гра не може обробити це коректно та завершує роботу.
За частоти 35 тактів за секунду набір найвищого значення має займати близько 1,95 року. Це трохи менше, але невідомо, скільки точно часу пройшло, доки помилку помітили. Також можливо, що Doom4CE, порт WinDoom для Windows CE, який, ймовірно, був використаний в експерименті, зменшує частоту тактів гри до 30 Гц для кращого темпу та зменшення вимог до обладнання. Подібне свого часу було поширеним явищем у консольних портах DOOM.
Головний розробник рушія DOOM Джон Кармак, безсумнівно, знав про таке явище. Але, ймовірно, просто не приділяв цьому уваги — хто буде безперервно грати два роки? Втім, зрештою, понад 20 років потому в когось все ж дійшли руки. Цікаво, чи пропрацює стільки ж будь-яка сучасна гра?