fn: update sprite mask code

This commit is contained in:
Vince Weaver 2023-05-02 21:18:43 -04:00
parent d99e0726e2
commit abf18eb43c
6 changed files with 367 additions and 35 deletions

View File

@ -67,7 +67,7 @@ floppy_loop:
inc XPOS
lda XPOS
cmp #17
cmp #18
bcc floppy_loop
bcs reset_floppy_loop
@ -148,30 +148,34 @@ rat2_image:
floppy_x:
.byte 10,12,14,16
.byte 18,20,22,24
.byte 26,24,22,20,18
.byte 16,14,12,10
.byte 26,26,24,22
.byte 20,18,16,14,12,10
floppy_sprite_l:
.byte <disk_sprite0,<disk_sprite1,<disk_sprite2,<disk_sprite3
.byte <disk_sprite4,<disk_sprite5,<disk_sprite6,<disk_sprite7
.byte <disk_sprite0,<disk_sprite7,<disk_sprite6,<disk_sprite5
.byte <disk_sprite4,<disk_sprite3,<disk_sprite2,<disk_sprite1
.byte <disk_sprite0
.byte <disk_sprite0,<disk_sprite0,<disk_sprite7,<disk_sprite6
.byte <disk_sprite5,<disk_sprite4,<disk_sprite3,<disk_sprite2
.byte <disk_sprite1,<disk_sprite0
floppy_sprite_h:
.byte >disk_sprite0,>disk_sprite1,>disk_sprite2,>disk_sprite3
.byte >disk_sprite4,>disk_sprite5,>disk_sprite6,>disk_sprite7
.byte >disk_sprite0,>disk_sprite7,>disk_sprite6,>disk_sprite5
.byte >disk_sprite4,>disk_sprite3,>disk_sprite2,>disk_sprite1
.byte >disk_sprite0
.byte >disk_sprite0,>disk_sprite0,>disk_sprite7,>disk_sprite6
.byte >disk_sprite5,>disk_sprite4,>disk_sprite3,>disk_sprite2
.byte >disk_sprite1,>disk_sprite0
floppy_mask_l:
.byte <disk_mask0,<disk_mask1,<disk_mask2,<disk_mask3
.byte <disk_mask4,<disk_mask5,<disk_mask6,<disk_mask7
.byte <disk_mask6,<disk_mask5,<disk_mask4,<disk_mask3
.byte <disk_mask2,<disk_mask1,<disk_mask0,<disk_mask0
.byte <disk_mask0,<disk_mask0,<disk_mask7,<disk_mask6
.byte <disk_mask5,<disk_mask4,<disk_mask3,<disk_mask2
.byte <disk_mask1,<disk_mask0
floppy_mask_h:
.byte >disk_mask0,>disk_mask1,>disk_mask2,>disk_mask3
.byte >disk_mask4,>disk_mask5,>disk_mask6,>disk_mask7
.byte >disk_mask6,>disk_mask5,>disk_mask4,>disk_mask3
.byte >disk_mask2,>disk_mask1,>disk_mask0,>disk_mask0
.byte >disk_mask0,>disk_mask0,>disk_mask7,>disk_mask6
.byte >disk_mask5,>disk_mask4,>disk_mask3,>disk_mask2
.byte >disk_mask1,>disk_mask0

View File

@ -0,0 +1,20 @@
include ../../../Makefile.inc
TOKENIZE = ../../utils/asoft_basic-utils/tokenize_asoft
DOS33 = ../../utils/dos33fs-utils/dos33
TEXT_TO_ED = ../../../utils/music/text_to_ed
EMPTY_DISK = ../../empty_disk/empty.dsk
all: fortnight.ed
###
fortnight.ed: $(TEXT_TO_ED) fortnight.txt
$(TEXT_TO_ED) -o 1 fortnight.txt fortnight
###
clean:
rm -f *~ *.o *.lst fortnight.ed

View File

