TheBoss 006 – Dead Trigger

E você, já jogou Snake? Nada a ver com Kojima: refiro-me ao clássico… da Nokia. O famoso “jogo da cobrinha” é coisa antiga nos telefones celulares… antigos.

Jogos eletrônicos em “torradeiras” evoluíram muito. Smartphones — não é assim que são chamados? Você deve suspeitar que até jogos outrora pesados nos computadores, rodam em “velhos telefones” numa boa. Alguém pensou em Doom sendo executado em um modelo de smartphone com teclado físico?

Mas… e hoje, 2012, como estamos? Ah, claro: tablets. Chips de processamento de vídeo, específicos para gráficos 3D, efeitos de iluminação, enfim — aquele papo todo de placa de vídeo que vocês já conhecem.

Com tanto processamento e nenhum dispositivo tátil de entrada, será que dá pra jogar de verdade — mesmo — em um dispositivo que não foi criado para este fim?

Amigos, curtam conosco a nossa “filosófica” primeira incursão em jogos de Android no…

TheBoss 006

Dead Trigger

 

Download MP4 TheBoss 006 – Dead Trigger

* * *

Gagá confessa: “Comprei um Xbox 360!”

Xbox 360 Gagá Dashboard Exclusive

Heresia! Gagá na Live! (arte do Andrey)

Prezados amigos do Cosmic Effect, hoje eu tenho uma coisa muito louca para contar a todos vocês. Depois de anos de serviços prestados ao retrogaming, de juras de amor eterno à Nintendo e de críticas ao modelo videogame-central-de-multimídia-com-dez-fps-lançados-por semana, eu finalmente me rendi e comprei um Xbox 360. Sim, comprem bons agasalhos porque o inferno vai congelar.

Faz uma semana que comprei o console, e venho aqui contar para vocês por que decidi comprá-lo, o que estou achando e como é a sensação de cair de paraquedas no mundo de grandes lançamentos e alta tecnologia gamer – uma deliciosa e escandalosa heresia para um retrogamer velhaco e reacionário como eu.

Continue lendo

Diablo, BioForge e a Revista OLD!Gamer Edição 11

Amigos do Cosmic Effect: há uma revista impressa no Brasil que trata somente da apreciação dos jogos antigos. Claro que vocês a conhecem, ela é única: a OLD!Gamer, da Editora Europa.

Gostaria de apresentar-lhes a edição atual da revista, de número 11. Nela, tive o imenso prazer de compor, em parceria com o nosso amigo Orakio Rob, O Gagá (quem mais? ^_^), uma matéria sobre Diablo, o original para PC.

Com relação ao jogo, foi uma experiência gamística como poucas: jogamos por inteiro, tiramos fotos sombrias dos labirintos e fomos devidamente hipnotizados pelo gameplay mágico da Blizzard. Até criamos uma VPN e jogamos online “como se fosse 1996”. Tudo para a matéria da revista mas, confesso: foi extremamente divertido, afinal, estamos falando de videogame.

Não dá pra ver direito com tanta vermelhidão, mas o Gagá amarelou feio quando viu o Butcher.

Depois de tanto clicar com o mouse em Diablo, era hora de clicar no editor de textos. Nesta etapa, aprendi tremendamente com o Gagá no que se refere às preocupações com a normatização da “coisa toda”, com o andamento de um texto que seria promovido à artigo de revista impressa.

Obviamente, mesmo sendo para uma revista, tudo começa no Word (ou no Google Docs). É você e o teclado, exatamente como acontece com o texto “de blog”. Será mesmo?

Nem tanto. Desta vez, você precisa ser mais cuidadoso do que de costume. E qual seria o prêmio por este cuidado extra? Este: É possível aprofundar-se mais, praticamente até onde o autor desejar. Não amigos, eu não me perdi, estou me referindo ao conteúdo impresso mesmo. Parece contraditório, não?

Na Internet, quando produzimos um artigo sobre um determinado jogo, sua liberdade teoricamente é máxima. Pessoalmente, sempre acreditei no benefício da auto-imposição de limites a esta liberdade.

