mode7_demo: add pink spheres

This commit is contained in:
Vince Weaver 2018-01-27 23:28:17 -05:00
parent d9f2b19e37
commit f10b5e1a09
4 changed files with 109 additions and 6 deletions

View File

@ -19,7 +19,7 @@ mode7_demo.dsk: $(DOS33) MODE7_DEMO
MODE7_DEMO: mode7_demo.o MODE7_DEMO: mode7_demo.o
ld65 -o MODE7_DEMO mode7_demo.o -C ./apple2_2000.inc ld65 -o MODE7_DEMO mode7_demo.o -C ./apple2_2000.inc
mode7_demo.o: mode7_demo.s mode7_demo_backgrounds.inc \ mode7_demo.o: mode7_demo.s mode7_demo_backgrounds.inc sprites.inc \
a2.scrolltext deater.scrolltext \ a2.scrolltext deater.scrolltext \
../asm_routines/gr_unrle.s \ ../asm_routines/gr_unrle.s \
../asm_routines/gr_fast_clear.s \ ../asm_routines/gr_fast_clear.s \

View File

@ -298,6 +298,38 @@ speed_loop:
draw_background: draw_background:
jsr draw_background_mode7 ; 6 jsr draw_background_mode7 ; 6
lda DRAW_BLUE_SKY
bne draw_spaceship
;========================================
;========================================
; DRAW SPHERE CODE
;========================================
;========================================
draw_sphere:
lda #>sphere0 ; 2
sta INH ; 3
lda #<sphere0 ; 2
sta INL ; 3
lda #17 ; 2
sta XPOS ; 3
lda #20 ; 3
sta YPOS ; 3
jsr put_sprite ; 6
jmp done_draw_spaceship
done_draw_sphere:
;========================================
;========================================
; DRAW SPACESHIP CODE
;========================================
;========================================
draw_spaceship:
check_over_water: check_over_water:
; See if we are over water ; See if we are over water
lda CX_I ; 3 lda CX_I ; 3
@ -488,6 +520,9 @@ draw_ship:
;=========== ;===========
; 17 ; 17
done_draw_spaceship:
;================== ;==================
; flip pages ; flip pages
;================== ;==================

View File

@ -35,14 +35,14 @@ checkerboard_demo:
sta INH sta INH
lda #<sky_background lda #<sky_background
sta INL sta INL
jsr decompress_scroll jsr decompress_scroll ; load sky background
lda #0 lda #0 ; no draw blue sky
sta DRAW_BLUE_SKY sta DRAW_BLUE_SKY
lda #$20 lda #$20 ; setup self-modifying code
sta nomatch sta nomatch ; to use checkerboard map
lda #<lookup_checkerboard_map lda #<lookup_checkerboard_map
sta nomatch+1 sta nomatch+1
lda #>lookup_checkerboard_map lda #>lookup_checkerboard_map
@ -54,7 +54,7 @@ checkerboard_demo:
lda #>match lda #>match
sta nomatch+5 sta nomatch+5
jsr mode7_flying jsr mode7_flying ; call generic mode7 code
rts rts

View File

@ -57,3 +57,71 @@ ship_left:
.byte $00,$00,$77,$f2,$d9,$dd,$00,$00,$00 .byte $00,$00,$77,$f2,$d9,$dd,$00,$00,$00
.byte $00,$70,$ff,$0f,$00,$00,$00,$00,$00 .byte $00,$70,$ff,$0f,$00,$00,$00,$00,$00
sphere_offset:
.byte 0,27,54,81, 108,135,162,189
sphere0:
.byte $5,$5
.byte $00,$b0,$b3,$b3,$00
.byte $b0,$bb,$bb,$bb,$30
.byte $bb,$bb,$bb,$bb,$33
.byte $0b,$bb,$bb,$bb,$33
.byte $00,$0b,$3b,$3b,$03
sphere1:
.byte $5,$5
.byte $00,$30,$bb,$bb,$00
.byte $30,$bb,$bb,$bb,$b0
.byte $bb,$bb,$bb,$bb,$bb
.byte $0b,$bb,$bb,$bb,$0b
.byte $00,$0b,$bb,$0b,$00
sphere2:
.byte $5,$5
.byte $00,$30,$b3,$bb,$00
.byte $30,$b3,$bb,$bb,$bb
.byte $33,$bb,$bb,$bb,$bb
.byte $03,$bb,$bb,$bb,$0b
.byte $00,$33,$3b,$3b,$00
sphere3:
.byte $5,$5
.byte $00,$30,$b3,$bb,$00
.byte $30,$b3,$bb,$bb,$bb
.byte $33,$bb,$bb,$bb,$bb
.byte $03,$bb,$bb,$bb,$0b
.byte $00,$33,$3b,$3b,$00
sphere4:
.byte $5,$5
.byte $00,$b0,$bb,$bb,$00
.byte $30,$bb,$bb,$bb,$b0
.byte $33,$33,$3b,$bb,$bb
.byte $03,$33,$33,$33,$0b
.byte $00,$33,$33,$33,$00
sphere5:
.byte $5,$5
.byte $00,$b0,$bb,$b0,$00
.byte $30,$bb,$bb,$bb,$30
.byte $33,$3b,$3b,$3b,$33
.byte $03,$33,$33,$33,$03
.byte $00,$33,$33,$33,$00
sphere6:
.byte $5,$5
.byte $00,$30,$bb,$bb,$00
.byte $30,$bb,$bb,$bb,$30
.byte $bb,$bb,$bb,$3b,$33
.byte $03,$3b,$33,$33,$33
.byte $00,$33,$33,$33,$00
sphere7:
.byte $5,$5
.byte $00,$30,$bb,$b3,$30
.byte $b0,$bb,$bb,$bb,$33
.byte $bb,$bb,$bb,$bb,$33
.byte $0b,$bb,$bb,$3b,$33
.byte $00,$33,$33,$33,$00