História da Tecnologia

Bug do Donkey Kong: O Erro que Travava a Fase 22

Descubra como uma falha no cálculo de tempo do clássico Donkey Kong gerou a famosa kill screen na fase 22, impedindo qualquer avanço humano no fliperama original.

Gabinete clássico de arcade do jogo Donkey Kong iluminado em uma sala retrô
Gabinete clássico de arcade do jogo Donkey Kong iluminado em uma sala retrô

Um erro aritmético no cálculo de bônus de tempo em Donkey Kong tornava a fase 22 impossível de vencer, criando a mais célebre tela da morte da história dos videogames.

Você já imaginou dedicar horas a fio em um fliperama barulhento, acumular centenas de milhares de pontos e, de repente, ver seu personagem tombar sem qualquer explicação antes mesmo do primeiro salto? O lendário bug do Donkey Kong na fase 22 transformou o clássico da Nintendo em um dos maiores enigmas da engenharia de software dos anos oitenta, desafiando gerações de competidores ao redor do planeta.


A arquitetura dos arcades e o nascimento de um marco digital

No início dos anos oitenta, a indústria dos jogos eletrônicos operava sob severas restrições técnicas. Cada byte de memória disponível nas placas de circuito impressas representava um recurso valioso que os programadores precisavam gerenciar com extrema precisão.

Quando a equipe liderada por Shigeru Miyamoto concebeu Donkey Kong em 1981, o objetivo primordial era salvar a divisão norte-americana da Nintendo de um colapso financeiro iminente. O código precisava caber em chips de memória ROM minúsculos para os padrões atuais, rodando em um microprocessador Zilog Z80 que operava a frequências modestas de poucos megahertz.

Nesse cenário de extrema escassez de hardware, os programadores utilizavam atalhos matemáticos elegantes para calcular variáveis dinâmicas em tempo real. No entanto, soluções simplificadas em assembly costumam carregar efeitos colaterais imperceptíveis nos testes de laboratório comuns.

O jogo foi estruturado para aumentar a dificuldade a cada ciclo completo de quatro telas. Os desenvolvedores presumiram que nenhum jogador humano seria capaz de sobreviver por tantas rodadas consecutivas a ponto de expor as bordas da arquitetura aritmética do sistema.

A matemática oculta por trás da rotina de tempo

Para compreender a raiz do colapso no nível 22, precisamos analisar como o programa determinava o tempo concedido ao jogador no início de cada estágio.

O tempo disponível não era uma constante fixa gravada na memória. O jogo utilizava uma equação aritmética simples baseada no nível atual em que a partida se encontrava para estipular a contagem regressiva do bônus da fase.

A fórmula do cronômetro interno

A cada novo estágio carregado, a rotina de inicialização executava uma sequência de operações matemáticas básicas para determinar quantos milhares de pontos de bônus o jogador receberá como cronômetro:

  • O valor do nível atual era multiplicado por dez.
  • Ao resultado dessa multiplicação, somava-se a constante quarenta.
  • O valor final dessa operação definia o bônus inicial em centenas de pontos.
  • Caso o resultado superasse oitenta, o código aplicava um teto máximo padrão.

Nos níveis iniciais, a equação funcionava perfeitamente. No primeiro nível, o cálculo resultava em 50 (1 x 10 + 40), concedendo 5.000 pontos no cronômetro. No segundo nível, o cálculo gerava 60 (2 x 10 + 40), entregando 6.000 pontos.

A progressão continuava de maneira previsível até que o jogador alcançava níveis avançados. A partir do nível quatro, o resultado atingia o teto de 8.000 pontos, garantindo um tempo razoável para atravessar os andaimes e desviar dos barris rolantes.

O grande problema residia na ausência de validação para valores que ultrapassassem determinados limites de registradores de oito bits na memória, abrindo espaço para um comportamento anômalo quando a variável do nível atingisse números mais expressivos.

Placa de circuito impresso de hardware de fliperama dos anos oitenta com microprocessador

O transbordamento aritmético que decretou o fim da fase 22

