Como Exatamente um Garoto Zerou o Tetris


Jogador de apenas 13 anos conseguiu feito antes impossível no Tetris.

 
 
No mundo dos videogames, poucos jogos são tão icônicos quanto Tetris. O jogo “perfeito” foi lançado em 1989 para Nintendo Entertainment System (NES), e rapidamente se tornou um fenômeno global.

Criado para ser “infinito”, Tetris foi vencido por um garoto chamado Willis "blue scuti" Gibson, que conseguiu jogar tanto que o videogame “travou”, congelando no nível 155.

Espera aí, mas como ele conseguiu isso se Tetris só possui 29 fases?

É exatamente isso que vamos explicar neste artigo


Zerar: O termo zerar é utilizado por nós. idosos do mundo dos games, exatamente por isso. Significa vencer a pontuação da máquina, de modo que o jogo ou recomece a contagem ou trave, como acontecia com vários jogos do Atari, e agora, com Tetris.

 
 

O antigo “limite” do Tetris


A antiga "tela de morte" de Tetris.
 
 
Por anos, a comunidade de jogadores em volta de Tetris, considerava a tela do nível 29 como o limite do game. A partir dessa fase, os blocos descem de forma tão rápida que era impossível alocá-los nas laterais do tabuleiro.

O nível 29 era conhecido como a “killscreen”, a tela de morte do jogo onde era impossível chegar adiante.

Bom, isso era o que todo mundo pensava.

Ninguém imagina que isso era possível, nem mesmo os programadores.

Ao ultrapassar o nível 29, o jogo recomeça a contagem e coisas muito estranhas começam a acontecer com Tetris.

Sem mais dados em seu array, para contar os níveis, o game passa a utilizar pedaços de código hexadecimal extraídos diretamente da memória RAM. Contudo, isso ainda não era o suficiente para o jogo travar.

Outra limitação ao ultrapassar o nível 29, é o contador de pontos que congela em 999.999. Para ultrapassar essa limitação, os jogadores utilizam um código do game genie, que destrava o contador de pontos, colocando um hexadecimal no primeiro algarismo.

Como é possível perceber, a partir daqui, as coisas vão ficar bem estranhas, acompanhe.

 
 

Como os jogadores superaram os limites do Tetris


Em 2011, um jogador chamado Thor Ackerlund foi o primeiro jogador a conseguir passar do nível 29, o que fez o jogo começar a recontagem dos níveis novamente, a partir do nível zero (00).

Entretanto, as coisas começaram a escalar rapidamente a partir de 2018.

A primeira técnica desenvolvida para ultrapassar os limites da máquina foi o “hyper tapping”, criada pelo jogador Joseph Saelee em 2018. 
 
 
 
Jogadores começaram a criar técnicas inusitadas para jogar, como o "hyper tapping".

 
Com essa técnica, Joseph conseguiu pular um delay do próprio jogo ao posicionar uma peça no topo da tela. Essa técnica permite movimentar a peça ultrapassando uma limitação imposta pelo game chamada “auto shifter”.

Em 2020, ele já conseguia chegar ao nível 35, algo que o jogo representava como nível “1E”.

Ainda assim, o “hyper tapping” não foi o suficiente para ir muito longe.

Os jogadores só conseguiam ficar com 4 ou 5 linhas de blocos para trabalhar, e nesse nível de velocidade, qualquer erro ou RNG ruim significava grandes problemas. 


A técnica suprema: rolling


 
Nova técnica possibilitou ultrapassar a barreira do nível 29 com facilidade.

 
Em 2021, um jogador chamado Cheez desenvolveu uma técnica muito interessante chamada “Rolling”.

Com uma das mãos ele bate na parte traseira do controle do NES como se estivesse dedilhando. Isso faz com que o “key travel” dos botões do controle tenham um tempo de resposta mais rápido. De fato é tão rápido que chega a 20 vezes por segundo.

Essa técnica foi uma grande mudança no mundo competitivo do Tetris e rapidamente vários jogadores conseguiram ultrapassar o nível 29 como se ele não fosse nada. Chegando até o nível 138.



Um novo desafio, as cores bugadas


 
Ao chegar no nível 138, as cores do Tetris "bugam".

 
 
 
Tetris possui uma paleta com apenas 10 cores, e a partir do nível 138, as cores do jogo “bugam” e ele começa a exibir cores fora da programação original. Devido a isso, o game começa a buscar novos endereços de memória para alocar cores.

É por isso que a partir do nível 138 é possível “bugar” o jogo, mas isso não quer dizer o Tetris travar ao chegar no nível 139. Esse problema é conhecido pela comunidade de Tetris como “the glicted colors”.

