то есть, выходит, что линия рендерится в зависимости от параметров?
Вид для печати
то есть, выходит, что линия рендерится в зависимости от параметров?
denpopov, рендерится каждая строка
и складывается графика/тайлы/спрайты
а есть где пример спрайтов?
скролл из последней части, спрайтовый
суть такая - спрайты постоянно меняют позицию по Х, от 0 до 31, влево. как попали на позицию 0 - передвигаем адреса указателей на буквы скролла в дескрипторе спрайтов. всё)
спрашивайКод:
SFileAddr EQU 512
ld ix,spr_db+12
ld b,font_quant ; кол-во букв (спрайтов) на экране
ld hl,0 ; x
fq1 push bc
xor a
ld (ix+0),a ;y
ld (ix+4),a
ld a,%11100000 ; palitra !!!!!!!!!!!!!!!!!!!
ld (ix+5),a
ld a,%00110100 ; 1
ld (ix+1),a
ld (ix+2),l
ld a,%00010110
or h
ld (ix+3),a
ld bc,#20 ; ширина буквы - 32 точки
add hl,bc
ld c,6 ; 6 байт на описание спрайта
add ix,bc
pop bc
djnz fq1
push ix ; завершаем формирование добавлением блока с концом отрисовки, бит leap
pop de
ld hl,spr_final
ld c,6
ldir
jp spr_out
spr_final DB 0
DB %01000000
DB 0
DB %00010000
DB 0
DB %11100000
fill_text
; сдвиг текста, положение графики букв в наборе спрайтов
; передвигаем адреса указателей на буквы скролла в дескрипторе спрайтов
ld ix,spr_db+18+4
ld hl,spr_db+12+4
ld b,12
ftroll1 push bc
ld a,(ix+0)
ld (hl),a
inc hl
ld a,(ix+1)
ld (hl),a
dec hl
ld bc,6
add ix,bc
add hl,bc
pop bc
djnz ftroll1
fill_text_adr ld hl,text
ld a,(hl)
or a
jr nz,text_fill1
ld hl,text
ld a,(hl)
text_fill1 inc hl
ld (fill_text_adr+1),hl
sub #20
add a,a
ld l,a
ld h,high font_db ; получаем адрес буквы в графике
ld de,spr_db+6*12+4 ; ставим в дескриптор адрес новой буквы
ld a,(hl)
ld (de),a
inc l
inc e
ld a,(hl)
or %11100000 ; palitra !!!!!!!!!!!!!!!!!!!
ld (de),a
spr_out
LD BC,FMAddr
LD A,%00010000
OUT (C),A
LD HL,spr_db
LD DE,SFileAddr
LD BC,6*font_quant ; закидываем в память фпга
LDIR
LD BC,FMAddr
XOR A
OUT (C),A
ret
org #ba00
spr_db
DB 0
DB %01000000 ; leap
DB 0
DB %00010000
DB 0
DB %11100000
DB 0
DB %01000000 ; leap to2
DB 0
DB %00010000
DB 0
DB %11100000
denpopov, смотря когда дёргать. в момент отрисовки - зло.
нууууууууууууууу. это несерьезно.
то блиттер работает через задницу, то тайлы 8 высотой...:(
вот ты интересный.
тайлы - от 8 до 64, как и спрайты.
блиттер валит что надо.
может с руками что-то? ;)
Не совсем, но режим скаам так андокументированный. Прэдполагалось что для вертикальных знакоместных столбцов должен быть массив скрололо (как на этих ихних сегах), но оно то ли не влезло, то ли показалось ненужным. Поэтому вертикальную скролку для тайлов лучше дергать 1 раз на фрейм, причем минимум за 16 линий до первой линии тайлов.