chester's blog

technology, travel, comics, books, math, web, software and random thoughts

Harmony: rodando jogos (e testando programas) num Atari de verdade

05 Nov 2011

Cartucho HarmonyA programação para Atari 2600 é uma curiosidade que já me levou a escrever artigo e minstrar palestras sobre o assunto. Vira e mexe estou lendo e experimentando, e até acredito que um dia alguma dessas brincadeiras pode se tornar um jogo de verdade.

Um bom emulador é necessário para programar para qualquer dispositivo, seja ele um celular ou um console. O Atari tem o excelente Stella (cujo debugger é bom até para quem só quer entender como algum jogo funciona). Mas é igualmente importante testar o programa no console “de verdade”, pois só lá os detalhes vão aparecer.

Foi com esse objetivo que eu encomendei o Harmony. Em termos simplificados, é um cartucho com slot para cartão SD, que disponibiliza os jogos (ROMs) gravados no cartão através de um menu no console. Comparando com aqueles cartuchos com 2 ou 4 jogos selecionáveis através de chaves, é uma evolução incrível.

Cartucho Harmony: MenuComo tudo que é simples, tem uma engenharia sofisticada por trás. As especificações mostram que, só em termos de clock, a CPU do cartucho é 70 vezes mais rápida que o do videogame (na prática a diferença é ainda maior, afinal, é uma arquitetura ARM de 32 bits contra um 6502 de 8 bits). Talvez não precisasse de tudo isso, mas um hardware mais generoso pode embarcar um software que reconhece dezenas de formatos de ROMs, e que pode ser atualizado com faclidade.

Para mim foi útil logo de cara, porque o “Hello, World” que eu apresentei no Dev In Sampa nunca tinha rodado em um console de verdade, e eu não acreditava que acertaria de primeira. Dito e feito: eu não zerei os registradores do TIA (chip de vídeo) correspondentes aos objetos visuais que não estava usando, e eles apareciam como “lixo” na tela. Este problema não acontecia no emulador, porque ele zera a memória emulada ao inicializar. Felizmente a correção foi fácil, e já foi aplicada nos slides e no código-fonte.

Cartucho Harmony: Hello World

Ele também foi útil para viabilizar o sorteio2600, um programinha que sorteia números entre 0 e uma centena qualquer (100, 200, 300, etc.), feito especialmente para o Dev In Vale. Novamente, entre o emulador e a vida real havia uma diferença: o score mode, que divide o fundo (playfield) monocromático em duas cores (uma à esquerda e outra à direita) não faz essa divisão de forma 100% precisa (a cor muda um tiquinho antes da hora).

Como os projetistas de jogos já sabiam disso (dificilmente usariam emuladores naquela época), eles não usavam o playfield todo quando habilitavam o score mode. Mas o meu código já tinha sido pensado para sumir com metade dele (e usar toda a outra metade), então eu “roubei”, usando um dos missiles para cobrir a parte do playfield que não deveria aparecer. Isso está documentado no código, e fica como mais um exemplo dos truques que eram necessários para fazer o hardware limitado do Atari 2600 atender às necessidades de cada jogo.

Se interessar, veja mais fotos do Harmony em ação.

(esse post pede um agradecimento especial ao Alexandre Oliveira, que me cedeu vários cartuchos de Atari para testar o console “novo”, evitando que eu procurasse problemas onde eles não existiam)

Comments



Fábio

Olá chapa. Cheguei ao seu Blog após numa conversa com amigos relembrando os anos 80 eu ter lembrado a história do anúncio do livro que ensinava os segredos do "verdadeiro kung fu chinês". Alguns lembravam vagamente, outros não lembravam, e eu lembrava bem pois sonhava comprar o livro e arrebentar todo mundo da escola. Acabei jogando no Google e fui parar no seu Blog. Como uma coisa leva à outra, fui dar uma olhada em outros posts interessantes. Finalmente cheguei á esse e apesar de não saber NADA de programação me interessou a coisa do tal Harmony. Sou um fanático por games, inclusive os do passado. Tenho 2 Ataris funcionando, mas não consigo achar os jogos q fizeram a alegria da minha infãncia. Pergunto: Com esse Harmony q vc citou, eu consigo catar os ROMs aqueles q a gente usa pra jogar com emulador no micro, e fazer funcionar no console?? Se for, eu quero um bicho desses!!! Grande abraço. Muito legal seu Blog!

Chester

Exato, você pode baixar ROMs para o cartucho e rodar. Não sei se o custo vale a pena: entre o custo, o envio e impostos, a brincadeira vai sair entre R$ 150 e R$ 300 (dependendo de a Receita considerar o custo do envio como parte do custo total, o que faz exceder a "zona livre" de US$ 50 - deu certo pra mim, mas pode variar).

Considere que é possível encontrar cartuchos com 2 a 4 jogos no MercadoLivre por R$ 15 a R$ 25 (incluindo o envio), e que na real você não vai jogar dúzias de jogos (tinha *muito* jogo meia-boca - de fato, foi um dos motivos da crise neste mercado: http://pt.wikipedia.org/wik.... Se ainda assim te interessar, o site é http://harmony.atariage.com. Boa sorte e obrigado pelo elogio!


Learn how to write in Markdown with this Quick Reference.