summaryrefslogtreecommitdiffstats
path: root/hacks/images/m6502/softsprite.asm
blob: eab6d678c49a623044bbdbed584a09971e691622 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
; software sprites
; by PJP

loop:
 ldx $90
 inx
 stx $90

 lda #4          ; *** NUMBER OF SPRITES
 sta $3
 lda #0
 sta $4

multiple:
 lda $90
 clc
 adc $4
 tax

 lda sinus,x
 ldy cosinus,x
 asl
 tax
 lda ypos,x
 sta $00
 inx
 lda ypos,x
 sta $01
 ldx #0
 lda #5    ; **** HEIGHT OF EACH SPRITE
 sta $2
draw:
 lda image,x
 sta ($0),y
 inx
 iny
 lda image,x
 sta ($0),y
 inx
 iny
 lda image,x
 sta ($0),y
 inx
 iny
 lda image,x
 sta ($0),y
 inx
 iny
 lda image,x
 sta ($0),y


 tya
 clc
 adc #28
 tay
 inx
 dec $2
 bne draw

 lda $4 
 clc
 adc #18        ; *** DISTANCE BETWEEN SPRITES (FROM TABLE)
 sta $4

 dec $3
 bne multiple

 jmp loop

; SINUS (AND COSINUS) 

sinus:
 dcb $0e, $0e, $0e, $0f, $0f, $0f, $10, $10, $10, $11
 dcb $11, $11, $12, $12, $12, $13, $13, $13, $14, $14
 dcb $14, $14, $15, $15, $15, $16, $16, $16, $16, $17
 dcb $17, $17, $17, $18, $18, $18, $18, $19, $19, $19
 dcb $19, $19, $1a, $1a, $1a, $1a, $1a, $1a, $1a, $1b
 dcb $1b, $1b, $1b, $1b, $1b, $1b, $1b, $1b, $1b, $1b
 dcb $1b, $1b, $1b, $1b, $1b, $1b, $1b, $1b, $1b, $1b
cosinus:
 dcb $1b, $1b, $1b, $1b, $1b, $1b, $1b, $1b, $1b, $1b
 dcb $1a, $1a, $1a, $1a, $1a, $1a, $19, $19, $19, $19
 dcb $19, $18, $18, $18, $18, $18, $17, $17, $17, $17
 dcb $16, $16, $16, $15, $15, $15, $15, $14, $14, $14
 dcb $13, $13, $13, $12, $12, $12, $11, $11, $11, $10
 dcb $10, $10, $0f, $0f, $0f, $0e, $0e, $0e, $0d, $0d
 dcb $0d, $0c, $0c, $0c, $0b, $0b, $0b, $0a, $0a, $0a
 dcb $09, $09, $09, $08, $08, $08, $07, $07, $07, $06
 dcb $06, $06, $06, $05, $05, $05, $04, $04, $04, $04
 dcb $03, $03, $03, $03, $03, $02, $02, $02, $02, $02
 dcb $01, $01, $01, $01, $01, $01, $00, $00, $00, $00
 dcb $00, $00, $00, $00, $00, $00, $00, $00, $00, $00
 dcb $00, $00, $00, $00, $00, $00, $00, $00, $00, $00
 dcb $00, $00, $00, $00, $00, $00, $00, $01, $01, $01
 dcb $01, $01, $01, $01, $02, $02, $02, $02, $02, $03
 dcb $03, $03, $03, $04, $04, $04, $04, $05, $05, $05
 dcb $05, $06, $06, $06, $07, $07, $07, $07, $08, $08
 dcb $08, $09, $09, $09, $0a, $0a, $0a, $0b, $0b, $0b
 dcb $0c, $0c, $0c, $0d, $0d

 dcb $0e, $0e, $0e, $0f, $0f, $0f, $10, $10, $10, $11
 dcb $11, $11, $12, $12, $12, $13, $13, $13, $14, $14
 dcb $14, $14, $15, $15, $15, $16, $16, $16, $16, $17
 dcb $17, $17, $17, $18, $18, $18, $18, $19, $19, $19
 dcb $19, $19, $1a, $1a, $1a, $1a, $1a, $1a, $1a, $1b
 dcb $1b, $1b, $1b, $1b, $1b, $1b, $1b, $1b, $1b, $1b
 dcb $1b, $1b, $1b, $1b, $1b, $1b, $1b, $1b, $1b, $1b
 dcb $1b, $1b, $1b, $1b, $1b, $1b, $1b, $1b, $1b, $1b
 dcb $1a, $1a, $1a, $1a, $1a, $1a, $19, $19, $19, $19

; 5x5 BYTES

image:
 dcb $0,$0,$0,$0,$0
 dcb $0,$c,$c,$c,$0
 dcb $0,$c,$1,$c,$0
 dcb $0,$c,$c,$c,$0
 dcb $0,$0,$0,$0,$0

; YPOS LOOKUP TABLE

ypos:
 dcb $00,$02,$20,$02,$40,$02,$60,$02
 dcb $80,$02,$a0,$02,$c0,$02,$e0,$02
 dcb $00,$03,$20,$03,$40,$03,$60,$03
 dcb $80,$03,$a0,$03,$c0,$03,$e0,$03
 dcb $00,$04,$20,$04,$40,$04,$60,$04
 dcb $80,$04,$a0,$04,$c0,$04,$e0,$04
 dcb $00,$05,$20,$05,$40,$05,$60,$05
 dcb $80,$05,$a0,$05,$c0,$05,$e0,$05