● Korben
📅 23/03/2026 à 08:09
SpinalVoodoo - La 3dfx Voodoo recréée de zéro en FPGA - Korben
Cybersécurité
👤 Korben
SpinalVoodoo - La 3dfx Voodoo recréée de zéro en FPGA23 mars 2026 / PAR KORBEN ✨ / 3 MIN DE LECTURE / À lire plus tard SauvegardéCe qu’il faut retenirUn dev a recréé la 3dfx Voodoo 1 entièrement en FPGA via SpinalHDL : 430 registres, pipeline graphique complet, Quake et Screamer 2 qui tournent nativement sur la puce reprogrammableLe vrai défi n'était pas l'émulation logicielle mais le timing hardware : chaque registre réagit différemment selon le moment du cycle, causant des corruptions de pixels si mal géré (découvert via Conetrace après des mois de débogage)SpinalVoodoo implémente textures, transparence, brouillard et depth buffer, mais manque le contrôleur d'affichage VGA, le trilinéaire et le multi-texture ; aucune licence spécifiée sur le repoRésumé généré par IAQuand Nvidia a racheté 3dfx, la Voodoo est morte façon Marion Cotillard dans Batman, et tout le monde était "mui tristé"... Mais vous allez pouvoir sécher vos larmes de "crocrodiles" car un dev vient de la ressusciter... dans un FPGA (c'est une puce reprogrammable).SpinalVoodoo, c'est 430 registres de configuration, un pipeline graphique complet et des jeux à l'ancienne qui tournent OKLM du genre Quake ou Screamer 2.Hé oui, sur un FPGA !Le projet de Francisco Ayala Le Brun, c'est en fait une réimplémentation complète du GPU Voodoo 1 en SpinalHDL (un langage pour décrire des circuits). Pas de l'émulation logicielle genre 86Box mais une reconstruction totale du pipeline hardware registre par registre dans une puce reprogrammable. Du coup chaque pixel sort comme sur la carte d'origine comme quand elle faisait tourner Quake en 640x480 sous Windows 95. Enfin presque...Screamer 2 par SpinalVoodooJe dis "enfin presque" parce que la Voodoo original, c'est pas juste un chip qui balance des triangles. Il y a en fait quatre types de registres qui réagissent chacun différemment selon le timing. Du coup si vous changez un paramètre au mauvais moment pendant qu'un triangle traverse le pipeline, les derniers pixels du triangle A se retrouvent avec la config du triangle B. Bref, bonjour la corruption !SpinalHDL permet donc d'encoder tout ça proprement. Chaque registre déclare son adresse, sa catégorie et son mode d'accès en une seule déclaration. Pour un projet fait en solo, c'est quand même du costaud.D'ailleurs, le récit de débogage vaut le détour. L'auteur avait des pixels d'overlay translucides qui devenaient mystérieusement transparents. Il a d'abord soupçonné un problème de framebuffer, changé les priorités d'écriture, ajouté des chemins sans cache... et l'artefact bougeait à peine. Snif...Et là, avec Conetrace (un outil qui trace le chemin des pixels à travers le design), il a fini par trouver le coupable : 3 micro-erreurs de précision qui, séparément, étaient quasi invisibles, mais qui ensemble foutaient le bordel sur certains pixels. Le "bug mémoire" n'en était finalement pas un. Va savoir combien de développeurs hardware se seraient arrachés les cheveux là-dessus !Quake sur SpinalVoodoo, rendu FPGA fidèle à l'originalCôté compatibilité, la majorité du pipeline graphique est implémenté (textures, transparence, brouillard, depth buffer, dithering...) par contre, y'a pas encore de contrôleur d'affichage (pas de sortie VGA native pour le moment), pas de trilinéaire, et pas de multi-texture. Attention aussi, pas de licence spécifiée sur le repo pour le moment, ce qui est un peu dommage si vous comptez réutiliser le code.Si vous avez suivi le mec qui a conçu sa carte mère 486 from scratch avec un FPGA Spartan II, ou la Game Bub et son FPGA pour le rétrogaming, SpinalVoodoo pousse le curseur encore plus loin. Reproduire un GPU dédié avec son pipeline fixe et ses subtilités de timing, c'est quand même pas le même délire qu'émuler un CPU.Bref, qu'une seule personne puisse recréer un GPU complet avec les outils RTL modernes, moi je trouve ça assez foufou !SourceRéférenceshttps://noquiche.fyi/voodoohttps://hackaday.com/2026/03/22/the-3dfx-voodoo-lives-again-in-an-fpga/Cet article peut contenir des images générées à l'aide de l'IA - J'apporte le plus grand soin à chaque article, toutefois, si vous repérez une boulette, faites-moi signe !Vous avez aimé cet article ?Alors rejoignez ma communauté sur Patreon et accédez à des articles exclusifs, des tutos avancés et plein d'autres surprises que je réserve à mes soutiens. C'est grâce à vous que je peux continuer à partager ma passion depuis 20 ans !Rejoindre l'aventure Développeurs, découvrez les offres taillées pour vos projetsContenu partenaireVous êtes développeur web ? Alors vous allez adorer les nouvelles offres de o2switch, conçues spécialement pour vous !Profitez d'une puissance inégalée : Cloud avec 12 CPU et 48 Go de RAM à 1,86 € HT/mois, ou Pro avec 24 CPU et 64 Go de RAM à 6,25 € HT/mois. Déployez vos projets en quelques clics grâce à Softaculous et ses + de 300 scripts prêts à l'emploi.La vitesse, vous aimez ? Eux aussi ! C'est pour ça qu'ils vous font fait profiter de la technologie NVMe dernière génération et de puissants caches comme Varnish et LiteSpeed. Tout ça avec la sérénité d'un hébergement français sécurisé par un WAF sur-mesure, des sauvegardes jusqu'à 90 jours (selon l'offre) et un support prioritaire 24/7 (N2 à N2+3 selon l'offre).Et vous savez quoi ? Les offres démarrent à seulement 1,86 € HT/mois. Foncez, c'est le moment de coder sans limites et de donner vie à vos projets les plus fous grâce à o2switch !Découvrez les nouvelles offres o2switch
🔗 Lire l'article original
👁️ 2 lectures