User Tag List

Страница 2 из 14 ПерваяПервая 123456 ... ПоследняяПоследняя
Показано с 11 по 20 из 219

Тема: Descent - демо игры с 8-цветными спрайтами для УКНЦ

Комбинированный просмотр

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #1

    Регистрация
    06.02.2020
    Адрес
    г. Москва
    Сообщений
    486
    Спасибо Благодарностей отдано 
    143
    Спасибо Благодарностей получено 
    392
    Поблагодарили
    147 сообщений
    Mentioned
    8 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от jerri Посмотреть сообщение
    BlaireCas, есть более эффективные способы расхода процессора. алгоритмы ннада?
    Было-бы интересно просто на словах.
    Допустим берем только один цвет (не все 8). Как в спеке пусть будет. 8точек = байт. Есть спрайт+маска (2 байта). Есть фреймбуфер и там бекграунд.
    Вроде особо много чего тут и не придумать. Сдвигаем байт маски на нужное число пикселей либо через таблицы либо командами сдвигов (таблицы быстрее). Получаем два байта, маскируем их в буфере. Повторить то-же самое для байта цвета.
    Затем измененные части буфера на экран и вернуть буферу исходное состояние.
    Где-то в деталях (навроде спрайты можно прешифтить заранее, анимацию заранее со сдвигами заготовить) могут быть различия, но вроде алгоритм какой-то такой

    Соответственно для 4-х цветов будет все это повторено для фреймбуфера 2-го цветового бита, для 8-ми цветов еще и для третьего цветового бита. Поэтому общую задачу достаточно решить только для 1-битного цвета для начала видимо (ну в УКНЦ вообще без вариантов ибо один из цветовых планов экрана может рисовать лишь второй процессор)
    Последний раз редактировалось BlaireCas; 29.10.2021 в 13:48.

  2. #1
    С любовью к вам, Yandex.Direct
    Размещение рекламы на форуме способствует его дальнейшему развитию

  3. #2

    Регистрация
    03.07.2021
    Адрес
    г. Кировск
    Сообщений
    932
    Спасибо Благодарностей отдано 
    88
    Спасибо Благодарностей получено 
    226
    Поблагодарили
    160 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от BlaireCas Посмотреть сообщение
    спрайты можно прешифтить заранее, анимацию заранее со сдвигами заготовить
    Такой вывод будет самым быстрым, но хватит ли памяти? Киньте ссылку почитать про организацию страниц на УКНЦ.
    Пока нарыл, что памяти всего 192к, под видео три битплана (переключаемые страницы) по 32к, а как остальная память распределена?

  4. #3

    Регистрация
    01.03.2005
    Адрес
    Samara
    Сообщений
    4,921
    Спасибо Благодарностей отдано 
    363
    Спасибо Благодарностей получено 
    327
    Поблагодарили
    250 сообщений
    Mentioned
    13 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от BlaireCas Посмотреть сообщение
    Было-бы интересно просто на словах.
    Допустим берем только один цвет (не все 8). Как в спеке пусть будет. 8точек = байт. Есть спрайт+маска (2 байта). Есть фреймбуфер и там бекграунд.
    Вроде особо много чего тут и не придумать. Сдвигаем байт маски на нужное число пикселей либо через таблицы либо командами сдвигов (таблицы быстрее). Получаем два байта, маскируем их в буфере. Повторить то-же самое для байта цвета.
    Затем измененные части буфера на экран и вернуть буферу исходное состояние.
    Где-то в деталях (навроде спрайты можно прешифтить заранее, анимацию заранее со сдвигами заготовить) могут быть различия, но вроде алгоритм какой-то такой

    Соответственно для 4-х цветов будет все это повторено для фреймбуфера 2-го цветового бита, для 8-ми цветов еще и для третьего цветового бита. Поэтому общую задачу достаточно решить только для 1-битного цвета для начала видимо (ну в УКНЦ вообще без вариантов ибо один из цветовых планов экрана может рисовать лишь второй процессор)
    все правильно.
    шифт в регистрах дорого по времени, шифт в таблицах лучше.
    прешифт спрайтов гораздо выгоднее, но его надо делать с умом.

    вот например есть анимация персонажа.
    4 фазы движения в сторону, одна фаза прыжка.

    берем имеющиеся спрайты и смотрим
    раскатываем спрайты движения и получаем 4 фазы анимации с шифтом в 2 точки.
    берем фазу прыжка и также шифтим.

    итого вместо спрайтов 16*16*5 штук.
    получаем 16*24*8 штук. при этом получая значительный привес по скорости.

    дальше движение в другую сторону
    можно получать разворачивая спрайт через таблицу.

    с учетом 3х битпланов спрайта и 1 битплана маски
    выгоднее по скорости будет держать 2 битплана спрайта развернутыми.

    как то так.
    С уважением,
    Jerri / Red Triangle.

  5. #4

    Регистрация
    06.12.2017
    Адрес
    г. Москва
    Сообщений
    1,727
    Спасибо Благодарностей отдано 
    167
    Спасибо Благодарностей получено 
    407
    Поблагодарили
    258 сообщений
    Mentioned
    11 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от BlaireCas Посмотреть сообщение
    Можно конечно сразу рисовать обеими процами, 2/3 графония держать в ОЗУ первого процессора, 1/3 в ОЗУ второго. Первый рисует свои цвета спрайта, второй свои и все это синхронизировать - работать будет, но гиморно и мало кто осиливал
    Отличная идея! Тут главное один раз заставить себя написать такую библиотеку, а дальше уже легче пользоваться.

    Цитата Сообщение от BlaireCas Посмотреть сообщение
    Впрочем - вот пример моего 8-ми цветного творения на УКНЦ (пытался игруху делать, как-обычно - начал и забросил (хахаха, классика игростроения)
    Очень круто! Анимировать бы спрайт героя, лазающего по лестнице.

    Нажмите на изображение для увеличения. 

Название:	finish.jpg 
Просмотров:	73 
Размер:	23.0 Кб 
ID:	76280
    manwe.pdp-11.ru

  6. #5

    Регистрация
    13.01.2005
    Адрес
    г. Москва
    Сообщений
    5,246
    Записей в дневнике
    7
    Спасибо Благодарностей отдано 
    716
    Спасибо Благодарностей получено 
    1,732
    Поблагодарили
    585 сообщений
    Mentioned
    50 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Отделил в отдельную тему и перенёс в правильное место все сообщения, касающиеся демки игры для УКНЦ.
    С уважением, Станислав.

    Этот пользователь поблагодарил CityAceE за это полезное сообщение:

    bakka(29.10.2021)

  7. #6

    Регистрация
    06.02.2020
    Адрес
    г. Москва
    Сообщений
    486
    Спасибо Благодарностей отдано 
    143
    Спасибо Благодарностей получено 
    392
    Поблагодарили
    147 сообщений
    Mentioned
    8 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от CityAceE Посмотреть сообщение
    Отделил в отдельную тему и перенёс в правильное место всё сообщения касающиеся демки игры для УКНЦ
    Придется видимо доделывать раз уж тема появилась

    - - - Добавлено - - -

    Собственно по выводу спрайта (ширина 16 пикселей) с маской в один из цветовых планов буфера ..
    Код с таблицами сдвигов вот такой (кусок кода для сдвига на 4 пикселя, для других сдвигов оно похожее, только смещения таблиц сдвигов другие).
    Спрайт (каждые 8-пикс) идет в виде .BYTE маска, цвет, маска, цвет и тут зарыта гигантская собака ибо маска одинаковая для всех цветовых планов, а у меня маска для скорости размножена по каждому цветовому плану памяти. Это надо будет как-то чинить а то так памяти не напасешься.

    Код:
    BSFB04:	; 4-pix shift, R0-spr addr, R5-buf addr, R3-height, R4=30.
    	clr	R1			;
    	bisb	(R0)+, R1		; mask byte -> R1
    	clr	R2			;
    	bisb	(R0)+, R2		; sprite byte -> R2
    	bicb	ShiftTable1(R1), (R5)	; shift and apply mask
    	bisb	ShiftTable1(R2), (R5)+	; shift and apply color
    	bicb	ShiftTable2(R1), (R5)	; same for out-of-byte shifted pixels
    	bisb	ShiftTable2(R2), (R5)
    	; repeat for second 8-pix sprite part
    	clr	R1			;
    	bisb	(R0)+, R1		; mask byte -> R1
    	clr	R2			;
    	bisb	(R0)+, R2		; sprite byte -> R2
    	bicb	ShiftTable1(R1), (R5)
    	bisb	ShiftTable1(R2), (R5)+
    	bicb	ShiftTable2(R1), (R5)
    	bisb	ShiftTable2(R2), (R5)
    	add	R4, R5			; R4=30., buffer next line addition
    	sob	R3, BSFB04
    	return
    В чем тут можно ускорить .. Черт его знает.

    Эти 3 пользователя(ей) поблагодарили BlaireCas за это полезное сообщение:

    CityAceE(29.10.2021), Oleg N. Cher(03.11.2021), Titus(29.10.2021)

  8. #7

    Регистрация
    08.10.2005
    Адрес
    Москва
    Сообщений
    14,467
    Спасибо Благодарностей отдано 
    1,751
    Спасибо Благодарностей получено 
    2,295
    Поблагодарили
    899 сообщений
    Mentioned
    69 Post(s)
    Tagged
    1 Thread(s)

    По умолчанию

    Шикарный движок, графика и сама игруха!
    А на EmuStudio вообще летает)
    Надо доделывать.

  9. #8

    Регистрация
    06.02.2020
    Адрес
    г. Москва
    Сообщений
    486
    Спасибо Благодарностей отдано 
    143
    Спасибо Благодарностей получено 
    392
    Поблагодарили
    147 сообщений
    Mentioned
    8 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Titus Посмотреть сообщение
    А на EmuStudio вообще летает
    Кстати я его вполне себе использую чтобы "побыстрому посмотреть результат" (для дебага юзается UKNCBTL).
    Уже даже привык нажимать shift-del, ctrl-del, ctrl-del при его запуске - и вот бы их какими-нибудь параметрами задать.

  10. #9

    Регистрация
    08.10.2005
    Адрес
    Москва
    Сообщений
    14,467
    Спасибо Благодарностей отдано 
    1,751
    Спасибо Благодарностей получено 
    2,295
    Поблагодарили
    899 сообщений
    Mentioned
    69 Post(s)
    Tagged
    1 Thread(s)

    По умолчанию

    Цитата Сообщение от BlaireCas Посмотреть сообщение
    Кстати я его вполне себе использую чтобы "побыстрому посмотреть результат" (для дебага юзается UKNCBTL).
    Уже даже привык нажимать shift-del, ctrl-del, ctrl-del при его запуске - и вот бы их какими-нибудь параметрами задать.
    А в чем разница с UKNCBTL?

  11. #10

    Регистрация
    06.02.2020
    Адрес
    г. Москва
    Сообщений
    486
    Спасибо Благодарностей отдано 
    143
    Спасибо Благодарностей получено 
    392
    Поблагодарили
    147 сообщений
    Mentioned
    8 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Titus Посмотреть сообщение
    А в чем разница с UKNCBTL?
    Разница в отображении? Наверное никакой нету. Только дефолтно EmuStudio "скушивает" последние 8 (что-ли) строк экрана и приходится жать shift-del чтобы они показались. А также сканлайны конечно винтажны, но для разработки мешают (без них пиксели виднее что-ли). Поэтому приходится два раза еще и жать ctrl-del.
    А какая еще разница? Звука нет, дебага нет, да это думается ты знаешь-же. (в UKNCBTL еще и в восьмеричной системе всё в дебаге, что нереально удобно).

    Эти 2 пользователя(ей) поблагодарили BlaireCas за это полезное сообщение:

    nzeemin(30.10.2021), Oleg N. Cher(03.11.2021)

Страница 2 из 14 ПерваяПервая 123456 ... ПоследняяПоследняя

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Похожие темы

  1. Ответов: 42
    Последнее: 22.11.2021, 02:55
  2. Демо-версия новой игры SaNchez-а ;)
    от SaNchez в разделе Игры
    Ответов: 91
    Последнее: 26.02.2014, 22:08
  3. Помогите найти Демо из игры Dizzy
    от женя999 в разделе Демо
    Ответов: 8
    Последнее: 15.09.2012, 00:08
  4. Ответов: 10
    Последнее: 07.06.2012, 12:24

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •