Michael Pavone, autor do emulador BlastEm, relembra como a paixão por Sonic e pelo Mega Drive/Genesis acabou virando um projeto de longa duração voltado à precisão de hardware. Em uma entrevista, ele detalhou as escolhas técnicas do emulador, os testes feitos em hardware original e episódios como a compra de uma cópia rara de Outback Joey — o primeiro exemplar que adquiriu era falso e a tentativa de reproduzir o periférico de exercício o obrigou a reconstruir o comportamento do hardware a partir do código do jogo.
Da curiosidade aos testes em hardware
Pavone começou como usuário interessado em rodar jogos do Genesis no PC e acabou estudando a arquitetura da máquina. Seus primeiros experimentos com Sega CD resultaram em homebrew simples, como uma adaptação do “Graphics and Joystick Sampler” e ferramentas de carregamento que facilitaram testes em hardware real.

Para depurar diferenças entre BlastEm e consoles reais ele usa documentação quando existe, ROMs de teste e até um analisador lógico. Ferramentas internas do emulador (como uma visualização de composição de planos e um player de VGM para o áudio) ajudam a isolar se um problema vem do chip de som, de escritas erradas no registrador ou da lógica de renderização.
O que significa “precisão” no Genesis
Pavone evita o termo vago “cycle accurate” e explica que precisão envolve dois aspectos: o tempo correto das operações de cada componente e a granularidade com que esses componentes interagem. Em hardware, várias partes rodando em paralelo podem afetar o resultado de formas que emuladores mais antigos, que executam um componente por vez (geralmente por linha de vídeo), tendem a errar.
Ele cita o VDP do Genesis como projeto engenhoso: para manter taxa de transferência alta ao mesmo tempo em que dá acesso aleatório necessário ao sistema baseado em tiles, o VDP organiza leituras em blocos de 4 bytes, equilibrando portas seriais e paralelas da VRAM.
Demos e jogos que “pegam” emuladores
Demos como Overdrive e Overdrive 2 expõem atalhos e faltas de precisão: por exemplo, a cena “TITAN 512C FOREVER” explora limites de sprites e transferências de paleta durante o blanking, fazendo aparecerem sprites extras em emuladores que não reproduzem corretamente essa limitação. Overdrive 2 também usa modos de VRAM estendidos e registradores de depuração pouco documentados.

Além disso, jogos comerciais às vezes dependem de comportamentos pouco óbvios — Pavone cita Outback Joey como um caso especialmente trabalhoso por envolver um periférico raro com sensor de cadência e monitor cardíaco.
Sega CD, 32X e a caixa-preta do CDD
Para Pavone o Sega CD é particularmente difícil de emular devido ao drive de CD-ROM e à interação complexa com o BIOS, além de temporizações dependentes de partes mecânicas. Um dos maiores pontos de incerteza é o microcontrolador CDD do Sega CD, que controla a unidade de disco e cuja ROM de varejo ainda não foi extraída publicamente; a decapagem do chip e a extração dessa ROM poderiam permitir emulação de baixo nível mais fiel.
O 32X adiciona CPUs e camadas de vídeo, mas, na visão dele, é conceitualmente menos tortuoso que o conjunto completo Genesis+Sega CD+32X — ainda que pesado para emular.
Precisão versus desempenho e o papel do código humano
BlastEm usa técnicas como recompilação dinâmica (dynarec) para tentar equilibrar rapidez e sincronização fina, mas Pavone reconhece que essas partes não trouxeram ganhos gigantes e complicaram depuração. Ele afirma que, apesar de ferramentas de IA estarem progredindo, prefere manter o código do BlastEm escrito por humanos — tanto por gosto pessoal quanto por preocupação com compreensão, revisão e manutenção a longo prazo.
Pavone também vê o trabalho de emuladores como uma forma de arqueologia do hardware: emular com precisão ajuda a documentar comportamentos observáveis e complementa documentação escrita, especialmente quando demos e homebrew empurram o hardware a limites não previstos por documentos oficiais.
Para quem busca o emulador, Pavone recomenda consultar o site oficial do BlastEm e o repositório do projeto, onde estão disponíveis releases e código-fonte.
Fonte: Retro Replay
