С любовью к вам, Yandex.Direct
Размещение рекламы на форуме способствует его дальнейшему развитию
Ковыряю тут одну гамесу, наткнулся вот на такой код:
Скрытый текст
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
Мои интры: [Kukarachess][Super boot rmx][tRUSHE MOSAIc][BLAZE]
Мои игры: [Overload][Removal]
Список игр для ZX-Spectrum: [2015] [2014]
Мои интры: [Kukarachess][Super boot rmx][tRUSHE MOSAIc][BLAZE]
Мои игры: [Overload][Removal]
Список игр для ZX-Spectrum: [2015] [2014]
Посмотрел на AgonyMD. как эти церти умудрились сделать такой полноэкранный скроллер?
тоже нужен для демы![]()
denpopov, тут просто же
зануляем линию (они так делают)
потом рисуют 8 точек в соответсвии с искажением по горизонтали.
рисуют не все разумется линии а только те что изменились
потому как точки по высоте сильно отличаются
С уважением,
Jerri / Red Triangle.
jerri, вот мне и непонятно, как таблички строятся. и как рисовать буквы(
по адресу #F600 - #fdxx находится таблица раскранченных побитно символов для вывода.
E1хх - счетчик строк обновляется каждые 12 значений.
e2xx - указатель какую именно строчку из буфера строк брать
e3хх - e4хх - адрес строки на экране.
e5xx - левая граница маски точки 0
e6xx - ширина точки 0 в байтах
и тд по f4xx
f5xx - правая граница маски для последней точки (инвертированная).
таблицы явно предрассчитанные. как считать - хз сам смотри
Последний раз редактировалось jerri; 19.09.2014 в 16:12.
С уважением,
Jerri / Red Triangle.
Таблички идут пререндеренные - рендера тут нет
вот этот код рисует буквы в буфере
Код:;счетчик сдвига - каждые #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
С уважением,
Jerri / Red Triangle.
rasmer, выложи, гляну. Ты с какой целью это ковыряешь?
Эту тему просматривают: 3 (пользователей: 0 , гостей: 3)