Мультиколор — различия между версиями
Zxdn (обсуждение | вклад) м («Multicolor» переименована в «Мультиколор») |
Zxdn (обсуждение | вклад) |
||
Строка 1: | Строка 1: | ||
− | '''Multicolor''', '''Мультиколор''' - | + | '''Multicolor''', '''Мультиколор''' - программный трюк, позволяющий обойти ограничение [[256x192|стандартного]] видеорежима [[ZX Spectrum]] на количество одновременно отображаемых в одном [[знакоместо|знакоместе]] цветов. |
− | + | Обычно в одном знакоместе (блоке 8x8 точек) может быть использовано только два цвета - цвет фона и цвет тона. Логика работы видеоконтроллера такова, что при проходе луча развёртки по каждой строке растра в основной области экрана происходит чтение [[атрибут]]ов знакомест. Если атрибуты будут изменены между проходами луча, это приведёт к использованию для текущей отображаемой строки новых значений. Таким образом, вовремя изменяя содержимое атрибутной области экрана, можно задавать цвета для полосок 1x8 точек вместо обычных блоков 8x8. | |
− | + | Разные модели ZX Spectrum и клонов имеют разные реализации видеконтроллера и, соответственно, разные [[256x192#Тайминги|параметры развёртки]]. Для реализации программного мультиколора требуется точная настройка на эти параметры. Большинство программ, работающих с мультиколором, расчитаны на параметры компьютера [[Пентагон]]. | |
− | + | Модели ZX Spectrum без [[турбо-режим]]а не могут заполнить все 32 байта атрибутов знакомест строки произвольными данными за время, пока луч развёртки проходит по строке. Код типа LD HL,<пара байт> : LD (<адрес на экране>),HL может обновить до 8 пар байт (16 байт) за строку, или до 20 байт, если первые 2 строки каждого знакоместа заполнены заранее в двух экранных областях. Более сложный код, работающий со стеком, позволяет отобразить мультиколор шириной до 24 знакомест на компьютере [[Пентагон]], что считается теоретическим пределом. Для компьютеров с торможением памяти <!-- contended memory? --> таким пределом является 22 знакоместа. | |
− | + | Даже при стандартной тактовой частоте процессора возможно получить полноэкранный мультиколор (на 32 знакоместа), имеющий некоторые ограничениями. Так, например, конвертор [[Con18]] позволяет ограничивать число пар байт, изменённых в течение одной строки, значением 8. Получившуюся картинку (формат .mc) можно посмотреть программой [[MCX Viewer]]. Аналогичная возможность есть при конверсии в [[Gigascreen|двухэкранный]] мультиколор (формат .mcx). | |
− | + | Мультиколор используется в различных программах, в основном в [[демо]]. Использование мультиколора в играх затруднено необходимостью выдерживания точных таймингов. | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
== Конверторы == | == Конверторы == | ||
− | *Con18 ([[Windows|PC/Windows]]) | + | *[[Con18]] ([[Windows|PC/Windows]]) |
*[[BMP2SCR]] (PC/Windows) | *[[BMP2SCR]] (PC/Windows) | ||
Строка 30: | Строка 20: | ||
== Игры == | == Игры == | ||
*[[Hexagonal Filler]] | *[[Hexagonal Filler]] | ||
+ | |||
+ | == См. также == | ||
+ | *[[Аппаратный мультиколор]] | ||
== Ссылки == | == Ссылки == |
Версия 01:43, 24 сентября 2008
Multicolor, Мультиколор - программный трюк, позволяющий обойти ограничение стандартного видеорежима ZX Spectrum на количество одновременно отображаемых в одном знакоместе цветов.
Обычно в одном знакоместе (блоке 8x8 точек) может быть использовано только два цвета - цвет фона и цвет тона. Логика работы видеоконтроллера такова, что при проходе луча развёртки по каждой строке растра в основной области экрана происходит чтение атрибутов знакомест. Если атрибуты будут изменены между проходами луча, это приведёт к использованию для текущей отображаемой строки новых значений. Таким образом, вовремя изменяя содержимое атрибутной области экрана, можно задавать цвета для полосок 1x8 точек вместо обычных блоков 8x8.
Разные модели ZX Spectrum и клонов имеют разные реализации видеконтроллера и, соответственно, разные параметры развёртки. Для реализации программного мультиколора требуется точная настройка на эти параметры. Большинство программ, работающих с мультиколором, расчитаны на параметры компьютера Пентагон.
Модели ZX Spectrum без турбо-режима не могут заполнить все 32 байта атрибутов знакомест строки произвольными данными за время, пока луч развёртки проходит по строке. Код типа LD HL,<пара байт> : LD (<адрес на экране>),HL может обновить до 8 пар байт (16 байт) за строку, или до 20 байт, если первые 2 строки каждого знакоместа заполнены заранее в двух экранных областях. Более сложный код, работающий со стеком, позволяет отобразить мультиколор шириной до 24 знакомест на компьютере Пентагон, что считается теоретическим пределом. Для компьютеров с торможением памяти таким пределом является 22 знакоместа.
Даже при стандартной тактовой частоте процессора возможно получить полноэкранный мультиколор (на 32 знакоместа), имеющий некоторые ограничениями. Так, например, конвертор Con18 позволяет ограничивать число пар байт, изменённых в течение одной строки, значением 8. Получившуюся картинку (формат .mc) можно посмотреть программой MCX Viewer. Аналогичная возможность есть при конверсии в двухэкранный мультиколор (формат .mcx).
Мультиколор используется в различных программах, в основном в демо. Использование мультиколора в играх затруднено необходимостью выдерживания точных таймингов.
Содержание
Конверторы
- Con18 (PC/Windows)
- BMP2SCR (PC/Windows)
Редакторы
- Multi-Studio 1.x и 2.x
Игры
См. также
Ссылки
- Изготовление мультиколоров - статья из ZX Format #6
- О мультиколоре вообще и MC24 в частности - статья из ZX-Guide #2