Seja aqui neste espaço de máxima democracia que compartilhamos, seja numa revista impressa, acredito muito na ideia de que o conteúdo seja normatizado, polido e equilibrado. Sem excessos de informações pessoais ou opiniões excessivamente contundentes — afinal, o foco, o astro… sempre serão eles: os videogames. Nunca o autor. A conclusão do conteúdo apresentado é sua, somente sua. Sempre.

Irrelevante é o nível de paixão ou desgosto de um autor por qualquer jogo abordado num post, vídeo ou artigo impresso — acredito. Importa, sim, a qualidade da informação apresentada a quem ofereceu seu precioso tempo e honra de abrir uma aba do navegador para consumir o seu blog, canal de YouTube ou… folhear a revista.

Além deste artigo que tomou conta da capa da revista, tive a oportunidade de escrever sobre um jogo à minha escolha, para uma outra matéria. O próprio redator-chefe da revista, Humberto Martinez, ofereceu a possibilidade de escolher o título. Aliás, praticamente o H.E.R.O. do Atari este cidadão representa, só por manter esta revista de pé. Quantos países possuem periódicos impressos sobre retrogaming, em pleno 2012?

Como marinheiro de primeira viagem — desta vez, sem um experiente marinheiro à bordo escrevendo comigo — logo procurei um porto seguro… e BioForge, um título de MS-DOS pertencente ao “Top 3 Pessoal” foi o escolhido. Completam esta tríade os jogos Starflight do Mega Drive e Out of This World, este revisitado brilhantemente pelo próprio Gagá na edição número 4 da revista.

É um daqueles jogos que, todo ano, em algum momento mais introspectivo de sua vida, você decide ter o prazer de jogá-lo novamente. Vocês reconhecem este sentimento, cada um sabe qual é aquele seu Top 3 inseparável.

A escolha de BioForge para a matéria da OLD!Gamer trouxe a liberdade de esticar o braço buscando tudo que o título tem de bom, médio e também que poderia ser diferente. Joguei-o inteiro, pela enésima vez em quase 20 anos de “relação”. Fazia anotações enquanto jogava. Capturei imagens do gameplay que, efetivamente, foram para a diagramação da matéria. Um sonho.

Falando em diagramação, ah… os prazeres do alto valor de produção! Um revista de uma grande editora nacional, puxa, não dá pra explicar o sentimento de felicidade quando você recebe o PDF com a matéria diagramada. O leitor de PDF vai abrir, atenção… são os 2 segundos mais demorados da sua vida.

Sério, ao ver a beleza do trabalho de diagramação, questionei se realmente fui eu quem escreveu aquilo. O texto “soa” mais interessante quando há um artista gráfico definindo um visual desprendido do template de um blog.

E eles, muito simpaticamente, ainda seguiram algumas sugestões de minha parte quanto à apresentação visual. Pedi ao Alexei, editor da OLD!Gamer e o Yoda das orquestras de game music: “se possível, evite usar a mão robótica na matéria. É que ela está em 10 entre 10 matérias de BioForge…” O pedido simbólico meu foi respeitosamente atendido, olha só que legal.

É isso amigos, perdoem este desejo incontido de felicidade ao compartilhar com vocês este momento. Afinal, depois de ler tantas Ação Games, Videogame, SuperGame e GamePower nessa vida… estar do outro lado das páginas foi uma grande descoberta.

Agradecimentos sinceros a todos citados neste artigo. Estendo estes cumprimentos aos amigos leitores que compartilham conosco suas emoções gamísticas por aqui. Este espaço vivo, repleto de textos, vídeos e o doce som das músicas dos jogos é o nosso eterno co-op.

* * *

Sidequest:
Veja Gagá distorcendo os fatos do nosso encontro com o Butcher
em seu post sobre a mesma edição da revista, aqui :)

TheBoss 005 – Double Dragon Neon

Uma ode ao sentimento dos anos 80. Um beat’em up despretencioso… nada disso: um Double Dragon genuíno, produzido por gente talentosa, detalhista e que faz sintonia fina no gameplay.

