Articulo de referencia

Modos gráficos del ZX Spectrum

Simulación de la salida gráfica de ZX Spectrum en un televisor PAL. El ordenador original ZX Spectrum produce una salida de vídeo con gráficos en color de un bit por píxel . La ...

Simulación de la salida gráfica de ZX Spectrum en un televisor PAL.

El ordenador original ZX Spectrum produce una salida de vídeo con gráficos en color de un bit por píxel . La señal de vídeo compuesto se genera mediante un modulador de RF y fue diseñado para su uso con los televisores de la década de 1980.

El tamaño de la imagen del framebuffer es de 256  ×  192 píxeles , con una paleta de 15 colores no modificables, donde toda la paleta de colores está extremadamente saturada . La resolución de la salida de color es 64 veces menor que la resolución del mapa de bits de píxeles. [ 1 ] [ 2 ] La resolución de color extremadamente baja se utilizó para ahorrar memoria, con un total de solo 768 bytes para los atributos de color. El color se almacena separado del mapa de bits de píxeles , como una cuadrícula de 32  ×  24 celdas, utilizando un byte por cada una de las celdas de caracteres . Una celda de carácter se compone de 8  ×  8 píxeles. En la práctica, esto significa que cualquier celda de carácter solo puede usar dos colores seleccionados para colorear los 64 píxeles que contiene. [ 3 ]

Dado que la máquina fue diseñada para usarse con un televisor estándar , el área de 256  ×  192 píxeles está rodeada por un borde ancho que ocupa el espacio restante de la resolución estándar de 384 × 288 píxeles (un cuarto de la resolución de la pantalla de TV de 625 líneas ). Normalmente, el área del borde es de un solo color, pero mediante técnicas de software es posible mostrar gráficos de baja resolución en ella. [ 4 ]

El ZX Spectrum carecía de hardware dedicado para el desplazamiento y los sprites , o de un blitter de hardware dedicado . Para facilitar la visualización de gráficos en color, el ZX  Spectrum original empleaba 16  KiB de RAM gráfica discreta . La latencia de la RAM gráfica era de 150  ns; el ancho de banda máximo era de 2,1875  MB/s (calculado como 224  ×  5/8 bytes por 64  μs). [ 5 ]

Velocidad de fotogramas y tiempos

El ZX Spectrum original no se ajusta estrictamente a la frecuencia de fotogramas del estándar PAL de 50  Hz. El ZX Spectrum emite una línea de vídeo en exactamente 224 ciclos de reloj de la CPU , donde la frecuencia de reloj de la CPU es de 3,5  MHz. Esto coincide exactamente con el  tiempo de línea del estándar PAL de 64 μs. Sin embargo, el ZX  Spectrum produce solo 312 líneas para formar un fotograma de visualización , mientras que el estándar PAL de 625 líneas recomienda 312,5 líneas. En consecuencia, la frecuencia de fotogramas del ZX Spectrum es de aproximadamente 50,08 fotogramas por segundo. [ 6 ]

Esta discrepancia era desconocida para muchos programadores, quienes asumían una velocidad de fotogramas de 50 fotogramas por segundo. Como resultado, algunos programas, incluido el intérprete BASIC integrado , tenían el tiempo funcionando ligeramente demasiado rápido. Los modelos posteriores de ZX Spectrum tienen una velocidad de fotogramas y una frecuencia de reloj de la CPU ligeramente diferentes, lo que provoca que algunos programas antiguos se ejecuten un poco más lentos si utilizan sincronización vertical, o demasiado rápidos si dependen de la frecuencia de reloj de la CPU. [ 6 ] 

Al inicio de cada fotograma, la señal de interrupción enmascarable se envía a la CPU Z80  del ZX Spectrum , lo que permite a los programas detectar y medir fácilmente el paso del tiempo. También permite a los programas sincronizar perfectamente la salida gráfica con la visualización de los fotogramas de vídeo. Es exactamente el mismo mecanismo que la sincronización vertical de un ordenador moderno, que se puede emplear para evitar el desgarro de la imagen .

Estructura de la memoria gráfica y coordenadas de píxeles

La RAM gráfica discreta de 16 KiB es directamente accesible para la CPU en las direcciones 16384 a 32767. Los chips de RAM para gráficos están conectados tanto a la CPU como al circuito de vídeo en la ULA. El mapa de bits de píxeles principal se almacena al principio de la RAM gráfica, seguido de la matriz de atributos en las direcciones inmediatamente superiores. [ 10 ] El búfer de fotogramas completo tiene un tamaño de 6912 bytes y consta del mapa de bits de píxeles seguido de la matriz de atributos. La parte restante de la RAM gráfica de 16 KiB no es utilizada por el circuito de vídeo.

El circuito controlador de vídeo está integrado en el circuito integrado ULA semicustomizado de Ferranti , que consta de aproximadamente 480 celdas configurables (según el modelo). Las celdas del ULA se configuraron de fábrica de diversas maneras para producir el ULA para ZX Spectrum, donde una celda tiene la funcionalidad de aproximadamente dos puertas NAND . [ 11 ]

El acceso de la CPU a la RAM gráfica se denomina acceso contencioso, ya que el controlador de vídeo tiene mayor prioridad que la CPU. Al acceder a la RAM gráfica, la CPU suele experimentar un ligero retraso mientras espera a que el controlador de vídeo complete la lectura de datos. [ 12 ]

Las direcciones en la DRAM de vídeo están intercaladas , lo que produce un sistema de coordenadas inusual para el mapa de bits de píxeles. Si las coordenadas de un píxel son (x, y), y los bits del eje de coordenadas x están etiquetados como x7, x6, x5, x4, x3, x2, x1, x0, y los bits del eje de coordenadas y están etiquetados como y7, y6, y5, y4, y3, y2, y1, y0, entonces el píxel se almacena en un byte con el patrón de bits de dirección 0, 1, 0, y7, y6, y2, y1, y0, y5, y4, y3, x7, x6, x5, x4, x3. [ 13 ]

