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

CALL'ы и RET'ы

Postby VBI » Sat, 06.09.2014 08:58:20

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

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

пример:
Code: Select all
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

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

и ещё: для примера - возьми рубик, там есть исходник <_<
смотри rubicon_spr_view, где logo_spr - дескриптор, а rubikon_logo_spr - данные портов и значений для дма
ещё спрайты там в Tunnel_part, там - spr_out, где spr1 - дескриптор, rubik_spr - данные портов и значений для дма
заметь, я всё дмой програмлю через подпрограмму set_ports, так удобно, лаконечнее, да и понятно.
User avatar
VBI
 
Posts: 1965
Joined: Mon, 03.06.2013 09:20:29

Postby Hmmm » Fri, 05.06.2020 01:43:30

Я так понял в этой фиговине есть 256 аппаратных спрайтов. Можно как дебилу вот, написать код как их выводить?
User avatar
Hmmm
 
Posts: 25
Joined: Thu, 04.06.2020 18:12:03

Postby TS-Labs » Fri, 05.06.2020 09:53:05

Форум для ардуинщиков в другом месте.
User avatar
TS-Labs
 
Posts: 5398
Joined: Thu, 26.07.2012 01:29:56

Postby Mor-Da » Fri, 05.06.2020 10:15:25

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

Читать на Хайпе статьи VBI.
User avatar
Mor-Da
 
Posts: 367
Joined: Fri, 12.02.2016 07:20:43
LOCATION: Воткинск (родина П.И.Чайковского)

Postby Hmmm » Wed, 01.07.2020 01:31:44

Как забросить в дескриптор? Пример кода?
User avatar
Hmmm
 
Posts: 25
Joined: Thu, 04.06.2020 18:12:03

Postby dr_max » Wed, 01.07.2020 12:49:11

dr_max
 
Posts: 82
Joined: Thu, 26.01.2017 12:03:36

Postby Hmmm » Wed, 01.07.2020 13:27:28

Я все это перечитал. Уже месяц как разбираюсь. Но у вас все примеры в формате ASM. Я работаю в XAS на железе. Есть простой пример вывода спрайта без ASM файлов, без обращений к сторонним библиотекам которые вы подгружаете? Вот прямо тут написать пример вывода спрайта с нуля.
User avatar
Hmmm
 
Posts: 25
Joined: Thu, 04.06.2020 18:12:03

Postby TS-Labs » Wed, 01.07.2020 14:07:11

Простой пример. Графика для спрайтов НЕ загружается (должен быть виден мусор со страницы #C0), палитра тоже (используется спектрумская).
.png
Attachments
tsconfig.asm
(3.71 KiB) Downloaded 507 times
sprite.asm
(1.16 KiB) Downloaded 503 times
User avatar
TS-Labs
 
Posts: 5398
Joined: Thu, 26.07.2012 01:29:56

Postby idxi » Thu, 02.07.2020 00:01:54

Hmmm wrote:Я работаю в XAS на железе

Хороший асм ) под tsconf бы его переписать =)
User avatar
idxi
 
Posts: 179
Joined: Mon, 03.07.2017 16:54:54


Return to Coding

Who is online

Users browsing this forum: No registered users and 1 guest

cron

x