7 pontos por GN⁺ 2026-01-26 | 5 comentários | Compartilhar no WhatsApp
  • Projeto que portou o clássico de 1993 DOOM para rodar nos earbuds sem fio PineBuds Pro, com possibilidade de jogar remotamente pela web
  • É composto por quatro partes: um servidor serial, servidor web, página web estática e o port de DOOM que conecta os earbuds ao servidor web
  • Por meio de uma conexão UART, garante cerca de 2,4 Mbps de largura de banda e transmite vídeo em stream MJPEG, alcançando desempenho teórico de até 27 FPS
  • Com overclock da CPU de 100 MHz para 300 MHz e limitado pela codificação JPEG, obtém desempenho real de cerca de 18 FPS
  • Supera as restrições de RAM e FLASH com otimizações e o arquivo Squashware WAD enxuto, mostrando o potencial de experimentos de hardware baseados em firmware open source

Visão geral do projeto

  • Port de DOOM, lançado em 1993, para rodar nos earbuds PineBuds Pro
    • Os PineBuds Pro são citados como os únicos earbuds sem fio com suporte a firmware open source
    • Visitantes do site podem entrar na fila e jogar remotamente
  • O projeto é composto por quatro partes
    • O port de DOOM executado nos earbuds
    • O servidor serial, que conecta os earbuds ao servidor web e converte o stream MJPEG para Twitch
    • O servidor web, responsável por servir os assets, gerenciar a fila, encaminhar entradas de teclado e exibir o stream
    • A página web estática, responsável pela exibição no navegador e pela comunicação com o servidor

Hardware e estrutura de conexão

  • Os earbuds não têm display, então transmitem e recebem dados via Bluetooth ou pads de contato UART
    • O Bluetooth é lento, em cerca de 1 Mbps, então a UART (2,4 Mbps) é mais adequada
  • O framebuffer de DOOM tem resolução de 320×200, 8 bits de cor, totalizando cerca de 96 KB
    • Com base na largura de banda da UART, seria possível transmitir cerca de 3 FPS
    • Para melhorar isso, foi adotado o formato de stream MJPEG
  • Como codificador JPEG, foi usado bitbank2/JPEGENC
    • Tamanho médio dos frames JPEG entre 11 e 13,5 KB
    • Em teoria, o FPS máximo fica na faixa de 22 a 27 FPS

Ajuste de desempenho da CPU

  • O clock padrão da CPU no firmware original é de 100 MHz, mas foi elevado para 300 MHz e o modo de baixo consumo foi desativado
  • O Cortex-M4F (300 MHz) é suficiente para rodar DOOM, mas há gargalo na codificação JPEG
    • A taxa de quadros real fica em torno de 18 FPS

Otimização de memória (RAM)

  • A RAM acessível por padrão é de 768 KB e, com o processador auxiliar desativado, chega a 992 KB
  • Como DOOM exige 4 MB de RAM, várias otimizações foram aplicadas
    • Pré-geração de tabelas de consulta, armazenamento de variáveis const na flash, desativação do sistema de cache, remoção de variáveis desnecessárias e outras medidas para economizar memória

Problema de capacidade da flash (FLASH)

  • O arquivo WAD padrão de DOOM 1 tem 4,2 MB, excedendo o limite de 4 MB de armazenamento dos earbuds
  • O problema foi resolvido com a versão enxuta Squashware WAD (1,7 MB), de fragglet
    • Todos os assets puderam caber na flash

Open source e acessibilidade

  • O código do projeto está disponível em dois repositórios no GitHub
    • DOOMBuds: port de DOOM para earbuds
    • DOOMBUDS-JS: suporte à interação entre navegador e earbuds
  • O site opera com base em fila, e a partir da 5ª posição o stream da Twitch é trocado por um stream MJPEG de baixa latência

5 comentários

 
cybecho 2026-01-27

"Roda DOOM"

 
pjh2568 2026-01-26

Os mestres em fazer DOOM rodar em qualquer coisa são realmente... incríveis.

 
tsboard 2026-01-26

Uau, isso é meio que... pqp kkkkk

 
kimjoin2 2026-01-26