El patrón de bits de la dirección contiene dos transposiciones de patrones de bits más de las necesarias. El patrón de bits más rápido y sencillo habría sido 0, 1, 0, x7, x6, x5, x4, x3, y7, y6, y5, y4, y3, y2, y1, y0, que hace que las direcciones de píxeles aumenten primero por columna. Desafortunadamente, los diseñadores del ZX Spectrum trabajaban bajo una presión de tiempo extrema y no se percataron de esta sencilla mejora. [ 11 ]

Mientras que el modelo original ZX Spectrum 48K cuenta con 32 KiB de RAM principal, el modelo 16K solo dispone de 16  KiB de RAM gráfica. Por este motivo, la matriz de atributos de color se diseñó para ocupar tan solo 768 bytes. Si bien los atributos de color podrían haber tenido fácilmente una resolución doble o cuádruple en el eje vertical, esto habría reducido el espacio de memoria libre disponible para los programas en uno o dos kilobytes, especialmente en el modelo de 16 KiB.

Para facilitar la visualización de gráficos en color, el ZX Spectrum original emplea 16 KiB de RAM gráfica discreta , a diferencia de las arquitecturas de RAM gráfica compartida de la mayoría de los demás microordenadores , incluido el Commodore 64. La resolución del mapa de bits de píxeles es similar a la de otros microordenadores contemporáneos, donde el popular Commodore 64 suele utilizar una resolución de 160 × 200 a dos bits por píxel. [ 14 ]   

El sistema de celdas de color, denominado "atributos", recibió muchas críticas, ya que complicaba considerablemente la programación de aplicaciones de color. Sin embargo, el sistema de atributos de color tenía la capacidad suficiente para soportar las aplicaciones y juegos comunes de la época, e incluso sus limitadas capacidades cromáticas fueron bien recibidas por los usuarios.

Paleta de colores

Pantalla del ZX Spectrum que muestra los colores disponibles.

Los ordenadores ZX Spectrum (y compatibles) utilizan una variación de la filosofía de paleta RGBI de 4 bits (también utilizada en CGA , Thomson MO5 , Sharp MZ-800 , Mattel Aquarius , etc.), lo que resulta en 8 colores básicos con variaciones de brillo. [ 15 ] En los modelos 128, +2 y +3, la ULA emite señales rojas, verdes, azules y de sincronización de nivel TTL que son utilizadas por el codificador de vídeo TEA2000 para la generación de señales de vídeo compuesto . [ 16 ] [ 17 ] [ 18 ] [ 19 ]

Cada uno de los colores de la paleta de 3 bits tiene una variante básica y una brillante . [ 15 ] La mitad brillante de la paleta se genera utilizando el nivel de voltaje máximo de la pantalla de video para la señal de luminancia. La mitad básica de la paleta se genera simplemente reduciendo el voltaje de la señal de luminancia. [ 20 ]

Ambos colores de una celda de carácter deben compartir su propiedad de brillo, ya que solo existe un bit de brillo para toda la celda. Aparte de esta limitación, se puede seleccionar libremente cualquier combinación de colores de la paleta como los dos colores de una celda de carácter. En la siguiente tabla, todos los colores "brillantes" se muestran en la columna de la derecha.

  • Algunos clones de ZX Spectrum o máquinas NTSC podrían mostrar el "negro brillante" como gris oscuro o marrón.
  • La luminancia de los colores en la tabla es relativa, no absoluta. Los televisores comunes suelen tener una luminancia mucho mayor que la luminancia estándar sRGB de las pantallas LCD (80 cd/m² ) . En términos absolutos,  los colores del ZX Spectrum son mucho más brillantes que los colores sRGB de la tabla.  El color "blanco" del ZX Spectrum es tan brillante como el blanco sRGB más brillante, mientras que el "blanco brillante" supera los límites de la luminancia estándar del color sRGB.
  • Los valores sRGB proporcionados para el verde, el amarillo y el cian son solo aproximaciones, ya que las pantallas sRGB no pueden reproducir todos los colores del estándar PAL . El fósforo verde PAL se encuentra fuera de la gama cromática sRGB de las pantallas LCD modernas. En la mayoría de los casos, esta imprecisión cromática es mínima.
  • Los colores simulados como sRGB asumen que el brillo es del 85 % del voltaje (0,55  V) y el brillo del 100 % (0,65  V). [ 20 ] Cada  modelo de ZX Spectrum usó voltajes diferentes para los colores, por lo que los valores aquí son solo indicativos. Los colores se calcularon mediante una conversión del espacio de color PAL TV al espacio de color sRGB . Se aplicó la gamma PAL de 2,8 como lo recomienda el estándar PAL BT.470; se aplicó la conversión de colores primarios a primarios sRGB (por el  estándar sRGB IEC 61966-2-1) y la corrección gamma sRGB estándar (por EOTF inversa).
  • Los colores mostrados probablemente no corresponden a los colores reales del ZX Spectrum. Las aproximaciones de color se calcularon asumiendo la máxima saturación posible que un ZX  Spectrum puede producir en la salida PAL del televisor. Los  colores reales del ZX Spectrum se desconocen actualmente y probablemente sean menos saturados. Para calcular los  colores reales del ZX Spectrum, es necesario medir el desplazamiento de fase y amplitud de la subportadora de croma, para cada color, mediante un osciloscopio en la  salida PAL del ZX Spectrum.

En la codificación del ZX Spectrum, los componentes de color están en el orden GRB (verde, rojo, azul), en lugar del orden RGB, más común. El orden GRB tiene la ventaja de que los números de color se ordenan según su luminancia creciente , por lo que, si se visualiza en una pantalla en blanco y negro, la secuencia ordenada forma un degradado de negro a blanco.

Todas las propiedades de color de una celda se almacenan en memoria como un byte llamado atributo . Contando desde el bit menos significativo hasta el más significativo , un byte de atributo dedica tres bits al color de los píxeles con valor 1, tres bits al color de los píxeles con valor 0, un bit al indicador de brillo y un bit al efecto de parpadeo. El efecto de parpadeo hace que los colores de primer plano y de fondo mostrados alternen cada 0,64 segundos. [ 21 ]

La mayoría de los emuladores actuales de ZX Spectrum muestran colores imprecisos y posiblemente sobresaturados. Estos colores se calcularon mediante aproximaciones simplistas que no tienen en cuenta las sutilezas de la conversión del espacio de color PAL a sRGB. De manera similar, en el sitio web de ZX Art es muy común el uso de colores imprecisos. El color sRGB #00CD00, teóricamente imposible, se usa habitualmente como el color verde del ZX Spectrum (es decir, el verdadero color verde del Spectrum probablemente sea más azulado).  

Comandos básicos para colores

Los dos colores de una celda de carácter se denominan color de primer plano y color de fondo . Para cualquier valor de n entre 0 y 7, se pueden utilizar los siguientes comandos de Sinclair BASIC para establecer o modificar los colores de una celda: [ 15 ]

  • PAPER n, el color de fondo de la celda del carácter; se aplica a todos los píxeles con valor 0 en la celda.
  • INK n, el color de primer plano para la celda del carácter; se aplica a todos los píxeles con valor 1 en la celda.
  • BRIGHT i, selecciona el valor del bit de brillo de la celda de caracteres, donde el valor puede ser 0 o 1.

Además, el BORDERcomando selecciona un color para el área de la pantalla que rodea el mapa de bits del píxel. No utiliza un indicador de brillo, por lo que solo se admiten los ocho colores básicos para el color del borde. [ 22 ]

Modo estándar

Pantalla estándar del ZX Spectrum, con los bloques de atributos claramente visibles.

El ZX Spectrum original tiene una resolución de pantalla de 256  ×  192 píxeles. [ 23 ] [ 24 ] En todos los casos, los colores están extremadamente saturados. La información de color se superpone a esto como una cuadrícula de regiones de 8  × 8 píxeles conocidas como bloques de atributos . [ 25 ] [ 26 ] Todas las propiedades de color de un bloque de atributos se almacenan en la memoria como un solo byte de atributo, y cada bloque de atributos coincide con una celda de carácter. Dentro de cada bloque de atributos, solo se pueden usar dos colores de una paleta de 8 colores. Además, todo el bloque de atributos puede designarse como "brillante", lo que resulta en un total de 15 colores posibles (el negro no tiene variación "brillante"). En muchos programas, esta limitación de solo dos colores por bloque de atributos es evidente como el efecto no deseado de choque de atributos . 

En este modo, una pantalla ocupa 6144 bytes para el mapa de bits de píxeles, lo que suma un total de 6912 bytes junto con los atributos de color.

Detalles:

Píxeles: 256 × 192
Atributos: 32 × 24
Colores: 15 (incluyendo colores apagados y brillantes)
Máquina: Todo

Televisores y monitores monocromo

ZX Spectrum en una pantalla monocromática

Al usar un monitor monocromo o un televisor en blanco y negro (o reduciendo la configuración de saturación de un televisor en color), es posible aprovechar las diferencias de intensidad en la gama de colores del Spectrum para generar una imagen en escala de grises de 15 tonos con una resolución de 256  ×  192.

Detalles:

Píxeles: 256 × 192
Atributos: 32 × 24
Colores: 15 escalas de grises
Máquina: Todas, utilizando una pantalla monocromática

Hardware de alta gama

Varios clones de Spectrum de terceros, incluidas las máquinas Timex Sinclair , [ 27 ] [ 28 ] el Pentagon , el eLeMeNt ZX y la interfaz MB03+ Ultimate admiten un modo de pantalla llamado Hi-Colour , [ 28 ] en el que los bloques de atributos tienen un tamaño de 8  ×  1 píxeles en lugar de los habituales 8  ×  8. [ 29 ] [ 30 ] Una pantalla en este modo toma 12  KB de RAM. En el caso del Timex, este modo se activa mediante el comando OUT 255,2. [ 27 ] [ 28 ] Al menos un editor para máquinas Timex admite este modo. [ 31 ] Además, este modo de pantalla se puede generar mediante el uso del hardware DMA del sistema de disco MB-02 [ 32 ] (donde la técnica se conoce como Multitech [ 33 ] ), y también está disponible como Modo  2 (con un orden de bytes lineal) en el SAM Coupé . [ 34 ]

Software de alta gama de colores

Atributos del ZX Spectrum "8  ×  1" / Pantalla Hicolour
Imagen de ejemplo con atributos de 4 × 1
Imagen de ejemplo de atributos 4 × 2
Imagen de ejemplo de atributos de 4 × 4
Visualización de atributos "8 × 2" del ZX Spectrum

En otros modelos Spectrum, este efecto se puede replicar aprovechando que la ULA relee la información de atributos en cada fila de píxeles al generar la salida de vídeo; es posible escribir un nuevo valor en la ubicación de memoria correspondiente entre líneas sucesivas y, por lo tanto, hacer que se muestre un par de colores diferente. Sin embargo, el procesador del Spectrum no es lo suficientemente rápido como para escribir en una fila completa de bytes de atributos en una línea de exploración, por lo que los atributos de 8  ×  1 solo se pueden lograr en 20 columnas. [ 35 ] Esta técnica se conoce de diversas maneras como Hicolour , Multicolour , FLI , BIFROST*2 , SuperColour , [ 36 ] Rainbow Generator o Rainbow Processor [ 37 ] modo. [ 30 ]

  • Píxeles: 256 × 192
  • Atributos: 32 × 192 (limitado a un área de 18 × 192)
  • Colores: 15
  • Máquina: Todas (con código específico adaptado a los tiempos de cada máquina)

