Уже давно появились фпга клоны, однако почему-то никто ещё не хочет их улучшать в плане графики. Однако, эти улучшения напрашиваются сами. Например ограничение в 512 цветов. Это ограничение из-за того, что для значений цветовых компонентов не учитывается младший бит. Но ведь, ВДП имеет кучу неиспользованных регистров с номерами: 6,8,9,14,с 24 по 31. В одном из свободных регистров можно было бы предусмотреть разряд, который бы и отвечал за режим включения учета младших бит в цветовых компонентах. Тогда при записи в этот разряд регистра, мы бы получали четырёхбитные компоненты цвета, и 4096 цветов.
Потом, ограничение в 4 общие палитры и на тайлы и на спрайты. Хотя, можно разделить палитры на два банка - банк палитр для тайлов и банк палитр для спрайтов. Каждый банк по 4 палитры. Это удвоит количество цветов видимых одновременно на экране с 61 до 121. Но для этого нужно расширить CRAM до 128 цветов. Цвета с номерами 0-63 входят в банк палитр тайлов, а 64 по 127 в банк палитр спрайтов. Разумеется, нужно предусмотреть включение разделения палитр бо банкам через свободный регистр ВДП.
Наконец, можно сделать для спрайтов выбор банка палитр через свободный бит в байтах атрибутов спрайта. Это позволит использовать для спрайтов 2 банка палитр( банк палитр фона и банк палитр спрайтов),все 8 палитр. Место для этого бита можно выделить в третьем байте атрибута спрайта, который отвечает за размер спрайта. Конкретно, это любой бит с 4 по 7. Например, седьмой.
Ну, вот это всё можно приложить к 14-му свободному регистру. Рассмотрим возможное назначение его разрядов:
D7 - задание ширины цветовых компонентов:
0- компонента в три бита;
1- компонента в 4 бита;
D6 - D5 -задание режима разделения палитр по банкам:
00- разделения по банкам нет, общие 4 палитры для тайлов и спрайтов;
01- разделения по банкам есть, раздельные банки из 4 палитр для тайлов и спрайтов. Но для 3 байта атрибута спрайтов седьмой бит при нулевом значении выбирает банк палитр тайлов, при единичном банк палитр спрайтов;
10 - разделения по банкам есть, раздельные банки из 4 палитр для тайлов и спрайтов. Но для 3 байта атрибута спрайтов седьмой бит при нулевом значении выбирает банк палитр спрайтов, при единичном банк палитр тайлов;
11-Строгое разделение палитр по банкам, раздельные банки из 4 палитр для тайлов и спрайтов. Для тайлов банк палитр тайлов, для спрайтов банк палитр спрайтов. Седьмой бит 3 байта атрибута спрайта не влияет на выбор банка палитр;
D4 - D3 - не используются;
D2 - D0 - обязательный повтор значений битов D7 - D5. Защитная функция от записи случайного мусора при ошибках.
Кто-нибудь что-нибудь понял? Напишите свой отзыв.




Ответить с цитированием
Размещение рекламы на форуме способствует его дальнейшему развитию 
