DoomGeo-AES : Doom tourne enfin sur Neo Geo, la dernière machine qui lui résistait

/ Le projet DoomGeo-AES fait tomber la dernière forteresse : Doom tourne sur Neo Geo AES grâce à une approche qui contourne l'architecture à sprites de la console de SNK.
publié le 11 juin 2026

Doom tourne partout. Sur des calculatrices, des robots-tondeuses, des tests de grossesse. Le FPS d'id Software, sorti en 1993, est devenu le test ultime de la scène homebrew — si un appareil possède un écran, quelqu'un finira par y faire tourner Doom. Pourtant, une machine résistait depuis trente ans : la Neo Geo AES de SNK. Pas par manque de puissance, mais par incompatibilité architecturale fondamentale. Le développeur Sabino vient de publier DoomGeo-AES, un prototype qui prouve que l'impossible n'est qu'une question d'approche.

Pourquoi Doom ne pouvait pas tourner sur Neo Geo

Pour comprendre l'exploit, il faut revenir sur ce qui rend la Neo Geo structurellement hostile à Doom. Le moteur d'id Software repose sur un rendu logiciel : le processeur calcule chaque pixel de l'image, les écrit dans un framebuffer — une zone mémoire représentant directement ce qui s'affiche à l'écran — et le hardware se contente d'envoyer le résultat au téléviseur. C'est cette logique qui permet à Doom de tourner sur à peu près n'importe quoi, tant que la machine autorise un accès libre à sa mémoire vidéo.

La Neo Geo, elle, ne fonctionne pas du tout comme ça. Son système graphique, conçu par SNK pour dominer le marché de l'arcade 2D, est une machine à sprites. Le matériel sait afficher, déplacer et redimensionner un grand nombre de sprites avec une précision d'arcade — c'est ce qui donne à Metal Slug, The King of Fighters ou Samurai Shodown leur rendu caractéristique. Mais il n'existe aucun framebuffer accessible au processeur. Impossible d'écrire des pixels librement. Le Motorola 68000 cadencé à 12 MHz qui équipe la machine aurait la puissance brute suffisante pour un raycaster, mais il n'a tout simplement aucun moyen de dessiner l'image que Doom calcule.

Des sprites au lieu des pixels

DoomGeo-AES contourne l'obstacle par une approche radicalement différente d'un portage classique. Ce n'est pas un source port de Doom adapté à un framebuffer — il n'y en a pas. Le principe : travailler avec le matériel plutôt que contre lui. Chaque colonne de la vue en première personne est représentée par une bande de sprite verticale que le hardware de la Neo Geo redimensionne nativement. La vue 3D est ainsi reconstituée à partir de 80 colonnes de sprites, chacune mise à l'échelle selon la distance calculée par le moteur de raycasting.

L'astuce ne s'arrête pas là. Les outils de compilation lisent les données WAD du format Doom hors ligne, convertissent les cartes et les éléments en structures adaptées à la Neo Geo, et le programme 68000 gère la scène en mettant à jour les blocs de contrôle des sprites plutôt qu'en dessinant des pixels. Les ennemis sont affichés avec des cadres de rotation pré-calculés, les éléments d'interface (santé, armure, munitions, indicateurs de clés) utilisent le fix layer — la couche graphique fixe de la Neo Geo normalement réservée aux scores et aux logos d'arcade. Le résultat est un moteur complet avec déplacement, rotation, strafing, portes, clés, objets à ramasser, ennemis, projectiles, explosions de barils et l'intégralité de l'arsenal de Doom : poing, pistolet, fusil à pompe, mitrailleuse, lance-roquettes, canon à plasma, BFG et tronçonneuse.

Un prototype de recherche, pas encore un jeu fini

Le projet reste un prototype. La démonstration tourne sur une carte de 16×16 créée manuellement, et la conversion automatique des niveaux originaux de Doom est encore expérimentale. L'audio — effets sonores et musique via le processeur Z80 et la puce Yamaha YM2610 — n'est pas encore implémenté. Mais le plus dur est fait : prouver qu'un système considéré comme fondamentalement inadapté peut produire quelque chose qui ressemble à Doom en mouvement. Comme le résume un commentateur sur Reddit : « Ce n'est pas strictement Doom, mais c'est un moteur personnalisé qui ressemble à Doom. Super Mario 64 sur GBA utilise les mêmes types d'astuces intelligentes pour fonctionner sur du matériel limité. »

Le code source est disponible sur GitHub, accompagné d'une version jouable directement dans le navigateur via EmulatorJS et le core FBNeo. DoomGeo-AES s'inscrit dans une scène homebrew Neo Geo active, soutenue notamment par ngdevkit, le kit de développement open source pour la console de SNK — un outil d'origine française que la communauté continue d'enrichir. La dernière machine qui résistait à Doom vient de céder. Reste à savoir si la communauté poussera le projet jusqu'à un portage complet — ou si le mythe de la Neo Geo inviolable aura vécu juste assez longtemps pour mériter cette fin.

YouTube Thumbnail

Sources : GitHub — DoomGeo-AES.

‹ Article précédent
Minecraft tourne sur PlayStation 2 grâce à un portage homebrew