Double Dragon há muito não pertence à Technos Japan, mãe da franquia. Já foi portado até para o Zeebo (saiu-se bem lá!) e chega à sétima geração dos consoles, que está prestes a se despedir. E chega, assim… ARRASANDO.

Amigos, conheçam e apreciem Double Dragon Neon, para Xbox 360. Especialmente para você, fã dos anos 80 e de desenhos como He-Man: é a sua chance de lutar contra… Esqueleto? Sim!

E as músicas que tocam neste jogo? As BGMs, lembram delas? Aquelas instrumentais que a gente chama de game music porque se repetem muito? Aqui, elas vão além… Faça pipoca, fique confortável e prepare-se para o…

TheBoss 005

Double Dragon Neon

 

Download MP4 TheBoss 005 – Double Dragon Neon

* * *

A história de um emulador

Não é todo dia que você esbarra em alguém que efetivamente programou um emulador de videogame. Todo retrogamer, colecionador e até aquele nostálgico ocasional que digitou “jogar atari online” no Google pra lembrar da cara de River Raid deve muito a estes verdadeiros herois da programação.
Amigos do Cosmic Effect, gostaria de apresentar o Alan Freitas, 32 anos, residente na capital federal deste país. E, falando em ser brasileiro, este cara não desistiu e… escreveu seu próprio emulador de Master System. Insisto para que acompanhem a história do emulador do Alan, que arregaçou as mangas e saiu da tela preta!
O artigo está genuinamente emocionante. Alan, seja bem-vindo!

Uma breve retrospectiva

Faço parte da geração nascida na década de 80, tendo acompanhado o universo dos jogos eletrônicos desde o estrondoso sucesso do Atari 2600. No início dos anos 90 eu já tinha o console há alguns bons anos.

Certo dia, um vizinho me chamou para ir até a sua casa onde vi algo impressionante: o jogo Choplifter rodando no seu Master System.

Aquilo que presenciava era, de fato, um salto qualitativo muito substancial em relação ao que já estava acostumado a ver no velho Atari. O jogo era muito dinâmico, tinha uma ação ininterrupta, seus gráficos eram espetaculares e a música, empolgante.

Lembro de ter jogado um pouco e o meu desempenho não foi dos melhores. Mas isso não importava, pois o meu objetivo estava claro: eu precisava ter um Master System.

O 8-bit da SEGA.

Chopper Command do Atari 2600.

Choplifter do Master System. A evolução era notável.

Algum tempo depois ganhei o console e, ao longo dos anos seguintes, tive muitos bons momentos com ele.

Minha rotina era semelhante a de muitos jogadores brasileiros: devido ao preço dos cartuchos e a uma certa disciplina parental, o esquema era alugar os jogos no sábado, jogá-los intensamente ao longo do fim de semana e devolvê-los na segunda-feira.

Pude apreciar boa parte do catálogo da plataforma, embora sempre restassem alguns títulos cujos gráficos se mostravam bastante atraentes nos encartes que acompanhavam o console, mas eram impossíveis de se encontrar nas locadores as quais tinha acesso.

Vem à memória o jogo Basketball Nightmare, com uma cena espetacular de um garoto fazendo uma cesta, em close.

Imagem chocante no encarte do Master System…

O ponto alto do Master System foi o jogo Phantasy Star, ao qual dediquei várias horas com amigos. Sei que é chover no molhado, mas a qualidade deste título, sobretudo se levarmos em conta quando e para qual plataforma foi produzido é algo que impressiona até hoje.

Pela primeira vez pude, em um jogo, acompanhar um enredo com um certo grau de desenvolvimento, em uma escala verdadeiramente épica (estamos falando de viagens espaciais entre três planetas), com vários mistérios a solucionar e, claro, gráficos e sons de altíssima qualidade.

Impossível não admirar a fluidez com que os extensos labirintos são percorridos, assim como a bela arte realizada principalmente nas cutscenes (outro aspecto inovador) e nos monstros.

Phantasy Star, um feito maiúsculo.

Como muitos de nós, guardo um certo arrependimento por ter vendido o console com a finalidade de seguir à próxima geração. Naturalmente, precisava do dinheiro para comprar o poderoso Mega Drive, que chegava proporcionando um outro avanço tecnológico espetacular.

