Modos gráficos del ZX Spectrum
En comparación con otros ordenadores de su época como puede ser el Commodore 64, se considera al ZX SPECTRUM como un ordenador con bastantes limitaciones, ello debido a la falta de un chip gráfico específico. Sin embargo, a lo largo de su vida comercial se han desarrollado varias técnicas para compensar esta falta de potencia gráfica.
Paleta de color
El ZX SPECTRUM usa una variación de la de paleta RGBI de 4 bits. Esto da como resultado que cada uno de los colores de la paleta de 3 bits tenga una variante básica y brillo, con la excepción de negro. La mitad brillo de la paleta se genera utilizando los niveles de voltaje máximo de la pantalla de vídeo para cada uno de los tres componentes de color R / G / B que cada color utiliza. La mitad básica de la paleta se muestra simplemente reduciendo estos voltajes.
En la codificación ZX Spectrum, los componentes de color están en orden GRB (del bit más significativo al menos significativo) en lugar del orden RGB más común. El orden GRB tiene la ventaja de que los números de color se ordenan mediante el incremento de la luminancia, de modo que si se visualiza en blanco y negro la secuencia ordenada 0-7 formaría un gradiente de negro a blanco. Concretamente, el azul tiene un peso binario de 1, el rojo tiene un peso de 2 y el verde tiene un peso de 4. Como con cualquier número binario, estos pesos se suman para producir un solo número decimal que coincide con el color mostrado, el efecto se puede ver en la tabla a continuación (preste especial atención a la columna "valor binario").
Para cualquier valor de n de 0 a 7, se pueden usar los siguientes comandos para configurar o alterar los colores de la pantalla:
- BORDER n, el color de la zona circundante fuera del mapa de bits principal.
- PAPEL n, el color de fondo (valor de bit de píxel de 0) para que la celda de color se altere.
- INK n, el color de primer plano (valor de bit de píxel de 1) para que la celda de color se altere.
Además, el comando BRIGHT puede usarse para cambiar el ajuste del indicador "brillo" de los comandos PAPER y INK (el I en RGBI), dándoles acceso a toda la paleta de 15 colores. Los ajustes de "0" y "1" activan y desactivan el modo luminoso (respectivamente). Dado que sólo se utiliza un bit dentro de un octeto de atributo de color para seleccionar el brillo tanto para los colores de primer plano como de fondo en una celda de color, no es posible seleccionar los modos de color brillo y básico en la misma celda de color. El comando BORDER no utiliza un indicadpr de brillo, por lo tanto, sólo se admiten los ocho colores básicos.
Contando desde el menor al bit más significativo, un byte de atributo dedica tres bits para el color de primer plano, tres bits para el color de fondo, un bit para el indicador de brillo y un bit para el efecto de parpadeo(flash)(lo que provoca que cambien los colores de primer plano y fondo periódicamente).
Número de color | Valor binario | BRILLO 0(RGB) | BRILLO 1(RGB) | Nombre del color |
---|---|---|---|---|
0 | 000 | #000000 | #000000 | negro |
1 | 001 | #0000D7 | #0000FF | azul |
2 | 010 | #D70000 | #FF0000 | rojo |
3 | 011 | #D700D7 | #FF00FF | magenta |
4 | 100 | #00D700 | #00FF00 | verde |
5 | 101 | #00D7D7 | #00FFFF | cian |
6 | 110 | #D7D700 | #FFFF00 | amarillo |
7 | 111 | #D7D7D7 | #FFFFFF | blanco |
Los colores simulados como RGB no tienen brillo al 85% de voltaje (0.55v) y si tienen brillo al 100% (0.65v)[1]. La visualización en una pantalla PAL estaría sujeta a la corrección gamma y por ello los valores sin brillo parecerían más claros. Cada modelo de ZX Spectrum usó tensiones diferentes para los colores, por lo que los valores aquí mostrados son sólo indicativos.
Tramado
Esta paleta de colores tan escasa ha instado a los artistas gráficos (http://zxart.ee/ por ejemplo) a recurrir a diversas técnicas de tramado; El más simple de los cuales emplea patrones ordenados, como se muestra en el gráfico de la derecha. El tramado también funciona muy bien con la conexión de vídeo compuesto a una televisión PAL analógica, generando una mezcla de colores junto con líneas horizontales de píxeles.
Modo estándar
Implementación del hardware
El ZX Spectrum original tiene una resolución de pantalla de 256 × 192 píxeles. La información de color se superpone a esto como una cuadrícula de 8 × 8 regiones de píxeles conocidos como bloques de atributo; Dentro de cada bloque de atributo, sólo se pueden utilizar dos colores de una paleta de 8 (negro, azul, rojo, magenta, verde, cian, amarillo y blanco). Por otro lado, el bloque de atributo completo puede ser designado como "brillo", dando como resultado un total de 15 colores posibles (tanto el negro brillante como el negro oscuro son del mismo color # 000000). En muchos programas, esta limitación era evidente como una colisión en los atributos.
- Detalles:
- Pixeles: 256 × 192
- Atributos: 32 × 24
- Colores: 15
Resolución real sobre las conexiones de vídeo compuesto
Debido a las limitaciones de la conexión de vídeo compuesto a un televisor PAL analógico, los píxeles adyacentes se veian borrosos en horizontal (ver artefactos de color en video compuesto). La resolución resultante dependía de la calidad del televisor y de las combinaciones de colores utilizadas por cada imagen en particular, pero en la mayoría de los casos era similar a ~ 128x192. Este efecto se utilizó para aumentar el número de colores visualizados en la pantalla por casi todos los diseñadores gráficos, utilizando técnicas de tramado. De esta forma se llegaba a unos 64 colores aparentes. Algunos emuladores actuales proporcionan algún tipo de procesamiento de desenfoque que intenta simular este efecto.
- Detalles:
- Pixeles: ~128 × 192
- Atributos: 32 × 24
- Colores: ~64 (usando tramado)
Televisores y monitores monocromos
Mediante un monitor monocromo o TV en blanco y negro (o reduciendo el ajuste de color de un televisor de color), es posible aprovechar las diferencias de intensidad sobre el rango de color del ZX SPECTRUM para generar una imagen en escala de grises de 15 tonos a 256 × 192 resolución.
- Detalles:
- Píxeles: 256 × 192
- Atributos: 32 × 24
- Colores: 15 grises
Hicolor(atributos 8*1)
Implementación del hardware
Varios clones de Spectrum de terceros, incluyendo las máquinas Timex Sinclair y Pentagon, soportan un modo de pantalla en el que los bloques de atributo son de 8 × 1 píxeles en lugar de los habituales 8 × 8. Una pantalla en este modo ocupa 12 KB RAM. En el caso del Timex, este modo se activa mediante el comando OUT 255,2. Además, este modo de pantalla puede generarse mediante el uso del hardware DMA(acceso directo a memoria) del sistema de discos MB-02 (la técnica se conoce como Multitech) y también está disponible como Modo 2 en el SAM Coupé.
- Detalles:
- Píxeles: 256 × 192
- Atributos: 32 × 192
- Colores: 15
Implementación del software
Atributos "8x1"
En otros modelos de Spectrum, este efecto puede replicarse recurriendo el hecho de que la ULA vuelve a leer la información de atributo en cada fila de píxeles al generar la salida de vídeo; Es posible escribir un nuevo valor en la posición relevante de la memoria entre líneas sucesivas, y así provocar que se muestre un par de colores diferente. Sin embargo, el procesador del ZX SPECTRUM no es lo suficientemente rápido para escribir en una fila entera de bytes de atributos en una línea de escaneo, por lo que los atributos 8 × 1 sólo se pueden obtener en unas 18 columnas. Esta técnica es conocida como Hicolour, Multicolor, FLI o Rainbow Processor [2].
- Detalles:
- Píxeles: 256 × 192
- Atributos: 32 × 192 (limitado a un área de 18x192)
- Colores: 15
Atributos "8x2"
Una variación de este método consiste en cambiar la fila completa de atributos a lo largo de dos líneas de escaneo, dando como resultado bloques de atributo de 8 × 2 píxeles en todo el ancho de la pantalla. En esta situación, la pantalla de sombra dell Spectrum 128K (véase más adelante) se utiliza comúnmente como un back-buffer para garantizar que el cambio de color suceda simultáneamente en todos los bytes de atributos.
- Detalles:
- Píxeles: 256 × 192
- Atributos: 32 × 96
- Colores: 15
Atributos "4x1"
Un caso especial consiste en alternar entre los dos colores disponibles por celda de atributo por cada 4 píxeles, permitiendo que cada región 4 × 1 sea tratada como un píxel independientemente coloreable (aunque la limitación de un nivel de brillo por celda 8 × 1 siga vigente).
- Detalles:
- Píxeles: 64 × 192
- Atributos: 64 × 192
- Colores: 15
ULAPlus
ULAPlus es compatible con el estándar de pantalla de ZX Spectrum, si se utiliza sólo para modificar los 16 colores básicos. Sin embargo, cualquier software que utilice los 64 colores completos activará los atributos "flash" del Spectrum original.
- Detalles:
- Pixeles: 256 x 192
- Atributos: 32x24
- Colores: 64 (de 256)
- Máquina: ZX Spectrum SE, Chloe 280SE, Chloe 140SE
Modos entrelazados / conmutados
Anternando entre dos pantallas en cada interrupción de fotograma( a 50 Hz), teóricamente es posible simular una duplicación de la resolución de visualización vertical de 192 a 384 líneas.
Los clones Timex y el ZX Spectrum 128K implementan un área de pantalla "sombra" que puede ser conmutada mediante el uso de un comando OUT, y esto se utiliza a menudo para cambiar rápidamente entre dos imágenes para este propósito (aunque esto se consigue sólo mediante la copia de un bloque, no de toda la pantalla).
Cuando se ve en una pantalla de televisión CRT (el estándar en el momento), el parpadeo es menos notable que en un monitor moderno. La imagen está enlazada aquí (advertencia: la imagen vinculada parpadea muy rápidamente, lo que podría potencialmente causar convulsiones en personas con epilepsia fotosensible).
De hecho, la técnica no consigue una visualización entrelazada real, ya que el Spectrum carece de la capacidad de sincronizar con el hardware de pantalla a un nivel tan bajo. Más bien, el efecto es similar al antialias, con ciertos píxeles que aparecen a media intensidad. [2]
- Detalles:
- Píxeles: 256 × 384
- Atributos: 32 × 24
- Colores: 15
GigaScreen
Los atributos (colores) de una imagen se alternan a 50Hz en la pantalla, aprovechando el modo de codificación del sistema PAL para el mezclado. De esta manera, la paleta se incrementa a aproximadamente 36 colores.[3] Para las máquinas como Pentagon, está disponible una modificación de hardware que combina directamente dos áreas de pantalla alternas en la señal de vídeo, eliminando así el parpadeo asociado con este método. Además, las técnicas Gigascreen e Hicolor pueden emplearse conjuntamente para producir imágenes con colores más ricos; Este formato se ha denominado DithVIDE y BZither, ambos nombres se refieren a los métodos de tramado empleados al convertir imágenes de color verdadero al formato.
- Detalles:
- Píxeles: 256 × 192
- Atributos: 32 × 24
- Colores: 36
3 colores / Multicroma / RGB-3 / Intercroma
Tres imágenes separadas, que comprenden una capa roja, verde y azul, se muestran en la pantalla rápidamente, uno tras otro, basándose en la persistencia de visión para fusionar las tres capas en una imagen de un solo color. El resultado es una imagen de 8 colores donde cada píxel puede ser coloreado independientemente.[4] Este efecto se simula en otra imagen vinculada aquí (advertencia: la imagen enlazada cambia de color muy rápidamente, lo que podría potencialmente causar convulsiones en personas con epilepsia fotosensible); El parpadeo es menos perceptible cuando se ve en una pantalla de televisión.
- Detalles:
- Píxeles: 256 × 192
- Atributos: 256 × 192
- Colores: 8
Emulado
256 × 192, 256 colores, " Modo de color 256", sin atributos
Los emuladores SPEC256 y EmuZWin tienen un modo de pantalla 256 × 192 píxeles donde cada píxel puede estar tener uno de entre 256 colores. Esto se consigue extendiendo el tamaño de palabra del Z80 emulado de 8 bits a 64, haciendo disponibles ocho bits de datos para cada píxel; La pantalla ocupa así 48 kB de memoria. Este modo sólo existe en el emulador y los gráficos del software deben ser modificados para usarlo.
- Detalles:
- Píxeles: 256 × 192
- Atributos: 256 × 192
- Colores: 256
Máquinas compatibles
Máquinas posteriores compatibles con ZX Spectrum ofrecían modos de video adicionales. Estos se basan en el modo estándar 256x192 pero son incompatibles con el Spectrum original.[2]
512 × 192 monocromo
Este modo se utilizó principalmente para mostrar pantalla de texto de 64 × 24 o 80 × 24 columnas y sólo los ordenadores Timex Sinclair y algunos clones rusos pueden mostrarlo. Hay dos editores gráficos para este modo y es compatible con BASIC64 y algunas implementaciones CP / M. También ocupa 12 kB (12 KiB) RAM.
- Detalles:
- Píxeles: 512 × 192
- Atributos: ninguno
- Colores: 2 (de 16)
- Máquina: Timex Sinclair
512 × 192x4
- Detalles:
- Píxeles: 512 × 192
- Atributos: 512 × 192
- Colores: 4 (de 128) por línea
- Máquina: Sam Coupé
256 x 192 x 16
- Detalles:
- Píxeles: 512 × 192
- Atributos: 512 × 192
- Colores: 16 (de 128) por línea
- Máquina: Sam Coupé
384x304x16
- Detalles:
- Píxeles: 384 x 304
- Atributos: 48 × 38
- Colores: 16
- Máquina: Pentagon
512x384x2
- Detalles:
- Píxeles: 512x384
- Colores: monocromo
- Máquina: Pentagon, Timex Sinclair 2128
16c
- Detalles:
- Pixeles: 256 x 192
- Atributos: 256x192
- Colores: 16
- Máquina: ATM Turbo, Pentagon
HAM256
- Detalles:
- Pixeles: 256 x 192
- Atributos: 32x192
- Colores: 32 por línea (de 256)
- Máquina: ZX Spectrum SE, Chloe 280SE, Chloe 140SE
Referencias en inglés
Enlaces externos
- http://old8bits.blogspot.com.es/2016/04/como-escribir-juegos-para-el-zx_13.html
- http://www.neoteo.com/retroinformatica-sinclair-zx-spectrum-1982/
- https://disruptiveludens.wordpress.com/2016/11/28/graficos-retro-zx-spectrum/
- http://www.efimeroteca.com/blog/octavo-arte/el-zx-spectrum-sovietico-%D0%BF%D0%B5%D0%BD%D1%82%D0%B0%D0%B3%D0%BE%CC%81%D0%BD-segunda-parte/
- https://es.wykipedia.org/wiki/Timex_Sinclair_2068
- http://www.wikiwand.com/es/Sinclair_ZX_Spectrum