Una variante de este método consiste en cambiar la fila de atributos a lo largo de dos líneas de exploración, lo que da como resultado bloques de atributos de 8  ×  2 píxeles en una región más amplia de la pantalla. Este modo se conoce como bicolor y se puede aplicar a todo el ancho de la pantalla mediante el motor Nirvana+ . [ 38 ] [ 39 ]

  • Píxeles: 256 × 192
  • Atributos: 32 × 96
  • Colores: 15
  • Máquina: Todas (con código específico adaptado a los tiempos de cada máquina)

Un caso especial consiste en alternar entre los dos colores disponibles por celda de atributo para 4 píxeles cada uno, lo que permite tratar cada región de 4  × 1 como un "píxel" que se puede colorear de forma independiente (aunque la limitación de un nivel de brillo por celda de 8 × 1 sigue vigente). De nuevo, se puede aplicar una variante de 4 × 2 de este modo a una región más amplia de la pantalla. Y se puede lograr una variante de 4 × 4 en máquinas de 128K mediante cambios temporizados entre las dos memorias RAM de vídeo (en lugar de reescribir los datos de los atributos), para mostrar la mitad superior de las celdas de caracteres de una pantalla y la mitad inferior de la otra.       

  • Píxeles: 64 × 192; 64 × 96; 64 × 48
  • Atributos: Limitación de brillo de 8 × 1
  • Colores: 15
  • Máquina: Todas (con código específico adaptado a los tiempos de cada máquina)

ULAplus / HAM256 / HAM8×1

ULAplus es compatible con los modos estándar de ZX Spectrum y Timex Hi-Res y Hi-Colour, y añade la capacidad de redefinir la paleta. [ 40 ] Si solo se usa para modificar ligeramente los 16 colores básicos, el software ULAplus se puede mostrar en un Spectrum estándar. El uso de los 64 colores completos es incompatible, ya que activará los atributos de "flash" del Spectrum original. [ 41 ] También son posibles modos inspirados en Amiga HAM (HAM256 y HAM8×1), que muestran hasta 256 colores en pantalla. [ 42 ] [ 43 ] [ 44 ] [ 45 ]

Detalles:

Píxeles: 256 × 192; 512 × 192 (modo de alta resolución)
Atributos: 32 × 24; 32 × 192 (modo de alto color 8×1)
Colores: 2 de 256 (modo de alta resolución), 64 de 256; 256 (HAM256 y HAM8×1)
Máquina: ZX Spectrum SE , ZX Spectrum Next , ZX-Uno , Chloe 280SE , [ 46 ] Chloe 140SE , [ 46 ] eLeMeNt ZX , zx128u+ , [ 46 ] The Spectrum [ 47 ]
Interfaz: MB03+ Ultimate

Modos entrelazados/conmutados

Simulación teórica de cómo se vería una imagen entrelazada del ZX Spectrum en una pantalla CRT.

Entrelazar

Los clones de Timex y el ZX Spectrum 128K implementan un área de pantalla de "sombra", que se puede activar mediante un solo OUTcomando, y que a menudo se utiliza para alternar rápidamente entre dos imágenes con este propósito (aunque esto también se puede lograr con una copia de bloque estándar, aunque no en toda la pantalla).

Se teorizó que, alternando entre dos pantallas en cada interrupción de fotograma (50  Hz), sería posible simular una duplicación de la resolución vertical de la pantalla, de 192 a 384 líneas. Sin embargo, al visualizarla en una pantalla de televisión CRT (el estándar de la época), aunque el parpadeo es menos perceptible que en un monitor moderno, sigue siendo demasiado prominente para lograr el efecto deseado. Aquí se incluye una imagen de ejemplo ( advertencia : la imagen enlazada parpadea muy rápidamente, lo que podría provocar convulsiones en personas con epilepsia fotosensible ).

Imagen monocromática de alta resolución entrelazada de un ZX Spectrum. Fotografía real tomada con un Sinclair ZX  Spectrum  +3 utilizando la salida compuesta y una tarjeta de captura PCI.

En realidad, la técnica no logra una visualización entrelazada verdadera, ya que el Spectrum carece de la capacidad de sincronizarse con el hardware de la pantalla a un nivel tan bajo. Teóricamente, en una pantalla de televisión CRT con una persistencia de fósforo mayor que la del hardware real, el efecto se habría parecido más al suavizado de bordes , con ciertos píxeles apareciendo a la mitad de intensidad. [ 30 ] [ 48 ]

Sin embargo, en los televisores LCD modernos , las tarjetas de captura u otros dispositivos que convierten la señal analógica original en digital (ignorando así parcialmente las señales de temporización originales), este modo puede interpretarse como un entrelazado verdadero y mostrar la pantalla como se pretende, tal como se muestra en la imagen de un gato, a la derecha.

Detalles:

Píxeles: 256 × 384
Atributos: 32 × 24
Colores: 15

GigaScreen / DithVIDE / BZither

Simulación teórica de cómo se vería una imagen de GigaScreen ZX Spectrum en una pantalla CRT.