Outro problema ao chegar nas “cores bugadas” é que alguns padrões são impossíveis de enxergar. Como esse abaixo, onde as cores dos blocos são da mesma cor que o cenário preto ao fundo.

 
 

O garoto prodígio


Willis "blue scuti" Gibson entrou para comunidade de Tetris em 2021, e ele é a definição do que podemos chamar de garoto prodígio. 

Willis "blue scuti" Gibson.

 
Rapidamente ele subiu nos rankings da comunidade e em 2023 já chegava à pontuação de 1.9 milhão de pontos em fevereiro de 2023.

Poucas semanas depois ele participou do seu primeiro campeonato mundial de Tetris e ficou na terceira colocação.

21 de Dezembro de 2023. Scuti começou o seu jogo normalmente no nível 19, usando a versão Vanilla (original) em um console com hardware original do NES chamado Retron.

Ao chegar no nível 157 e atingir 6.850.560 e destruir 1511 linhas, algo inimaginável aconteceu, Tetris simplesmente travou.
 
 
Veja a gameplay completa de Blue Scuti, que inclui a quebra de 3 recordes mundiais de Tetris de uma única vez abaixo. 
 




Como exatamente Tetris travou e foi zerado


Temos que lembrar que o NES é um console muito antigo com apenas 2KB de memória RAM, e como eu descrevi acima, o jogo Tetris já está processando muito além de sua capacidade de programação da época, chegando até mesmo a exibir cores bugadas. Ainda assim, é impressionante como a programação do Tetris é bem feita ao ponto de superar várias limitações do console.

A comunidade de Tetris até criou uma planilha com os endereços de memória que podem levar ao erro de travar o jogo, a percentagem disso acontecer em cada nível e até a "condição de travamento". Veja a tabela aqui.
 
 
Ao limpar uma linha no nível 157, o jogo tem muita coisa para calcular em apenas um “vBlank” (explicação disso no final do artigo). O que seria normal se o game estivesse no nível 29, mas não no 157 com números massivos de pontuação e linhas. Segundo a tabela, ao limpar uma linha, Scuti ativou a "condição de travamento".

O travamento do NES Tetris em níveis altos ocorre devido ao tempo excessivo gasto pelo código de pontuação para calcular os pontos, o que causa uma falha no jogo.

O processador do NES opera nativamente em hexadecimal, mas o jogo faz cálculos em base 10, o que exige verificações constantes e aumenta o tempo de processamento.

O NES tem um processador (matemático) e uma unidade de processamento de imagem (PPU). O processador realiza cálculos e repassa para a RAM, enquanto o PPU desenha na tela. O processador só pode alterar a RAM quando o PPU não está desenhando, o que ocorre durante vBlank.


O que é vBlank?

O VBlank, ou Vertical Blank, é um conceito crucial na programação de jogos para o NES e outros sistemas de videogame antigos que usavam televisões antigas e monitores CRT. Pense nele como um “frame” de hoje em dia.
O VBlank se refere ao período de tempo em que a televisão ou o monitor de vídeo está se preparando para desenhar uma nova tela. Durante este tempo, a tela não está sendo atualizada com novas imagens, o que oferece uma oportunidade para os programadores realizarem certas operações sem causar interferências visuais, como rasgos na tela.

O vBlank ocorre exatamente durante um ciclo de atualização do monitor CRT (tubo de raios catódicos). Enquanto o feixe chega ao final da tela e se move para cima é o curto período onde jogos de NES tem tempo para fazer grandes cálculos. Como a tela não está sendo atualizada neste momento, é seguro para o processador do NES realizar operações que afetam a exibição, como atualizar gráficos ou alterar tabelas de sprites.

Alguns jogos usam “hack” como “piscar” para aumentar o tempo do vBlank e conseguir processar mais coisas, mas no caso do Tetris, nem isso ajudou.

Qualquer erro no vBlank pode ocasionar o travamento do game. Durante a gameplay de Scuti, o jogo levou tanto tempo para calcular o que estava acontecendo que excedeu o limite do vBlank e por isso o Tetris travou.

Zerar um jogo é um feito memorável, mas jogar um game até a máquina “desistir” é um momento único na história dos videogames. Ainda mais em um jogo quase perfeito como Tetris.


Repostas rápidas:
 
Qual versão do Tetris? versão original (Vanilla) do Tetris para Nintendo Entertainment System (NES).

Jogada em qual sistema? Em um videogame RetroN 1 com hardware que simula o original do NES.
 
Em quanto tempo? 38 minutos e 27 segundos. 
 
Pontuação? 6.850.560 pontos.
 

Comentários

Postagens mais visitadas deste blog

Como Fazer o Rastreio de Código CN ou CNBR

Batocera para celular e TV Android (Retroarch configurado + 10 mil jogos)

15 Joias Escondidas do Mega Drive - Jogos Pouco Conhecidos