No todos los ordenadores fueron creados igual. Unos nacieron para educar, otros para jugar, y el caso del PC de IBM para los negocios. Aunque esto ya se ha dicho antes, en mi famoso artículo sobre la edad de oro de las tarjetas de sonido. En esta ocasión nos centraremos en el apartado gráfico del vetusto y ubicuo ordenador personal del gigante azul. CGA, EGA, VGA… ¿te suena?
A diferencia de los ordenadores domésticos de la época, la arquitectura PC no usaba un chipset para gráficos integrado, sino que se valía de tarjetas de expansión para acometer la salida por pantalla. Esto, junto con su filosofía de ser una arquitectura más o menos abierta, propició que existiera a lo largo de su existencia toda una variedad de soluciones. He devorado un montón de páginas de revistas de informática antiguas y he aquí mis impresiones.
Cuando apareció el primer PC en 1981 se ofrecieron dos controladores gráficos distintos: Monochrome Display Adapter (MDA) y el Color Graphics Adapter (CGA). Ambas basadas en el Motorola 6845, un chip encargado de generar señales de vídeo, que acabaría usándose en ordenadores como el BBC Micro y el Amstrad CPC. De hecho, también se usó en otros adaptadores de vídeo para PC, que veremos ahora mismo.
Monochrome Display Adapter
La madre de todas las tarjetas gráficas de PC no es otra que la MDA, y se cita a menudo como una de las razones de su éxito en el entorno de los negocios. Se trata de, como su propio nombre indica, un adaptador de gráficos monocromo, con conexión ISA de 8 bits, y permite una matriz de caracteres en alta resolución de 80 por 25.
Bueno, la verdad es que gráficos es quizá decir mucho, por lo que el nombre de «tarjeta gráfica» le viene un poco grande, pero «tarjeta de texto» le viene pequeño (y naturalmente no la iban a llamar «tarjeta de pellizcos»). Aunque su resolución real era de 720×350 píxeles (80×25 caracteres de 9×14 píxeles) su memoria de tan sólo 4k no permitía direccionar cada punto por separado (aunque sí atributos como subrayado o parpadeo), de ahí a que su único modo de pantalla fuera el de texto. Aún con todo, para un uso profesional como hoja de cálculo o procesador de textos era suficiente, de hecho su gran calidad de imagen la hizo incluso más popular que su hermana de leche.
El monitor y la tarjeta contaban con una conexión TTL, con dos pines para la señal de vídeo (ya que permitía un bit de intensidad) y dos para sincronía vertical y horizontal. El refresco de pantalla era fijo a 50Hz, y contaba con dos knobs para el contraste y el brillo. La pantalla de fósforo verde, imagen del ordenador desde los 60 y hasta bien entrados los 80, daba su nota de sobriedad.
Un hecho curioso y conocido es que el Monochrome Display and Printer Adapter, como se llamaba formalmente, incluía un puerto paralelo para la impresora.
Color Graphics Adapter
La CGA fue lanzada al mercado al mismo tiempo que el IBM PC y la MDA. No incluía el modo de texto en alta resolución de su hermana trajeada, pero sus 16 KB de memoria le permitían utilizar una resolución de 640×200 en blanco y negro o 320×200 a cuatro colores con tres paletas gráficas predefinidas. Incluía modos de texto con 16 colores, aunque no tan pulcros como los de la MDA.
Ni que decir tiene que era la opción lógica para las aplicaciones lúdicas, y salvo algunos juegos en modo texto casi todos dieron soporte a esta tarjeta para mostrar gráficos. De hecho durante al menos 10 años siguieron apareciendo juegos que, de una manera u otra, permitían usar este venerable hardware. De hecho Son of the Empire (Action Sixteen) soportó esta tarjeta en el año 1992 de Nuestro Señor, incluso Windows 3.0 (Microsoft, 1990) funcionaba con ella.
La tarjeta CGA podía usarse con el mismo conector DE9 que MDA, salvo que en lugar de tener dos pines TTL tenía cuatro (RGBi), lo que nos daba una conexión digital de 16 colores y sincronía. Todo ello con una frecuencia de refresco fija en 60 Hz. Curiosamente uno de los pines se usaba como una salida de 12V al monitor, aunque la mayoría no lo usó.
Además de la conexión TTL una de las características más interesantes de las tarjetas CGA era su salida analógica de vídeo NTSC, como una conexión RCA de vídeo compuesto. La verdad es que sus colores no eran una maravilla, y tendían a mezclarse unos con otros, al fin y al cabo se trataba de vídeo compuesto y codificado como «Never Twice Same Color» nada menos. No obstante esto podía usarse como una ventaja, y permitir muchos más colores aparentes al mezclar los adyacentes para generar «nuevos». El amigo 8-Bit Guy lo explica mucho mejor en su canal, si entendéis el idioma de Chaquespeare.
A lo largo de los años se han desarrollado técnicas complejas para sacar muchos más colores de los ideados inicialmente, hasta 1024 en la demo 8088 MPH (Hornet & CRTC & Desire, 2015). Al parecer, manipulando con mucho cuidado las sincronizaciones de vídeo, accediendo a modos no documentados y programando a muy bajo nivel, podemos hacer auténticas diabluras con este hardware. Naturalmente es poco práctico, pero ahí queda.
Debido a que MDA y CGA usaban recursos distintos técnicamente era posible usar las dos tarjetas al mismo tiempo, con dos monitores. La hoja de cálculo por antonomasia, Lotus 1-2-3 (Lotus Software, 1993) escribía directamente en la memoria de vídeo y consiguió que pudiera usarse el monitor monocromo para visualizar el texto y el monitor a color para gráficos, todo simultáneamente. Aunque esta característica no fue ampliamente utilizada, este software fue una de las razones del éxito del PC a medio plazo, y un importante punto de referencia para considerar un ordenador como «compatible».
Hercules Graphics Card
Esta tarjeta fue, si no la primera fabricada por un tercero, la primera en hacerlo con éxito comercial considerable. Básicamente se trata de una tarjeta compatible con la Monochrome Display Adapter de IBM con el interesante añadido, gracias a sus 64 KB de memoria, de direccionar punto a punto una resolución de 720×350, por lo que podía mostrar gráficos monocromáticos de alta calidad, todo ello en el monitor y la conexión suministrado con el PC. Técnicamente las dos últimas líneas no eran accesibles, por lo que la resolución quedaba en unos decentes 720×348 píxeles.
No fue una tarjeta tan ampliamente soportada como las «oficiales», pero sí que existió una cohorte de juegos que pudieron usarla, como muchos de LucasArts o los de Sierra On-Line, famosos por funcionar hasta en el microondas. El precio de lanzamiento de esta tarjeta era de 500 dólares americanos, equivalentes a unos 1300 en 2018.
Era posible, no obstante, emular una tarjeta CGA para aumentar la compatibilidad con programas y juegos que no soportasen directamente la tarjeta. Algunos modelos posteriores incluyeron compatibilidad por hardware, pero lo habitual es que se hiciera por software mediante emuladores como SIMCGA, que básicamente lo era por fuerza bruta: copiaba tan rápido como podía la memoria desde el área CGA (escrita por programas) a la memoria de Hercules en tiempo real. No funcionaba maravillosamente, especialmente con programas que escribieran directamente en la memoria en lugar de usar la BIOS, pero era mejor que nada. Los que lo hacían mostraban un tramado en lugar de colores, naturalmente. Pese a sus desventajas, ojalá hubiera tenido el SIMCGA cuando fue la primera tarjeta gráfica que cayó en mis manos…
Paralelamente a la Hercules aparecieron la Orchid Graphics Adapter y la Plantronics Colorplus, de similares características. En el caso de la Colorplus se añadía compatibilidad por hardware con CGA, pero ninguna de ellas gozó de un éxito comercial y apenas recibieron soporte de programas importantes.
IBM PCJr y Tandy 1000
El PCJr fue muy anticipado, y muchos profesionales y aficionados esperaban interesados un PC orientado al hogar en lugar de a los negocios. El resultado fue el PCJr, lanzado en 1984 y con mayormente compatible con el PC y el PC XT, sus hermanos mayores. Se diferenció de éstos por su teclado tipo chiclet, su chip de sonido y por tener sólo 128 KB de RAM, por lo que los programas más exigentes del PC no podían ejecutarse. En el apartado gráfico contaba con el Video Gate Array (no confundir con el VGA posterior), más conocido como CGA Plus.
Las diferencias con la Color Graphics Adapter era mayormente poder usar más colores en sus modos gráficos: 16 colores en el modo 320×200 y 4 en el 640×200 píxeles, siendo sus colores programables en lugar de las paletas predeterminadas. Otra característica, menos deseable, era que sus 128 KB de memoria eran compartidos con la memoria del sistema, haciendo que este ordenador fuera más lento que otros con el mismo procesador. Ninguna de sus características le salvó de ser uno de los fracasos más sonados de la informática moderna.
Salieron muy pocos juegos pensados para esta plataforma, y los más interesantes eran, por supuesto, las aventuras gráficas de Sierra On-Line. El ejemplo por excelencia es King Quest (1984), que salió en disquetes aunque el ordenador estaba pensando para usarse con cartuchos ROM.
El relevo natural de este ordenador lo tomó la compañía Tandy Corporation, con su Tandy 1000. Su tarjeta gráfica se llamó, por supuesto, Tandy Graphics Adapter. Si bien ofrecía las mismas características que el CGA Plus (incluyendo el hecho de compartir la memoria con el sistema), no eran directamente compatibles, y el software de uno ejecutando en el otro normalmente daba resultados no demasiado buenos: líneas que faltaban, otras que no debían estar ahí, etc. Pero no importa mucho: casi nadie echó en falta al PCJr y el software solía escribirse para esta TGA.
Professional Graphics Controller
Si bien el PC era una máquina competente en aplicaciones empresariales sus capacidades gráficas no eran algo del otro mundo. A partir de 1984, no obstante, IBM fabricó y vendió esta tarjeta, también conocida como Professional Graphics Adapter, Professional Graphics Array, o simplemente PGC, cuyas características orientadas a las artes gráficas miraba desde las alturas a prácticamente todos los ordenadores domésticos de la época. Eran realmente de infarto: 640×480 píxeles de resolución a 256 colores de una paleta de 4096, además de ser compatibles con los modos gráficos de la CGA.
Su aspecto era imponente: consistía en un sándwich de tres tarjetas de tamaño completo (una de ellas sólo para emular CGA por hardware) que ocupaban dos huecos en el IBM PC XT. No era para menos, ya que este producto incluía 320 KB (¡más que la mayoría de ordenadores!) y su propio procesador Intel 8088, por lo que escribir en memoria era mucho más rápido que en tarjetas de la competencia. Su precio era igualmente superlativo: 3.000 dólares de 1984 (equivalentes a unos 7.800 de 2018), y que sólo podía utilizarse con el monitor IBM 5175, que costaba en su día otros 1.300 dólares (unos 3.400 en 2018). La wikipedia cita, no obstante, que una estación de trabajo para diseño por ordenador rondaba por los 50.000 dólares (unos 130.000 en 2018), por lo que en perspectiva no era tan descabellado.
Sus modos especiales no eran accesibles mediante la BIOS, y no se conoce de ningún juego que los usase. No es una gran sorpresa, dado que era un producto orientado al CAD (Computer Aided Design, diseño asistido por ordenador), y su uso principal fue en el AutoCAD 2.5 (Autodesk, 1986). No tuvo realmente competencia, aunque en un par de años surgieron clones decentes, como la Everex EPGA, compatible también con la Hercules y CGA, ocupando una sola ranura de expansión. En lugar del 8088 incluía nada más y nada menos que un intel 80286, más poderoso aún, y 512 KB de memoria RAM. No he conseguido encontrar a cuánto se vendió, pero me atrevería a decir que no era barata. Actualización: Costaba 999 dólares (aprox. 2.400 de 2018), lo pone en grande en el anuncio. Veo menos que un gato de yeso.
Enhanced Graphics Adapter
El nuevo estándar de vídeo IBM llegó con esta tarjeta, que aunque no era totalmente retrocompatible con las anteriores incluía modos de vídeo para todos los gustos. Llegó en 1984, y mostraba una resolución de hasta 640×350 a 16 colores, a elegir arbitrariamente de una paleta de 64.
Este producto usaba un nuevo tipo de monitor, muy convenientemente llamado EGA. Se usó de nuevo el conector DE9 TTL, esta vez con 6 pines para la imagen. Su uso no se limitaba al flamante AT, el nuevo modelo de PC que IBM presentó ese año, pero sin duda fue su complemento ideal. Proporcionaba mucho mejores gráficos que ordenadores de la época como el Commodore 64 (1982) por un precio muy competitivo, que en 1986 era de 524 dólares. (unos 1.350 de 2018). Ni que decir tiene que se convirtió en la tarjeta que todos los juegos querían, y hasta 1994 siguieron saliendo juegos, como BlackThorne (Blizzard). No obstante, los modos de alta resolución no solían ser soportados…
La tarjeta EGA era compatible con los modos RGBi de la CGA, y cambiaba su frecuencia vertical de 15.7 a 21.8 kHz mediante conmutadores accesibles en la placa. Esto era un poco engorroso porque hasta que no aparecieron las primeras tarjetas autoconmutadas había que estar toqueteando el ordenador por detrás, así como eligiendo el modo en el monitor, pero valía la pena tener compatibilidad casi completa. Se perdió, no obstante, la conexión de vídeo compuesto NTSC, por lo que el software (¡los juegos!) pensados en este modo no se veían demasiado bien con la EGA.
Un cambio que sí fue muy bien recibido eran los modos lineales, en oposición a la Hercules y CGA cuyos modos gráficos eran entrelazados. ¿Qué significa esto exactamente? Pues que antiguamente la memoria tenía dos bloques: uno con las líneas impares y otro con las pares, de manera que uno iba escribiendo en la memoria y de repente saltaba dos líneas, no una. Con EGA por fin podíamos escribir desde el principio hasta el final sin tirones extraños. Otra característica muy deseable fue la de incluir en su ROM extensiones a la BIOS, de manera que el software podía usarla mediante la misma, a diferencia de la PGC, por ejemplo. Una de las formas más destacadas de explotar este hardware fue el scroll suave de Commander Keen (1990) programado por John Carmack, en la que hacía uso de píxeles no visibles (y del desplazamiento por hardware) de modos planares consiguiendo emular la visual de las videoconsolas de la época sin parpadeos ni artefactos de imagen. Qué son dichos modos planares lo expondré más adelante.
Al tiempo de existir el estándar comenzaron a surgir sus clones. Algunos incorporaban modos gráficos parecidos al MDA, otros tenían más resolución. Estos modos gráficos apenas tuvieron soporte por lo que no eran una característica demasiado interesante. Otras tarjetas en lugar de ello incluían autoconmutación, de modo que no había que ir tocando palanquitas minúsculas para cambiar de modo gráfico. Fue el caso de la Paradise EGA, en 1986. Por 500 dólares (1.300 en 2018) hacía todo lo que la estándar EGA, CGA, Hercules y MDA, con autoconmutación y soporte para lápiz de luz. Además, tenía dos conectores RCA que ni su padre sabía para qué fueron. Yo desde luego no tengo ni idea.
Multi-Color Graphics Array
En realidad, esta tarjeta nunca existió como tal. Era simplemente el nombre que recibía el chipset de vídeo del IBM PS/2 Model 30, un interesante ordenador lanzado en 1987 del que deriva, por ejemplo, el conector de ratón y teclado que se usó hasta hace relativamente poco. También se introdujo el bus MCA (Micro Channel Arquitecture), que fue un intento de IBM de recuperar el timón de la arquitectura PC. Fue un duro y caro revés para IBM.
El chipset MCGA sin embargo vino para quedarse, o mejor dicho sus modos gráficos lo hicieron. En especial el de 320×200 a 256 colores a elegir de entre 262.144, que fue usado extensivamente en juegos. También ofrecía soporte para 640×480 en monocromo. Su mayor desventaja era no ser compatible con EGA, por lo que los juegos que no soportaran estos nuevos modos se veían obligados a mostrarse en los modos CGA, mucho más feos. La solución era simplemente usar el modo a 256 colores y usar los 16 que más se pareciesen a los de EGA, pero el software tenía que estar programado para ello y lógicamente ello excluía a todos los programas anteriores a MCGA. Aún con todo es a partir de entonces cuando los PCs comenzaron a tener capacidades gráficas superiores a prácticamente todos los ordenadores domésticos de la época.
El conector y monitor que empleaba esta tecnología eran analógicos, al contrario que los estándares anteriores (salvo la Professional Graphics Adapter) que eran basados en señales digitales TTL. El conector era un DE15 que portaba señales RGB y sincronía vertical y horizontal, y en esta ocasión podía tener una frecuencia de refresco de 50 a 70 Hz dependiendo del modo gráfico. A la postre este conector se denominó VGA, y aún en 2018 sigue dando coletazos pese a estar obsoleto. Su nombre es evidente para los aficionados a la informática, como ya veremos.
Este MCGA murió con los primeros modelos de la línea PS/2 de IBM, que dejaron de fabricarse en 1992. Ni que decir tiene que también desapareció el bus MCA, aunque curiosamente el conector para teclado y ratón se quedó con nosotros hasta bien pasados los años ’10 del siglo XXI.
Una alternativa al MCGA en la línea PS/2 fue el menos conocido estándar IBM 8514, muy parecido al Professional Graphics Adapter de unos años antes en prestaciones al soportar también una resolución de 640×480 a 256 colores. Se trataba no sólo de una tarjeta gráfica sino de toda una CPU moderna, ya que permitía aceleración gráfica (en 2D, obviamente) al permitir instrucciones como dibujar primitivas o transferir memoria. Al ser compatible con Windows 3.X (posteriormente también con Windows 2.X) fue el estandarte de la calidad de vídeo de IBM, que mostraba el Microsoft Excel luciendo como en ningún sitio. La tarjeta costaba 1.290 dólares, más 270 si queríamos la ampliación de memoria a 1MB (necesaria para el modo gráfico 640×480 a 256 colores) eran otros 270 y el monitor a juego nos lo vendía IBM a 1.550. En total: 3.110 dólares de vellón, alrededor de 6.600 dólares de 2018. Esta tarjeta no fue tan clonada como otras de IBM, por lo que el soporte de software fue limitado y no se conoce su uso lúdico.
Video Graphics Array
Si hubiera que elegir un adaptador gráfico por excelencia para el PC podemos parar de buscar. Apareció en 1987 y sus modos gráficos son soportados aún hoy, y utilizados cuando falla todo lo demás. Fue y es el denominador común en gráficos de prácticamente todos los PCs y compatibles, y es con mucho el estándar gráfico más clonado que haya existido. Se puede escribir un libro tocho sobre el VGA (y hay no pocos), pero vamos a tratar de discurrir sobre lo más importante.
En sus especificaciones estándar está el incluir prácticamente todos los modos de vídeo de EGA, CGA y MCGA, además de uno de 640×480 con 16 colores definibles. La mayoría, no obstante, soportaba también los modos de alta resolución de hasta 800×600 puntos, aunque dependiendo del dinero que nos gastásemos la tarjeta o el monitor podrían no soportar los modos más altos, y dependiendo también de su memoria RAM que, aunque se especificó en 256 KB, algunos modelos más baratos traían menos. Dada su naturaleza programable era capaz de usar una resolución prácticamente arbitraria con combinaciones locas, así como nuevos modos de texto que se hicieron muy populares en entornos como el desarrollo de software.
La desde entonces ubícua VGA tenía unas características técnicas muy interesantes. Su frecuencia de refresco variaba de 50 Hz para los modos de alta resolución hasta los 70, y su sincronía vertical era fija en 31.46875 kHz. Este número no es casual: era exactamente el doble que una señal NTSC, por lo que era relativamente sencillo construir un adaptador para mostrar imágenes en un televisor normal. Gracias a su memoria RAM se podían definir hasta 4 planos, que podían modificarse aunque no se estuvieran visualizando en ese momento y conmutarlos cuando nos fuera conveniente. La guinda del pastel era que casi todos sus modos gráficos eran accesibles por la BIOS por las extensiones que incluía para ésta.
Este adaptador de vídeo tenía, no obstante, algunos pequeños inconvenientes. No era compatible con los modos especiales del PCJr o de Hercules, y la compatibilidad no era del 100% con EGA. Tampoco incluía salida de vídeo compuesto como CGA. En realidad ninguna de estas desventajas eran gran cosa, dado que prácticamente todos los modos gráficos podían emularse en VGA fácilmente. Por último, programar los modos gráficos más complejos (múltiples planos, operaciones complejas) no era sencillo y no podía hacerse mediante la BIOS sino que había que manejar el hardware directamente. Esto más adelante fue casi tanto una ventaja como una desventaja, ya que la flexibilidad de este estándar permitió desarrollar toda una suerte de modos gráficos exóticos y algoritmos específicos.
La VGA no era una verdadera GPU como tal, dado que no tenía capacidades de aceleración de vídeo. Sin embargo sí que contaba con ciertas operaciones que podían aprovecharse para mejorar mucho el rendimiento gráfico, como poder establecer 4 píxeles de golpe o copiar regiones de la RAM de vídeo sin intervención del procesador. Esto, junto con los modos multiplanares, mejoró considerablemente la capacidad en juegos de lo conseguido con EGA, consiguiendo no sólo scroll suave sino el poder usar sprites de forma parecida a los sistemas de videojuegos dedicados (aunque no directamente con soporte de hardware).
El PC en Japón
Dado que el estándar PC estaba pensando para utilizar el alfabeto latino (o el cirílico o el griego si cambiábamos los glifos del modo de texto) y no soportaba caracteres japoneses (más complejos y numerosos) nunca fue popular en Japón. En 1986 se introdujo una variación de EGA, llamada JEGA (Japanese EGA) que usaba una BIOS especial con caracteres de doble ancho, pero no fue suficiente para competir con la arquitectura PC-98 de NEC. Tampoco lo fue el AX-VGA, su equivalente actualizado a los estándares VGA.
La solución fue más sencilla de lo que parecía: Microsoft lanzó versiones específicas de su MS-DOS a partir de 1990, al que llamó DOS/V que funcionaba en las máquinas japonesas con una VGA estándar y permitía usar texto con caracteres japoneses.
Modo X
Si bien la mayoría de trucos de este hardware se conocían de antes, en 1991 Michael Abrash publicó un artículo sobre un modo gráfico no documentado por IBM, acuñando el nombre de modo X. No era inédito y se usó anteriormente en algunos juegos, pero fue a partir de entonces cuando adquirió identidad en el mundo de la programación de videojuegos por aunar todas las características deseables de los modos gráficos. Excepto por una cosa: era bastante complejo de programar.
Este modo proporcionaba una resolución de 320×240 píxeles con 256 colores arbitrarios. En la relación de aspecto de los monitores de PC (4:3) esto significaba que los píxeles eran cuadrados, a diferencia de casi todos los demás modos de vídeo, lo que simplificaba enormemente el cálculo de distancias «reales» en la pantalla respecto a la diferencia en píxeles. El tener 256 colores significaba que cada píxel de la pantalla era representado por un único byte en memoria, por lo que se eliminaba la necesidad de leer y realizar máscaras de bits para dibujar en pantalla. Pero sobre todo, al ser un modo planar (llamado en su artículo «no encadenado») permitía escribir en varios planos y conmutarlos a voluntad. De su mayor virtud también su defecto principal: la forma de escribir en memoria era muy compleja, dado que cada byte contiguo estaba en un plano distinto. Con cuatro planos, por ejemplo, cada 4 bytes contiguos representaban cuatro píxeles en pantalla, uno en cada plano.
Fabricantes
Los primeros ordenadores en incorporar una tarjeta gráfica VGA fueron la línea PS/2 de IBM, al principio integradas en la placa base y luego como una tarjeta independiente. De hecho el principal alegato de la empresa era que ya no se trataba de un conjunto de chips, sino que se prescindió del controlador MC6845 que tenían otras tarjetas y se integró todo en un único procesador, salvo por la memoria y la electrónica auxiliar. (cristales, electrónica pasiva, etc.) Su alta escala de integración fue lo que permitió el lujo de poder incluirla en la propia placa base.
No tardaron en salir tarjetas con una alta compatibilidad, que rondaban los 500 dólares en 1987 (unos 1.100 dólares en 2018). De hecho es probablemente la tarjeta de vídeo más clonada en los PCs, y la Wikipedia cita como los principales a S3, Ati, Matrox, Tseng, Trident, NEC y otros muchos más. Todos tenían en común los modos estándar y normalmente los de alta resolción, así como otros tantos modos y características particulares de cada casa. Esto permitía dos cosas: que la industria progresara añadiendo nuevas capacidades y que IBM perdiera el control sobre el estándar, por lo que cada tarjeta terminó siendo de su padre y de su madre, dando paso al siguiente capítulo del culebrón.
XGA y lo que te rondaré, morena
Tras el éxito arrollador de la VGA, el siguiente estándar propuesto por IBM fue el Extended Graphics Array, abreviado como XGA. Sus características sobre el papel no eran muy arrolladoras para 1990, aunque sí se añadió un modo de 640×480 a 65.536 colores, algo que dejaba poco que echar en falta frente a soluciones profesionales. Añadía también compatibilidad parcial con la 8514 de IBM, en particular con su modo de 640×480 a 256 colores y el modo 1024×768 píxeles a 256 colores, que en esta ocasión permitía direccionar todos los píxeles individualmente a diferencia de la 8514 que sólo permitía texto en este modo.
Sin embargo, la mayor baza de esta tarjeta era una supuesta mejora de hasta un 50% en Windows frente a VGA. Realmente no era para tanto, porque el software no solía estar programado para usar todos los recursos de la tarjeta, por lo que soltar los 1,095 dólares de 1990 (más de 2.100 dólares de 2018) difícilmente justificaba esta mejora de rendimiento. Era una buena opción, eso sí, para sustituir al carísimo sistema 8514 en el sistema operativo OS/2 de IBM o en el propio Windows de Microsoft.
Esta nueva tarjeta gráfica tuvo dos problemas fundamentales: primero que fue presentada para su línea de ordenadores PS/2 con un bus MCA, y puesto que era propietario y caro de implementar por terceros fracasó. Además, en aquella época terceros fabricantes simplemente añadían extensiones a las especificaciones VGA para alcanzar prestaciones arbitrarias, siendo esta especificación XGA poco atractiva para ellos. Los juegos y programas en alta resolución, en particular para MS-DOS, lo tuvieron difícil a finales de los 80 y principios de los 90 ya que debían soportar toda una plétora de variopintos estándares, por lo que la mayoría se quedaron estancados en el común denominador que eran los modos VGA.
Super VGA
Justo a continuación de salir las primeras VGA al mercado comenzaron a establecerse los primeros retazos de esta especificación, que nunca se materializaron en ninguna tarjeta en concreto. De hecho, técnicamente no se trata ni siquiera de una especificación formal, ya que no había una autoridad que hubiera publicado un estándar fuera del camino que IBM o los principales fabricantes fueron abriendo. En este contexto, incluso la XGA de IBM acabó siendo considerada como parte del comistrajo de Super VGA.
Esto cambió alrededor de 1990 con la publicación por consorcio VESA (Video Electronics Standards Association) de las VBE: VESA BIOS extensions. A partir de entonces comenzó, poco a poco, a existir una interfaz común en para acceder a los modos de alta resolución a la postre denominados Super VGA, todo mediante dichas extensiones en la BIOS. Las primeras especificaciones definieron modos de vídeo que las tarjetas implementarían, en especial los de alta resolución. En 1994 se publicó su especificación 2.0 que añadía soporte de páginas, modos planares, modos de 16 y 24 bits de color, modos lineales y todo ello en el modo protegido de la CPU, lo que permitió por fin que los juegos en alta resolución se hicieran realidad en el PC sin tener que programar para cada tarjeta específica.
Otra de las especificaciones de VESA fue el VLB, VESA local bus, en 1992. Esta interfaz alternativa al bus PC (a la postre llamado ISA, Industry Standard Architecture) hacía que el microprocesador estuviera mucho más cerca de la gráfica, lo que permitía un rendimiento superior. Se trataba en realidad de un añadido a ISA, y permitía por ejemplo que la tarjeta gráfica accediese a la memoria principal mediante canales DMA, o memoria gráfica mapeada en la memoria principal en el modo protegido. No era un estándar exento de problemas: primero estaba diseñado fundamentalmente alrededor del procesador 80486 de Intel, lo que resultó en una solución no escalable y no demasiado fiable. Su uso, salvo excepciones, se limitó al de las tarjetas gráficas, y las placas base solían incluir a lo sumo dos ranuras que soportasen VLB. Por último, su factor de forma hacía las tarjetas difíciles de instalar, ya que era un conector enorme y que aplicaba cierto estrés a los componentes al instalarse. La puntilla fue la aparición del bus PCI ese mismo año, y tarjetas gráficas compatibles al año siguiente.
Finale
Super VGA, o lo que vino siendo mediante estándares y consorcios, fue el último gran (no) estándar gráfico de la era PC, ya fuera de los designios de la empresa IBM. En 1990 una tarjeta Super VGA decente costaba alrededor de 400 dólares (770 de 2018), frente a los más de 1000 (más de 1.900 de 2018) que costaban las soluciones de IBM, por lo que fuera de aplicaciones gráficas profesionales fue el gran triunfador.
A partir de entonces es otra película. Con el ocaso de MS-DOS, el inicio de la era Windows 95 y el modelo de drivers pasó algo parecido a con las tarjetas de sonido, y las peleas se centraron en aplicaciones específicas como el 3D o la decodificación de vídeo. Pero esto es otra historia.
Agradecimientos a mis amigos gráficos, que me acompañan y me asesoran en esta exposición:
- El píxel loco
- La tarjeta humana
- Doña Resolución Horizontal y doña Resolución Vertical
- La enana en alta resolución
- El monitor morsegón
- La ranura glotona
- El señor Estándar
- Por último, don Aquí No Se Ve Na.
Como siempre, tendré a bien recibir comentarios, apuntes y añadidos sobre lo ya dicho, así como experiencias personales de quienes se gastaron más dinero del debido en tener 10 o 12 colores más en pantalla.
Setllers 2 theme park y sim city… para que quiere uno más?
Excelente no, lo siguiente.
Gran artículo, muchas gracias, 👏🏼👏🏼👏🏼
Yo experimenté el uso de casi todas las gráficas que has mencionado, y me gustaría aclarar algunas cosas:
1. Comentas que el Modo X de la VGA era más complejo de programar… y no es correcto. Los modos de 4 planos, donde había que escribir 4 posiciones de memoria para cada pixel y 8 píxeles cada vez, eran precísamente los modos de 16 colores de la EGA y VGA. El modo X, de 256 colores, tenía la ventaja de que 1 byte = 1 pixel, tal cual. Por cierto, en modo texto, la EGA permitía hasta 43 líneas en pantalla, y la VGA hasta 60.
2. Una de las grandes mejoras técnicas que introdujo la VGA era que su memoria de video VRAM era de «3 vías». Esto es, 1 vía para escribir, 1 vía para leer y 1 vía para el chip «raster». Esto permitía leer y escribir en la memoria de video sin preocuparse del «refresco vertical» y sin latencia. En gráficas anteriores, la electrónica no permitía acceder a la memoria de video mientras el chip raster estaba leyendo los píxeles para mostrarlos en pantalla, lo que provocaba una demora significativa, además de provocar parpadeos (muy notorios especialmente en la CGA).
3. La XGA fue la sucesora directa del 8514/A y aunque eran compatibles con la VGA, no estaban en su misma línea. Ambas fueron diseñadas especialmente para sistemas CAD, e incluian todo un sistema de primitivas de dibujo y almacenaban esos comandos dentro de la propia memoria de video. Eso permitía «redibujar» toda la pantalla sin intervención de la CPU. Y es verdad que la XGA fue la primera de las que aparecen en el artículo que soportó un modo de 64K colores, con un formato de 2 bytes por pixel (5R 6G 5B). No has mencionado las TARGA, que fueron las primeras en soportar hasta 32 bits por pixel.
4. Lo de los «sprites» fue exclusivo del 8514/A y la XGA hasta que empezaron a implementarlo en algunas SuperVGA. Realmente sólo soportaban un sprite, que estaba destinado al puntero del ratón, y tenían unos registros especiales para ello. Fue eso precísamente lo que mejoraba el rendimiento gráfico en windows. Cuando movías el puntero del ratón, el uso de CPU era inferior al 1%, mientras que en una VGA el uso de CPU se disparaba a un 30-50%. Y lo digo con la seguridad de haber hecho esa prueba en su día.
En aquella época yo estuve trabajando en un concesionario importante de IBM, y de hecho llegué a conseguir que IBM España pidiera directamente a EE.UU. un manual de programación de la XGA para mí, y me lo enviaron fotocopiado (más de 200 páginas) 😉
Muchas gracias por tus comentarios, Jose. Respecto al modo X creo que no me he explicado demasiado bien, supongo que porque mi experiencia programando la VGA se limita al modo 13h, y mediante librerías. Las Truevision no las he mencionado porque no he encontrado literatura suficiente, quizás me anime a buscar en el futuro. Espero volver a leer tus apuntes por aquí.
Gran artículo. De hecho, me interesa tanto el tema que escribí hace tiempo una guía parecida, para orientar a los novatos en esto de los juegos antiguos: http://www.abandonsocios.org/index.php?topic=14230.0
Personalmente, me inicié en el mundillo de los PC con un 486/66 que traía una VGA Trident baratita. Pero como muchos juegos ofrecían otras modalidades de gráficos más antiguas y me encanta cacharrear enseguida me puse a probarlas. Nunca conocí a na die que jugara, por ejemplo, al «Stunts» en modo Hercules, pero sin duda se merecía un concierto solidario o algo.
Lo último ha sido descubrir gracias a DOSBox el modo «CGA Composite» y los PCjr / Tandy. Si alguna vez llegaron a Europa lo desconozco, pero son unas maquinotas la mar de curiosas, sobretodo el Tandy 1000, que es el que tiene más juegos con algún tipo de soporte. En alguno, como el «Arctifox» o el «Ninja» hasta es el modo con más colores y todo.
Eso sí, me siguen repateando lo que no está escrito los juegos en CGA con la maldita paleta de magentas y cian. Lo que le ha pasado a IBM para mí no es más que una venganza cármica por la de juegos en ese modo gráfico que hicieron tragar a los usuarios de PC. He dicho.
Sobre el Modo X había con varias resoluciones no solo la de 320×240 que podías usar los 256k de memoria de la VGA standard. También estaba el modo de 256×256 y superiores dependiendo la memoria que tuviera la VGA.
Luego sacaron el modo VESA ( Nada que ver con los conectores VESA) donde las VGAs más modernas ya lo tenían incorporado en ROM y las más antiguas lo tenían si le instalabas un driver en RAM. Lo que se conseguía con el modo VESA era acceso a la programación gráfica de una manera standard similar a la BIOS y con esto se hacían los juegos más compatibles. La última revisión VESA creo que fue la 2.0
En esta época uno de los fabricantes más famosos de tarjetas gráficas era ATI que ya hemos visto actualmente hasta donde ha llegado. No existía NVIDIA
Sobre el modo 256×256×256 se llamó modo Q, que tenía características particulares. Con los drivers para los modos VESA imagino que te refieres a los Scitech Display Doctor (antes Univbe), muy útiles para jugar en SVGA en tarjetas antiguas como comentas.
Me ha encantado el artículo.
Para cuando uno igual de las gráficas 3d?
Me alegro, Kike. No tengo planes por el momento, no es un tema que me apasione tanto. De todas formas trataré de documentarme un poco en kiwipedia y similares para ver si hay material.
Muy molón el reportaje… es un tema que me apasiona porque aunque soy un negado para los datos técnicos me encanta trastear con juegos antiguos y emuladores de DOS. La verdad es que antes de la EGA estaba muy «mala» la cosa… yo empecé con un 486/66 y tarjeta SVGA, pero muchos juegos todavía venían en Hercules – CGA – EGA y era un espectáculo de lo más triste, sobretodo la CGA con su paleta donde siempre se colaba por narices el rosa.
Y una preguntilla: ¿Se puede reproducir ese modo EGA mejorado del «Secret of Monkey Island» con DOSBox o PCem? No lo conocía y me ha parecido muy curioso.
En SCUMMVM parece que no está soportado, pero en el juego original sí. Tienes que usar la versión VGA del Monkey Island 1 de disquetes y usar la opción e. Así:
C:\MONKEY> monkey e
¡Gracias! Funciona bien con DOSBox. Es un modo del que no tenía ni idea.
Excelente artículo, minucioso. La verdad es que uno por ahí no sabe estos detalles aunque los haya vivido en parte no?. Gracias por lo escrito. Saludos!
Excelente Post….
Recordar es Vivir!
Gracias… Que buen trabajo!
Te faltaba la TIGA el antecesor a las 3DFX y sus derivadas!!
No tengo mucha información sobre ellas, pero sí que parece algo interesante. De haberlas tenido en mente las habría puesto.
Realmente les pasaba lo mismo que a las PGA que tú mencionas solo que en 3D Studio renderizaban más rápido