User Tag List

Страница 17 из 22 ПерваяПервая ... 131415161718192021 ... ПоследняяПоследняя
Показано с 161 по 170 из 219

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

  1. #161

    Регистрация
    20.01.2010
    Адрес
    г. Зеленоград
    Сообщений
    600
    Спасибо Благодарностей отдано 
    28
    Спасибо Благодарностей получено 
    231
    Поблагодарили
    123 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    BlaireCas, а можно посмотреть на код вывода спрайта? Не должно оно тормозить ТАК. БК медленнее, чем даже ПП УКНЦ, а на ней таких проблем нет.

  2. #162

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

    По умолчанию

    Цитата Сообщение от BlaireCas Посмотреть сообщение
    для восстановления/прорисовки на экран что-то поднапрягли процессоры.
    Выложи эту версию игры, может эти тормоза редкие или несильные.

  3. #163

    Регистрация
    20.01.2010
    Адрес
    г. Зеленоград
    Сообщений
    600
    Спасибо Благодарностей отдано 
    28
    Спасибо Благодарностей получено 
    231
    Поблагодарили
    123 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Вот ссылка на видео моего рендера. Да, при шаге на соседнюю клетку на мгновение замирает, но там полностью пересчитывается видимость карты и объектов. Можно сделать несколько в фоне, чтобы шаг был мгновенный, но сейчас не до того.
    https://youtu.be/ZanlUnj75p0

  4. #164

    Регистрация
    26.11.2013
    Адрес
    г. Новосибирск
    Сообщений
    1,103
    Спасибо Благодарностей отдано 
    1,338
    Спасибо Благодарностей получено 
    323
    Поблагодарили
    152 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от BlaireCas Посмотреть сообщение
    хомяк с крыльями
    Это шикарный хомяк. Тянет на боса. А рядовых мышек можно поменьше, понеприметнее, чтобы они из тайла в тайл порхали.

  5. #165

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

    По умолчанию

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

    Основной кусок вывода в 1 цветной план буфера

    Код:
    ; plane-1 buffer routine, R0=spr addr, R5=buf addr, R4=height
    BufSprite1:
    	bic	#^B1111111111110000, R1	; X % 16
    	bne	20$
    	; zero shift
    	; R0=spr addr, R5=buf even addr, R4=height
    	mov	#BUFWID, R1
    10$:	bic	(R0)+, (R5)		; mask word
    	bis	(R0)+, (R5)		; color word
    	inc	R0			; 14T skip plane-2 colors
    	inc	R0			; 14T
    	add	R1, R5			; 14T buffer next line
    	sob	R4, 10$			; 32T|16T
    	return
    	; non-zero shift
    	; R0=spr addr, R5=buf even addr, R4=height
    20$:	mov	(R0)+, R3		; 32T mask word
    	clr	R2			; 14T R2:R3 - mask dword
    	ashc	R1, R2			; 92T (for R1=15) R2:R3 << R1
    	bic	R3, (R5)+		; 43T apply mask words
    	bic	R2, (R5)		; 43T
    	dec	R5			; 14T back to previous addr
    	dec	R5			; 14T
    	mov	(R0)+, R3		; 32T color word
    	clr	R2			; 14T R2:R3 - color word
    	ashc	R1, R2			; 92T (for R1=15) R2,R3 << R1
    	bis	R3, (R5)+		; 43T apply color words
    	bis	R2, (R5)		; 43T
    	inc	R0			; 14T skip plane-2 colors
    	inc	R0			; 14T
    	add	#BUFWID-2, R5		; 32T
    	sob	R4, 20$			; 32T|16T
    	; =568T*16
    	return
    [свернуть]


    Понятно что на 2-й цветной буфер будет аналогично.

    Ну и разумеется там относительно приличный оверхед в обвязке вывода еще мол чтобы не всегда 16px по высоте выводить (спрайт из 2-х пикселей по высоте выведет только 2 строкив цикле да и все)
    Периферийный процессор отдельно, но там нечто аналогичное.

    Но! Когда буферный план надо вывести на экран - я не могу тупо копировать навроде (R4 адрес буфера, R5 адрес экрана):
    10$: mov (R4), (R5)
    add R1, R4
    add R2, R5
    sob R3, 10$
    (так-то вот клево-бы было)

    Потому-что - у меня адреса экрана выше 200000 , ну и экран в центральном процессоре там побит на байты (8-пикселе). То-есть приходится поочередно из каждого буфера делать movb по ячейкам 176640 (адрес экранных 8-ми пикселей) 176642 (данные экранных 8-ми пикселей).

    Тупой код вывода 16х16 с двух буферов на VRAM

    Код:
    ; draw 16x16 from buffer to screen, R1-levelX, R2-levelY
    Buf2Scr16:
    	.ppexe	#CmdBuf2Scr16
    	mov	#176640, R4
    	; to screen addr
    	asl	R2
    	mov	LevYScrOfs(R2), R0	; R0=starting screen line addr
    	asl	R1			; R1=LevelX*2
    	add	R1, R0			; R0=scr addr
    	mov	R0, (R4)		; screen addr -> @#176640
    	; to buffer addr
    	mov	LevYBufOfs(R2), R0
    	add	R1, R0			; buffer 1 addr -> R0
    	;
    	mov	#SCRWID-1, R1
    	; 1st buffer
    	mov	R0, -(SP)
    	mov	(R4), -(SP)
    	mov	#16., R3
    	mov	#176642, R5
    10$:	movb	(R0)+, (R5)
    	inc	(R4)
    	movb	(R0)+, (R5)
    	add	#BUFWID-2, R0
    	add	R1, (R4)
    	sob	R3, 10$
    	; 2nd buffer
    	mov	(SP)+, (R4)
    	mov	(SP)+, R0
    	add	#VBufferSize, R0
    	mov	#16., R3
    	inc	R5			; R5=176643
    20$:	movb	(R0)+, (R5)
    	inc	(R4)
    	movb	(R0)+, (R5)
    	add	#BUFWID-2, R0
    	add	R1, (R4)
    	sob	R3, 20$
    	return
    [свернуть]


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

    Цитата Сообщение от Titus Посмотреть сообщение
    Выложи эту версию игры, может эти тормоза редкие или несильные.
    А в первом посте ссыль на гитхаб. Берется оттуда например descnt.dsk - запускается, прописано в автозагрузку.
    Ну или то что в /release скопировать куда хочется (на hdd образ например УКНЦ-шный).
    Я бы не сказал что тормозит ибо я оставил пока только 1-ну мышь там в одном месте, 1-го паука, самого героя, и подбираемый объект который тоже спрайт. Максимум для 25фпс будет 2 мыши, герой и объект который лежит четко на одном тайле.
    (если хочется увидеть мышь - проще в меню нажать вниз-вниз-вверх-вверх-вниз-вверх, затем подобрать лопату, затем нажать К2, затем еще раз нажать К2 (можно подбирать фонарик можно не подбирать), затем еще раз К2, затем еще раз К2 - дальше попытаться вылезти наверх где мыши водятся ибо дебажный режим и ниже еще ничего нет, а то по-нормальному честно можно париться еще мол там проходить, хоть небольшие да все-ж есть подколы для обычного прохождения, а с дебаговым режимом можно переключать "эпизоды")
    Последний раз редактировалось BlaireCas; 09.09.2022 в 20:10.
    Шедевр портирования на УКНЦ - игра Highway Encounter
    Эмуляторы: UKNCBTL, EmuStudio (респект авторам)

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

    Sandro(10.09.2022), Titus(09.09.2022)

  6. #166

    Регистрация
    20.01.2010
    Адрес
    г. Зеленоград
    Сообщений
    600
    Спасибо Благодарностей отдано 
    28
    Спасибо Благодарностей получено 
    231
    Поблагодарили
    123 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Ага, спасибо за указание нужных кусков кода. Да, ASHC я вроде действительно сам предлагал. Есть предложения, как сделать повеселее и этот код, там место для оптимизации на мой взгляд есть. Только у меня тут 2 ночи уже, спать совсе пора. Позже.

    Но. Даже с вот этим запихиванием видеоданных через бестолковую однобайтовую дырку ... ну не должно оно быть НАСТОЛЬКО медленно. Там случаем не происходит такого, что процедура рисования вызывается несколько раз на кадр? Я как-то сам попал на такое же, из-за немерцающего вывода было непонятно, что лишняя работа делается.

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

    Oleg N. Cher(10.09.2022)

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

  8. #167

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

    По умолчанию

    Цитата Сообщение от Sandro Посмотреть сообщение
    Но. Даже с вот этим запихиванием видеоданных через бестолковую однобайтовую дырку ... ну не должно оно быть НАСТОЛЬКО медленно.
    Ну изначально из-за чего влез в спор с jerri (очень крутой человек, сожрал собаку на графонии, но 8-ми битном) - это вот то что УКНЦ несмотря на кучу памяти (мол да там-же цельных 192Кб! да они зажрались! Saboteur обычный не осилить. А ведь там поездка в "метро" нормас сделана. Фу фуууу... А и Knight Lore написан на 48кб и всем играм даст фору)

    Вообщем типа УКНЦ более бестолковый чем БК 0011М. Но что-ж, возможно это даже так. Однако это первый мой комп в котором изучал асм от пдп. Это как первая любовь. В игрухе получилось не прям круто, графоний рисовать страдать и тырить попиксельно с другим мест тоже та еще проблема. Придумывать сюжет вообще атас. (а что рисовать не придумав сюжет? тупо попрыгать мол не свалиться как в montezuma's revenge чтобы (кст очень хорошо сделан на атари, реиграбельно и все такое). Вообщем сложняк поэтому и тянется так долго. Все эти передвижения и прыжки ГГ парился делал чтобы не было совсем ужасно, чтобы не было мол прыгнул вперед и нельзя повернуть назад. Заняло кучу туповатого кода. А то получилась бы иначе игруха от BIL Corp (где он сейчас)

    Мне там надо сделать чтобы фантом за тобой ходил и повторял движения, на вид вроде очень просто. Тупо сохряняешь последние 16 фреймов координаты героя и потом прорисовываешь их на втором спрайте. Ну должно как-бы прокатить. Герой ходит по два пикселя за кадр 25фпс и отставание follower-a на два тайла почти будет не так прям ужс выглядеть. Разве-что когда герой(иня) будет стоять на месте тогда второй персонаж тупо подбежит и станет за ней.
    А как сделать чтобы например если ГГ прыгнула на другой блок и он за ней прыгал только потом (то-есть ты перепрыгиваешь лужу кислоты, второй герой который за тобой идет стоит думает, прыгать сразу не должен)? Сложна да

    Кстати у тебя Сандро возможно получилос-бы что-то типа EOB на писишке типа данжен кравлер с а-ля ФПС видом. НО сам знаю что это ужас даже с современными средствами разработки (мало памяти, зажуёт всю сразу)

    (очень сумбурно написал, damn that demon alcohol (c) nazareth)
    Последний раз редактировалось BlaireCas; 10.09.2022 в 03:27.
    Шедевр портирования на УКНЦ - игра Highway Encounter
    Эмуляторы: UKNCBTL, EmuStudio (респект авторам)

  9. #168

    Регистрация
    20.01.2010
    Адрес
    г. Зеленоград
    Сообщений
    600
    Спасибо Благодарностей отдано 
    28
    Спасибо Благодарностей получено 
    231
    Поблагодарили
    123 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от BlaireCas Посмотреть сообщение
    Кстати у тебя Сандро возможно получилос-бы что-то типа EOB на писишке типа данжен кравлер с а-ля ФПС видом. НО сам знаю что это ужас даже с современными средствами разработки (мало памяти, зажуёт всю сразу)
    Так я собственно уже год потихоньку пишу и это: https://zx-pk.ru/threads/33655-crawl...evykh-igr.html

    Памяти маловато, но хватает пока. На 11М+диск вообще проблем нету, там можно хоть как в TES:Arena мир размером в континент сделать.

    Только я хочу не EOB, а хоррор про потерянный в космосе космический корабль с всякой жутью на борту. Типа как System Shock или Dead Space, но только по духу, ни разу не клон. У походовки свои правила и логика, не надо туда клонировать 3D в реальном времени, это не сработает.

  10. #169

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

    По умолчанию

    Сделал follower-а на пробу. Ну а что Весело "бегает" ахах, аж понравилось.
    Разумеется он "ненастоящий", а тупо повторение последних 16-ти координат и анимаций спрайта ну только с другим базовым номером спрайта.

    Гифка

    [свернуть]


    То что тут в синем цвете это нормально, так задумано специально.
    Шедевр портирования на УКНЦ - игра Highway Encounter
    Эмуляторы: UKNCBTL, EmuStudio (респект авторам)

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

    Oleg N. Cher(10.09.2022), parallelno(11.09.2022), Radon17(10.09.2022), Sandro(10.09.2022), Titus(10.09.2022), tnt23(10.09.2022)

  11. #170

    Регистрация
    20.01.2010
    Адрес
    г. Зеленоград
    Сообщений
    600
    Спасибо Благодарностей отдано 
    28
    Спасибо Благодарностей получено 
    231
    Поблагодарили
    123 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    А в общем случае нормального последователя очень сложно написать, т.к. есть куча ситуаций, когда надо будет с ним разойтись, а места нету. И что делать?

    Собственно, я помню только один случай, когда всё нормально сделано. Это принц персидский, а точнее -- спинофф от 2008 года. Вот там Элика проявляет просто-таки невероятные чудеса ловкости, чтобы не мешать нашему анонимному герою. И наоборот, как раз очень даже ему помогает.

    Вот я специально нашел демонстрацию акробатики (и это ещё далеко не все, что она может!)
    https://youtu.be/-4aqRiK1YsA?t=177

Страница 17 из 22 ПерваяПервая ... 131415161718192021 ... ПоследняяПоследняя

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

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

Эту тему просматривают: 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

Ваши права

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