dlowres: have 80x40 sprites updated

This commit is contained in:
Vince Weaver 2017-12-06 16:39:40 -05:00
parent f46567562d
commit 257f51c473
6 changed files with 156 additions and 67 deletions

View File

@ -19,7 +19,7 @@ DLOWRES_MODE7: dlowres_mode7.o
dlowres_mode7.o: dlowres_mode7.s \
dlowres_flying.s fast_multiply.s \
dlowres_utils.s dlowres_zp.inc
dlowres_utils.s dlowres_zp.inc dlowres_sprites.inc
ca65 -o dlowres_mode7.o dlowres_mode7.s -l dlowres_mode7.lst
clean:

View File

@ -24,6 +24,16 @@ flying_start:
jsr clear_screens
; jsr set_gr_page0
lda #$4
sta DRAW_PAGE
jsr clear_bottom
lda #$8
sta DRAW_PAGE
jsr clear_bottom
;=====================
; Set Up Double Lowres
;=====================
@ -500,7 +510,8 @@ no_right_splash:
lda #<ship_right ; 2
sta INL ; 3
dec TURNING ; 5
; dec TURNING ; 5
lda TURNING ; 5
bvc draw_ship ; 3
;==========
@ -543,8 +554,9 @@ no_left_splash:
lda #<ship_left ; 2
sta INL ; 3
inc TURNING ; 5
;==========
; inc TURNING ; 5
lda TURNING
;==========
; 48
draw_ship:
@ -720,6 +732,9 @@ draw_ship_aux:
; loop forever
;==================
jsr copy_page1_to_page0
jsr copy_page2_to_aux
jmp flying_loop ; 3
@ -774,7 +789,9 @@ draw_background_mode7_standard:
; Set Normal Page
bit PAGE0
; bit PAGE0
lda #4
sta DRAW_PAGE
; Only draw sky if necessary
; (at start, or if we have switched to text, we never overwrite it)
@ -855,8 +872,8 @@ setup_gr_addr:
iny ; point to high part of address ; 2
lda gr_offsets,Y ; load high part of address ; 4
; clc ; clear carry for add ; 2
; adc DRAW_PAGE ; add in draw page offset ; 3
clc ; clear carry for add ; 2
adc DRAW_PAGE ; add in draw page offset ; 3
sta GBASH ; store in GBASH zero-page pointer ; 3
;=============
@ -1318,7 +1335,10 @@ draw_background_mode7_aux:
; Draw to AUX page
bit PAGE1
; bit PAGE1
lda #8
sta DRAW_PAGE
; Only draw sky if necessary
; (at start, or if we have switched to text, we never overwrite it)
@ -1400,8 +1420,8 @@ setup_gr_addr_aux:
iny ; point to high part of address ; 2
lda gr_offsets,Y ; load high part of address ; 4
; clc ; clear carry for add ; 2
; adc DRAW_PAGE ; add in draw page offset ; 3
clc ; clear carry for add ; 2
adc DRAW_PAGE ; add in draw page offset ; 3
sta GBASH ; store in GBASH zero-page pointer ; 3
;=============

Binary file not shown.

View File

@ -4,109 +4,114 @@
splash_forward:
.byte $7,$2
.byte $00,$ee,$00,$00,$00,$ee,$00
.byte $ee,$00,$00,$00,$00,$00,$ee
.byte $00,$0e,$00,$00,$00,$e0,$00
.byte $0e,$00,$00,$00,$00,$00,$e0
splash_forward_aux:
.byte $7,$2
.byte $00,$ee,$00,$00,$00,$ee,$00
.byte $ee,$00,$00,$00,$00,$00,$ee
.byte $00,$70,$00,$00,$00,$07,$00
.byte $70,$00,$00,$00,$00,$00,$07
splash_right:
.byte $7,$2
.byte $00,$00,$00,$00,$00,$ee,$00
.byte $00,$00,$00,$00,$00,$00,$ee
.byte $00,$00,$00,$00,$00,$e0,$00
.byte $00,$00,$00,$00,$00,$00,$e0
splash_right_aux:
.byte $7,$2
.byte $00,$00,$00,$00,$00,$ee,$00
.byte $00,$00,$00,$00,$00,$00,$ee
.byte $00,$00,$00,$00,$00,$07,$00
.byte $00,$00,$00,$00,$00,$00,$07
splash_left:
.byte $7,$2
.byte $00,$ee,$00,$00,$00,$00,$00
.byte $ee,$00,$00,$00,$00,$00,$00
.byte $00,$0e,$00,$00,$00,$00,$00
.byte $0e,$00,$00,$00,$00,$00,$00
splash_left_aux:
.byte $7,$2
.byte $00,$ee,$00,$00,$00,$00,$00
.byte $ee,$00,$00,$00,$00,$00,$00
.byte $00,$70,$00,$00,$00,$00,$00
.byte $70,$00,$00,$00,$00,$00,$00
shadow_forward:
.byte $3,$2
.byte $00,$aa,$00
.byte $a0,$aa,$a0
.byte $aa,$aa,$a0
shadow_forward_aux:
.byte $3,$2
.byte $00,$aa,$00
.byte $a0,$aa,$a0
.byte $00,$55,$00
.byte $50,$55,$55
shadow_right:
.byte $3,$2
.byte $a0,$00,$aa
.byte $a0,$a0,$0a
.byte $00,$0a,$a0
shadow_right_aux:
.byte $3,$2
.byte $a0,$00,$aa
.byte $00,$0a,$a0
.byte $50,$50,$55
.byte $00,$05,$55
shadow_left:
.byte $3,$2
.byte $aa,$00,$a0
.byte $a0,$0a,$00
.byte $aa,$a0,$a0
.byte $aa,$0a,$00
shadow_left_aux:
.byte $3,$2
.byte $aa,$00,$a0
.byte $a0,$0a,$00
.byte $05,$50,$50
.byte $50,$05,$00
ship_forward:
.byte $9,$5
.byte $00,$00,$00,$00,$ff,$00,$00,$00,$00
.byte $00,$00,$00,$66,$ff,$66,$00,$00,$00
.byte $00,$00,$70,$2f,$12,$2f,$70,$00,$00
.byte $f0,$f7,$f7,$f2,$d9,$f2,$f7,$f7,$f0
.byte $00,$00,$70,$2f,$12,$ff,$70,$00,$00
.byte $f0,$f7,$f7,$d9,$99,$f2,$f7,$f7,$f0
.byte $00,$00,$00,$00,$0d,$00,$00,$00,$00
ship_forward_aux:
.byte $9,$5
.byte $00,$00,$00,$00,$ff,$00,$00,$00,$00
.byte $00,$00,$00,$44,$ff,$44,$00,$00,$00
.byte $00,$00,$b0,$1f,$81,$1f,$b0,$00,$00
.byte $f0,$fb,$fb,$f1,$dc,$f1,$fb,$fb,$f0
.byte $00,$00,$00,$33,$ff,$33,$00,$00,$00
.byte $00,$00,$b0,$ff,$81,$1f,$b0,$00,$00
.byte $f0,$fb,$fb,$f1,$cc,$ec,$fb,$fb,$f0
.byte $00,$00,$00,$00,$0e,$00,$00,$00,$00
ship_right:
.byte $9,$5
.byte $00,$00,$00,$00,$00,$60,$60,$f0,$00
.byte $00,$f0,$70,$70,$f6,$f6,$6f,$66,$00
.byte $00,$07,$ff,$2f,$12,$27,$f6,$00,$00
.byte $00,$00,$00,$dd,$d9,$f2,$77,$00,$00
.byte $00,$00,$00,$00,$00,$0f,$ff,$70,$00
.byte $00,$00,$00,$00,$00,$60,$60,$00,$00
.byte $00,$f0,$70,$70,$f6,$f6,$6f,$00,$00
.byte $00,$07,$7f,$2f,$12,$f7,$76,$00,$00
.byte $00,$00,$00,$dd,$d9,$ff,$77,$00,$00
.byte $00,$00,$00,$00,$00,$0f,$f7,$77,$00
ship_right_aux:
.byte $9,$5
.byte $00,$00,$00,$00,$00,$60,$60,$f0,$00
.byte $00,$f0,$70,$70,$f6,$f6,$6f,$66,$00
.byte $00,$07,$ff,$2f,$12,$27,$f6,$00,$00
.byte $00,$00,$00,$dd,$d9,$f2,$77,$00,$00
.byte $00,$00,$00,$00,$00,$0f,$ff,$70,$00
.byte $00,$00,$00,$00,$00,$00,$30,$f0,$00
.byte $00,$f0,$b0,$b0,$f0,$f3,$3f,$33,$00
.byte $00,$0b,$bf,$bf,$c1,$1b,$f3,$00,$00
.byte $00,$00,$00,$e0,$ec,$f1,$bb,$b0,$00
.byte $00,$00,$00,$00,$00,$0f,$ff,$bb,$b0
ship_left:
.byte $9,$5
.byte $00,$f0,$60,$60,$00,$00,$00,$00,$00
.byte $00,$66,$6f,$f6,$f6,$70,$70,$f0,$00
.byte $00,$00,$f6,$27,$12,$2f,$ff,$07,$00
.byte $00,$00,$77,$f2,$d9,$dd,$00,$00,$00
.byte $00,$70,$ff,$0f,$00,$00,$00,$00,$00
.byte $00,$f0,$60,$00,$00,$00,$00,$00,$00
.byte $00,$66,$6f,$f6,$f0,$70,$70,$f0,$00
.byte $00,$00,$f6,$27,$92,$7f,$7f,$07,$00
.byte $00,$70,$77,$f2,$d9,$d0,$00,$00,$00
.byte $70,$77,$ff,$0f,$00,$00,$00,$00,$00
ship_left_aux:
.byte $9,$5
.byte $00,$f0,$60,$60,$00,$00,$00,$00,$00
.byte $00,$66,$6f,$f6,$f6,$70,$70,$f0,$00
.byte $00,$00,$f6,$27,$12,$2f,$ff,$07,$00
.byte $00,$00,$77,$f2,$d9,$dd,$00,$00,$00
.byte $00,$70,$ff,$0f,$00,$00,$00,$00,$00
.byte $00,$00,$30,$30,$00,$00,$00,$00,$00
.byte $00,$00,$3f,$f3,$f3,$b0,$b0,$f0,$00
.byte $00,$00,$b3,$fb,$81,$1f,$bf,$0b,$00
.byte $00,$00,$bb,$ff,$ec,$ee,$00,$00,$00
.byte $00,$bb,$fb,$0f,$00,$00,$00,$00,$00

