O desafio Consegue correr o Doom? (Can it run Doom?) atingiu um novo patamar de complexidade técnica. O programador australiano Arin Sarkisian revelou recentemente o projecto “DoomBuds“, uma proeza de engenharia de software que permite correr o icónico first-person shooter da id Software nuns auriculares sem fios Pinebuds Pro. Através de uma combinação de overclocking, optimização extrema de memória e uma ligação de dados pouco convencional, o título de 1993 é agora jogável — e até transmissível via Internet — a partir de um dispositivo que nunca foi desenhado para processar gráficos.
Há mais de 30 anos que Doom serve como o barómetro supremo para a versatilidade de qualquer peça de hardware. Desde testes de gravidez a satélites em órbita, a comunidade de modding não conhece limites. No entanto, o projecto de Sarkisian destaca-se pela natureza improvável do hardware: os Pinebuds Pro. Estes são, actualmente, os únicos auriculares no mercado que utilizam firmware de código aberto, o que permitiu ao programador aceder às entranhas do sistema e contornar as restrições de fábrica.
O desafio do hardware: overclocking e memória limitada
O coração dos Pinebuds Pro é um SoC (System on a Chip) Cortex-M4F. Originalmente, este processador está configurado para operar a 100 MHz, uma velocidade pensada para maximizar a autonomia da bateria e gerir tarefas simples de áudio. Para tornar o Doom minimamente funcional, Sarkisian teve de desactivar os modos de baixo consumo e forçar o processador a correr a 300 MHz.
Contudo, o maior obstáculo não foi a velocidade de processamento, mas sim a memória RAM. O jogo original de 1993 exigia, no mínimo, 4 MB de RAM para correr de forma estável em ambiente DOS. Os auriculares da Pine64 oferecem apenas 992 KB de memória disponível quando o co-processador do SoC é desactivado.
Para superar esta barreira de hardware, o programador recorreu à framework ‘doomgeneric’, desenhada especificamente para facilitar a portabilidade do jogo para plataformas exóticas. Além disso, foi necessário modificar o ficheiro WAD (o pacote de dados do jogo) da versão shareware, reduzindo o seu tamanho de 4,2 MB para apenas 1,7 MB, permitindo que este coubesse na memória flash dos auriculares após várias optimizações doo código.
Transmissão de dados e a barreira dos 18 FPS
Uma das particularidades mais curiosas deste projecto é a forma como a imagem é gerada e visualizada. Uma vez que os auriculares não possuem ecrã, Sarkisian teve de encontrar uma forma de extrair o sinal de vídeo. A tecnologia Bluetooth revelou-se demasiado lenta para a largura de banda necessária, o que levou o programador a utilizar a interface de série USB-to-UART presente nos pinos de contacto dos auriculares.
Esta ligação permite uma transferência de dados de aproximadamente 2,4 MB/s. Através de um servidor de série e de uma interface JavaScript (DoomBuds-JS), o fluxo de vídeo é transmitido como um stream comprimido MJPEG. Aqui, as fontes apresentam ligeiras discrepâncias nos detalhes técnicos: enquanto algumas informações indicam que a largura de banda permitiria até 27 frames por segundo (FPS), a limitação real reside no processamento do SoC. Devido à dificuldade do chip em codificar as imagens JPEG em tempo real, o desempenho estabiliza nuns modestos, mas impressionantes, 18 FPS.
Jogabilidade remota e o futuro do modding
O projecto não se limitou a colocar o código a correr localmente. Sarkisian integrou uma funcionalidade que permite a utilizadores remotos ligarem-se aos auriculares através de um navegador web para jogar. Todo o repositório de código foi disponibilizado publicamente, permitindo que outros entusiastas com acesso aos Pinebuds Pro possam replicar a experiência.
Este feito junta-se a uma galeria de troféus bizarros onde Doom já marcou presença, incluindo caixas de cereais, despertadores e até corta relvas robóticos. Para a comunidade tecnológica, o “DoomBuds” é mais do que uma curiosidade; é um testemunho da flexibilidade do software de código aberto e da persistência humana em levar o hardware ao seu limite absoluto, mesmo que esse limite signifique jogar um clássico do PC dentro de um canal auditivo.