Графические режимы ZX Spectrum - ZX Spectrum graphic modes


Экран ZX Spectrum, показывающий доступные цвета

В ZX Spectrum обычно считается имеющим ограниченные графические возможности по сравнению с некоторыми другими домашние компьютеры той же эпохи, такой как Коммодор 64 во многом из-за отсутствия специального графического чипа. Тем не менее, на протяжении всей своей коммерческой жизни и последующей деятельности на демосцена были разработаны различные методы, обеспечивающие (или имитирующие) улучшения графического вывода Spectrum.

Цветовая палитра

В ZX Spectrum (и совместимые) компьютеры используют вариацию философии 4-битной палитры RGBI. Это приводит к тому, что каждый из цветов 3-битной палитры имеет основной и яркий вариант, за исключением черного. В яркий половина палитры создается с использованием максимальных уровней напряжения видеодисплея для каждого из трех цветовых компонентов R / G / B, используемых цветом. В основной половина палитры отображается простым уменьшением этих напряжений.

В кодировке ZX Spectrum компоненты цвета расположены в порядке GRB (от старшего к младшему разряду), а не в более общем порядке RGB. Порядок GRB имеет то преимущество, что номера цветов упорядочиваются путем увеличения яркость, поэтому при просмотре на черно-белом дисплее упорядоченная последовательность от 0 до 7 будет формировать градиент от черного к белому. В частности, синий имеет двоичный вес 1, красный имеет вес 2, и зеленый имеет вес 4. Как и любое двоичное число, эти веса складываются для получения единственного десятичного числа, соответствующего отображаемому цвету, влияние которого можно увидеть в таблице ниже (обратите особое внимание на столбец «двоичное значение» ).

Для любого значения п от 0 до 7 следующие команды могут использоваться для установки или изменения цвета экрана:

  • ГРАНИЦА п, цвет окружающей области за пределами основного растрового изображения.
  • БУМАГА п, цвет фона (битовое значение 0) цветовой ячейки, которую нужно изменить.
  • Чернила п, цвет переднего плана (битовое значение пикселя 1) для изменяемой цветовой ячейки.

Кроме того, команду ЯРКОСТЬ можно использовать для изменения настройки флажка яркости команд БУМАГА и ЧЕРНИЛА ( я в RGBя), предоставляя им доступ ко всей палитре из 15 цветов. Настройки «0» и «1» включают и выключают яркий режим (соответственно). Поскольку только один бит в байте атрибута цвета используется для выбора яркости как цвета переднего плана, так и цвета фона в цветовой ячейке, невозможно выбрать оба яркий и основной цветовые режимы в одной цветовой ячейке. Команда ГРАНИЦА не использует яркий флаг, поэтому только восемь основной цвета поддерживаются.

Считая от младшего до самого старшего бита, байт атрибута выделяет три бита для цвета переднего плана, три бита для цвета фона, один бит для яркого флага и один бит для эффекта мигания (что заставляет видеодисплей чередовать передний план и цвет фона периодически).

Стандартная палитра ZX Spectrum с упорядоченным дизерингом 8x8.
Стандартная палитра ZX Spectrum с дизерингом, в пиксельная графика
номер цветаДвоичное значениеЯРКИЙ 0 (RGB)ЯРКИЙ 1 (RGB)название цветаEGA / VGA 16col. эквивалент BRIGHT 0EGA / VGA 16col. эквивалент BRIGHT 1
0000#000000#000000черный00
1001# 0000D7# 0000FFсиний412
2010# D70000# FF0000красный19
3011# D700D7# FF00FFпурпурный513
4100# 00D700# 00FF00зеленый210
5101# 00D7D7# 00FFFFголубой614
6110# D7D700# FFFF00желтый311
7111# D7D7D7#FFFFFFбелый815

Цвет BRIGHT BLACK был не во всех моделях эмуляторов ZX Spectrum и ZX Spectrum (но можно регулировать палитру в нескольких эмуляторах (например, EmuZWin, ZX Spin), включая яркий черный).

цвета, смоделированные как RGB, считаются неяркими при напряжении 85% (0,55 В) и яркими как 100% (0,65 В).[1] Просмотр на дисплее PAL будет зависеть от гаммы, и поэтому неяркие значения будут светлее. В каждой модели ZX Spectrum использовалось разное напряжение для цветов, поэтому значения здесь только ориентировочные.
диаграмма цветового контраста (хорошо для мигающих цветов)
0,00,000,00,010,00,020,00,030,00,040,00,050,00,060,00,07
0,01,000,01,010,01,020,01,030,01,040,01,050,01,060,01,07
0,02,000,02,010,02,020,02,030,02,040,02,050,02,060,02,07
0,03,000,03,010,03,020,03,030,03,040,03,050,03,060,03,07
0,04,000,04,010,04,020,04,030,04,040,04,050,04,060,04,07
0,05,000,05,010,05,020,05,030,05,040,05,050,05,060,05,07
0,06,000,06,010,06,020,06,030,06,040,06,050,06,060,06,07
0,07,000,07,010,07,020,07,030,07,040,07,050,07,060,07,07
1,00,001,00,011,00,021,00,031,00,041,00,051,00,061,00,07
1,01,001,01,011,01,021,01,031,01,041,01,051,01,061,01,07
1,02,001,02,011,02,021,02,031,02,041,02,051,02,061,02,07
1,03,001,03,011,03,021,03,031,03,041,03,051,03,061,03,07
1,04,001,04,011,04,021,04,031,04,041,04,051,04,061,04,07
1,05,001,05,011,05,021,05,031,05,041,05,051,05,061,05,07
1,06,001,06,011,06,021,06,031,06,041,06,051,06,061,06,07
1,07,001,07,011,07,021,07,031,07,041,07,051,07,061,07,07

Дизеринг

Эта довольно короткая цветовая палитра побудила художников-графиков (например, в ZX-Art ) прибегать к различным техникам дизеринга; самый простой из которых использует упорядоченные шаблоны, как подробно показано на противоположной диаграмме. Дизеринг также очень хорошо работает с оригиналом. Композитное видео подключение к аналогу PAL TV, генерирующий смешение цветов по горизонтальным линиям пикселей.

Стандартный режим

Аппаратная реализация

Стандартный экран ZX Spectrum

Оригинальный ZX Spectrum имеет разрешение экрана 256 × 192 пикселей. Информация о цвете накладывается на это в виде сетки из областей 8 × 8 пикселей, известных как блоки атрибутов; в каждом блоке атрибутов можно использовать только два цвета из 8 палитры (черный, синий, красный, пурпурный, зеленый, голубой, желтый и белый). Кроме того, весь блок атрибутов может быть обозначен как «яркий», что дает всего 15 возможных цветов (потому что и яркий, и темный черный цвет имеют один и тот же цвет # 000000). Во многих программах это ограничение проявлялось как конфликт атрибутов.

Подробности:
Пиксели: 256 × 192
Атрибуты: 32 × 24
цвета: 15

Фактическое разрешение при подключении композитного видео

TV Blur 128 × 192 Экран ZX Spectrum

Из-за ограничений оригинала Композитное видео подключение к аналоговому PAL TV, соседние пиксели фактически были размыты по горизонтали. Результирующее разрешение зависело от качества телевизора и цветовых комбинаций, используемых для каждого конкретного изображения, но в большинстве случаев было примерно ~ 128x192.

Этот эффект использовался для увеличения количества отображаемых цветов на экране почти всеми графическими дизайнерами с помощью техники дизеринга. Таким образом становится возможным почти 64 цвета. Некоторые эмуляторы предоставляют своего рода «размытие» изображений, пытаясь имитировать этот эффект.

Подробности:
Пиксели: ~ 128 × 192
Атрибуты: 32 × 24
цветов: ~ 128 (с учетом дизеринга и ярких / неярких цветовых вариаций)

Монохромные телевизоры и мониторы

Палитра ZX Spectrum на монохромном дисплее

Используя монохромный монитор или черно-белый телевизор (или уменьшив настройки цвета цветного телевизора), можно воспользоваться преимуществами различий в интенсивности в цветовом диапазоне Spectrum для создания изображения в градациях серого с 15 оттенками при разрешении 256 × 192.

Подробности:
Пиксели: 256 × 192
Атрибуты: 32 × 24
цвета: 15 оттенков серого

Цветной (атрибуты 8x1)

Аппаратная реализация

Цветной экран ZX Spectrum

Несколько сторонних клонов Spectrum, включая Timex Sinclair машины и Пентагон, поддерживают режим экрана, в котором блоки атрибутов имеют размер 8 × 1 пиксель, а не обычные 8 × 8. Экран в этом режиме занимает 12 КБ ОЗУ. В случае Timex этот режим активируется командой OUT 255,2. Кроме того, этот экранный режим может быть создан с помощью интерфейса MB03 + Ultimate, дисковой системы MB-02. DMA аппаратное обеспечение (где метод известен как Мультитех), а также доступен как режим 2 на SAM купе.

Подробности:
Пиксели: 256 × 192
Атрибуты: 32 × 192
цвета: 15

Программная реализация

Атрибуты "8x1"

На других моделях Spectrum этот эффект можно воспроизвести, используя тот факт, что ULA повторно считывает атрибутивную информацию в каждой строке пикселей при генерации видеовыхода; можно записать новое значение в соответствующую ячейку памяти между последовательными строками и, таким образом, вызвать отображение другой пары цветов. Однако процессор Spectrum не достаточно быстр, чтобы писать во всю строку байтов атрибутов в одной строке сканирования, поэтому атрибуты 8 × 1 могут быть достигнуты только в 20 столбцах.[2] Этот метод известен как Цвет, Разноцветный, FLI или Радужный процессор Режим.[3]

Подробности:
Пиксели: 256 × 192
Атрибуты: 32 × 192 (ограничено областью 18x192)
цвета: 15

Атрибуты "8x2"

Разновидностью этого метода является изменение всей строки атрибутов в течение двух строк развертки, в результате чего блоки атрибутов размером 8 × 2 пикселей занимают всю ширину экрана.[4]

Подробности:
Пиксели: 256 × 192
Атрибуты: 32 × 96
цвета: 15

Атрибуты "4x1"

Экран ZX Spectrum с 4 × 1 атрибутами

Особый случай включает в себя чередование двух доступных цветов для каждой ячейки атрибута по 4 пикселя каждая, что позволяет обрабатывать каждую область 4 × 1 как независимо окрашиваемый «пиксель» (хотя ограничение одного уровня яркости на ячейку 8 × 1 все еще остается в силе). эффект).

