;=================== INIT PART ========================
	if C2PBLUR==0
mkc2p
mkc2p_4x2
	ld b,chdata_4x2/256 ;MSB, L
	ld hl,c2pgfx_4x2 ;left chunk gfx
mkc2p_4x2_0
	inc b
	ld c,chdata_4x2/256 ;LSB, R
	ld de,c2pgfx_4x2 ;right chunk gfx
mkc2p_4x2_1
	ld a,(de) ;right chunk
	xor (hl) ;left chunk
	and %00001111
	xor (hl) ;left chunk
	ld (bc),a
	inc hl
	inc de
	inc c
	ld a,(de) ;right chunk
	xor (hl) ;left chunk
	and %00001111
	xor (hl) ;left chunk
	ld (bc),a
	dec hl
	inc de
	inc c
	jr nz,mkc2p_4x2_1
	inc hl
	inc hl
	inc b
	jr nz,mkc2p_4x2_0
	ret

	else ;C2PBLUR
;как добавить блур внутри байтов:
;было L,L,R,R (центр L=2, центр R=6)
;если L,lr,R,R (центр L=1.5?, центр R=5?), то нарушается баланс яркости (IL=3, IR=5)
;если L,lr,lr,R (центр L=3?, центр R=5?), то нарушается только центровка чанков
;можно L,75%L+25%r,25%l+75%R,R (центр L=2.5?, центр R=5.5?)
mkc2p
mkc2p_4x2
	ld b,chdata_4x2/256 ;MSB, L
	ld h,c2pgfx_4x2/256
mkc2p_4x2_0
	inc b
	ld c,chdata_4x2/256 ;LSB, R
mkc2p_4x2_1
	 dec b
	ld a,b ;L
	add a,c2pgfx_4x2_add
	;and #fe
	ld l,a
	ld a,(hl)
	and %11000000
	ld e,a
	inc l
	ld a,(hl)
	and %11000000
	ld d,a
	;
	ld a,c ;R
	add a,b ;L
	rra ;0.5*R + 0.5*L
	add a,b ;L
	rra ;0.25*R + 0.75*L
	add a,c2pgfx_4x2_add;-1
	and #fe
	ld l,a
	ld a,(hl)
	and %00110000
	or e
	ld e,a
	inc l
	ld a,(hl)
	and %00110000
	or d
	ld d,a
	;
	ld a,c ;R
	add a,b ;L
	rra ;0.5*R + 0.5*L
	add a,c ;R
	rra ;0.75*R + 0.25*L
	add a,c2pgfx_4x2_add;-1
	and #fe
	ld l,a
	ld a,(hl)
	and %00001100
	or e
	ld e,a
	inc l
	ld a,(hl)
	and %00001100
	or d
	ld d,a
	;
	ld a,c ;R
	add a,c2pgfx_4x2_add
	;and #fe
	ld l,a
	 inc b
	ld a,(hl)
	and %00000011
	or e
	ld (bc),a
	inc c
	inc l
	ld a,(hl)
	and %00000011
	or d
	ld (bc),a
	inc c
	jr nz,mkc2p_4x2_1
	inc b
	jr nz,mkc2p_4x2_0
	ret

	endif



	.ALIGN 256

	if 1==0
;убраны вертикальные полоски на чистых цветах (0, 50%, 100%)
;сделать обычный (или шумовой) рисунок чанков 4x4 и менять фазу на не чистых двойных цветах L==R (их 12) через строчку? это надо сделать 2 или даже 1 раз за кадр (второй раз наоборот) по 1 байту, т.к. отличие в 1 пикселе
;будет всё-таки не совсем точно, т.к. нечётные чанки будет иметь правильную нижнюю половину только при L==R, левая половина будет в среднем темнее правой (если добавляем пиксель по очереди снизу и сверху, а внутри по очереди слева и справа)
c2pgfx_4x2
	db %00000000,%00000000
	 db %00000000,%00000000
	;db %01000000,%00000000
	db %01000100,%00000000
	db %01010100,%00000000
	db %01010101,%00000000
	db %01010101,%00100000
	db %01010101,%00100010
	;db %01010101,%00101010
	 db %01010101,%00100010
	db %01010101,%10101010
	;db %01110101,%10101010
	 db %01110111,%10101010
	db %01110111,%10101010
	db %01111111,%10101010
	db %11111111,%10101010
	db %11111111,%11101010
	db %11111111,%11101110
	;db %11111111,%11111110
	 db %11111111,%11111111
	db %11111111,%11111111

	else

c2pgfx_4x2
	macro dbq data
	db data*#11
	endm
;обычный рисунок чанков (добавляем пиксель по очереди снизу и сверху, а внутри по очереди слева и справа):
;так нижняя половина = сдвинутая на 2 пикс верхняя половина предыдущего чанка
;чанки повторяются с №2==№1
;0
	dbq %0000
	dbq %0000
	;dbq %0000
	;dbq %0000
;1
	dbq %0000
	dbq %0100
	;dbq %0000 ;
	;dbq %0000 ;!
;2
	dbq %0000
	dbq %0100
	;dbq %0000 ;
	;dbq %0001 ;!
;3
	dbq %0000
	dbq %0101
	;dbq %0000 ;
	;dbq %0001 ;!
;4
	dbq %0000
	dbq %0101
	;dbq %0000
	;dbq %0101
;5
	dbq %1000
	dbq %0101
	;dbq %0000 ;!
	;dbq %0101 ;
;6
	dbq %1000
	dbq %0101
	;dbq %0010 ;!
	;dbq %0101 ;
;7
	dbq %1010
	dbq %0101
	;dbq %0010 ;!
	;dbq %0101 ;
;8
	dbq %1010
	dbq %0101
	;dbq %1010
	;dbq %0101
;9
	dbq %1010
	dbq %1101
	;dbq %1010 ;
	;dbq %0101 ;!
;A
	dbq %1010
	dbq %1101
	;dbq %1010 ;
	;dbq %0111 ;!
;B
	dbq %1010
	dbq %1111
	;dbq %1010 ;
	;dbq %0111 ;!
;C
	dbq %1010
	dbq %1111
	;dbq %1010
	;dbq %1111
;D
	dbq %1110
	dbq %1111
	;dbq %1010 ;!
	;dbq %1111 ;
;E
	dbq %1110
	dbq %1111
	;dbq %1011 ;!
	;dbq %1111 ;
;F
	dbq %1111
	dbq %1111
	;dbq %1011 ;!
	;dbq %1111 ;
;G
	dbq %1111
	dbq %1111
	;dbq %1111
	;dbq %1111
	endif

c2pgfx_4x2_add=(c2pgfx_4x2-(chdata_4x2/256))&#ff
