sexta-feira, 22 de janeiro de 2010

Relembrando o Atari 2600

Nada melhor para inaugurar (na verdade reinaugurar) nosso blog do que lembrar desse que talvez tenha sido o objeto de maior desejo dos jovens dos anos 80

Muito do crédito por criar a indústria de video-games que resulta em tantas horas de trabalho perdidas é o saudoso Atari 2600, que foi lançado em 1977. Na época os computadores de 8 bits com poucos kbytes de memória eram norma e, sendo um video-game, o Atari tinha especificações ligeiramente mais baixas que as de um computador pessoal:

O projeto era centrado em três chips, incluindo um processador 6507 de 8 bits, com clock de 1.19 MHz, um chip TIA 1A, que oferecia a interface de vídeo (com uma resolução de 160×192 com 128 cores) e áudio (os bips) e um chip PIA 6532, responsável pelos espaçosos 128 bytes (sim, bytes!) de memória RAM.

Apesar das óbvias limitações (a começar pelos 128 bytes de memória…) o Atari possibilitou o desenvolvimento de jogos relativamente complexos e desafiantes, que em alguns aspectos podem ser considerados mais divertidos que alguns títulos atuais.

Os desenvolvedores do Atari literalmente tiraram leite de pedra para permitir que estes jogos rodassem nos 128 bytes de memória oferecidos por ele, empregando diversos truques. O primeiro deles é que os jogos eram carreados diretamente a partir da ROM (o código não era copiado para a memória RAM como atualmente), com a memória RAM sendo usada apenas para variáveis e pequenos blocos de código que precisavam de execução rápida.

A atualização da tela não era feita usando um frame-buffer (ou seja, não existia ma cópia da imagem armazenada na memória de vídeo como atualmente) já que o chip TIA 1A não oferecia memória de vídeo, mas sim apenas alguns poucos registradores que eram controlados pelo processador principal. Aproveitando o fato de que o Atari era ligado na TV (que trabalha com uma taxa de atualização fixa de 30 Hz interlaçados), os projetistas criaram um sistema engenhoso, onde a imagem era atualizada linha a linha, em um processo contínuo, onde o processador precisava armazenar apenas alguns poucos bytes relacionados aos pixels seguintes.

A necessidade de sincronizar a atualização da tela com as demais tarefas executadas pelo software complicava bastante o desenvolvimento dos jogos para o Atari, mas acabou se revelando um fator essencial, já que permitiu que o console exibisse gráficos muito superiores ao que seria possível obter de outra forma. Miraculosamente, os jogos mantinham uma movimentação fluída, mesmo com a atualização da tela taxando o processador, em parte graças ao talento dos programadores, que conseguiam aproveitar ao máximo cada linha de código em assembly.

Os cartuchos utilizavam ROMs de 1 a 4 KB e, para os jogos mais "pesados", existia a opção de incluir 128 bytes de memória adicionais no cartucho, suplementando a memória interna do console.

Para quem tem saudades dessa época, é ainda possível programar para o Atari 2600 através dos emuladores, que permitem executar o código. Isso explica como ainda são lançados títulos originais para o Atari mesmo hoje em dia, produzidos por curiosos e saudosistas. Um ponto de partida é a página do Stela: http://stella.sourceforge.net/