Los atributos (colores) de una imagen se alternan a 50  Hz en la pantalla, [ 49 ] con la intención de lograr un aumento de paleta de aproximadamente 36 colores si la persistencia del fósforo fuera lo suficientemente alta como para mezclar fotogramas concurrentes, pero en realidad el parpadeo es nuevamente demasiado notorio en las pantallas CRT para lograr el efecto. [ 50 ] Es posible cambiar de pantalla por línea de exploración y así mezclar las pantallas, pero esto requiere mucha CPU y necesita tiempos exactos y estables.

Con un software de estado T real preciso, es posible simular una GigaScreen en un ZX  Spectrum  128K original "toastrack" de 128K. [ 51 ]

Para los equipos Pentagon, existe una modificación de hardware que combina directamente las dos áreas de pantalla alternativas en la señal de vídeo, eliminando así el parpadeo asociado a este método. La interfaz MB03+ Ultimate y el  ordenador eLeMeNt ZX pueden mostrar tres modos de hardware de GigaScreen sin parpadeo (memorias RAM de vídeo mixtas, fotogramas de vídeo mixtos y modo de autodetección) en resoluciones de 256  ×  192 y 512  ×  192.

Además, las técnicas GigaScreen y Hi-Colour pueden emplearse conjuntamente (de nuevo, solo en teoría debido al parpadeo) para producir imágenes con colores aún más intensos; este formato se ha denominado DithVIDE y BZither , nombres que hacen referencia a los métodos de tramado empleados al convertir imágenes de color real a este formato. Detalles:

Píxeles: 256 × 192
Atributos: 32 × 24
Colores: ~36
Máquina: Todas (con parpadeo)
Hardware GigaScreen: Pentagon , eLeMeNt ZX , MB03+ Ultimate (sin parpadeo)

Capa clave

La interfaz MB03+ Ultimate y el ordenador eLeMeNt ZX ofrecen este modo gráfico que permite mostrar datos de imagen de la segunda memoria RAM de vídeo en lugar de un color seleccionado en la memoria RAM de vídeo n.º 1. Esto añade un tercer color a un atributo.

Detalles:

Píxeles: 256 × 192, 512 × 192
Atributos: 32 × 24, 64 × 48, 3 colores por celda
Colores: 15
Máquina: eLeMeNt ZX
Interfaz: MB03+ Ultimate

3 colores / Multicromo / RGB-3 / Intercromo

Pantalla ZX Spectrum de 3 colores

Tres imágenes separadas, compuestas por una capa roja, una verde y una azul, se muestran rápidamente en la pantalla, una tras otra, aprovechando los efectos de persistencia de la visión para fusionar las tres capas en una sola imagen a color. [ 52 ] El resultado es una imagen de 8 colores donde cada píxel puede colorearse de forma independiente. [ 53 ] [ 54 ]

Detalles:

Píxeles: 256 × 192
Atributos: 256 × 192
Colores: 8
Máquina: Todo

Máquinas e interfaces compatibles

Las máquinas compatibles posteriores con ZX Spectrum ofrecían modos de vídeo adicionales. Estos se basaban en el modo estándar de 256  ×  192, pero eran incompatibles con el Spectrum original. [ 30 ] Además, las interfaces Spectra y MB03+ Ultimate ampliaban la pantalla del Spectrum para admitir más colores y/o modos de vídeo adicionales.

siglo XVI

Cajero automático Turbo / Modo pentágono de 16 colores

Modo de vídeo donde cada píxel puede tener uno de 16 colores. [ 55 ] Detalles:

Píxeles: 256 × 192
Atributos: ninguno, sin limitaciones
Colores: 16
Máquina: ATM Turbo , Pentágono

256 × 192 × 16 / Modo 4

Sam Coupé 256 × 192 × 16 modo color

Un modo Sam Coupé, donde cada píxel puede mostrar uno de 16 colores de una paleta de 128 colores. [ 30 ] Detalles:

Píxeles: 256 × 192
Atributos: ninguno, sin limitaciones
Colores: 16 (de 128) por línea
Máquina: SAM Coupé

384 × 304 × 16

Un modo compatible con la computadora del Pentágono. [ 56 ] Detalles:

Píxeles: 384 × 304
Atributos: 48 × 38
Colores: 16
Máquina: Pentágono

Gráficos HGFX

El ordenador eLeMeNt ZX y la interfaz MB03+ proporcionan resoluciones basadas en planos de 256  ×  192 (baja resolución), 512  ×  192 (alta resolución) y 512  ×  384 (superalta resolución). [ 57 ] Los gráficos HGFX se manejan a través de capas planas, pero también se puede acceder a ellos como páginas de RAM "en bloque". La resolución más alta, solo en bloque, es la resolución "PAL" de 720  ×  546 píxeles. El HGFX consta de capas-planos de bits compatibles con la pantalla ZX (no lineales o lineales) para lograr hasta 256 colores tanto en los modos de baja resolución [ 58 ] como de alta resolución, 16 colores en superalta resolución y 4 colores en la resolución más alta. Ocupa solo una parte de la memoria, similar a la memoria de pantalla del ZX, tiene sus propios búferes internos y puede combinarse con los gráficos originales del ZX, en un modo denominado de transparencia. [ 59 ] El HGFX proporciona una paleta de color verdadero de 24 bits (compatible con HiRes indeXedColour) con 256 colores indexados. Los datos de pantalla del HGFX también pueden mostrarse en los modos HAM (similar al Amiga) y FILL (similar al Apple2GS).

El HGFX se basa en un sistema HGFX/Q más potente, que originalmente se podía ampliar en un área de borde a 320  ×  240 o 640  ×  240. [ 60 ]

Detalles:

Píxeles: 256 × 192, 512 × 192, 512 × 384, 720 × 546
Atributos: ninguno, sin limitaciones, además de los modos FILL y HAM.
Colores: hasta 256 (desde 16777216), hasta 16 (SuperHiRes) y 4 (PAL 720 × 546)
Máquina: MB03+ Ultimate , eLeMeNt ZX

