Если бы спрайт был размером 16х16 точек, то он занял бы весь блок 256 ячеек. Тогда теоретически можно было бы за один пакет прочитать в ПЛИС весь спрайт. Это было бы максимально быстрое чтение.
Если бы спрайт был размером 16х16 точек, то он занял бы весь блок 256 ячеек. Тогда теоретически можно было бы за один пакет прочитать в ПЛИС весь спрайт. Это было бы максимально быстрое чтение.
"L-256"
С любовью к вам, Yandex.Direct
Размещение рекламы на форуме способствует его дальнейшему развитию
Можно было бы и стоку из буфера экрана для вывода на TV или VGA (256 точек) читать одним пакетом. Тем более на VGA строку надо показывать дважды. Для таких чтений нужно статическую память и ПЛИС или внутреннюю память FPGA.
Кто за то, чтобы для ускорения работы до приемлемой скорости размеры спрайтов внутри видеокарты были размером 16х16 точек ?
Записывать в буфер экрана можно было бы пакетами по 16 точек.
Последний раз редактировалось zx-kit; 18.06.2015 в 22:28.
"L-256"
Короче не исключаем вариант отката к статике.
---------- Post added at 22:43 ---------- Previous post was at 22:28 ----------
Т.е. все спрайты, из кусочков 16x16 ?
Хотим обойти одно ограничения и вводим другое.
Больше работы для z80.
Так взял и напечатал большей спрайт и всё,
а тут разбей его на маленькие, координаты посчитай, зашли это в карту.
V6Z80P - Back for Good
Может две микросхемы памяти поставить? Для буфера экрана - статику, для буфера спрайтов - SDRAM.
Может видеокарта сама сможет собирать большие спрайты из кусочков по 256 точек. При таком размере пакета чтение из SDRAM максимально быстрое, почти как из статики.Т.е. все спрайты, из кусочков 16x16 ?
Хотим обойти одно ограничения и вводим другое.
Больше работы для z80.
Так взял и напечатал большей спрайт и всё,
а тут разбей его на маленькие, координаты посчитай, зашли это в карту.
"L-256"
Еще про SDRAM. Можно взять за основу время отображения 8 точек на экране монитора (8/14 MHz = 571 nS). Это составит 8*6=48 тактов частоты 84 MHz:
12 тактов - чтение 8 точек из буфера экрана для отображения на VGA.
12 тактов - чтение 8 точек из буфера спрайтов в ПЛИС.
13 тактов - запись 8 точек из ПЛИС в буфер экрана.
11 тактов - обмен Z80 с видеокартой.
Во время бордера вместо чтения для отображения на VGA выполнять циклы регенерации SDRAM.
Таким образом за время отображения 8 точек VGA у нас копируется 8 точек спрайта. Среднее время копирования одной точки 1/14 MHz.
Время копирования всего экрана 320*240/14 MHz = 5486 uS. Это около 86 строк TV. Всего в кадре TV 312 строк.
"L-256"
Я тоже к этому пришел !
Вот так:
Ставим 1 метр статики и вся наша предыдущая схема так и работает, как придумали.
Но ещё дополнительно ставим SDRAM.
Из сдрам можно будет делать блиттинг в статическую память (в буф экрана).
При этом, при блиттинге из сдрам в статику, сдрам будет читаться ПОСЛЕДОВАТЕЛЬНО !
Будет два типа печати спрайтов, разных по скорости, "быстрый" (из статики) и "средний" (из сдрам) .
Т.е. перед игрой, грузим в статику спрайты и в сдрам спрайты.
В сдрам, к примеру, в основном анимация лежит.
В игре применяем печать спрайтов из статики и печать из сдрам.
Если проще говорить, то спрайты в статике - это типа как-бы очень "быстрый кэш" спрайтов и какие именно спрайты туда положить, это забота программера.
---
К примеру, как-то так:
У меня спрайт главного героя очень хорошо анимированный. Т.к. главный герой печатается на каждом кадре, засылаем его спрайты в быструю статику. А спрайты врагов, можно печатать из сдрам.
V6Z80P - Back for Good
А как будет делаться скроллинг фоновой картинки? А если фон будет состоять из нескольких слоёв скроллирующихся с разной скоростью для придания псевдообъёма?
Скрытый текст
ZX Spectrum +2 +divIDE + BDI
Profi 1024k plus
Scorpion ZS-256 Turbo+
ZX Evolution rev.C2+NeoGS+SDCard HxC Floppy Emulator
ZX Evolution rev.C2+ZXM-SoundCard Extreme+ZXM-MoonSound
AVR ZX Spectrum V2.0
Орион 128[свернуть]
Спланировать, что нужно изобразить на переднем, среднем и заднем плане. Преобразовать это в последоветельность спрайтов. Каждый кадр вычислять, с какого места изображать каждый план. Сначала напечатать задний план, потом средний, потом передний. Для каждого плана указать координату вывода левого спрайта и номера спрайтов слева-направо. Наверно надо предусмотреть нулевой спрайт, который не печатается, а просто пропускает в буфере экрана место размером со спрайт. Например, в плане могут быть редкие одиночные деревья.
---------- Post added at 18:40 ---------- Previous post was at 18:38 ----------
Что бурчишь ? Присоединяйся к нам. Вместе разработаем новый режим. У тебя есть опыт работы с FPGA и SDRAM. У нас - идеи и желание разрабатывать железки и игры.
Последний раз редактировалось zx-kit; 19.06.2015 в 16:51.
"L-256"
Видеокарта это очень хорошо. Но кто будет писать под неё игры? Не так много людей способных на это. Однако именно с ними и нужно обсуждать все тонкости и премудрости, ведь писать то им, значит им и решать, что лучше и как удобней.
DenisGrachev, SaNchez, drbars, Oleg Origin - вот с ними бы неплохо посоветоваться ) Да и с Медноноговым можно было бы, он вроде вконтакте есть, и даже, говорят, вполне общительный.
___________
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)