@ -0,0 +1,304 @@
'
' TITLE: Breakdancing Rat from SBEMAIL #152
' AUTHOR: (tracked by) Vince Weaver <vince@deater.net>
' COMMENTS: based on MIDI converted from recording of the video
'
' LOOP: 640
'
' BPM: 320
' TEMPO: 6
' FREQ: 1000000
' IRQ: 50
'
' LYRICS: 0
'
' ENDHEADER
-------
' 1
' G 3 8
' 2
0 ----- ----- -----
1 ----- ----- -----
2 ----- ----- -----
3 ----- ----- -----
4 ----- ----- -----
5 ----- ----- -----
6 ----- ----- -----
7 ----- ----- -----
8 ----- ----- -----
9 ----- ----- -----
A ----- ----- -----
B ----- ----- -----
C ----- ----- -----
D ----- ----- -----
E ----- ----- -----
F ----- ----- -----
@ 255 255
10 C 3 8 C 2 8 -----
11 ----- ----- -----
12 ----- ----- -----
13 ----- ----- -----
14 C 3 8 C 2 8 -----
15 ----- ----- -----
16 ----- ----- -----
17 ----- ----- -----
@ 255 255
' 3
0 ----- ----- -----
1 ----- ----- -----
2 ----- ----- -----
3 ----- ----- -----
4 ----- ----- -----
5 ----- ----- -----
6 ----- ----- -----
7 ----- ----- -----
8 ----- ----- -----
9 ----- ----- -----
A ----- ----- -----
B ----- ----- -----
C B 3 8 E 2 8 -----
D ----- ----- -----
E ----- ----- -----
F ----- ----- -----
10 D 4 8 G 2 8 -----
11 ----- ----- -----
12 ----- ----- -----
13 ----- ----- -----
14 B 3 8 E 2 8 -----
15 ----- ----- -----
16 ----- ----- -----
17 ----- ----- -----
' 4
0 F 4 8 A#3 8 -----
1 ----- ----- -----
2 ----- ----- -----
3 ----- ----- -----
4 F 4 8 A#3 8 -----
5 ----- ----- -----
6 ----- ----- -----
7 ----- ----- -----
8 F 4 8 A#3 8 -----
9 ----- ----- -----
A ----- ----- -----
B ----- ----- -----
C A#3 6 A#2 8 -----
D ----- ----- -----
E F 4 6 ----- -----
F ----- ----- -----
10 ----- ----- -----
11 ----- ----- -----
12 ----- ----- -----
13 ----- ----- -----
14 ----- ----- -----
15 ----- ----- -----
16 ----- ----- -----
17 ----- ----- -----
@ 255 255
' 5
0 ----- ----- -----
1 ----- ----- -----
2 ----- ----- -----
3 ----- ----- -----
4 ----- ----- -----
5 ----- ----- -----
6 ----- ----- -----
7 ----- ----- -----
8 C 3 8 C 2 8 -----
9 ----- ----- -----
A ----- ----- -----
B ----- ----- -----
C C 3 8 C 2 8 -----
D ----- ----- -----
E ----- ----- -----
F ----- ----- -----
10 ----- ----- -----
11 ----- ----- -----
12 ----- ----- -----
13 ----- ----- -----
14 ----- ----- -----
15 ----- ----- -----
16 ----- ----- -----
17 ----- ----- -----
@ 255 255
' 6
0 ----- ----- -----
1 ----- ----- -----
2 ----- ----- -----
3 ----- ----- -----
4 ----- ----- -----
5 ----- ----- -----
6 ----- ----- -----
7 ----- ----- -----
8 F 4 4 A#3 4 -----
9 ----- ----- -----
A ----- ----- -----
B ----- ----- -----
C ----- ----- -----
D ----- ----- -----
E ----- ----- -----
F ----- ----- -----
10 B 3 8 E 2 8 -----
11 ----- ----- -----
12 ----- ----- -----
13 ----- ----- -----
14 B 3 8 E 2 8 -----
15 ----- ----- -----
16 ----- ----- -----
17 ----- ----- -----
' 7
0 B 3 8 E 2 8 -----
1 ----- ----- -----
2 ----- ----- -----
3 ----- ----- -----
4 B 3 8 E 2 8 -----
5 ----- ----- -----
6 ----- ----- -----
7 ----- ----- -----
8 ----- ----- -----
9 ----- ----- -----
A ----- ----- -----
B ----- ----- -----
C ----- ----- -----
D ----- ----- -----
E ----- ----- -----
F ----- ----- -----
10 ----- ----- -----
11 ----- ----- -----
12 ----- ----- -----
13 ----- ----- -----
14 ----- ----- -----
15 ----- ----- -----
16 ----- ----- -----
17 ----- ----- -----
@ 255 255
' 8
0 ----- ----- -----
1 ----- ----- -----
2 ----- ----- -----
3 ----- C 2 > -----
4 C 3 6 C 2 6 -----
5 ----- ----- -----
6 C 3 6 C 2 6 -----
7 ----- ----- -----
8 C 3 4 C 2 4 -----
9 ----- ----- -----
A ----- ----- -----
B ----- ----- -----
C ----- ----- -----
D ----- ----- -----
E ----- ----- -----
F ----- ----- -----
10 ----- ----- -----
11 ----- ----- -----
12 ----- ----- -----
13 ----- ----- -----
14 ----- ----- -----
15 ----- ----- -----
16 ----- ----- -----
17 ----- ----- -----
@ 255 255
' 9
0 B 3 8 E 2 8 -----
1 ----- ----- -----
2 ----- ----- -----
3 ----- ----- -----
4 D 4 8 G 2 8 -----
5 ----- ----- -----
6 ----- ----- -----
7 ----- ----- -----
8 B 3 8 E 2 8 -----
9 ----- ----- -----
A ----- ----- -----
B ----- ----- -----
C F 4 8 A#2 8 -----
D ----- ----- -----
E ----- ----- -----
F ----- ----- -----
' A#3 4
10 ----- A#3 8 -----
11 F 4 ? ----- -----
12 ----- ----- -----
13 ----- ----- -----
14 F 4 8 A#3 8 -----
15 ----- ----- -----
16 ----- ----- -----
17 ----- ----- -----
' 10
0 F 4 4 A#3 4 -----
1 ----- ----- -----
2 ----- ----- -----
3 ----- ----- -----
4 ----- ----- -----
5 ----- ----- -----
6 ----- ----- -----
7 ----- ----- -----
8 ----- ----- -----
9 ----- ----- -----
A ----- ----- -----
B ----- ----- -----
C ----- ----- -----
D ----- ----- -----
E ----- ----- -----
F ----- ----- -----
10 ----- ----- -----
11 ----- ----- -----
12 ----- ----- -----
13 ----- ----- -----
@ 255 255
14 C 3 8 C 2 8 -----
15 ----- ----- -----
16 ----- ----- -----
17 ----- ----- -----
' 11
0 C 3 4 C 2 4 -----
1 ----- ----- -----
2 ----- ----- -----
3 ----- ----- -----
4 ----- ----- -----
5 ----- ----- -----
6 ----- ----- -----
7 ----- ----- -----
8 ----- ----- -----
9 ----- ----- -----
A ----- ----- -----
B ----- ----- -----
C ----- ----- -----
D ----- ----- -----
E ----- ----- -----
F ----- ----- -----
10 ----- ----- -----
11 ----- ----- -----
12 ----- ----- -----
13 ----- ----- -----
@ 255 255
14 F 4 8 A#3 8 -----
15 ----- ----- -----
16 ----- ----- -----
17 ----- ----- -----
' 12
0 ----- ----- -----
1 ----- ----- -----
2 ----- ----- -----
3 ----- ----- -----
@ 255 255
4 B 3 8 E 2 8 -----
5 ----- ----- -----
6 ----- ----- -----
7 ----- ----- -----
8 B 3 8 E 2 8 -----
9 ----- ----- -----
A ----- ----- -----
B ----- ----- -----
C B 3 8 E 2 8 -----
D ----- ----- -----
E ----- ----- -----
F ----- ----- -----
10 B 3 4 E 2 4 -----
11 ----- ----- -----
12 ----- ----- -----
13 ----- ----- -----
14 ----- ----- -----
15 ----- ----- -----
16 ----- ----- -----
17 ----- ----- -----
' LOOP TO FRAME ?