Meu Deus do céu

 
GN⁺ 2026-01-26
Opiniões do Hacker News
  • Sempre que vejo DOOM rodando em algum dispositivo simples, fico pensando se isso é uma vitória do software ou um fracasso econômico por não conseguirmos fazer hardware dedicado mais barato

    • Os PineBuds foram projetados desde o início como uma plataforma de firmware aberto, com um MCU potente para experimentação
      Fones Bluetooth com ANC não são produtos simples, e o cancelamento de ruído precisa executar continuamente cálculos muito complexos
      Um MCU rápido não é mero desperdício, pois traz vantagens de baixa latência e gerenciamento eficiente de energia
      Em vez de criar um ASIC perfeito, é muito mais realista ter uma estrutura atualizável com um MCU de uso geral
      No fim das contas, comprar MCUs já consolidados em grande volume é muito mais econômico do que criar um chip sob medida
    • Por outro ângulo, este é um caso de sucesso econômico em que, graças à economia de escala, hardware de alto desempenho acabou se tornando a opção mais barata
    • Eu vejo isso como uma vitória da fabricação de semicondutores
      O custo de mão de obra, testes, treinamento e produção em pequena escala para projetar e fabricar um chip personalizado acaba sendo ainda maior
      O custo dos processos de negócio pesa muito mais do que o custo dos materiais
    • É surpreendente tentar interpretar o enorme sucesso da economia de mercado como fracasso econômico
      Estamos num mundo em que DOOM roda em earbuds, não há motivo para ver isso de forma negativa
    • Uma CPU dual-core de 300 MHz ARM Cortex-M4F me faz pensar que a escala da evolução do hardware desde o lançamento de DOOM é realmente absurda
      É um exagero de especificações, mas impressiona que tudo isso caiba dentro do ouvido
  • Eu portei o DOOM para os PineBuds Pro
    Dá para acessar pela internet e jogar DOOM nos meus earbuds
    Mais detalhes e o link do GitHub estão no meu site

    • Fico curioso sobre qual é a taxa de compressão da codificação JPEG
  • É um pouco triste que sempre portem apenas DOOM
    Antigamente havia muitos jogos simples, mas viciantes; hoje os jogos são grandes e complexos demais para serem levados para plataformas pequenas
    Parece que a indústria, fora a cena indie, perdeu o rumo
    Jogos como o antigo Master of Orion 1 eram simples, mas davam vontade de jogar repetidamente
    Hoje, muitos jogos parecem vídeos, com pouca interação e grind de XP, o que reduz o interesse

    • DOOM é escolhido com frequência por ser open source, ter exigências de recursos razoáveis, um motor interessante e desenvolvedores respeitados
      Já virou uma tradição
    • Os jogos antigos eram pequenos por causa de limitações técnicas
      Hoje, a maioria dos usuários não se importa muito com tamanho ou desempenho
      Como os consumidores adotaram a atitude de “desde que rode bem, tá ótimo”, o valor da otimização diminuiu
      Ainda assim, na cena indie, continuam existindo muitos jogos curtos e estilosos
      Só que, como jogos curtos estilo filme têm mais dificuldade de causar grande impacto, eles acabam sendo menos conhecidos
    • Também concordo, queria ver Freespace 2 rodando em earbuds
  • A lista de ports de DOOM pode ser vista na página da Wikipédia

  • Acho que isso é um excelente efeito de divulgação para os PineBuds Pro
    Será que os Fairbuds conseguiriam fazer algo assim?
    Mas, com DOOM rodando em tantos dispositivos, por que ainda não roda suavemente em um 386?

  • Lembrei de uma entrevista do John Carmack depois de DOOM 3, em que ele disse que, conforme o motor ficava mais complexo, já não conseguia mais escrever todo o código sozinho
    Fico curioso para saber o que ele pensa disso na atual era da IA

    • Atualmente ele está focado em realizar a AGI
      Pessoalmente, acho que ele deve ser positivo em relação à IA
      E “Masters of Doom” é um livro realmente ótimo, recomendo
    • Já na época do desenvolvimento de DOOM, Carmack usava abordagens parecidas com IA, como interpolação aproximada (Approximate Interpolation)
  • Gostaria de saber se alguém já usou os PineBuds Pro
    Não havia um canal relacionado no IRC da Pine64, então era difícil perguntar

    • Para ser sincero, nunca usei para a finalidade original
      Não sei sobre conforto ou qualidade de som, mas há uma sala dedicada aos Pinebuds no canal do Discord da Pine64
    • Uso desde o lançamento, e a duração da bateria é curta — com ANC ligado, chega a no máximo umas 2 horas
    • Eu gostava da Pine64 antes, mas depois dos problemas com o tablet e-ink e o telefone, minha confiança diminuiu
    • Eu uso satisfeito
      Instalei de propósito um firmware sem ANC, mas, como earbuds Bluetooth, eles cumprem bem o papel
  • Daqui a alguns anos, quando os earbuds tiverem um pouco mais de RAM, talvez dê para rodar até um cluster Kubernetes local

  • Estou esperando o post “portei DOOM para o chip de um vape descartável” 😄

    • O MCU Puya PY32 usado na maioria dos vapes tem 3 KB de RAM e 24 KB de ROM, muito aquém do necessário para rodar DOOM
      Se a lei de Moore continuar valendo, talvez isso seja possível em cerca de 10 anos
    • O vídeo relacionado pode ser visto neste link do YouTube
  • Um visualizador independente conectado diretamente aos earbuds também funciona no celular
    Veja o vídeo de demonstração
    Não há controles por toque, e apenas o loop de introdução é reproduzido