O nascimento da idéia

Saltemos para o ano 2003. Após concluir a graduação em Computação, senti vontade de trabalhar em um projeto no qual pudesse exercitar alguns dos conhecimentos mais relevantes estudados na universidade.

Ambicionava explorar um pouco mais a parte de arquitetura de computadores e também computação multimídia, em um contexto de programação orientada a objetos.

Tive a idéia de criar, do zero, um emulador de Master System na linguagem C++. Parecia perfeito: os requisitos técnicos e a paixão pelo tema estavam lá, juntamente com um nível de desafio apreciável. O codinome também estava escolhido: Arisa.

Arisa. Ou Alis Landale.

Definindo o escopo

Certamente que não havia necessidade de, do ponto de vista prático, desenvolver um emulador de Master System. A plataforma já contava com vários emuladores muitíssimo competentes, cada qual com sua vocação: velocidade, acurácia, filtros, ferramentas de debug, etc.

Não se tratava, pois, desde o início, de uma iniciativa para trazer à cena mais um emulador disponível na Internet para download. Como já exposto, tratava-se de uma espécie de exercício particular.

FreezeSMS, Meka, Fusion e SMS Plus.

Conhecendo a arquitetura

Decisão tomada, era necessário entender como funcionava a máquina projetada pela SEGA. Para tal, comecei a buscar informações sobre a plataforma.

Nessa fase o site SMS Power se mostrou de grande valia, reunindo muita documentação com excelente nível de detalhes.

Placa de circuito do Master System. O chip central, no alto, é a CPU Z-80.
Foto: classiccomputer.de

Emulando o Z-80

De importância fundamental em qualquer computador, a CPU é candidata óbvia a ser emulada primeiro. Busquei livros e documentações online sobre o Z-80, o processador central do Master System.

Consideremos que o jogador apertou o botão de pulo no Sonic the Hedgehog. Muita coisa acontece:

  • Entrada: é feita a leitura do estado do botão, ou seja, apertado.
  • Lógica: é feita uma verificação se Sonic encontra-se sobre o solo ou uma plataforma, o que viabiliza o salto.
  • Aritmética: o movimento de salto é calculado, levando em consideração o estado presente do personagem (posição, velocidade, etc) e a simulação física concebida pelo programador (gravidade, inércia, etc).

Como compreender o coração do Master System?

Uma questão de interpretação

Uma técnica apropriada para a emulação de um processador como o Z-80 é a chamada interpretação.

Programar um interpretador basicamente consiste em criar, em uma determinada linguagem de programação, variáveis que guardem o estado de cada estrutura interna do processador, além de reproduzir o comportamento de cada instrução, à medida em que o programa é executado.

É, de fato, análogo ao trabalho de um intérprete: trata-se de um processo de tradução, em tempo real, de uma linguagem para outra.

As coisas não são tão simples…

Fazer uma descrição completa da arquitetura de uma CPU foge do escopo desse artigo, mas podemos dizer que o Z-80 é dotado de complexidade nada desprezível.

O processaodr da Zilog disponibiliza 252 diferentes instruções (opcodes, sendo mais exato) para o seu programador. 

Anúncio do competente Z-80 na revista Electronics em 1976.
(Imagem: domínio público)

Com isso, é evidente que a quantidade de código necessária para implementar o interpretador também é substancial.

Além de relativamente longo, o processo também trazia uma série de dúvidas: será que eu estava indo pelo caminho certo? Será que minha interpretação da documentação estava correta?

E se eu tivesse falhado em compreender algum conceito fundamental e todo aquele código sofresse de algum vício dificilmente sanável? 

Bem, não havia muitas opções a não ser estudar atentamente o material e codificar com cuidado.

Passei algumas semanas programando o interpretador. Implementei o que os programadores chamam de um “ambiente de debug”.

Amigos leitores, finalmente a palavra “jogo” aparece: com este ambiente pronto, eu podia acompanhar as alterações nos valores armazenados nas entranhas do Z-80 e da memória, durante a execução do Alex Kidd in Miracle World.

