
Сообщение от
TS-Labs
Работает АБСОЛЮТНО независимо от спектрумской графики.
Поддерживает 32 спрайта (зачем так дохера?), занимает всю видимую область экрана (360х288 пикс.)
Графика спрайтов хранится в ОЗУ, начиная с любой четной ячейки с физическим адресом до 4 МБ.
Каждому спрайту указываются координаты в пределах 512х512 точек, при этом отображается на экране только та часть спрайта, которая попадает в видимую область, следовательно скролки реализуются без какого-либо гимора вообще.
Размер спрайта задается в пределах 128 16-битных слов на 128 линий. Одно слово может содержать 2, 4 или 8 пикселей в зависимости от цветового разрешения данного спрайта.
Поддерживаются 3 цветовых разрешения: 2 бита на точку (3 цвета), 4 бита (15 цветов) и труЪ-колор. В "не тру", цвета с кодом 0 - прозрачны. Не 0, берутся из палитрового ОЗУ,
которое 256 слов по 6 бит. Для каждого спрайта указывается номер палитры, которую он юзает. Таким образом, в 15 цветном режиме цвет пикселя берется так: 4 старших бита - номер палитры, 4 младших - код пикселя. Эти 8 бит подставляются адресом в палитровое ОЗУ, а 6 бит данных из него пишутся в экран (если код пикселя не 0).
В труЪ колоре - биты 5:0 символизируют цвет, а бит 7 - прозрачность. Режим реально труЪ, но вот только хуй вам, не будет он успевать читаться из ДРАМ, смех в зале.
Чем больше номер спрайта, тем позже он рисуется в экран, следовательно имеет бОльший приоритет (но меньше шансов быть нарисованным, бугагага).
Сферическая в вакууме производительность SPU - около 1000 точек на линию (при размере линии 360 точек), однако не спешите радоваться - это без учета обращений к ДРАМ-кружку.
С целью облегчения и без того трудной жизни видеопроца предусмотрены два режима живительной эвтаназии: отключение нахуй спектрумской графики, которая при наличии спрайтов никому не сдалась, и передачи приоритета обращения к ДРАМ от CPU к SPU, причем не навечно, а только в периоды реального чтения спрайтов.
Спрайтовый автомат оптимизирован до предела, и (обняться и рыдать) занимает около 650 ЛЕ-шек.
Сразу предупреждаю: демки я писать не буду, ибо не обучен. Прошивку и спецификацию выложу, когда доведу до ума работу с арбитром памяти. В принципе, все работает уже сейчас, и если кому интересно, можно начинать писать демки.