Binary file not shown.

Before

Width:  |  Height:  |  Size: 18 KiB

After

Width:  |  Height:  |  Size: 19 KiB

View File

@ -20,22 +20,25 @@ hgr_draw_sprite:
lda (INL),Y
sta sprite_ysize_smc+1 ; self modify
; skip the xsize/ysize and point to sprite
clc
; point smc to sprite
lda INL ; 16-bit add
adc #2
sta sprite_smc1+1
lda INH
adc #0
sta sprite_smc1+2
ldx #0 ; X is pointer offset
lda MASKL
sta mask_smc1+1
lda MASKH
sta mask_smc1+2
stx MASK ; actual row
ldx #0 ; X is pointer offset
stx CURRENT_ROW ; actual row
ldx #2
hgr_sprite_yloop:
lda MASK ; row
lda CURRENT_ROW ; row
clc
adc CURSOR_Y ; add in cursor_y
@ -57,30 +60,30 @@ hgr_sprite_page_smc:
sprite_inner_loop:
lda (GBASL),Y ; load bg
sprite_smc1:
lda $d000 ; get sprite pattern
sta (GBASL),Y ; store out
eor $f000,X ; load sprite data
mask_smc1:
and $f000,X
eor (GBASL),Y
sta (GBASL),Y
inx
iny
inx ; increment sprite offset
iny ; increment output position
inc sprite_smc1+1
bne sprite_noflo
inc sprite_smc1+2
sprite_noflo:
sprite_width_end_smc:
cpy #6
bne sprite_inner_loop
cpy #6 ; see if reached end of row
bne sprite_inner_loop ; if not, loop
inc MASK ; row
lda MASK ; row
inc CURRENT_ROW ; row
lda CURRENT_ROW ; row
sprite_ysize_smc:
cmp #31
bne hgr_sprite_yloop
cmp #31 ; see if at end
bne hgr_sprite_yloop ; if not, loop
rts

View File

@ -164,6 +164,7 @@ XMAX = $F2
CURSOR_X = $F3
CURSOR_Y = $F4
HGR_PAGE = $F5
CURRENT_ROW = $F6
TEMP = $F8
TEMPY = $F9