Apesar de não poder ter certeza, as coisas pareciam ir bem: eu conseguia ver que um jogo carregado parecia estar inicializando o processador e memória RAM emulados, num processo análogo ao de um PC ao ser ligado.

Também via o que parecia ser o carregamento de dados (gráficos, músicas?) na memória, entre outras coisas. 

Porém, era apenas uma visão “binária” naquele momento.

Não havia qualquer imagem do jogo rodando, como quando estamos, er… jogando.

Faltava outra peça-chave: o processador de vídeo (VDP).

Entrando no mundo dos pixels

Hoje temos nos PCs e consoles placas de vídeo com um poder computacional absurdo, que conseguem renderizar imagens com um grau de realismo realmente impressionante.

Na época dos 8-bit, os processadores de vídeo eram relativamente primitivos, e o limitado poder computacional das CPUs de então também deixava as coisas mais complicadas.

Como produzir gráficos atraentes e dinâmicos em uma velocidade aceitável? 

A resolução de 256 x 192 pixels do Master System pode parecer pífia para os padrões atuais, mas estamos falando de quase 50 mil pontos na tela. Era impossível manipular cada um deles de forma individual em tempo real. A solução clássica, simples e genial: Tiles.

Asterix, com os tiles ressaltados…

Como vocês estão carecas de saber, qualquer jogo da época, por mais complexos ou sofisticados que sejam os seus gráficos, é uma espécie de mosaico.

Os artistas desenhavam todos tiles de tal maneira que, arranjados corretamente, eles se integrassem de forma harmoniosa na tela.

…aqui, o conjunto de tiles usado na cena anterior…

Os tiles são formados a partir uma paleta de 16 cores para os sprites e mais 16 cores para o cenário.

Essas cores podem ser escolhidas dentro de um universo de 64 possíveis.

Paleta

…e, por fim, a paleta de cores da mesma cena.


Como estamos lidando com um hardware que possui muito pouca memória, se for possível reutilizar um mesmo tile fazendo seu espelhamento isso pode economizar bytes preciosos.

Assim, tínhamos belos gráficos em tela cheia.

Alguns efeitos colaterais curiosos apareceram. Inconsistência do ponto de vista físico era um dos campeões e hoje pode ser considerado um charme peculiar ao visual dos jogos eletrônicos.

Note a iluminação na cena abaixo.

Espelhamento de tiles em Phantasy Star.
Repare que a cena é perfeitamente simétrica, até nas sombras…

Tamanho não é documento

Após sentir-me seguro com a emulação do Z-80, o processador de vídeo era o próximo desafio. Menos código que o da CPU, porém com muitas particularidades e uma boa dose de complexidade.

É uma forma de conceber a montagem e exibição de imagens bem peculiar; muito diferente do que se faz na computação hoje em dia.

Aqui as inseguranças se intensificaram. No Z-80, eu inspecionava seu estado ao longo da execução. Dava pra ter uma impressão do funcionamento.

No caso do VDP… eu trabalhava às cegas, sem ter por muito tempo uma interpretação da representação binária em debug que me auxiliasse.

Fui em frente, esperando que meu entendimento dos documentos estivesse correto…

Uma grande emoção

Após algumas semanas, terminei a codificação da emulação do VDP. Junto com a emulação do Z-80 e das memórias RAM e ROM, também concluídas, isso deveria ser suficiente para executar um jogo comercial.

Claro que certamente existiam bugs no meu código; Mas, com sorte, talvez um jogo rodasse, ainda que de forma defeituosa.

A hora havia chegado: carreguei a ROM de Alex Kidd in Miracle World e após breves instantes de tensão…

 Nada além de uma tela preta.

Animador…

De certa forma, era esperado. Muito código e, pela própria natureza do problema que ele se propunha a resolver, um pequeno bug em qualquer trecho poderia causar uma falha em exibir qualquer coisa que lembrasse o jogo original.

Tentei outros jogos, com esperança de que algum funcionasse. Nada feito.