Capa 2

Detalles:

Píxeles: 256 × 192 (256 colores de 512), 320 × 256 (256 colores de 512) y 640  ×  256 (16 colores de 512)
Atributos: ninguno, sin limitaciones
Máquina: ZX Spectrum Next [ 61 ]

Radastán

Este modo muestra 128  × 96 píxeles de doble tamaño. Cada píxel contiene uno de los 16 colores disponibles, sin limitaciones de atributos. Los píxeles se almacenan en un búfer lineal como nibbles de 4 bits (es decir, 2 píxeles por byte). El búfer tiene una longitud de 6144 bytes y ocupa la misma memoria que una pantalla de 256  ×  192 píxeles.

Detalles:

Píxeles: 128 × 96
Atributos: ninguno, sin limitaciones
Colores: 16 (de 256)
Máquina: ZX-Uno , ZX Spectrum Next , MB03+ Ultimate , eLeMeNt ZX

LoRES

Este modo muestra 128 × 96 píxeles de doble tamaño. Cada píxel contiene uno de los 256 colores disponibles (de un total de 512), sin limitaciones de atributos. Los píxeles se almacenan en un búfer lineal de 8 bits. El búfer tiene una longitud de 12288 bytes y ocupa la misma memoria que las pantallas primaria (DFILE1) y de sombra (DFILE2) de 256  ×  192 píxeles.

Detalles:

Píxeles: 128 × 96
Atributos: ninguno, sin limitaciones
Colores: 256 (de 512)
Máquina: ZX Spectrum Next

Espectros (+128)

El Spectra tiene 31 formatos de visualización. Estos permiten mostrar hasta 64 colores únicos simultáneamente, y con diversas resoluciones de color, con alturas de atributos de 1, 2, 4 y 8 píxeles, y anchos de 2, 4 y 8 píxeles. [ 62 ]

Modos de alta resolución

512 × 192 × 2 / Alta resolución

Este modo se utilizaba principalmente para mostrar una pantalla de texto de 64 × 24 u 85 × 24 columnas, y originalmente solo los ordenadores Timex Sinclair (donde se denomina Hi-Res ) y algunos clones rusos [ 63 ] podían mostrarlo. También requiere 12  KB de RAM. En el caso del Timex, este modo se activa mediante el comando OUT 255,1. [ 27 ] [ 28 ] Dos editores gráficos ("Draw  512" [ 64 ] y "Tech-Draw" [ 65 ] ) admiten este modo, [ 66 ] [ 67 ] junto con BASIC64 y algunas implementaciones de CP/M . [ 30 ]

Detalles:

Píxeles: 512 × 192
Atributos: ninguno, sin limitaciones
Colores: 2 (4 paletas: blanco y negro, azul y amarillo, rojo y cian, magenta y verde) (de un total de 512 en el ZX  Spectrum Next)
Máquina: Timex Sinclair , ZX Spectrum Next , ZX-Uno , MB03+ Ultimate , eLeMeNt ZX , Pentagon

512 × 192 × 4 / Modo 3

Ejemplo de Sam Coupé 512×192×4 colores

El Sam Coupé tiene este modo, donde cada píxel puede usar uno de 4 colores de una paleta de 128. [ 30 ]

Detalles:

Píxeles: 512 × 192
Atributos: ninguno, sin limitaciones
Colores: 4 (de 128) por línea
Máquina: SAM Coupé

512 × 384 × 2

Ejemplo de modo de vídeo de pentágono de 512 × 384

Un modo compatible con la computadora del Pentágono. [ 56 ]

Detalles:

Píxeles: 512 × 384
Colores: monocromo
Máquina: Pentagon , Timex Sinclair 2128  ( modificación basada en TC 2048)

Color de alta resolución

Los píxeles se almacenan en orden lineal. Los atributos se duplican en la dirección vertical; la composición del atributo es idéntica a la del  modo original de ZX Spectrum. HiRes indeXedColour permite elegir entre 32 colores de un total de 16 777 216. Se pueden combinar dos memorias RAM de vídeo en los modos Color e indeXedColour mediante la capa de clave.

Detalles:

Píxeles: 512 × 192
Atributos: 64 × 48
Colores: 16 (o 32 indexados, desde 1677216)
Máquina: MB03+ Ultimate , eLeMeNt ZX

Emulado

256 × 192, 256 colores, "modo de 256 colores", sin atributos

Los emuladores SPEC256, [ 68 ] [ 69 ] EmuZWin [ 70 ] [ 71 ] y Es.pectrum [ 72 ] tienen un modo de pantalla de 256x192 píxeles donde cada píxel puede tener uno de 256 colores. [ 30 ] Esto se logra extendiendo el tamaño de palabra del Z80 emulado de 8 bits a 64, lo que hace que haya ocho bits de datos disponibles para cada píxel; la pantalla, por lo tanto, ocupa 48 KB de memoria. Este modo solo existe en el emulador y los gráficos por software deben modificarse para usarlo. 

Detalles:
Píxeles: 256 × 192
Atributos: ninguno, sin limitaciones
Colores: 256

Tramado y desenfoque

Desenfoque de TV simulado en una  imagen de ZX Spectrum de 256 × 192 con un patrón de tramado regular. Los patrones generan un desenfoque intencional, creando nuevos colores (por ejemplo, naranja, gris, etc.). El tramado regular reduce la resolución efectiva de esta imagen a 128  ×  96.
Paleta estándar de ZX Spectrum con tramado ordenado de 8 × 8.
Paleta de colores estándar del ZX Spectrum con tramado, en pixel art.

