From 2df68b8bc5897f9799020d5a3bab9d60c2d81102 Mon Sep 17 00:00:00 2001 From: Vince Weaver Date: Wed, 12 Jun 2019 13:13:57 -0400 Subject: [PATCH] sprites: we have ship sprite --- interlace_demo/sprites.s | 298 ++++++++++++++++++++++++++++++--------- 1 file changed, 228 insertions(+), 70 deletions(-) diff --git a/interlace_demo/sprites.s b/interlace_demo/sprites.s index 87a38a82..73d7014c 100644 --- a/interlace_demo/sprites.s +++ b/interlace_demo/sprites.s @@ -186,9 +186,231 @@ display_loop: ;====================================================== ; 4550 -- VBLANK + ; 488 -- draw ship (4+32+32+32+32+32+34+34+38+36+38+36+38+36+34) ; -10 -- keypress ;======= - ; 4540 + ; 4084 + + + ;========================== + ; draw the ship + ; at Y=64 for now + ldx #64 ; 2 + ldy #0 ; 2 + ;==== + ; 4 + + ; line 0 + + lda #0 ; 2 + sta smc064+3 ; 0 ; 4 + sta smc064+8 ; 1 ; 4 + sta smc064+13 ; 2 ; 4 + sta smc064+23 ; 4 ; 4 + sta smc064+28 ; 5 ; 4 + sta smc064+33 ; 6 ; 4 + lda #$ff ; 2 + sta smc064+18 ; 3 ; 4 + ;==== + ; 32 + + ; line 1 + + lda #0 ; 2 + sta smc065+3 ; 0 ; 4 + sta smc065+8 ; 1 ; 4 + sta smc065+13 ; 2 ; 4 + sta smc065+23 ; 4 ; 4 + sta smc065+28 ; 5 ; 4 + sta smc065+33 ; 6 ; 4 + lda #$ff ; 2 + sta smc065+18 ; 3 ; 4 + ;==== + ; 32 + + ; line 2 + + lda #0 ; 2 + sta smc066+3 ; 0 ; 4 + sta smc066+8 ; 1 ; 4 + sta smc066+13 ; 2 ; 4 + sta smc066+23 ; 4 ; 4 + sta smc066+28 ; 5 ; 4 + sta smc066+33 ; 6 ; 4 + lda #$ff ; 2 + sta smc066+18 ; 3 ; 4 + ;==== + ; 32 + + ; line 3 + + lda #0 ; 2 + sta smc067+3 ; 0 ; 4 + sta smc067+8 ; 1 ; 4 + sta smc067+13 ; 2 ; 4 + sta smc067+23 ; 4 ; 4 + sta smc067+28 ; 5 ; 4 + sta smc067+33 ; 6 ; 4 + lda #$ff ; 2 + sta smc067+18 ; 3 ; 4 + ;===== + ; 32 + + ; line 4 + + lda #0 ; 2 + sta smc068+3 ; 0 ; 4 + sta smc068+8 ; 1 ; 4 + sta smc068+13 ; 2 ; 4 + sta smc068+23 ; 4 ; 4 + sta smc068+28 ; 5 ; 4 + sta smc068+33 ; 6 ; 4 + lda #$77 ; 2 + sta smc068+18 ; 3 ; 4 + ;==== + ; 32 + +;.if 0 + ; line 5 + + lda #0 ; 2 + sta smc069+3 ; 0 ; 4 + sta smc069+8 ; 1 ; 4 + sta smc069+13 ; 2 ; 4 + sta smc069+33 ; 6 ; 4 + lda #$ff ; 2 + sta smc069+18 ; 3 ; 4 + sta smc069+23 ; 4 ; 4 + lda #$22 ; 2 + sta smc069+28 ; 5 ; 4 + ;===== + ; 34 + ; line 6 + + lda #0 ; 2 + sta smc070+3 ; 0 ; 4 + sta smc070+8 ; 1 ; 4 + sta smc070+33 ; 6 ; 4 + lda #$ff ; 2 + sta smc070+18 ; 3 ; 4 + sta smc070+23 ; 4 ; 4 + lda #$22 ; 2 + sta smc070+13 ; 2 ; 4 + sta smc070+28 ; 5 ; 4 + ;==== + ; 34 + + ; line 7 + + lda #0 ; 2 + sta smc071+3 ; 0 ; 4 + sta smc071+33 ; 6 ; 4 + lda #$dd ; 2 + sta smc071+8 ; 1 ; 4 + lda #$66 ; 2 + sta smc071+13 ; 2 ; 4 + lda #$11 ; 2 + sta smc071+18 ; 3 ; 4 + lda #$22 ; 2 + sta smc071+23 ; 4 ; 4 + sta smc071+28 ; 5 ; 4 + ;==== + ; 38 + ; line 8 + + lda #$dd ; 2 + sta smc072+3 ; 0 ; 4 + lda #$99 ; 2 + sta smc072+8 ; 1 ; 4 + lda #$22 ; 2 + sta smc072+13 ; 2 ; 4 + sta smc072+28 ; 5 ; 4 + sta smc072+33 ; 6 ; 4 + lda #$44 ; 2 + sta smc072+18 ; 3 ; 4 + sta smc072+23 ; 4 ; 4 + ;==== + ; 36 + ; line 9 + + lda #$99 ; 2 + sta smc073+3 ; 0 ; 4 + lda #$11 ; 2 + sta smc073+8 ; 1 ; 4 + lda #$66 ; 2 + sta smc073+13 ; 2 ; 4 + lda #$ff ; 2 + sta smc073+18 ; 3 ; 4 + sta smc073+23 ; 4 ; 4 + lda #$22 ; 2 + sta smc073+28 ; 5 ; 4 + sta smc073+33 ; 6 ; 4 + ;==== + ; 38 + + ; line 10 + + lda #$dd ; 2 + sta smc074+3 ; 0 ; 4 + lda #$99 ; 2 + sta smc074+8 ; 1 ; 4 + lda #$22 ; 2 + sta smc074+13 ; 2 ; 4 + sta smc074+28 ; 5 ; 4 + sta smc074+33 ; 6 ; 4 + lda #$ff ; 2 + sta smc074+18 ; 3 ; 4 + sta smc074+23 ; 4 ; 4 + ;==== + ; 36 + ; line 11 + + lda #0 ; 2 + sta smc075+3 ; 0 ; 4 + lda #$dd ; 2 + sta smc075+8 ; 1 ; 4 + lda #$66 ; 2 + sta smc075+13 ; 2 ; 4 + lda #$77 ; 2 + sta smc075+18 ; 3 ; 4 + sta smc075+23 ; 4 ; 4 + sta smc075+28 ; 5 ; 4 + lda #$ff ; 2 + sta smc075+33 ; 6 ; 4 + ;==== + ; 38 + + ; line 12 + + lda #0 ; 2 + sta smc076+3 ; 0 ; 4 + sta smc076+8 ; 1 ; 4 + lda #$22 ; 2 + sta smc076+13 ; 2 ; 4 + lda #$ff ; 2 + sta smc076+18 ; 3 ; 4 + sta smc076+23 ; 4 ; 4 + sta smc076+33 ; 6 ; 4 + lda #$77 ; 2 + sta smc076+28 ; 5 ; 4 + ;==== + ; 36 + + ; line 13 + + lda #0 ; 2 + sta smc077+3 ; 0 ; 4 + sta smc077+8 ; 1 ; 4 + sta smc077+13 ; 2 ; 4 + lda #$ff ; 2 + sta smc077+18 ; 3 ; 4 + sta smc077+23 ; 4 ; 4 + sta smc077+33 ; 6 ; 4 + lda #$77 ; 2 + sta smc077+28 ; 5 ; 4 + ;==== + ; 34 +;.endif pad_time: @@ -197,11 +419,13 @@ pad_time: ; WAIT for VBLANK to finish ;============================ - ; Try X=9 Y=89 cycles=4540 + ; Try X=13 Y=57 cycles=4048 R4 + nop + nop - ldy #89 ; 2 -loop1: ldx #9 ; 2 + ldy #57 ; 2 +loop1: ldx #13 ; 2 loop2: dex ; 2 bne loop2 ; 2nt/3 dey ; 2 @@ -216,72 +440,6 @@ no_keypress: jmp display_loop ; 3 - ;======================== - ; Draw a rasterbar - ; unroll as memory is free! haha - ;======================== - ; X is location - - ; 2+22+24+24+24+24+6 = 126 - -draw_rasterbar: - - ldy #0 ; 2 - ;==== - - lda y_lookup_l,X ; 4 - sta OUTL ; 3 - lda y_lookup_h,X ; 4 - sta OUTH ; 3 - -smc_raster_color1_1: - lda #$33 ; 2 - sta (OUTL),Y ; 6 - ;============ - ; 22 - - inx ; 2 - lda y_lookup_l,X ; 4 - sta OUTL ; 3 - lda y_lookup_h,X ; 4 - sta OUTH ; 3 - -smc_raster_color2_1: - lda #$bb ; 2 - sta (OUTL),Y ; 6 - - inx ; 2 - lda y_lookup_l,X ; 4 - sta OUTL ; 3 - lda y_lookup_h,X ; 4 - sta OUTH ; 3 - -smc_raster_color3_1: - lda #$ff ; 2 - sta (OUTL),Y ; 6 - - inx - lda y_lookup_l,X ; 4 - sta OUTL ; 3 - lda y_lookup_h,X ; 4 - sta OUTH ; 3 - -smc_raster_color2_2: - lda #$bb ; 2 - sta (OUTL),Y ; 6 - - inx - lda y_lookup_l,X ; 4 - sta OUTL ; 3 - lda y_lookup_h,X ; 4 - sta OUTH ; 3 - -smc_raster_color1_2: - lda #$33 ; 2 - sta (OUTL),Y ; 6 - - rts ; 6 -