Bernd Schmidt, autor do UAE, conta como transformou uma ideia pessoal — manter o software do Amiga vivo ao migrar para PCs — em um projeto de emulação que acabou gerando uma família inteira de emuladores.

Motivação e primeiros passos

Schmidt descreve que a motivação inicial foi prática e técnica: ao migrar para PCs queria continuar ouvindo músicas e executando jogos do Amiga, como as trilhas de Turrican. Ele vinha de experiências com computadores anteriores (como o CPC) e já havia escrito um emulador dessas plataformas, o que tornou natural a tentativa com o Amiga quando o hardware de PC ficou mais capaz.

Amiga 500 com monitor Commodore exibindo o Workbench, drive externo e mouse
Amiga 500, a máquina que Schmidt queria continuar usando no PC. Foto: Bill Bertram (CC BY-SA 2.5), via Retro Replay

O primeiro boot e o nome “Unusable Amiga Emulator”

Depois de mapear opcodes do 68000 e implementar a emulação da CPU, Schmidt viu o Kickstart começar a rodar em poucos dias. O primeiro resultado visível foi uma imagem de Workbench com uma mão deformada — consequência de bugs na implementação do blitter. O apelido inicial, Unusable Amiga Emulator, surgiu como uma brincadeira ligada a uma referência a códigos de erro do Windows NT e ao acrônimo “AE” (Amiga Emulator).

Principais problemas técnicos: Copper, timings e disco

Para Schmidt, o desafio maior foi a sincronização entre CPU e chips personalizados do Amiga, especialmente o comportamento do Copper. O Copper é um coprocessador que espera por posições específicas na tela e escreve registros de vídeo — a dúvida era exatamente quando essas escritas surtiriam efeito. A solução conceitual que ajudou bastante foi entender que o Copper reside em Agnus e que escrever em registros relacionados a Denise pode implicar um atraso extra.

Personagem de Turrican saltando sobre rochas no Amiga
Turrican no Amiga: as músicas do jogo estavam entre o que Schmidt queria manter tocando. Imagem: Retro Replay

Outro ponto foi o desempenho: ser fiel ao ciclo por ciclo do 68k e ao acesso às pistas de vídeo era inviável em hardware da época sem aplicar heurísticas que detectassem cenários em que o Copper não atuava, permitindo renderizações mais rápidas.

Emulação de disquetes também trouxe dificuldades por conta de formatos especiais e proteções. Embora a modelagem do controlador em si não fosse complexa, transformar cópias físicas em imagens de disco exigia um Amiga real para leitura, e alguns esquemas (como as “Long Tracks”) complicavam gravação.

Som, portabilidade e código aberto

O chip de som Paula não foi considerado intratável — trata-se de amostras digitais — mas em CPUs como 486 havia risco de interrupções audíveis se o emulador não gerasse áudio rápido o suficiente. Questões avançadas de processamento de sinal e filtragem foram contribuídas por terceiros.

UAE foi pensado com alguma portabilidade em mente: o desenvolvimento em Unix/Linux e o uso de bibliotecas como SVGALib facilitaram rodar o projeto em várias plataformas. Desde cedo Schmidt optou pelo modelo de código aberto; a licença GPL veio mais tarde quando houve interesse em empacotar ROMs licenciadas por terceiros (Cloanto).

Colaboração, limites e evolução

Com a abertura do código, contribuições e forks proliferaram — nem todas alinhadas com a visão original de Schmidt. Ele admite desconforto quando recursos eram adicionados rapidamente, sem a preocupação arquitetural necessária; ainda assim reconhece que a colaboração ampliou o projeto além do que ele faria sozinho.

JITs (compilação just-in-time) e reimplementações posteriores aceleraram muito a emulação, embora Schmidt tenha dito que nunca foi o foco principal para seu uso pessoal (ele era mais interessado em jogos e demos do A500).

Hoje, embora tenha se distanciado do projeto principal e mantenha seu Amiga guardado na prateleira, Schmidt ainda inicializa UAE ocasionalmente para ouvir músicas antigas. Ele segue trabalhando com compiladores e reconhece que muito do sucesso do UAE veio da combinação entre curiosidade técnica e colaboração aberta.

Fonte: Retro Replay

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *