Time to get rid of the old ugly Get Ready display. And put up a new ugly one.
The changes are pretty easy, we modify our DisplayGetReady routine to display the sprites now (and store the old sprite settings):
;------------------------------------------------------------
;displays get ready
;------------------------------------------------------------
!zone DisplayGetReady
DisplayGetReady
lda #40
sta LEVEL_START_DELAY
lda #0
sta SPRITE_JUMP_POS
lda VIC_SPRITE_ENABLE
sta SPRITE_ENABLED
lda VIC_SPRITE_MULTICOLOR
sta SPRITE_MULTICOLOR
ldx #0
ldy #0
-
lda GETREADY_SPRITE_X_POS,x
sta VIC_SPRITE_X_POS,y
lda VIC_SPRITE_COLOR,x
sta SPRITE_COLOR,x
lda GETREADY_SPRITE_COLOR,x
sta VIC_SPRITE_COLOR,x
iny
iny
inx
cpx #8
bne -
lda #110
sta VIC_SPRITE_Y_POS
sta VIC_SPRITE_Y_POS + 2
sta VIC_SPRITE_Y_POS + 4
sta VIC_SPRITE_Y_POS + 6
sta VIC_SPRITE_Y_POS + 8
sta VIC_SPRITE_Y_POS + 10
sta VIC_SPRITE_Y_POS + 12
sta VIC_SPRITE_Y_POS + 14
lda #SPRITE_G
sta SPRITE_POINTER_BASE
lda #SPRITE_E
sta SPRITE_POINTER_BASE + 1
sta SPRITE_POINTER_BASE + 4
lda #SPRITE_T
sta SPRITE_POINTER_BASE + 2
lda #SPRITE_R
sta SPRITE_POINTER_BASE + 3
lda #SPRITE_A
sta SPRITE_POINTER_BASE + 5
lda #SPRITE_D
sta SPRITE_POINTER_BASE + 6
lda #SPRITE_Y
sta SPRITE_POINTER_BASE + 7
lda #0
sta VIC_SPRITE_MULTICOLOR
lda #$80
sta VIC_SPRITE_X_EXTEND
lda #$ff
sta VIC_SPRITE_ENABLE
sta VIC_SPRITE_EXPAND_X
sta VIC_SPRITE_EXPAND_Y
rts
...and then the remove routine to restore the previous sprite setup:
lda SPRITE_ENABLED
sta VIC_SPRITE_ENABLE
lda SPRITE_MULTICOLOR
sta VIC_SPRITE_MULTICOLOR
lda SPRITE_POS_X_EXTEND
sta VIC_SPRITE_X_EXTEND
lda SPRITE_POS_X
sta VIC_SPRITE_X_POS
lda SPRITE_POS_X + 1
sta VIC_SPRITE_X_POS + 2
lda SPRITE_POS_Y
sta VIC_SPRITE_Y_POS
lda SPRITE_POS_Y + 1
sta VIC_SPRITE_Y_POS + 2
ldx #0
stx VIC_SPRITE_EXPAND_X
stx VIC_SPRITE_EXPAND_Y
-
ldy SPRITE_ACTIVE,x
cpy #0
bne +
--
lda SPRITE_COLOR,x
sta VIC_SPRITE_COLOR,x
inx
cpx #2
bne -
jmp GameLoop
+
lda TYPE_START_SPRITE,y
sta SPRITE_POINTER_BASE,x
jmp --
Also, remember, tables, tables, tables?
One more for the sprite setup:
GETREADY_SPRITE_X_POS
!byte 32,67,102,147,182,217,252,48 - 16
GETREADY_SPRITE_COLOR
!byte 2,3,4,5,6,7,8,9