El emporio Voodoo: emulando 3DFX en tiempos modernos

A lo largo de los últimos años, los entusiastas de la retro-informática se las han apañado para poder revisitar en máquinas modernas el software que mamaron en su juventud. En el caso de los videojuegos clásicos para PC, proyectos como DOSBox nos han resuelto en parte la papeleta al permitir emular la mayoría de títulos que corrían sobre MS-DOS, mientras que otras iniciativas comerciales como GOG van un pasito más allá removiendo cielo y tierra para encontrar el código fuente de ciertos títulos en su camino por hacerlos funcionales en máquinas modernas por diversas vías. Aún así, hay un pequeño vacío que poco a poco va llenándose y que, para mucha gente, forma parte de sus raíces como videojugador.

Quake 2 con aceleración 3D 3DFX
Quake 2 corriendo en Voodoo 2 con la API Glide

A mediados de 1995, con la primera PlayStation a punto de desembarcar en el mercado occidental, la hegemonía de los videojuegos 3D era inminente. La industria del hardware ya estaba inmersa en un forzoso replanteamiento en el ámbito de las tarjetas gráficas para no quedarse atrás técnicamente con respecto a lo que podía visumbrarse en otros sistemas de entretenimiento, pero al tratarse de una industria abierta y competitiva, la segmentación hizo un poco de mella en su expansión durante los primeros años. Este problema surgió cuando cada compañía intentó implantar su propia API para el desarrollo de juegos en su hardware, creándose una gran segmentación en el mercado más allá de los estándares Direct3D y OpenGL que acabarían siendo los más utilizados años después. Como esta definición va a traer cola más adelante, mejor explicarla for dummies: podríamos entender una API (Application Programming Interface) como un conjunto de herramientas que agilizan muchas tareas programador a la hora de comunicarse con el hardware. En el caso de las APIs de renderizado 3D, digamos que permiten trabajar directamente con aspectos muy específicos de la tarjeta gráfica sin que para ello tenga uno que embarrarse los pies en una capa de abstracción de bajo nivel. No es lo mismo decirle a tu juego «oye, píntame una esfera y tú te las apañas con la gráfica» que contarle con pelos y señales cómo debe hacerlo, lo cuál además variaría de un hardware a otro.

Capas de abstracción en DirectX
Las diferentes capas DirectX 12 con las que se comunica un software a la hora de trabajar con la GPU

Precisamente los mencionados Direct3D y OpenGL han sido continuados hasta nuestros días, y más allá de los posibles problemas de compatibilidad con el propio sistema operativo, es posible jugar a videojuegos de usaban dichas APIs hace 25 años sin demasiadas complicaciones. El problema viene cuando hablamos de tecnologías privativas como Glide, API abanderada de la compañía 3DFX, que con su línea Voodoo dominó el mercado de las «aceleradoras gráficas» durante buena parte de los años 90, y que hasta hace bien poco era complicado emular, por lo que un buen puñado de juegos de esos que marcan juventudes han estado sepultados dentro de viejas Micromanías amontonadas en el altillo. Más abajo les cuento qué alternativas tenemos para volver a echarse unas partidas al Interstate 76 o al Pandemonium como realmente fueron disfrutados en su momento.

Comparativa del juego de PC Ultimate Race Pro (1998) corriendo mediante renderizado por software y utilizando 3DFX Voodoo 2.

La edad de piedra de la aceleración 3D

En 1995 ya existían juegos que representaban muy dignamente entornos tridimensionales renderizados por software en tiempo real mediante las tarjetas gráficas de la época, como es el caso del Descent de Parallax Software o el absurdamente brillante para la época Screamer del estudio italiano Graffiti/Milestone, todavía hoy en activo. Obviamente el 3D se usaba ya mucho antes de forma activa en el ámbito de los videojuegos para PC, pero siempre echando mano de humo y espejos para maquillar las carencias del hardware. Fondos pre-renderizados, formas poligonales simples sobre entornos semivacíos… pregúntenle a John Carmack sobre aprovechamiento de los recursos de hardware para simular una falsa tridimensionalidad, que de eso sabe un poco.

Screamer de PC corriendo en SVGA por software
Screamer (1995) fue todo un referente al ofrecer unos espectaculares gráficos 3D en SVGA renderizados por software

