Die in PC-Hardware- und Retro-Gaming-Kreisen noch immer bekannte Grafikbeschleunigerkarte 3dfx Voodoo kehrt nun in Form einer neuen FPGA-Implementierung auf die Bühne zurück. Auf der Grundlage, dass mehrere DOS- und PC-Simulatoren die Leistung von Voodoo gut reproduzieren konnten, entschied sich ein Entwickler, diesen klassischen Chip des letzten Jahrhunderts direkt auf programmierbarer Hardware nachzubilden.

Die Marke 3dfx wurde im Jahr 2000 von Nvidia übernommen und verschwand schließlich, aber ihre Beschleunigerkarten der Voodoo-Serie sind immer noch die „Zauberkarten“ im Herzen vieler Spieler und 3D-Grafik-Enthusiasten und sind auch Kernkomponenten in verschiedenen Retro-Modifikationsprojekten und alten Spiele-Hardwarelösungen. Derzeit werden Voodoo-Chips fast vollständig in verschiedenen Simulatoren wie DOSBox-X, PCem und 86Box simuliert, und Hardware-Spieler probieren ständig Modifikationsprojekte aus, die auf Original-Chips oder hausgemachten Lösungen basieren.

Francisco Ayala Le Brun, Chief Technology Officer des niederländischen Unternehmens VideowindoW, entschied sich dafür, einen neuen „Reinkarnations“-Weg für Voodoo durch FPGA zu finden. Er nutzte SpinalHDL, eine Hardware-Beschreibungssprache, um die Voodoo-1-Grafikkarte vollständig zu beschreiben und wandelte sie dann in ein digitales Schaltungsmodell um, das auf einem modernen Field-Programmable-Gate-Array (FPGA) laufen konnte.

Le Brun betonte in der technischen Beschreibung, dass Voodoo 1 zwar sehr alt sei, es sich aber keineswegs um ein einfaches Chip-Design handele. Im Gegensatz zu modernen GPUs verfügt sie weder über Transformations- und Beleuchtungshardware noch über programmierbare Shader-Funktionen. Alle Grafikfunktionen sind im Siliziumchip in Form fester Funktionen „fest codiert“, einschließlich einer vollständigen Pipeline von Gradientenberechnungen für Gouraud-Schattierung, Textursampling, Mipmapping, mehrstufige Texturfilterung (bilinear und trilinear), Alpha-Clipping, Clipping-Berechnungen usw.

Beim 3dfx-basierten Grafik-Rendering-Prozess ist die CPU für die Durchführung der komplexen mathematischen Operationen verantwortlich, die zur Beschreibung der 3D-Szene erforderlich sind, während der Voodoo-Beschleuniger so schnell wie möglich strukturierte Dreiecke auf den Bildschirm zeichnet. Le Brun wies darauf hin, dass diese „scheinbar einfache“ Aufteilung der Verantwortlichkeiten leicht zu der Annahme führen kann, dass auch die Hardwarestruktur sehr einfach sei. Selbst wenn nur ein Dreieck gerendert wird, müssen im Chip eine Reihe von Vorgängen wie Farbinterpolation, Texturabtastung, Auswahl des Mip-Levels, Filterung, Tiefenvergleich, Zuschneiden und Nebeleffekte ausgeführt werden. Darüber hinaus handelt es sich hierbei nicht um programmierbare Prozesse im modernen Sinne, sondern sie sind in Form fester Schaltkreise im Chip verankert.

Bei der Rekonstruktion von Voodoo 1 musste Le Brun die darin verborgene Komplexität aufdecken: den Steuerpfad, die Registersemantik und das extrem „tiefe“ Pipeline-Timing-Design neu organisieren, damit dieser frühe 3D-Beschleuniger wie damals auch komplexe Rendering-Aufgaben nach Pixeln auf FPGA aufteilen und die Pipeline-Verarbeitung in mehreren Stufen durchführen kann, wodurch Datendurchsatzfähigkeiten erreicht werden, die weit über denen des reinen Software-Renderings liegen.

Mit Hilfe moderner Tools wie SpinalHDL und Register Transfer Level (RTL) Design „kodierte“ Le Brun die Architekturkonzepte von Voodoo in die FPGA-Implementierung, ohne Details zu verlieren. Er nannte dieses Projekt „SpinalVoodoo“ und hat es auf GitHub als Open Source bereitgestellt. Derzeit ist nur ein kleiner Teil der Funktionen des ursprünglichen Voodoo-Chips nicht vollständig.

Obwohl das Projekt in der Retro-Hardware-Enthusiasten-Community für Aufsehen gesorgt hat, hat Le Brun noch kein Interesse daran gezeigt, handelsübliche FPGA-Hardware rund um SpinalVoodoo auf den Markt zu bringen und zu verkaufen. Für 3dfx-Fans und Retro-Gamer bietet diese Open-Source-Implementierung immer noch einen attraktiven neuen Weg für zukünftige Hardware-Projekte, DIY-Karten oder Modding-Lösungen.

Erfahren Sie mehr:

https://noquiche.fyi/voodoo