View File

@ -376,8 +376,7 @@ put_sprite_loop:
adc XPOS ; add in xpos ; 3
sta OUTL ; store out low byte of addy ; 3
lda gr_offsets+1,Y ; look up high byte ; 5
adc #0
; adc DRAW_PAGE ; ; 3
adc DRAW_PAGE ; ; 3
sta OUTH ; and store it out ; 3
ldy TEMP ; restore sprite pointer ; 3
@ -511,19 +510,19 @@ point_to_end_string:
; print_both_pages
;================================
print_both_pages:
; lda DRAW_PAGE
; pha
lda DRAW_PAGE
pha
lda #0
lda #4
sta DRAW_PAGE
jsr move_and_print
; lda #4
; lda #8
; sta DRAW_PAGE
; jsr move_and_print
; pla
; sta DRAW_PAGE
pla
sta DRAW_PAGE
rts ; oops forgot this initially
; explains the weird vertical stripes on the screen
@ -596,8 +595,7 @@ hlin_setup:
iny ; 2
lda gr_offsets,Y ; 4
adc #0 ; needed?
; adc DRAW_PAGE ; add in draw page offset ; 3
adc DRAW_PAGE ; add in draw page offset ; 3
sta GBASH ; 3
rts ; 6
;===========
@ -735,6 +733,9 @@ clear_top_loop:
rts
;=====================
; clear bottom
;=====================
clear_bottom:
lda #$a0 ; NORMAL space
sta COLOR
@ -755,3 +756,66 @@ clear_bottom_loop:
bne clear_bottom_loop
rts
;==========================
; copy_page1_to_page0
;==========================
; x trashed
copy_page1_to_page0:
bit PAGE0
ldx #120 ; 2
copy_p1p0_loop:
lda $800,X ; 4
sta $400,X ; 4
lda $880,X ; 4
sta $480,X ; 4
lda $900,X ; 4
sta $500,X ; 4
lda $980,X ; 4
sta $580,X ; 4
lda $a00,X ; 4
sta $600,X ; 4
lda $A80,X ; 4
sta $680,X ; 4
lda $B00,X ; 4
sta $700,X ; 4
lda $B80,X ; 4
sta $780,X ; 4
dex ; 2
bpl copy_p1p0_loop ; 2nt/3
rts ; 6
; 2+ [((16*4)+2+3)*120] +5
; 8287
;==========================
; copy_page2_to_aux
;==========================
; x trashed
copy_page2_to_aux:
bit PAGE1
ldx #120 ; 2
copy_p2aux_loop:
lda $C00,X ; 4
sta $400,X ; 4
lda $C80,X ; 4
sta $480,X ; 4
lda $D00,X ; 4
sta $500,X ; 4
lda $D80,X ; 4
sta $580,X ; 4
lda $E00,X ; 4
sta $600,X ; 4
lda $E80,X ; 4
sta $680,X ; 4
lda $F00,X ; 4
sta $700,X ; 4
lda $F80,X ; 4
sta $780,X ; 4
dex ; 2
bpl copy_p2aux_loop ; 2nt/3
rts ; 6
; 4+2+ [((16*4)+2+3)*120] +5
; 8287

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.3 KiB

After

Width:  |  Height:  |  Size: 1.6 KiB