7 points par GN⁺ 2026-01-26 | 5 commentaires | Partager sur WhatsApp
  • Projet portant le jeu classique de 1993 DOOM sur les écouteurs sans fil PineBuds Pro, avec possibilité d’y jouer à distance via le web
  • Composé de quatre éléments : un serveur série (serial server) reliant les écouteurs et le serveur web, un serveur web, une page web statique et le port de DOOM
  • Grâce à une connexion UART, le projet obtient une bande passante d’environ 2,4 Mbps et transmet la vidéo via un flux MJPEG, pour une performance théorique allant jusqu’à 27 FPS
  • Le CPU a été overclocké de 100 MHz à 300 MHz et, malgré les limites de l’encodage JPEG, les performances réelles atteignent environ 18 FPS
  • Les contraintes de RAM et de FLASH ont été surmontées grâce à des optimisations et au fichier Squashware WAD allégé, montrant le potentiel des expérimentations matérielles basées sur un firmware open source

Aperçu du projet

  • DOOM, sorti en 1993, a été porté pour fonctionner sur les écouteurs PineBuds Pro
    • Les PineBuds Pro sont présentés comme les seuls écouteurs sans fil compatibles avec un firmware open source
    • Les visiteurs du site peuvent s’inscrire dans une file d’attente pour jouer au jeu à distance
  • Le projet se compose de quatre parties
    • Un port de DOOM exécuté sur les écouteurs
    • Un serveur série qui relie les écouteurs au serveur web et convertit le flux MJPEG en Twitch
    • Un serveur web chargé de fournir les ressources, gérer la file d’attente, transmettre les entrées clavier et afficher le flux
    • Une page web statique chargée de l’affichage dans le navigateur et de la communication avec le serveur

Matériel et architecture de connexion

  • Les écouteurs n’ont pas d’écran ; les données sont donc transmises via Bluetooth ou via des pads de contact UART
    • Le Bluetooth, limité à environ 1 Mbps, est plus lent, ce qui rend l’UART (2,4 Mbps) plus adapté
  • Le framebuffer de DOOM a une résolution de 320×200 en couleur 8 bits, soit environ 96 KB
    • Avec la bande passante de l’UART, cela permettrait de transmettre environ 3 FPS
    • Pour améliorer cela, le projet adopte un flux MJPEG
  • Utilisation de bitbank2/JPEGENC comme encodeur JPEG
    • Taille moyenne des images JPEG : 11 à 13,5 KB
    • La cadence théorique maximale atteint 22 à 27 FPS

Ajustement des performances CPU

  • Le firmware de base cadence le CPU à 100 MHz, mais celui-ci a été monté à 300 MHz et le mode basse consommation désactivé
  • Le Cortex-M4F (300 MHz) est suffisant pour exécuter DOOM, mais l’encodage JPEG devient le principal goulet d’étranglement
    • La cadence réelle se situe autour de 18 FPS

Optimisation de la mémoire (RAM)

  • La RAM accessible par défaut est de 768 KB, portée à 992 KB lorsque le processeur auxiliaire est désactivé
  • DOOM nécessitant 4 MB de RAM, diverses optimisations ont été appliquées
    • Pré-génération de tables de recherche, stockage des variables const en flash, désactivation du système de cache, suppression de variables inutiles, etc., pour réduire l’empreinte mémoire

Problème de capacité de la mémoire flash

  • Le fichier WAD standard de DOOM 1 pèse 4,2 MB, ce qui dépasse la limite de stockage de 4 MB des écouteurs
  • Le problème a été résolu en utilisant la version allégée Squashware WAD (1,7 MB) de fragglet
    • Toutes les ressources peuvent ainsi tenir dans la mémoire flash

Open source et accessibilité

  • Le code du projet est publié dans deux dépôts GitHub
    • DOOMBuds : port de DOOM pour écouteurs
    • DOOMBUDS-JS : prise en charge de l’interaction entre le navigateur et les écouteurs
  • Le site fonctionne avec une file d’attente et, à partir de la 5e position, le flux Twitch bascule vers un flux MJPEG à faible latence

5 commentaires

 
cybecho 2026-01-27

« It Runs DOOM »

 
pjh2568 2026-01-26

Les maîtres de DOOM sont vraiment… impressionnants.

 
tsboard 2026-01-26

Waouh, là c'est un peu... hallucinant hahaha

 
kimjoin2 2026-01-26