La baja profundidad de bits por píxel (tan solo un bit por píxel) ha llevado a los diseñadores gráficos (por ejemplo, en ZX-Art ) a recurrir a diversas técnicas de tramado . El tramado funciona muy bien con los televisores CRT de la época, ya que estos televisores analógicos emplean un alto grado de desenfoque tanto en el eje horizontal como en el vertical. Dado que el foco del haz de electrones de los televisores CRT comunes es intencionalmente bajo, el desenfoque resultante produce una mezcla de colores entre píxeles vecinos. El desenfoque reduce el ruido visible no deseado que el tramado añade a las imágenes mostradas.

Para simular fielmente la imagen de salida real de un ZX Spectrum, un emulador moderno necesita emplear un filtro de desenfoque de gran intensidad. Los filtros bilineales simples introducen demasiado desenfoque, mientras que el filtro Lanczos, extremadamente nítido , resulta insuficiente. Por lo tanto, el filtro debe diseñarse específicamente para simular el efecto de desenfoque de un televisor CRT común. La mayoría de los emuladores emplean filtros de muy baja calidad, lo que provoca que la imagen final aparezca extremadamente nítida y pixelada. Algunos emuladores, como FUSE, utilizan filtros disponibles para intentar reducir el efecto de pixelación. Estos filtros producen una imagen final significativamente diferente a la salida de vídeo real del ZX Spectrum. 

Un bajo contraste entre ciertas combinaciones de colores de la paleta permite mejorar el efecto de tramado, reduciendo aún más el ruido que este introduce. La tabla siguiente ilustra este efecto : por ejemplo, el contraste entre el color blanco y el fondo amarillo es extremadamente bajo, lo que hace que el texto blanco sea prácticamente invisible. 

