Site menu Resenha do livro `Racing the Beam`

Resenha do livro `Racing the Beam`

Uma das maiores vergonhas da vida profissional eu paguei a prazo, não à vista. Num evento do Bluetooth SIG, estive frente a frente com Joe Decuir, um dos criadores do Atari 2600, monstro sagrado da "profissión". E eu não sabia quem ele era, e com isso todo mundo viu que eu era ninguém na fila do pão.

Decuir até me deu um cartão, e perguntou qual era minha seara: software ou hardware? Respondi "apenas software"; nem de Arduino eu chegava perto nessa época. Devolvi a pergunta, e ele respondeu meio rindo, olhando significativamente para outro eminente participante da mesa: "É, eu transito tanto em hardware como em software".

Não entendi a graça na hora, porque ali havia muita gente de hardware (a Signove era talvez a única empresa ali representada que não produzisse semicondutores). O que chamou a atenção, depois, foi ele mencionar casualmente que tinha encontrado Bill Gates numa feira e discutido com ele sobre o mesmo assunto doméstico que estávamos a discutir ali. Como se fossem velhos conhecidos, ou vizinhos de rua. Aí é que me ocorreu pesquisar aquele nome impresso no cartão...

Esse cidadão não só desenvolveu o chip "Stella", que é o coração do videogame Atari 2600, como ajudou a desenvolver os primeiros jogos da plataforma. O livro Racing the Beam: The Atari Video Computer System conta a história do Atari de um jeito peculiar. Já estava querendo lê-lo faz um tempo, mas demorou para os astros se alinharem. Demorei anos para finalmente comprá-lo, e a aduana resolveu segurar e encomenda por quase um mês.

Apesar do título sugerir um foco técnico, o livro foca mais nos aspectos humanos da plataforma, desde a história pregressa do fundador da Atari Nolan Bushnell, a origem dos arcade games como jogos de azar disfarçados que podiam existir fora de cassinos e em ambientes infantis, até as origens dos jogos mais relevantes da plataforma, como o Adventure, que inauguraram categorias inteiras de jogos de computador.

O prefácio tem ecos do livro Hackers & Painters, cuja tese central é que desenvolvimento de software é uma forma de arte. O livro provoca inclusive o pessoal de humanas a prestar mais atenção às plataformas de hardware, encarando-as como mídias de arte, com suas respectivas limitações e as formas que os artistas-desenvolvedores empregam para contorná-las.

A famosa frase da direção da Atari "vocês não são mais importantes que os operários que montam os cartuchos" que teria motivado os mais talentosos desenvolvedores de jogos a pedir demissão e fundar a Activision, foi de certa forma tirada de contexto. Bushnell fazia questão que todos os empregados, inclusive os operários, tivessem acesso ao mesmíssimo plano de saúde de ampla cobertura, e essa política ainda valia na época do fatídico embate.

No Brasil, o mercado de videogames ganhou tração a partir de 1983, mesmo ano em que tinha implodido nos EUA. Aqui, a febre durou até por volta de 1987, quando a moda virou para os microcomputadores. (Aliás, essa é uma história local que deveria ser objeto de um bom documentário — todo tipo de gente comprou micros e arriscou seus programinhas em BASIC nessa época, até a Ana Maria Braga, segundo uma entrevista que li esses tempos.)

Detalhes sórdidos

Como dito, o livro é relativamente leve em detalhes técnicos, mas não havia como contar essa história sem dar algumas pinceladas. O resumo é que o Atari 2600 é um computador extremamente limitado e antigo, concebido em 1978 — há quase 50 anos.

O processador do Atari é o 6507, idêntico ao 6502 do venerável Apple II exceto por ser limitado a 8KB de memória (um celular recente tem 1 milhão de vezes mais memória). O 6502 é um processador venerado e querido, mas não é nenhum bólido. Mas o coração do Atari, que realmente define a plataforma, é um chip auxiliar customizado denominado TIA (Television Interface Adaptor), codinome "Stella".

Este chip é interessante porque, por um lado, ele é um embrião de GPU, e desafoga o processador de muitas tarefas relecionadas a geração de imagem. O Stella implementa em silício recursos de alto nível como desenhar campo de jogo, sprites (figuras de jogadores), bolinhas e mísseis. Faz até mesmo detecção de colisão entre esses objetos gráficos. Além disso, possui uma paleta de 128 cores e gera de forma muito competente efeitos sonoros típicos de jogos.

Por outro lado, o Stella gera a imagem linha a linha, não quadro a quadro. Do ponto de vista do Stella, um sprite ou um campo de jogo é uma "tira" unidimensional. Para exibir figuras bidimensionais, o Stella tem de ser reconfigurado a cada linha com uma tira diferente da figura geral.

O processador principal é responsável por configurar o Stella a cada linha, e ele tem de fazer isso numa janela de tempo muito estreita, entre o final de uma linha e o início da próxima. Toda a lógica de um jogo Atari gira em torno dessa atividade crucial, sempre correndo para permanecer um bit à frente do canhão de elétrons que gera a imagem numa TV de tubo — daí o nome do livro.

O Stella foi pensado para jogos muito simples, estilo Pong. Mesmo o porte de jogos aparentemente bobos como Pac-Man já exigiram muitos malabarismos e simplificações, tanto que a versão Atari desse jogo foi considerada um lixo. Por exemplo, os "fantasminhas" do Pac-Man do Atari piscam ou cintilam, ganhando uma aparência etérea. Isso parece de propósito, mas não é: mostrando os fantasminhas apenas uma vez a cada 2 ou 3 quadros de vídeo, o processador ganha tempo para cuidar de outras partes do jogo, como plotar as comidinhas e controlar a "inteligência" dos fantasmas.

Com o tempo, os programadores aprenderam a lidar com as limitações do Stella, e mesmo tirar partido da geração linha-a-linha de imagem para criar jogos bem movimentados e efeitos surpreendentes.

Um exemplo: o jogo Yar's Revenge, um dos mais velhos da plataforma, exibe um efeito de "campo de força" que custaria muito caro num sistema com framebuffer. Mas, como ele é gerado a cada linha, ele custa barato. E o efeito aleatório não deriva de um PRNG (que não caberia na memória do cartucho): é o próprio código de máquina do jogo sendo cuspido na tela, na falta de melhor alternativa.

Outro exemplo: é possível reexibir o mesmo sprite ou míssil várias vezes na mesma linha, reconfigurando sua posição durante a geração da linha. Esse truque é usado por jogos como Space Invaders, Megamania e Galaxian, que exibem várias cópias de um mesmo elemento e/ou vários tiros, ignorando olimpicamente a limitação original do Stella de exibir apenas dois sprites e um míssil. Para desenhar uma linha na tela, como o cipó de Pitfall, o mesmo "míssil" é exibido repetidamente por várias linhas seguidas.

Outra curiosidade do Stella é não ser capaz de reproduzir todas as notas musicais com exatidão. Por conta disso, em jogos que tocam músicas conhecidas, alguém pode notar que elas soam ligeiramente desafinadas.

Em tempo: o manual de programação do Stella está disponível na Internet. Por incrível que pareça, ainda existem hobbyistas desenvolvendo jogos novos para o Atari 2600, ou modificando e aprimorando jogos antigos. Alguns chegam a lançar cartuchos físicos, com caixinha e manual.