Poco antes del mencionado desembarco de 3DFX hubo varias iniciativas para llevar al usuario doméstico la aceleración 3D, cada una de su padre y de su madre, que ofrecían resultados dispares según la capacidad de cada juego para entenderse con la API utilizada por cada tarjeta. Por empezar por alguna parte, la icónica S3 Virge fue de las soluciones más extendidas a mediados de los 90 y una de las primeras tarjetas gráficas híbridas que ofrecía aceleración 2D/3D en una misma placa. Con una agresiva campaña de publicidad logró que su estándar propietario S3D fuera usado en varios juegos. Sin ir más lejos, se comercializó con un CD que incluía los juegos Actua Soccer, Havoc y Terminal Velocity. Aún así, su escaso rendimiento bajo Direct3D y nula compatibilidad con OpenGL daba, a efectos prácticos, unos resultados no demasiado distintos en muchos juegos a la aceleración por software. En este canal de YouTube pueden verse un buen puñado de reveladoras comparativas entre las tarjetas de la época para ir ubicándonos.

Otra compañía algo desconocida llamada NVIDIA, lanzó en 1995 su chipset NV1 con el que pretendía tomar la delantera en el incipiente mercado de la aceleración 3D, pero por diversas razones, el batacazo que se dio en su primer intento fue de aúpa hasta el punto de casi forzar su cierre. La companía Diamond probó suerte con el NV1 en su Edge 3D. Recordemos que, al igual que ahora, las compañías comercializaban tarjetas ensamblando un chipset y vendiéndolo bajo el auspicio de su propia marca. En este caso, también había un acuerdo con SEGA de por medio, ofreciendo una tarjeta multimedia todo-en-uno que, además de integrar aceleración 2D/3D, ejercía de tarjeta de sonido y añadía con una tarjeta PCI adicional dos puertos para mandos de Saturn. Juegos como Panzer Dragoon, Virtua Fighter Remix o Daytona USA fueron portados a PC con soporte para el NV1, pero los resultados no eran especialmente brillantes y otros desarrolladores se tiraron de los pelos para poder aprovechar las capacidades de este hardware. A diferencia del estándar de mapeo de texturas y renderizado mediante superficies triangulares, se utilizó una técnica de subdivisión cuadrática heredada del propio sistema de procesado de gráficos 3D de Saturn, y ya sabemos de qué pie cojeaba aquella consola en comparación con Playstation. El caso es que la ventas de Edge 3D fueron desastrosas, cosa que les llevó incluso a cancelar a medio camino la creación el chip NV2 que iba a integrar la mismísima Dreamcast, y que al final SEGA desechó para alegría de PowerVR, que integró su Series 2 en la blanquita de SEGA y placas Naomi.

Caja de la tarjeta Diamond Edge 3D con el chip NV1 de NVIDIA
Diamond Edge 3D

El emporio 3DFX y la guerra de APIs

Podría mencionar otras tantas historias con de compañías que intentaron hacerse un hueco en el mercado, desde la propia ATI con sus primigenias tarjetas 3D Rage hasta Matrox, que tras centrarse en el ámbito profesional del CAD con su tándem Millenium/Impression probó suerte con la Mystique en 1996. En ambos casos, nada tenían que hacer con Voodoo Graphics, la aceleradora 3D que lo cambió todo y que gracias a sus buenos resultados y precio relativamente asequible (sobre todo con la llegada de Voodoo 2) se comió a la competencia hasta finales de los 90. El único chipset que pudo aguantar el ritmo fue la serie Verite 1000 de Rendition, que ganó protagonismo por ser ser la primera aceleración 3D soportada oficialmente por Quake (a través del port vQuake), pero posteriormente Carmack echó pestes de su API propietaria y debido a esas complicaciones decidieron centrarse en el estándar abierto OpenGL a partir de entonces. Sea como fuere, tal era el proceso de transformación del medio en aquella época que en pocos meses podía quedar un PC totalmente obsoleto si quería exprimir técnicamente los últimos lanzamientos del mercado. Tiempos emocionantes y desquiciados.

Die by the Sword (1998), Moto Racer (1997), Messiah (2000) e Incoming (1998) utilizando la api Glide de 3DFX.

3DFX Interactive lanzó al mercado su chip Voodoo Graphics en 1996 como una aceleradora 3D dedicada centrada en el renderizado de gráficos tridimensionales y sin soporte para aceleración de GUI o estándar de vídeo VGA. Esto quiere decir que para funcionar necesita de una tarjeta gráfica en un bus independiente, puenteando ambas mediante un cable exterior. Cuando la gráfica no está activa, simplemente hace de intermediaria para llevar la señal de vídeo al monitor, pero cuando se activa, toma el protagonismo a la vez que el icónico logo de 3DFX se pone a dar vueltas en en pantalla, al menos en los títulos que presentaban esta alentadora entradilla en el arranque. De pronto pudimos jugar en PC a juegos que se aprovechaban de su filtrado bilineal de texturas, sombreado goraund, MIP mapping y otras tantas denominaciones rimbombantes que comenzaron a ponerse de moda entre el público general. La era del «PC multimedia» había llegado a su fin y tocaba vender nuevas motos.