Подробности:
Пиксели: 64 × 192
Атрибуты: 64 × 192
цвета: 15

ULAplus

ULAplus совместим со стандартным дисплеем ZX Spectrum, если он используется только для изменения 16 основных цветов. Тем не менее, любое программное обеспечение, которое использует полные 64 цвета, будет запускать атрибуты «вспышки» исходного Spectrum.

Подробности:
Пиксели: 256 × 192
Атрибуты: 32 × 24
цветов: 64 (из 256)
Машина: ZX Spectrum SE, Chloe 280SE, Chloe 140SE, ZX-Uno (www.zxuno.com), zx128u +
Интерфейс: MB03 + Ultimate

Чересстрочная развертка / переключаемые режимы

Смоделированное чересстрочное изображение ZX Spectrum на экране ЭЛТ

Путем чередования двух экранов при каждом прерывании кадра (50 Гц) теоретически можно смоделировать удвоение разрешения экрана по вертикали со 192 до 384 строк.

Клоны Timex и ZX Spectrum 128K реализуют «теневую» область экрана, которую можно переключить на место с помощью одной команды OUT, и это часто используется для быстрого переключения между двумя изображениями с этой целью (хотя это также может быть достигнуто. со стандартной копией блока, но не на весь экран).

При просмотре на экране телевизора с ЭЛТ (стандарт в то время) мерцание менее заметно, чем на современном мониторе. Вот (предупреждение: связанное изображение очень быстро мигает, что потенциально может вызвать судороги у людей с светочувствительная эпилепсия ).

На самом деле этот метод не обеспечивает истинного чересстрочного отображения, так как Spectrum не может синхронизироваться с аппаратным обеспечением дисплея на таком низком уровне. Скорее, эффект больше похож на сглаживание, при этом некоторые пиксели отображаются с половинной яркостью.[3]

Подробности:
Пиксели: 256 × 384
Атрибуты: 32 × 24
цвета: 15

GigaScreen

Экран GigaScreen ZX Spectrum

Атрибуты (цвета) изображения чередуются на экране с частотой 50 Гц, используя для смешивания преимущества кодировки цветовой системы PAL. Таким образом, палитра увеличивается примерно до 36 цветов.[5]

Для машин Пентагона доступна аппаратная модификация, которая напрямую объединяет две альтернативные области экрана в видеосигнал, тем самым устраняя мерцание связанный с этим методом. Кроме того, методы гигаэкрана и цветного изображения могут использоваться вместе для получения еще более богатых цветных изображений; этот формат был назван DithVIDE и BZither, оба имени относятся к дизеринг методы, используемые при конвертации истинный цвет изображения в формат.