Quando um competidor extraordinário conseguia alcançar a fase 22, a rotina de cálculo de tempo era acionada mais uma vez pela CPU da placa de arcade.

A matemática parecia direta: vinte e dois multiplicado por dez resulta em duzentos e vinte. Somando quarenta a esse valor, o sistema deveria obter duzentos e sessenta. No entanto, o registrador de oito bits reservado para essa operação matemática só conseguia armazenar números inteiros de zero a duzentos e cinquenta e cinco.

A mecânica do estouro de memória

Ao tentar gravar o número 260 em um espaço de apenas 8 bits sem sinal, ocorreu o fenômeno clássico conhecido pelos cientistas da computação como estouro de inteiro ou overflow:

  • O valor máximo suportado pelo registrador de 8 bits é exatamente 255.
  • O número 260 ultrapassou a capacidade máxima em exatamente 4 unidades.
  • O registrador reiniciou a contagem a partir de zero, resultando no valor final 4.
  • O jogo interpretou o número 4 como quatrocentas unidades de bônus de tempo.

Em termos práticos de jogabilidade, quatrocentos pontos de bônus representavam meros quatro a sete segundos de tempo real no relógio do fliperama. Assim que Jumpman surgia no canto inferior esquerdo da tela de vigas de aço, o contador já começava em níveis críticos de contagem regressiva.

O jogador mal conseguia dar três passos em direção à primeira escada quando o cronômetro zerava de forma abrupta. Em Donkey Kong, quando o tempo se esgota, o personagem perde uma vida instantaneamente por penalidade de tempo.

Como o erro se repetia em todas as vidas restantes que o competidor possuía, a partida era irremediavelmente encerrada ali mesmo, independentemente de quantas vidas extras haviam sido acumuladas ao longo da maratona.

O nascimento do termo kill screen e o choque na comunidade

Na época de ouro dos fliperamas, não existiam fóruns de internet ou documentações técnicas compartilhadas online para explicar o que estava acontecendo dentro daquelas máquinas de madeira.

Quando os primeiros relatos sobre a fase 22 surgiram nas casas de jogos dos Estados Unidos e do Japão, muitos acreditavam se tratar de uma lenda urbana ou de um defeito isolado em gabinetes mal conservados. O fenômeno logo foi batizado pelos entusiastas de kill screen, ou tela da morte.

A descoberta causou uma revolução nas regras do circuito competitivo mundial de videogame. Em vez de disputar quem conseguiria jogar indefinidamente, o desafio passou a ser a otimização matemática de pontos antes de bater contra a parede intransponível do código.

Jogadores lendários perceberam que vencer o jogo não significava chegar a um final triunfal com créditos na tela, mas sim extrair cada gota de pontuação possível dos barris, martelos e rebites antes que a matemática da fase 22 ceifasse todas as suas chances.

Essa barreira intransponível transformou Donkey Kong em um jogo de estratégia milimétrica, onde cada salto arriscado e cada segundo gasto acumulando bônus definia os novos recordistas mundiais homologados pelas organizações oficiais.

Jogador disputando torneio competitivo em máquina clássica de arcade

A era de ouro dos recordes e a consagração cinematográfica

A barreira da fase 22 tornou-se o palco central de uma das rivalidades mais emblemáticas da história dos esportes eletrônicos, imortalizada em produções culturais ao longo dos anos dois mil.

O famoso documentário The King of Kong expôs ao público em geral a obsessão de competidores que passavam madrugadas calculando rotas perfeitas para maximizar os pontos antes de encontrar o fatídico fim programado na memória do fliperama.

Fatores cruciais na busca pela pontuação perfeita

Para alcançar marcas superiores a um milhão de pontos antes de colidir com o limite do sistema, os atletas de fliperama precisavam dominar técnicas avançadas:

  • Controle rigoroso do tempo de coleta de cada martelo de ferro.
  • Agrupamento deliberado de barris para saltos duplos de alta pontuação.
  • Manipulação da inteligência artificial primitiva dos foguinhos azuis.
  • Navegação cirúrgica nas fases de esteiras rolantes e elevadores mecânicos.