Tarjeta Voodoo 2 corriendo en un PC moderno con drivers no oficiales
Mi vieja 3DFX Voodoo 2 conectada y a pleno rendimiento junto a una GeForce 2 MX400 en un Pentium IV con Windows XP. Alghnos drivers no oficiales permiten hacerla funcionar en máquinas contemporáneas.

Y por fin llegamos al meollo del asunto. Aunque la primera generación de Voodoo era compatible con Direct3D 5, presentó su API propietaria, Glide, la cuál ofrecía un rendimiento superior al de otras soluciones de vídeo de la época. En este canal de YouTube centrado en comparativas de tarjetas gráficas de la época puede comprobarse que casi siempre ganaba por goleada. La primera hornada de juegos que lo usaban corrían sobre MS-DOS: ver el primer Tomb Raider, Carmageddon o Battle Arena Toshinden en una 3DFX era tan brillante que asustaba tener una máquina así en casa en comparación a lo que veías en la PSX de tu vecino del 4ºC cuando te invitaba a jugar al Crash Bandicoot.

Comparativa de gráficos de Quake 2.
Quake en su versión GLQuake que John Carmack lanzó de forma no oficial para testear las APIs 3D de cara al lanzamiento de Quake 2

Hay una serie de señas de identidad visuales asociadas a las primeras tarjetas Voodoo y su uso de GLide. Además de un preset de gamma más subido de la cuenta, las texturas mostraban un curioso filtrado de puntitos que a día de hoy resulta mucho más evidente al usar pantallas planas. Efectivamente, las tarjetas de 3DFX usaban dithering para simular una mayor profundidad de color que los 16-bits por limitaciones en el framebuffer. Un galimatías técnico que, por la parte que nos ocupa, dio lugar a una identidad muy concreta que actualmente es casi imposible disociar. De hecho, ciertos juegos, al haber sido «reacondicionados» para utilizar otras librerías gráficas, lucen de forma muy diferente, en algunos casos incluso peor, si me apuran. Una vez más, toca remarcar que muchos videojuegos están concebidos acorde a las especificaciones técnicas de la época, por lo que más allá de filias, puede llegar a perderse su esencia al adaptarse a plataformas de tiempos posteriores.

Hexen 2 (1997) con muchos, muchos puntitos

Podríamos seguir hablando de las sucesivas revisiones del chipset de 3DFX hasta su caída debido al auge de las empresas que a día de hoy dominan el mercado, pero para eso existen fuentes mucho más interesantes como el libro El legado de 3DFX, escrito por Martín Gamero Prieto, todo un currante de la preservación del medio que narra en este libro todo el arco de triunfo y tragedia vivido por la compañía. Mejor tirar del freno porque ya tenemos todo lo necesario para llegar a donde queríamos.

Aunque ya hace varios años que versiones alternativas de DOSBox permiten simular Glide en algunos de los juegos de MS-DOS que los soportaban, es otro cantar cuando hablamos de juegos para Windows. Si ya de por sí es a veces complicado correr en una máquina virtual juegos diseñados para las ediciones pre XP del sistema operativo de Microsoft, la cosa se vuelve un suplicio si tenemos de por medio aceleración 3D. Otra vía radica en usar un wrapper como nGlide, una herramienta capaz de transcribir la API Glide para su uso con tarjetas gráficas que no lo soportan. El problema de esto último es que sí, podemos engañar a nuestro hardware para pueda interpretarlo DirectX de forma relativamente fidedigna, pero claro, ¿quién nos dice que esos videojuegos diseñados para correr en Windows 95 van a funcionar en, por ejemplo, Windows 10? Ya les digo yo que en muchos casos hay que devanarse los sesos. Por suerte, existe una solución que ha acabado con la mayoría de los problemas.

Emulando una aceleradora 3D con PCem

PCem es un emulador de la arquitectura IBM PC y demás ordenadores «clónicos» de la época. Nacido en 2007, permite crear nuestro propio PC virtual seleccionando qué componentes vamos a ensamblarle. Actualmente es capaz correr con soltura máquinas con CPU basada en el socket 7 como los Pentium MMX y Overdrive, por lo que tenemos cubierta la emulación de máquinas de hasta bien entrado 1997. Pero aquí viene lo bueno: también es capaz de emular diferentes modos de vídeo, soportando desde la versión v10 un símil de aceleración gráfica mediante el chipset Voodoo Graphics (la primera tarjeta de 3DFX, ¿recuerdan?). A partir de la versión v12, ya en 2017, se ha refinado tanto la fórmula que los juegos corren como la seda en cualquier PC contemporáneo con un framerate y fidelidad que lo convierten en una solución todo-en-uno para volver a echarse unas partidas al Ignition.

PCem permite configurar un PC virtual al detalle