Подробности:
Пиксели: 256 × 192
Атрибуты: 32 × 24
цвета: 36

3цвет / Мультихром / RGB-3 / Межхромный

3цветный экран ZX Spectrum

Три отдельных изображения, состоящие из красного, зеленого и синего слоев, быстро отображаются на экране одно за другим, полагаясь на постоянство зрения эффекты для объединения трех слоев в одно цветное изображение. В результате получается 8-цветное изображение, в котором каждый пиксель может быть окрашен независимо.[6]

Этот эффект моделируется на другом изображении, связанном с Вот (предупреждение: связанное изображение очень быстро мигает цветами, что потенциально может вызвать судороги у людей с светочувствительная эпилепсия ); мигание менее заметно при просмотре на экране телевизора.

Подробности:
Пиксели: 256 × 192
Атрибуты: 256 × 192
цвета: 8

Эмулированный

256 × 192, 256 цветов, «256 цветовой режим», без атрибутов

SPEC256, EmuZWin и Es.pectrum эмуляторы иметь режим экрана 256 × 192 пикселей, где каждый пиксель может быть одного из 256 цветов. Это достигается за счет увеличения размер слова эмулированных Z80 от 8 бит до 64, что делает доступным восемь бит данных для каждого пикселя; экран, таким образом, занимает 48 КБ памяти. Этот режим существует только в эмуляторе, и для его использования необходимо изменить графику программного обеспечения.

Подробности:
Пиксели: 256 × 192
Атрибуты: 256 × 192
цвета: 256

Совместимые машины и интерфейсы

Монохромный экран 512 × 192

Позже ZX Spectrum-совместимые машины предлагали дополнительные видеорежимы. Они основаны на стандартном режиме 256x192, но несовместимы с оригинальным Spectrum.[3]Также интерфейсы, интерфейс Spectra и MB03 + Ultimate Интерфейс расширяет возможности дисплея Spectrum для поддержки большего количества цветов и / или дополнительных видеорежимов.

512 × 192 монохромный

Этот режим в основном использовался для отображения текстового экрана размером 64 × 24 или 80 × 24 столбцов, и только компьютеры Timex Sinclair и некоторые российские клоны могут отображать его. Для этого режима есть два графических редактора, и он поддерживается БАЗОВЫЙ 64 и некоторые CP / M реализации. Также требуется 12 Кбайт (12KiB ) БАРАН.

Подробности:
Пиксели: 512 × 192
Атрибуты: нет
цветов: 2 (четыре палитры: черный и белый, синий и желтый, красный и голубой, пурпурный и зеленый)
Машина: Timex Sinclair, MB03 + Ultimate

512 × 192x4

Подробности:
Пиксели: 512 × 192
Атрибуты: 512 × 192
цвета: 4 (из 128) в строке
Машина: Сэм Купе

Слой 2 (256 × 192x256)

Подробности:
Пиксели: 256 × 192
Атрибуты: 256 × 192
цвета: 256
Машина: ZX Spectrum Next

256 × 192x16

Подробности:
Пиксели: 256 × 192
Атрибуты: 256 × 192
цветов: 16 (из 128) на строку
Машина: Sam Coupé

384x304x16

Подробности:
Пиксели: 384x304
Атрибуты: 48 × 38
цвета: 16
Машина: Пентагон

512x384x2

Подробности:
Пиксели: 512 × 384
цвета: монохромный
Машина: Пентагон, Timex Sinclair 2128

16c

Подробности:
Пиксели: 256 × 192
Атрибуты: 256 × 192
цвета: 16
Машина: Банкомат Турбо, Пентагон

HAM256

Подробности:
Пиксели: 256 × 192
Атрибуты: 32 × 192
цветов: 32 в строке (от 256)
Машина: ZX Spectrum SE, ZX-Uno

Радастан

В этом режиме отображаются пиксели двойного размера 128x96 пикселей. Каждый пиксель содержит один из шестнадцати цветов. Пиксели хранятся в линейном буфере как 4-битные. грызет (т.е. 2 пикселя на байт). Буфер имеет длину 6144 байта и занимает ту же память, что и оперативная память 256x192 пикселей.

Подробности:
Пиксели: 128x96
Атрибуты: каждый пиксель имеет отдельный цвет
цветов: 16 (из 256)
Машина: ZX-Uno

использованная литература

внешние ссылки