Chegar à fase 22 exigia cerca de duas a três horas de concentração ininterrupta, sem margem para qualquer hesitação motora ou erro de posicionamento na alavanca analógica.

Quando a tela fatal aparecia, o jogador sentia um misto de alívio por ter atingido o topo do mundo físico do jogo e de frustração por saber que a máquina nunca permitiria ir além daquele limiar binário.

Essa dinâmica singular garantiu a Donkey Kong uma longevidade competitiva que poucos jogos daquela geração conseguiram manter por mais de quatro décadas consecutivas.

Falhas semelhantes que marcaram a história da tecnologia

O caso da fase 22 de Donkey Kong não foi um evento isolado na era clássica dos computadores de oito bits. Vários outros sucessos dos anos oitenta compartilhavam estruturas de programação vulneráveis ao mesmo tipo de limitação de memória.

O exemplo mais famoso ao lado de Donkey Kong ocorreu no icônico Pac-Man de 1980. Ao atingir o nível 256, a rotina de desenho das frutas transbordava um registrador de oito bits e corrompia a metade direita da tela com caracteres alfanuméricos ilegíveis, impedindo a coleta das pastilhas necessárias para fechar o labirinto.

Em Duck Hunt, do Nintendo Entertainment System, alcançar o nível 99 provocava um comportamento errático nos patos velozes, que passavam a voar de cabeça para baixo ou simplesmente desapareciam da visão do jogador, travando a progressão da pontuação.

Mesmo jogos de estratégia e simuladores espaciais posteriores enfrentaram situações parecidas quando variáveis numéricas não previam o entusiasmo e a persistência fora da curva de usuários obstinados em quebrar recordes.

Essas falhas demonstram como os pioneiros da engenharia de software navegavam por territórios completamente desconhecidos, aprendendo na prática a importância de estabelecer limites defensivos na manipulação de variáveis numéricas.

Lições de engenharia e a relevância do código defensivo

Analisar o código de Donkey Kong com o olhar contemporâneo nos permite apreciar o pioneirismo dos programadores daquela época, ao mesmo tempo em que extraímos lições valiosas para o desenvolvimento moderno.

Hoje, os ambientes de desenvolvimento contam com tipos de dados de sessenta e quatro bits, verificadores estáticos de código e testes automatizados capazes de simular milhões de partidas em questão de minutos.

Nos primórdios da computação interativa, no entanto, a programação em linguagem assembly exigia que cada instrução de máquina fosse escrita manualmente, muitas vezes em cadernos de papel quadriculado antes de ser gravada fisicamente em chips EPROM.

O clássico erro de Donkey Kong nos ensina que premissas sobre o comportamento do usuário final frequentemente falham quando a paixão humana encontra um sistema de regras bem estruturado.

Miyamoto e sua equipe jamais imaginaram que pessoas ao redor do mundo dedicariam milhares de horas para dominar cada pixel de um jogo que foi construído em poucos meses para liquidar estoques encalhados de gabinetes de Radar Scope.

Aspecto TécnicoDetalhes do Funcionamento
Fórmula de TempoMultiplicação do nível por dez somada à constante quarenta (N x 10 + 40).
Causa do BugEstouro de registrador de 8 bits ao atingir o valor 260 na fase 22.
Consequência PráticaO cronômetro inicia com apenas 400 pontos, matando o jogador em poucos segundos.
Impacto HistóricoCriação do conceito de kill screen e redefinição das regras de recordes mundiais.

Conclusão

O encerramento abrupto na fase 22 de Donkey Kong permanece como um dos episódios mais fascinantes da história da tecnologia. Longe de ser apenas uma falha irritante, o erro transformou-se em um monumento aos limites da computação dos anos oitenta e à extraordinária habilidade humana de superar todas as expectativas dos criadores de software. Ao transformar um limite aritmético no ápice da glória competitiva, jogadores e programadores escreveram juntos um capítulo inesquecível da cultura dos videogames.