Referencias

  1. Vickers, Steven (1982). "Introducción" . Programación BASIC para Sinclair ZX Spectrum . Sinclair Research Ltd. Archivado del original el 24 de septiembre de 2006. Recuperado el 23 de agosto de 2006 .
  2. Vickers, Steven (1982). "Colours" . Programación BASIC de Sinclair ZX Spectrum . Sinclair Research Ltd. Archivado del original el 24 de septiembre de 2006. Recuperado el 23 de agosto de 2006 .
  3. ↑ Patente EP 0107687 , Richard Francis Altwasser, "Pantalla para ordenador", expedida el 6 de julio de 1988, asignada a Sinclair Research Ltd. 
  4. "Base de datos" . ZX-Art . Consultado el 14 de abril de 2023 .
  5. "Información técnica del ZX Spectrum de 48K" . Preguntas frecuentes de comp.sys.sinclair . Consultado el 28 de diciembre de 2023 .
  6. 1 2 "Blog de diseño de clones de Spectrum" .
  7. "Información técnica del ZX Spectrum de 48K" .
  8. "Información técnica del ZX Spectrum de 128K" .
  9. Smith, Chris (2010). The ZX Spectrum ULA: How to Design a Microcomputer (1.ª ed.). Reino Unido: ZXDesign Technology and Media. págs. 224–227 . ISBN   978-0-95-650710-5.
  10. "Información técnica del ZX Spectrum de 48K" . worldofspectrum.org . Consultado el 15 de noviembre de 2023 .
  11. 1 2 Smith, Chris (2010). The ZX Spectrum ULA: How to Design a Microcomputer (1.ª ed.). Reino Unido: ZXDesign Technology and Media. pág. 74. ISBN   978-0-95-650710-5.
  12. "Información técnica del ZX Spectrum de 48K" . worldofspectrum.org . Consultado el 15 de noviembre de 2023 .
  13. Tišnovský, Pavel. "Grafika na osmibitových počítačích firmy Sinclair II" . Root.cz (en checo) . Consultado el 15 de noviembre de 2023 .
  14. "Para principiantes: explicación de la salida de vídeo del C64" . Lemon64 – Commodore 64. 24 de septiembre de 2019. Consultado el 11 de enero de 2024 .
  15. 1 2 3 Colores – Manual de introducción al Sinclair ZX Spectrum , pág. 27 
  16. "Salida S-video para ZX Spectrum +2A/+3, +2B y +3B" . zxnet.co.uk . Consultado el 20 de diciembre de 2023 .
  17. "Eliminación del efecto fantasma azul/amarillo de la salida de vídeo del 128/+2" . Spectrum for Everyone . Consultado el 20 de diciembre de 2023 .
  18. Farrow, Paul (2001). Cable SCART Spectrum 128 (PDF) .
  19. Codificador de color PAL/NTSC TEA2000 (PDF) . Philips. Septiembre de 1985.
  20. 1 2 "Blog de diseño de clones de Spectrum" . www.zxdesign.info .
  21. "Información técnica del ZX Spectrum de 48K" . worldofspectrum.org . Consultado el 14 de noviembre de 2023 .
  22. Colores – Manual de introducción al Sinclair ZX Spectrum , pág. 27 
  23. "Blog de diseño de clones de Spectrum " . www.zxdesign.info
  24. "Información técnica del ZX Spectrum de 48K" . worldofspectrum.org .
  25. Belfield, Dean. "L Break Into Program – ZX Spectrum Screen Memory Layout" . L Break Into Program, 0:1 .
  26. "World of Spectrum – Documentación – Manual de ZX Spectrum – Capítulo 24" . worldofspectrum.org .
  27. 1 2 3 "Puertos de E/S de Timex" . timex.comboios.info .
  28. 1 2 3 4 "Información técnica de Timex" . worldofspectrum.org .
  29. Weissenberg, Michael (19 de diciembre de 1983). "InfoWorld" . InfoWorld Media Group, Inc. vía Google Books.
  30. 1 2 3 4 5 6 7 8 "Modos gráficos adicionales de ZX Spectrum" . Proyectos de 8 bits para todos . Archivado del original el 15 de junio de 2006. Recuperado el 14 de septiembre de 2006 .
  31. "Pintura extendida" . www.timexsinclair.com . Noviembre de 2020. Consultado el 20 de noviembre de 2022 .
  32. MB-02+ Un paso adelante revolucionario (PDF) . 8 Bit Company Laboratories.
  33. "Descarga MB02+" . www.128land.com . Archivado del original el 10 de febrero de 2022. Consultado el 10 de febrero de 2022 .
  34. Gordon, Wright, Bruce, Andy (1990). MANUAL TÉCNICO SAM COUPE v3.0 (PDF) . MILES GORDON TECHNOLOGY plc.{{cite book}}: CS1 maint: varios nombres: lista de autores ( enlace )
  35. "BIFROST*2 ENGINE en Spectrum Computing" . Spectrum Computing .
  36. "SuperColour en Spectrum Computing" . Spectrum Computing .
  37. "Computación de espectro" . Computación de espectro .
  38. "NIRVANA+ ENGINE en Spectrum Computing" . Spectrum Computing .
  39. "Base de datos" . ZX-Art .
  40. "Base de datos" . ZX-Art .
  41. "ULAplus" . sites.google.com .
  42. "ULAplus" . sites.google.com . Archivado del original el 25 de mayo de 2013. Consultado el 20 de noviembre de 2022 .
  43. "Colección del décimo aniversario de ULAplus™ de Source Solutions, Inc." . itch.io . Consultado el 20 de noviembre de 2022 .
  44. "Visor HAM256 en Spectrum Computing" . Spectrum Computing . Consultado el 20 de noviembre de 2022 .
  45. "HAM 8×1 en Spectrum Computing" . Spectrum Computing . Consultado el 20 de noviembre de 2022 .
  46. 1 2 3 Gabor, Tarjan (2021). "¿ZX Spectrum en el siglo XXI?" .
  47. Juegos, Chris Smith, Retro (11 de enero de 2024). "The Spectrum" . retrogames.biz . Consultado el 19 de marzo de 2025 .{{cite web}}: CS1 maint: varios nombres: lista de autores ( enlace )
  48. "Demostración de entrelazado en Spectrum Computing" . Spectrum Computing .
  49. "Base de datos" . ZX-Art .
  50. "Modos gráficos de ZX-Spectrum" . ZONA GFX .
  51. ZX Spectrum 128k: Demo de "Velesoft's Dragon in Giga Screen Simulator" (2021) , 15 de abril de 2021 , consultado el 21 de diciembre de 2023
  52. "Base de datos" . ZX-Art .
  53. "ZX Prism: modo planar de 16 colores "sin choque de colores" y pantalla Gigascreen de hardware" . 17 de julio de 2014.
  54. «Триколор» . SpeccyWiki (en ruso).
  55. "16col" . SpeccyWiki (en ruso).
  56. 1 2 "384x304" . SpeccyWiki (en ruso).
  57. "Modos gráficos de ZX Spectrum y compatibles compatibles con la plataforma eLeMeNt/MB" . Archivado del original el 24 de febrero de 2024. Consultado el 24 de febrero de 2024 .
  58. ^ "LnxSpectrum HGFX Oxygene" - vía vimeo.com.
  59. "HGFX – ZX Planar – tutorial" .
  60. "HGFX/Q Graphics" . wiki.ilnx.cz (en checo).
  61. "Modos de vídeo" . Wiki oficial de SpecNext .
  62. Farrow, Paul (2018). Resumen de los modos de visualización de SPECTRA (PDF) . www.fruitcake.plus.com / www.zxresourcecentre.co.uk.
  63. "512x192" . SpeccyWiki (en ruso).
  64. "Draw 512" . www.timexsinclair.com . 30 de noviembre de 2019. Consultado el 20 de noviembre de 2022 .
  65. "Tech-Draw" . www.timexsinclair.com . 20 de enero de 2020. Consultado el 20 de noviembre de 2022 .
  66. "Draw 512 en Spectrum Computing" . Spectrum Computing . Consultado el 20 de noviembre de 2022 .
  67. "Software para el TS 2068" . www.timexsinclair.com . Consultado el 20 de noviembre de 2022 .
  68. MVV (18 de julio de 2022), mvvproject/Spec256-Games , consultado el 26 de noviembre de 2022
  69. "Juegos Spectrum Magic ZX de 256 colores" . spectrummagic.emuunlim.com . Consultado el 26 de noviembre de 2022 .
  70. "EmuZWin v2.6 versión 1.0" .
  71. "EmuZWin 2" . f0460945.xsph.ru . Consultado el 26 de noviembre de 2022 .
  72. "Manual de Es.spectrum" . www.habisoft.com . Consultado el 26 de noviembre de 2022 .
  • Modos gráficos de ZX-Spectrum
  • Modos gráficos adicionales de ZX-Spectrum. Archivado el 15 de junio de 2006 en Wayback Machine.
  • "Image to ZX Spec – Una utilidad de código abierto para la conversión de imágenes de PC a ZX Spectrum (incluyendo 14 modos de tramado)" . www.silentdevelopment.co.uk . Archivado del original el 3 de marzo de 2016.
  • Retro-X: una utilidad para la conversión de imágenes de PC a máquinas antiguas (incluye modos no estándar de ZX Spectrum).
  • Complemento ZX GIMP Un complemento para GIMP que permite que cualquier imagen RGB se vea como una pantalla de ZX Spectrum.
  • Motor BIFROST*2 (atributos multicolor "8×1", 20 columnas)
  • Motor NIRVANA+ (atributos multicolores "8×2" de ancho completo de pantalla)
  • Modos de vídeo de ZX-Spectrum Next
  • Colección de arte gráfico de ZX-Spectrum