мне нет, я привел пример, кмк.
чур меня, чур!:)
Вид для печати
Ковыряю тут одну гамесу, наткнулся вот на такой код:
Скрытый текст
L_DF66 db #21 ;!
;
L_DF67 db #00
L_DF68 db #00
;
;#DF69
push hl
add hl,hl
add hl,hl
add hl,hl
add hl,hl
add hl,hl
add hl,hl
add hl,hl
add hl,hl
pop de
add hl,de
ld de,#0029
add hl,de
ld (L_DF67),hl
ld d,h
ld e,l
ld bc,#2492
or a
sbc hl,bc
jp nc,L_DF8B
ld a,#01
jp L_DFDD
;
L_DF8B ld h,d
ld l,e
ld bc,#4924
or a
sbc hl,bc
jp nc,L_DF9B
ld a,#02
jp L_DFDD
;
L_DF9B ld h,d
ld l,e
ld bc,#6DB6
or a
sbc hl,bc
jp nc,L_DFAB
ld a,#03
jp L_DFDD
;
L_DFAB ld h,d
ld l,e
ld bc,L_9248
or a
sbc hl,bc
jp nc,L_DFBB
ld a,#04
jp L_DFDD
;
L_DFBB ld h,d
ld l,e
ld bc,L_B6DA
or a
sbc hl,bc
jp nc,L_DFCB
ld a,#05
jp L_DFDD
;
L_DFCB ld h,d
ld l,e
ld bc,L_DB6C
or a
sbc hl,bc
jp nc,L_DFDB
ld a,#06
jp L_DFDD
;
L_DFDB ld a,#07
L_DFDD ld b,a[свернуть]
В DF67 u DF68 при инициализации заносятся значения регистра r
Единственное на что меня хватило - это вот на это:
Код:table001: ;tablica 4astoti poyavleniya figurok
db #db,#b7,#92,#6e,#49,#25,#00
FindNewFigure:
db #21
L_DF67 db #00
L_DF68 db #00
push hl
pop de
ld h,l
add hl,de
ld a,r
ld e,a
add hl,de
ld (L_DF67),hl
ld a,h
ld b,7
ld hl,table001
finews001:
cp (hl)
jr nc,L_DFDD
inc hl
djnz finews001
L_DFDD ld a,b
Посмотрел на AgonyMD. как эти церти умудрились сделать такой полноэкранный скроллер?
тоже нужен для демы:)
denpopov, тут просто же
зануляем линию (они так делают)
потом рисуют 8 точек в соответсвии с искажением по горизонтали.
рисуют не все разумется линии а только те что изменились
потому как точки по высоте сильно отличаются
jerri, вот мне и непонятно, как таблички строятся. и как рисовать буквы(
по адресу #F600 - #fdxx находится таблица раскранченных побитно символов для вывода.
E1хх - счетчик строк обновляется каждые 12 значений.
e2xx - указатель какую именно строчку из буфера строк брать
e3хх - e4хх - адрес строки на экране.
e5xx - левая граница маски точки 0
e6xx - ширина точки 0 в байтах
и тд по f4xx
f5xx - правая граница маски для последней точки (инвертированная).
таблицы явно предрассчитанные. как считать - хз сам смотри
Таблички идут пререндеренные - рендера тут нет
вот этот код рисует буквы в буфере
Код:;счетчик сдвига - каждые #48 рисуем букву
ld a, (byte_8137)
or a
jr nz, loc_8098
ld a, 48h ; 'H'
ld (byte_8137), a
loc_80AA:
ld hl, 0
ld a, (hl)
cp 0FFh
jr nz, loc_80B6
ld hl, unk_81F9 ; scroll text
ld a, (hl)
;берем букву
loc_80B6:
inc hl
ld (loc_80AA+1), hl
;вычисляем адрес буквы
;очень... криво
sub 20h ; ' '
ld d, 0
ld e, a
ld h, d
ld l, d
ld b, 8
loc_80C3:
add hl, de
djnz loc_80C3
ld de, unk_9C40 ; font data
add hl, de
;высота буквы кстати 6
ld b, 6
;вот здесь берем текущий указатель где рисовать очередную букву
;так как рисуем на экран из разных мест
ld a, (byte_8136)
ld e, a
loc_80D0:
ld d, 0F6h
ld a, (hl)
inc hl
push bc
;вот здесь размазываем букву в буфер делая каждую точку= #ff
ld b, 8
loc_80D7:
ld c, 0
add a, a
jr nc, loc_80DD
dec c
loc_80DD:
ex af, af'
ld a, c
ld (de), a
inc d
ex af, af'
djnz loc_80D7
inc e
pop bc
djnz loc_80D0
ld a, e
ld (byte_8136), a
jr loc_8098
rasmer, выложи, гляну. Ты с какой целью это ковыряешь?