Mon Dieu.

 
GN⁺ 2026-01-26
Avis Hacker News
  • Chaque fois que je vois DOOM tourner sur un appareil aussi simple, je me demande si c’est une victoire du logiciel ou un échec économique à ne pas avoir su fabriquer du matériel dédié moins cher

    • Les PineBuds ont dès le départ été conçus comme une plateforme de firmware open source et embarquent donc un MCU puissant pour l’expérimentation
      Des écouteurs Bluetooth ANC ne sont pas des produits simples, et la réduction de bruit exige d’exécuter en continu des calculs très complexes
      Un MCU rapide n’est pas juste du gaspillage : il apporte des avantages en faible latence et en gestion efficace de l’alimentation
      Il est bien plus réaliste d’avoir une architecture évolutive avec un MCU générique qu’un ASIC parfait
      Au final, acheter en volume un MCU éprouvé revient bien plus vite que de fabriquer une puce sur mesure
    • Sous un autre angle, c’est un succès économique : grâce aux économies d’échelle, du matériel performant est devenu l’option la moins chère
    • J’y vois une victoire de la fabrication des semi-conducteurs
      Le coût en main-d’œuvre, tests, formation et petite série pour concevoir et produire une puce sur mesure est en fait plus élevé
      Le coût des processus métier pèse bien plus lourd que le coût des matériaux
    • Je suis surpris qu’on essaie d’interpréter comme un échec économique cet énorme succès de l’économie de marché
      On vit dans un monde où DOOM tourne sur des écouteurs, il n’y a aucune raison de voir ça négativement
    • Un CPU dual-core ARM Cortex-M4F à 300 MHz : l’échelle de progression du matériel depuis la sortie de DOOM est vraiment folle
      C’est excessif, mais c’est impressionnant que tout ça tienne dans l’oreille
  • C’est moi qui ai porté DOOM sur les PineBuds Pro
    En vous connectant via Internet, vous pouvez jouer à DOOM sur mes écouteurs
    Les détails et le lien GitHub sont sur mon site

    • Je me demande quel taux de compression vous obtenez avec l’encodage JPEG
  • C’est toujours un peu dommage qu’on porte uniquement DOOM
    Avant, il y avait beaucoup de jeux simples mais addictifs ; aujourd’hui les jeux sont devenus trop gros et trop complexes pour être adaptés à de petites plateformes
    On dirait que l’industrie a perdu sa direction, hors scène indé
    Des jeux comme Master of Orion 1 étaient simples mais donnaient envie d’y revenir encore et encore
    Les jeux actuels ressemblent davantage à des vidéos, avec peu d’interaction et du grind d’XP, ce qui les rend moins intéressants

    • Si DOOM est si souvent choisi, c’est grâce à son côté open source, à ses besoins modérés en ressources, à son moteur intéressant et au respect qu’inspirent ses développeurs
      C’est presque devenu une tradition
    • Si les anciens jeux étaient petits, c’était à cause des contraintes techniques
      Aujourd’hui, la plupart des utilisateurs se soucient assez peu de la taille ou des performances
      Comme les consommateurs ont adopté une attitude du type « tant que ça tourne », la valeur de l’optimisation a diminué
      Cela dit, la scène indé propose encore beaucoup de jeux courts et stylés
      C’est juste que les jeux courts, comme les films, ont du mal à marquer durablement et restent donc peu connus
    • Je suis d’accord, moi aussi j’aimerais voir Freespace 2 tourner sur des écouteurs
  • La liste des portages de DOOM est disponible sur la page Wikipédia

  • Je pense que c’est un excellent coup de pub pour les PineBuds Pro
    Je me demande si les Fairbuds pourraient faire pareil
    Mais puisque DOOM tourne sur autant d’appareils, pourquoi n’est-il toujours pas fluide sur un 386 ?

  • Ça me rappelle que John Carmack disait dans une interview après DOOM 3 qu’avec la complexité croissante des moteurs, il était devenu impossible pour lui d’écrire tout le code tout seul
    Je me demande ce qu’il pense de l’époque actuelle de l’IA

    • Il se concentre actuellement sur la réalisation de l’AGI
      Personnellement, je pense qu’il est plutôt positif vis-à-vis de l’IA
      Et “Masters of Doom” est vraiment un excellent livre, que je recommande
    • Même à l’époque du développement de DOOM, Carmack utilisait déjà une approche de type IA, sous la forme d’interpolation approximative (Approximate Interpolation)
  • Je me demande si quelqu’un ici a déjà utilisé les PineBuds Pro
    Il n’y avait pas de canal dédié sur l’IRC de Pine64, donc c’était difficile de poser la question

    • Honnêtement, je ne les ai jamais utilisés pour leur usage principal
      Je ne peux rien dire sur le confort ou la qualité audio, mais il existe un salon Pinebuds dédié sur le serveur Discord de Pine64
    • Je les utilise depuis leur sortie, et l’autonomie est courte — avec l’ANC activé, on atteint au mieux 2 heures
    • J’aimais bien Pine64 autrefois, mais après les problèmes avec la tablette e-ink et le téléphone, ma confiance a diminué
    • Pour ma part, j’en suis satisfait
      J’ai volontairement installé un firmware sans ANC, mais comme écouteurs Bluetooth, ils remplissent correctement leur rôle
  • Dans quelques années, avec un peu plus de RAM dans les écouteurs, on pourra sans doute faire tourner un cluster Kubernetes local

  • J’attends le billet intitulé « J’ai porté DOOM sur la puce d’une cigarette électronique jetable » 😄

    • Le MCU Puya PY32 utilisé dans la plupart des cigarettes électroniques n’a que 3 KB de RAM et 24 KB de ROM, ce qui est très loin d’être suffisant pour faire tourner DOOM
      Si la loi de Moore continue, ce sera peut-être possible dans une dizaine d’années
    • La vidéo correspondante est visible via ce lien YouTube
  • Une visionneuse autonome directement connectée aux écouteurs fonctionne aussi sur mobile
    Voir la vidéo de démonstration
    Il n’y a pas de contrôle tactile, seule la boucle d’introduction est lue