DOOM trava após 2,5 anos rodando ininterruptamente
Em publicação no LenOwO, o administrador do site, Minki, relata ter reproduzido uma falha ao executar o WinDOOM no ASUS MyPal A620, dispositivo de 2003 equipado com Windows Mobile e um SoC Intel XScale ARMv5. O aparelho foi mantido em operação contínua, recebendo energia estável de 5V.
O WinDOOM é baseado no código-fonte original de 1997 e, por isso, herda tanto os recursos quanto os bugs do jogo clássico. Entre eles está a forma como DOOM contabiliza o tempo de execução: uma variável chamada gametic, incrementada 35 vezes por segundo, independentemente da taxa de renderização. Isso garante que o tempo interno avance em 35 Hz fixos, ainda que o desempenho do jogo varie.
O problema ocorre durante a reprodução das demos — sequências automáticas exibidas na tela inicial, conhecidas como modo attract. Nessas situações, a variável gametic não é reiniciada ao iniciar uma nova demo, acumulando valores indefinidamente. Como a versão original do jogo utilizava inteiros de 32 bits com sinal, o limite máximo era de 2.147.483.647. Quando esse valor foi atingido, houve um overflow, o contador passou a registrar valores negativos e o jogo travou.