Спрайты - это просто :)

CALL'ы и RET'ы
Ответить
Аватара пользователя
VBI
Сообщения: 1965
Зарегистрирован: Пн, 03.06.2013 09:20:29

Спрайты - это просто :)

Сообщение VBI »

Общались с Деном на тему спрайтов, Дену понравилось, и я решил запостить свой ответ по поводу того, как готовить спрайты.

что нужно вообще спрайтам
1. закинуть в страницу спрайт, правильным макаром - как тайлы:
Спрайт - Набор из расположенных рядом тайлов. Размер задается произвольно в диапазоне 1-8 тайлов (8-64 пикселей) независимо для высоты и ширины.
не забывай о кратности адреса, кратности размера спрайта, и о том, что у тебя 16 цветов на спрайты, т.е. 4битный режим
тайлмап тебе не нужен!
2. указать какая страница для графики спрайта - в SGPage
3. TSConfig - включи спрайты, само собой
4. PalSel для палитры спрайта, сенкс Буяну, все палитры в SPAL дескриптора указываем, целиком готовую в 16 цветов.
5. готовим данные для дескрипторов спрайта

пример:

Код: Выделить всё

spr1        db 0 - позиция по У
        db %00111110 - спрайт включен, Y Size: 111 (7=64точки)
        db 96 - Х
        db %00001110 - X Size - 7, 64 линии
        db 0 - позиция в странице графика (всё как тайлы - 8х8)
        db %00100000 - номер в палитре и позиция в тайлах.


потом забрасываем это всё в спрайтовый дескриптор - #200 той памяти. если это делать через дма, то для порта #27af юзаем биты #85

основная бука - http://tslabs.info/forum/viewtopic.php?f=35&t=157
и ексель, что поделаешь. библейа

и ещё: для примера - возьми рубик, там есть исходник <_<
смотри rubicon_spr_view, где logo_spr - дескриптор, а rubikon_logo_spr - данные портов и значений для дма
ещё спрайты там в Tunnel_part, там - spr_out, где spr1 - дескриптор, rubik_spr - данные портов и значений для дма
заметь, я всё дмой програмлю через подпрограмму set_ports, так удобно, лаконечнее, да и понятно.
Аватара пользователя
Hmmm
Сообщения: 25
Зарегистрирован: Чт, 04.06.2020 18:12:03

Re: Спрайты - это просто :)

Сообщение Hmmm »

Я так понял в этой фиговине есть 256 аппаратных спрайтов. Можно как дебилу вот, написать код как их выводить?
Аватара пользователя
TS-Labs
Сообщения: 5397
Зарегистрирован: Чт, 26.07.2012 01:29:56

Re: Спрайты - это просто :)

Сообщение TS-Labs »

Форум для ардуинщиков в другом месте.
Аватара пользователя
Mor-Da
Сообщения: 367
Зарегистрирован: Пт, 12.02.2016 07:20:43
Откуда: Воткинск (родина П.И.Чайковского)

Re: Спрайты - это просто :)

Сообщение Mor-Da »

Hmmm писал(а):Я так понял в этой фиговине есть 256 аппаратных спрайтов. Можно как дебилу вот, написать код как их выводить?

Читать на Хайпе статьи VBI.
Аватара пользователя
Hmmm
Сообщения: 25
Зарегистрирован: Чт, 04.06.2020 18:12:03

Re: Спрайты - это просто :)

Сообщение Hmmm »

Как забросить в дескриптор? Пример кода?
Аватара пользователя
Hmmm
Сообщения: 25
Зарегистрирован: Чт, 04.06.2020 18:12:03

Re: Спрайты - это просто :)

Сообщение Hmmm »

Я все это перечитал. Уже месяц как разбираюсь. Но у вас все примеры в формате ASM. Я работаю в XAS на железе. Есть простой пример вывода спрайта без ASM файлов, без обращений к сторонним библиотекам которые вы подгружаете? Вот прямо тут написать пример вывода спрайта с нуля.
Аватара пользователя
TS-Labs
Сообщения: 5397
Зарегистрирован: Чт, 26.07.2012 01:29:56

Re: Спрайты - это просто :)

Сообщение TS-Labs »

Простой пример. Графика для спрайтов НЕ загружается (должен быть виден мусор со страницы #C0), палитра тоже (используется спектрумская).
.png
Вложения
tsconfig.asm
(3.71 КБ) 257 скачиваний
sprite.asm
(1.16 КБ) 252 скачивания
Аватара пользователя
idxi
Сообщения: 179
Зарегистрирован: Пн, 03.07.2017 16:54:54

Re: Спрайты - это просто :)

Сообщение idxi »

Hmmm писал(а):Я работаю в XAS на железе

Хороший асм ) под tsconf бы его переписать =)
Ответить