El único pero que se le puede poner a esta herramienta podría resultar para el entusiasta más cacharrero un divertimento adicional. Vale, PCem te emula Windows 95 y te permite correr todo tipo de sofware sin problemas, pero alguien tendrá que configurar esa máquina, ¿no? Efectivamente, cuando montemos nuestro PC virtual tendremos que instalar el sistema operativo y todos los drivers necesarios a la antigua usanza. Para ello podremos recurrir a imágenes de disco tanto de CDs como diskettes e incluso casetes (PCem también emula otras arquitecturas más antiguas) con las que montaremos las unidades que necesitemos. En páginas como WinworldPC o Vogons (una de las comunidades de retrocacharreo más interesantes) se pueden descargar ediciones antiguas de Windows y drivers para casi todo lo que necesitemos, y trasteando un poco por la red se pueden encontrar tutoriales para quienes no tuvieron que sufrir configurando ordenadores de aquella época. Aún así, también pueden encontrarse por ahí máquinas con todo ya instalado y preconfigurado. AQUÍ les comparto uno de los presets que uso a menudo, un Pentium 90 con una flamante Voodoo Graphics.

Turok (1997) corriendo en PCem

Gracias a la labor de preservación de sitios como Abandonsocios no tenemos que ponernos a crear imágenes de nuestros discos físicos originales, ya que casi cualquier juego que se nos ocurra habrá sido almacenado, si no en Archive.org, en cualquier otro sitio análogo. Aún así, viene bien tener a mano una herramienta para la creación manual de ISOS como ISO Creator, que los monta al vuelo a partir de una carpeta local a nuestra elección. Dejando la aceleración 3D a un lado, pude volver a rememorar el Blade Runner de Westwood mucho antes de que GOG lo incluyera en su catálogo o apareciera aquel parche no oficial para correrlo en Windows 10. Les aseguro que la arqueología de software es una práctica excitante en la que se redescubren cosas que, precisamente por la complejidad que supone el rememorarlas en los últimos años, han caído en el olvido.

Nada nos impide introducir las imágenes de disco de viejas revistas o recopilatorios y abrirlas con PCem. ¿Quién no recuerda el Tatoo 4 con aquel Easter Egg en forma de vídeos de Pamela Anderson y Tommy Lee?

7 comentarios sobre “El emporio Voodoo: emulando 3DFX en tiempos modernos

    1. Gracias, salao. De momento estoy extendiendo con los temas que ya he tratado para ir desentumeciendo músculo. Ya vendrán los nuevos experimentos pronto si la cosa marcha 🙂

  1. Como bien dices, una época apasionante para ser recordada ahora. Yo en esa época no estaba tanto en lo tecnológico (bueno, ni ahora realmente), pero recuerdo la cara que se me quedó y la mandíbula caida al suelo cuando en casa de un hamijo pude ver el Incoming en todo su esplendor con una Voodoo…

    Gracias a uno de tus hilos de tuiter (soy usuario «pirata» y por eso nunca he podido saludarte en esa plataforma… :() me descubriste el PCEm y gracias a eso ahora vuelvo a disfrutar de mis vetustos CDs demos de la OKPC (eso sí, conseguidos a través del mercadeo de segunda mano, los originales vaya usted a saber dónde están).

    1. Se me han erizado los pelillos cuando has mencionado lo de las demos de OKPC. Con esa revista fue la primera vez que entró un CD-ROM a mi casa de crío. Gracias por estar ahí de fondo viendo mis cosillas y oye, enhorabuena por tener tú también el valor de escribir en un blog personal a estas alturas de la vida 🙂

    1. Y si se te queda corto, puedes cambiar la CPU por una más tocha y aumentar la RAM desde el menú de configuración previo sin cargarte nada. He podido correr ahí hasta el Messiah que ya era de entraditos los 2000, así que va sobrado.

  2. Ya estuve cacharreando cuando comentaste el PCem por twitter hace un tiempo, pero no conseguí hacerlo funcionar con las Voodoo. Creo que este finde toca volver a intentarlo (y si no, usar el preset que compartes y tirar a lo fácil). Todavía recuerdo lo que me flipó jugar con la Voodoo 2 en PC hace años. Ahora entiendo por qué las consolas no me llamaban nada en esa época (ahora me arrepiento, eso sí), cuando jugar al Quake2 era una delicia.

    Tengo por ahí todavía el pack de juegos que venía con la Voodoo 2, el G-Police, Incoming,.. Lo que no sé es dónde estará la tarjeta, me temo que la tiraría en algún momento. Ójala un día en casa de mis padres encontrarme tal tesoro guardado.

    Voy a ver si consigo este finde ver esos disparos del blaster del Quake2. Ay! se me caen las lagrimillas…

    Genial post Rosso! Un placer leerte.

Deja un comentario