Um aspecto cruel de um emulador é que, diferentemente da maioria dos softwares, você muitas vezes não tem idéia de onde pode estar o problema do seu código. Isso porque o programa se comporta como a máquina na qual o jogo executa, mas o desenvolvedor do emulador pouco ou nada sabe sobre o código do jogo em si!

Paradoxalmente, é aí que reside a beleza pouco convencional do conceito da emulação: o jogo executando nada “sabe” sobre estar executando em um emulador, e não na máquina real.

A beleza de dar vida a um cartucho de Master System sem consumir espaço físico…

Por outro lado, o programador do emulador nada sabe sobre o código do jogo em si. Ele “apenas” implementa um software que se comporta como um hardware.

Não é necessário saber programar um jogo para aquela máquina. À medida que eu me embrenhava nas entranhas daquilo tudo, observando internamente a execução dos jogos… foi possível perceber a qualidade excepcional daqueles programadores.

Pude ver, desta vez com olhos de programador, quão impressionante eram seus resultados em plataformas tão limitadas.

Voltando aos bugs do nosso emulador. Foi um processo longo e tedioso. Todo programador sabe que criar código é bacana. Corrigi-lo, quase nunca. 

Após finalizar essa primeira revisão geral (dias depois), carreguei Alex Kidd in Miracle World novamente e… 

Escutou a musiquinha daí?

Funcionou! A tela de apresentação apareceu, mostrando várias cenas do jogo. Logo em seguida começou a demonstração: Alex Kidd percorria a fase em alta velocidade com a sua motocicleta!

Um momento de grande emoção, pois era o resultado de um longo trabalho sem resultados intermediários. Julguei, algumas vezes, que poderia ser, no fim, algo infrutífero de minha parte.

Mas não foi!

Alex Kidd: um cara maneiro.

Inevitável também o sentimento de nostalgia dos tempos da jogatina no Master System real. De alguma forma eu me aproximava um pouco mais daqueles admiráveis engenheiros, programadores, artistas gráficos, músicos, entre outros, que deixaram, com sua inteligência e criatividade, um legado tecnológico e cultural bastante relevante.

Uma mancada

Ao ver o game executando com aparente perfeição, o instinto falou mais alto: meus dedos deslizaram para o teclado, visando efetivamente jogar o jogo.

A demonstração seguiu, inabalada.

Claro: eu não havia implementado o input do joystick!

Ávido por jogar Alex Kidd sendo “empurrado” por Arisa, consultei correndo a documentação sobre o console, para aprender sobre o joystick do Master.

Até que foi rápido — bonus stage? — e pude, então, jogar Alex Kidd in Miracle World.

Mais algumas correções, rumo a uma conclusão 

Depois dessa primeira partida, rapidamente testei outros jogos. A maioria executou sem problemas, mas alguns apresentaram inconsistências, como comportamentos bizarros nas colisões ou nas cores. 

Corrigi mais alguns bugs, o que fez com que mais jogos executassem perfeitamente. Ainda restavam alguns detalhes que poderiam ser melhorados. Nesse período eu também comecei a programar a emulação do som. 

Havia, entretanto, uma nítida queda na motivação. Sentia que o desafio particular que havia proposto a mim mesmo tinha sido superado. Como nunca pensei em disponibilizar Arisa para terceiros, acabei abandonando o projeto aos poucos. 

Hoje não julgo provável retomar o desenvolvimento, mas foi algo no qual gostei muito de trabalhar. Sem dúvida foi um dos softwares mais legais que programei.

Valeu a pena.

“Linguagem de comunicação

Confesso que tive dúvidas sobre a redação desse texto no que diz respeito ao escopo.

Ao mesmo tempo que emuladores têm importância central no universo retrogamer, é muito fácil se aprofundar em questões excessivamente técnicas que podem alienar um leitor que, embora interessado no assunto, não esteja familiarizado com arquitetura de computadores ou programação. Dessa forma, tentei mesclar a tecnologia com os aspectos mais humanos e históricos.

Não sei se fui bem-sucedido, mas estou à disposição para tentar dirimir dúvidas, fornecer algum aprofundamento ou ainda esclarecer algum ponto que não foi devidamente explanado.

Muito obrigado aos leitores do Cosmic Effect!

* * *