Многие знают Sega Mega Drive как консоль с «мрачной» палитрой: всего 512 цветов в распоряжении, из которых одновременно на экране можно отобразить лишь 64 (4 палитры по 16 цветов). Но что, если я скажу, что можно и больше чем это задуманно аппаратно? В технологии MegaColor эти цифры можно умножить в десятки раз?
В чем суть трюка?
Технология MegaColor — это не просто «софтовый плеер». Тут конечно без "спец техники" не обойтись, но так или иначе цвета выводит сама консоль, по честному! Тот же самый трюк можно использовать и с оригинальной SEGA CD.
В обычном режиме процессор VDP (Video Display Processor) берет данные о цветах из CRAM (Color RAM). Ограничение в 64 цвета зашито именно в объеме этой памяти. MegaColor работает иначе:
Прямая подмена (CRAM Injection): Картридж не отслеживает состояние луча, это делает сама консоль "подсовывая в правильный момент" развертки цвета CRAM в VDP в реальном времени, новые значения цветов поступают настолько быстро и "правильно" что по факту консоль за один кадр может использовать все допустимые вариации цветов палитр VRAM.
Динамическая палитра: Вместо статичных 64 цветов мы получаем возможность менять палитру практически на каждом пикселе или строке.
Результат: На экране одновременно отображается более 3000 цветов. Это превращает картинку из «ступенчатого» ретро в плавное полноцветное изображение, сопоставимое с возможностями 32-битных систем.
Технические тонкости Megacolor Video
Для реализации такого уровня графики (особенно в видео) используется специальный конвертер на стороне ПК.
Конвертер: Берет исходный видеофайл и пересчитывает его, учитывая тайминги луча Sega. Он подготавливает поток данных, который FPGA картриджа будет транслировать на шину.
Поток данных: Объем данных при такой цветопередаче колоссальный для 1988 года, но высокая скорость обмена данными VDP позволяет прокачива��ь этот поток без лагов.
FPS: Технология позволяет крутить полноэкранное видео (FMV) со скоростью до 30 кадров в секунду при феноменальной цветопередаче.
В итоге MegaColor превращает старую добрую Сегу в платформу, способную выдавать картинку, которая в 90-е казалась бы магией или результатом работы какого-нибудь мифического «Sega Saturn Mini».
Как это работает:
Копируем расположение тайлов (MAP).
Копируем сами тайлы.
Ждем вертикального бланка.
Через DMA копируем заготовленную палитру так чтобы горизонтальный бланк совпадал с завершением плитр на линию.
Проходим все строки.
Переходим на 1.
Спасибо за внимание, удачи вам добра и радости!
