ds: no longer a physicist, now an astronaut

This commit is contained in:
Vince Weaver 2019-10-02 00:38:01 -04:00
parent 0e71b8bccd
commit 88b6b337fd
15 changed files with 1561 additions and 221 deletions

View File

@ -32,6 +32,7 @@ demosplash.o: demosplash.s \
pt3_lib_init.s pt3_lib_core.s pt3_lib_mockingboard.s \
interrupt_handler.s \
starbase.s starbase_action.s \
graphics/sprites/alien.inc graphics/sprites/astronaut.inc \
dya_space_demo.pt3 appleII_40_96.inc
ca65 -o demosplash.o demosplash.s -l demosplash.lst

View File

@ -0,0 +1,600 @@
; note, for some reason these are all facing left
;=====================
;=====================
; STANDING
;=====================
;=====================
;====================
; Going Left
alien_stand:
.byte $5,$8
.byte $aa,$7a,$f7,$7f,$aa
.byte $aa,$77,$07,$00,$aa
.byte $aa,$aa,$00,$77,$aa
.byte $aa,$aa,$10,$77,$aa
.byte $aa,$aa,$07,$00,$aa
.byte $aa,$aa,$77,$a5,$5a
.byte $aa,$aa,$07,$aa,$05
.byte $aa,$0a,$00,$0a,$00
;=====================
;=====================
; WALKING
;=====================
;=====================
alien_walk_progression:
.word alien_walk_left1
.word alien_walk_left2
.word alien_walk_left3
.word alien_walk_left4
.word alien_walk_left5
.word alien_walk_left6
.word alien_walk_left7
.word alien_walk_left8
alien_walk_left1:
.byte $5,$8
.byte $aa,$7a,$f7,$7f,$aa
.byte $aa,$77,$07,$00,$aa
.byte $aa,$5a,$00,$77,$aa
.byte $aa,$55,$10,$77,$aa
.byte $aa,$aa,$00,$07,$aa
.byte $aa,$aa,$77,$a5,$5a
.byte $aa,$aa,$07,$aa,$05
.byte $aa,$a0,$00,$0a,$00
alien_walk_left2:
.byte $5,$8
.byte $aa,$7a,$f7,$7f,$aa
.byte $aa,$77,$07,$00,$aa
.byte $aa,$aa,$00,$77,$aa
.byte $aa,$5a,$77,$17,$aa
.byte $aa,$aa,$07,$00,$aa
.byte $aa,$aa,$77,$55,$aa
.byte $aa,$aa,$07,$aa,$05
.byte $aa,$0a,$00,$00,$a0
alien_walk_left3:
.byte $5,$8
.byte $aa,$7a,$f7,$7f,$aa
.byte $aa,$77,$07,$00,$aa
.byte $aa,$aa,$00,$77,$aa
.byte $aa,$aa,$77,$10,$aa
.byte $aa,$aa,$07,$00,$aa
.byte $aa,$aa,$77,$55,$aa
.byte $aa,$aa,$07,$00,$0a
.byte $aa,$0a,$00,$aa,$a0
alien_walk_left4:
.byte $5,$8
.byte $aa,$7a,$f7,$7f,$aa
.byte $aa,$77,$07,$00,$aa
.byte $aa,$aa,$00,$77,$aa
.byte $aa,$aa,$77,$10,$aa
.byte $aa,$a7,$00,$00,$aa
.byte $aa,$aa,$77,$55,$aa
.byte $aa,$aa,$07,$05,$aa
.byte $aa,$0a,$00,$00,$aa
alien_walk_left5:
.byte $5,$8
.byte $aa,$7a,$f7,$7f,$aa
.byte $aa,$77,$07,$00,$aa
.byte $aa,$aa,$00,$77,$aa
.byte $aa,$aa,$77,$10,$aa
.byte $aa,$a7,$00,$00,$aa
.byte $aa,$5a,$55,$77,$aa
.byte $aa,$00,$a7,$07,$aa
.byte $a0,$a0,$0a,$00,$aa
alien_walk_left6:
.byte $5,$8
.byte $aa,$7a,$f7,$7f,$aa
.byte $aa,$77,$07,$00,$aa
.byte $aa,$aa,$00,$77,$aa
.byte $aa,$aa,$77,$17,$5a
.byte $aa,$aa,$07,$00,$a5
.byte $aa,$5a,$55,$77,$7a
.byte $aa,$05,$aa,$aa,$07
.byte $a0,$a0,$aa,$0a,$00
alien_walk_left7:
.byte $5,$8
.byte $aa,$7a,$f7,$7f,$aa
.byte $aa,$77,$07,$00,$aa
.byte $aa,$aa,$00,$77,$aa
.byte $aa,$aa,$10,$77,$aa
.byte $aa,$aa,$00,$07,$aa
.byte $aa,$aa,$57,$77,$aa
.byte $aa,$aa,$05,$a7,$07
.byte $aa,$0a,$00,$00,$a0
alien_walk_left8:
.byte $5,$8
.byte $aa,$7a,$f7,$7f,$aa
.byte $aa,$77,$07,$00,$aa
.byte $aa,$aa,$00,$77,$aa
.byte $aa,$5a,$10,$77,$7a
.byte $aa,$a5,$00,$00,$a7
.byte $aa,$aa,$55,$77,$aa
.byte $aa,$aa,$a5,$07,$aa
.byte $aa,$aa,$00,$00,$aa
;=====================
;=====================
; WALKING with gun
;=====================
;=====================
alien_walk_gun_progression:
.word alien_walk_gun_left1
.word alien_walk_gun_left2
.word alien_walk_gun_left3
.word alien_walk_gun_left4
.word alien_walk_gun_left5
.word alien_walk_gun_left6
.word alien_walk_gun_left7
.word alien_walk_gun_left8
alien_walk_gun_left1:
.byte $5,$8
.byte $aa,$7a,$f7,$7f,$aa
.byte $aa,$77,$07,$00,$aa
.byte $a0,$5a,$00,$77,$aa
.byte $aa,$aa,$10,$77,$aa
.byte $aa,$aa,$00,$07,$aa
.byte $aa,$aa,$77,$a5,$5a
.byte $aa,$aa,$07,$aa,$05
.byte $aa,$a0,$00,$0a,$00
alien_walk_gun_left2:
.byte $5,$8
.byte $aa,$7a,$f7,$7f,$aa
.byte $aa,$77,$07,$00,$aa
.byte $0a,$aa,$00,$77,$aa
.byte $aa,$5a,$77,$17,$aa
.byte $aa,$aa,$07,$00,$aa
.byte $aa,$aa,$77,$55,$aa
.byte $aa,$aa,$07,$aa,$05
.byte $aa,$0a,$00,$00,$a0
alien_walk_gun_left3:
.byte $5,$8
.byte $aa,$7a,$f7,$7f,$aa
.byte $aa,$77,$07,$00,$aa
.byte $0a,$aa,$00,$77,$aa
.byte $aa,$aa,$77,$10,$aa
.byte $aa,$a5,$07,$00,$aa
.byte $aa,$aa,$77,$55,$aa
.byte $aa,$aa,$07,$00,$0a
.byte $aa,$0a,$00,$aa,$a0
alien_walk_gun_left4:
.byte $5,$8
.byte $aa,$7a,$f7,$7f,$aa
.byte $aa,$77,$07,$00,$aa
.byte $0a,$aa,$00,$77,$aa
.byte $aa,$a5,$77,$10,$aa
.byte $aa,$a7,$00,$00,$aa
.byte $aa,$aa,$77,$55,$aa
.byte $aa,$aa,$07,$05,$aa
.byte $aa,$0a,$00,$00,$aa
alien_walk_gun_left5:
.byte $5,$8
.byte $aa,$7a,$f7,$7f,$aa
.byte $aa,$77,$07,$00,$aa
.byte $a0,$5a,$00,$77,$aa
.byte $aa,$aa,$77,$10,$aa
.byte $aa,$a7,$00,$00,$aa
.byte $aa,$5a,$55,$77,$aa
.byte $aa,$00,$a7,$07,$aa
.byte $a0,$a0,$0a,$00,$aa
alien_walk_gun_left6:
.byte $5,$8
.byte $aa,$7a,$f7,$7f,$aa
.byte $aa,$77,$07,$00,$aa
.byte $a0,$5a,$00,$77,$aa
.byte $aa,$aa,$77,$17,$aa
.byte $aa,$aa,$07,$00,$aa
.byte $aa,$5a,$55,$77,$7a
.byte $aa,$05,$aa,$aa,$07
.byte $a0,$a0,$aa,$0a,$00
alien_walk_gun_left7:
.byte $5,$8
.byte $aa,$7a,$f7,$7f,$aa
.byte $aa,$77,$07,$00,$aa
.byte $0a,$aa,$00,$77,$aa
.byte $aa,$a5,$10,$77,$aa
.byte $aa,$aa,$00,$07,$aa
.byte $aa,$aa,$57,$77,$aa
.byte $aa,$aa,$05,$a7,$07
.byte $aa,$0a,$00,$00,$a0
alien_walk_gun_left8:
.byte $5,$8
.byte $aa,$7a,$f7,$7f,$aa
.byte $aa,$77,$07,$00,$aa
.byte $0a,$aa,$00,$77,$aa
.byte $aa,$a5,$10,$77,$7a
.byte $aa,$aa,$00,$00,$a7
.byte $aa,$aa,$55,$77,$aa
.byte $aa,$aa,$a5,$07,$aa
.byte $aa,$aa,$00,$00,$aa
;=====================
;=====================
; RUNNING
;=====================
;=====================
alien_run_progression:
.word alien_run_left1
.word alien_run_left2
.word alien_run_left3
.word alien_run_left4
.word alien_run_left5
.word alien_run_left6
.word alien_run_left7
.word alien_run_left8
alien_run_left1:
.byte $5,$8
.byte $aa,$7a,$f7,$7f,$aa
.byte $aa,$77,$07,$00,$aa
.byte $aa,$5a,$00,$77,$aa
.byte $aa,$55,$10,$77,$aa
.byte $aa,$aa,$00,$07,$aa
.byte $aa,$aa,$77,$a5,$5a
.byte $aa,$aa,$07,$aa,$05
.byte $aa,$a0,$00,$0a,$00
alien_run_left2:
.byte $5,$8
.byte $aa,$7a,$f7,$7f,$aa
.byte $aa,$77,$07,$00,$aa
.byte $aa,$aa,$00,$77,$aa
.byte $aa,$5a,$77,$17,$aa
.byte $aa,$aa,$07,$00,$aa
.byte $aa,$aa,$77,$55,$aa
.byte $aa,$aa,$07,$aa,$05
.byte $aa,$0a,$00,$00,$a0
alien_run_left3:
.byte $5,$8
.byte $aa,$7a,$f7,$7f,$aa
.byte $aa,$77,$07,$00,$aa
.byte $aa,$aa,$00,$77,$aa
.byte $aa,$aa,$77,$10,$aa
.byte $aa,$aa,$07,$00,$aa
.byte $aa,$aa,$77,$55,$aa
.byte $aa,$aa,$07,$00,$0a
.byte $aa,$0a,$00,$aa,$a0
alien_run_left4:
.byte $5,$8
.byte $aa,$7a,$f7,$7f,$aa
.byte $aa,$77,$07,$00,$aa
.byte $aa,$aa,$00,$77,$aa
.byte $aa,$aa,$77,$10,$aa
.byte $aa,$a7,$00,$00,$aa
.byte $aa,$aa,$77,$55,$aa
.byte $aa,$aa,$07,$05,$aa
.byte $aa,$0a,$00,$00,$aa
alien_run_left5:
.byte $5,$8
.byte $aa,$7a,$f7,$7f,$aa
.byte $aa,$77,$07,$00,$aa
.byte $aa,$aa,$00,$77,$aa
.byte $aa,$aa,$77,$10,$aa
.byte $aa,$a7,$00,$00,$aa
.byte $aa,$5a,$55,$77,$aa
.byte $aa,$00,$a7,$07,$aa
.byte $a0,$a0,$0a,$00,$aa
alien_run_left6:
.byte $5,$8
.byte $aa,$7a,$f7,$7f,$aa
.byte $aa,$77,$07,$00,$aa
.byte $aa,$aa,$00,$77,$aa
.byte $aa,$aa,$77,$17,$5a
.byte $aa,$aa,$07,$00,$a5
.byte $aa,$5a,$55,$77,$7a
.byte $aa,$05,$aa,$aa,$07
.byte $a0,$a0,$aa,$0a,$00
alien_run_left7:
.byte $5,$8
.byte $aa,$7a,$f7,$7f,$aa
.byte $aa,$77,$07,$00,$aa
.byte $aa,$aa,$00,$77,$aa
.byte $aa,$aa,$10,$77,$aa
.byte $aa,$aa,$00,$07,$aa
.byte $aa,$aa,$57,$77,$aa
.byte $aa,$aa,$05,$a7,$07
.byte $aa,$0a,$00,$00,$a0
alien_run_left8:
.byte $5,$8
.byte $aa,$7a,$f7,$7f,$aa
.byte $aa,$77,$07,$00,$aa
.byte $aa,$aa,$00,$77,$aa
.byte $aa,$5a,$10,$77,$7a
.byte $aa,$a5,$00,$00,$a7
.byte $aa,$aa,$55,$77,$aa
.byte $aa,$aa,$a5,$07,$aa
.byte $aa,$aa,$00,$00,$aa
;=====================
;=====================
; JUMPING
;=====================
;=====================
;=====================
;=====================
; CROUCHING
;=====================
;=====================
alien_crouch_progression:
.word alien_crouch1
.word alien_crouch2
alien_crouch1:
.byte $5,$8
.byte $AA,$AA,$AA,$AA,$AA
.byte $AA,$7A,$f7,$7f,$aa
.byte $AA,$77,$07,$00,$aa
.byte $AA,$AA,$00,$77,$aa
.byte $AA,$A7,$17,$07,$aa
.byte $AA,$AA,$70,$70,$aa
.byte $AA,$AA,$07,$05,$0a
.byte $AA,$0A,$00,$AA,$00
alien_crouch2:
.byte $5,$8
.byte $AA,$AA,$AA,$AA,$AA
.byte $AA,$AA,$7A,$fA,$aa
.byte $AA,$77,$7f,$07,$aa
.byte $AA,$A7,$00,$70,$aa
.byte $AA,$7A,$70,$07,$aa
.byte $AA,$AA,$70,$70,$aa
.byte $AA,$AA,$07,$55,$0a
.byte $AA,$0A,$00,$0A,$00
;=====================
;=====================
; TURNING
;=====================
;=====================
alien_turning_sprite:
.byte $5,$8
.byte $aa,$57,$77,$aa,$aa
.byte $0a,$05,$00,$0a,$aa
.byte $77,$00,$00,$55,$aa
.byte $77,$00,$00,$55,$aa
.byte $aa,$00,$00,$a5,$aa
.byte $aa,$77,$55,$aa,$aa
.byte $07,$aa,$05,$aa,$aa
.byte $00,$aa,$00,$aa,$aa
;=====================
;=====================
; YELLING
;=====================
;=====================
alien_yell_progression:
.word alien_yelling_1
.word alien_yelling_2
alien_yelling_1:
.byte $5,$8
.byte $aa,$7a,$f7,$7f,$aa
.byte $0a,$a7,$07,$00,$aa
.byte $00,$aa,$00,$77,$aa
.byte $aa,$55,$10,$77,$7a
.byte $aa,$aa,$00,$00,$a7
.byte $aa,$aa,$55,$77,$aa
.byte $aa,$aa,$a5,$07,$aa
.byte $aa,$0a,$00,$00,$aa
alien_yelling_2:
.byte $5,$8
.byte $aa,$7a,$f7,$7f,$aa
.byte $00,$77,$07,$00,$aa
.byte $0a,$5a,$00,$77,$aa
.byte $aa,$a5,$10,$77,$7a
.byte $aa,$aa,$00,$00,$a7
.byte $aa,$aa,$55,$77,$aa
.byte $aa,$aa,$a5,$07,$aa
.byte $aa,$0a,$00,$00,$aa
;=====================
;=====================
; SHOOTING UPWARD
;=====================
;=====================
alien_shoot_up_progression:
.word alien_shooting_up_sprite
.word alien_shooting_up_sprite
.word alien_yelling_1
.word alien_yelling_2
alien_shooting_up_sprite:
.byte $5,$8
.byte $00,$7a,$f7,$7f,$aa
.byte $00,$77,$07,$00,$aa
.byte $55,$aa,$00,$77,$aa
.byte $aa,$55,$10,$77,$7a
.byte $aa,$aa,$00,$00,$a7
.byte $aa,$aa,$55,$77,$aa
.byte $aa,$aa,$a5,$07,$aa
.byte $aa,$0a,$00,$00,$aa
;=====================
;=====================
; DISINTEGRATING
;=====================
;=====================
alien_disintegrating_progression:
.word alien_disintegrating_2 ; 0
.word alien_disintegrating_3 ; 1
.word alien_disintegrating_4 ; 2
.word alien_disintegrating_4 ; 3
.word alien_disintegrating_4 ; 4
.word alien_disintegrating_4 ; 5
.word alien_disintegrating_3 ; 6
.word alien_disintegrating_9 ; 7
.word alien_disintegrating_10 ; 8
.word alien_disintegrating_11 ; 9
.word alien_disintegrating_12 ; 10
.word alien_disintegrating_13 ; 11
.word alien_disintegrating_14 ; 12
.word alien_disintegrating_14 ; 13
alien_disintegrating_2: ; 0
.byte $5,$8
.byte $aa,$ea,$ea,$ea,$aa
.byte $fe,$ff,$ff,$ee,$ea
.byte $ef,$ff,$ff,$ff,$ee
.byte $aa,$ff,$ff,$ff,$ee
.byte $fe,$fe,$ff,$ff,$ee
.byte $ef,$ff,$ff,$ff,$ee
.byte $ee,$ff,$ff,$ff,$ff
.byte $fe,$ff,$ff,$ee,$ff
alien_disintegrating_3: ; 1
.byte $5,$8
.byte $aa,$aa,$aa,$aa,$aa
.byte $fa,$ff,$ff,$aa,$aa
.byte $af,$af,$fa,$ff,$aa
.byte $af,$af,$fa,$ff,$aa
.byte $fa,$fa,$aa,$ff,$aa
.byte $af,$ff,$ff,$ff,$aa
.byte $aa,$ff,$ff,$fa,$fa
.byte $fa,$ff,$aa,$aa,$ff
alien_disintegrating_4: ; 2
.byte $5,$8
.byte $aa,$aa,$aa,$aa,$aa
.byte $0a,$00,$00,$aa,$aa
.byte $a0,$a0,$0a,$00,$aa
.byte $a0,$a0,$0a,$00,$aa
.byte $0a,$0a,$aa,$00,$aa
.byte $a0,$00,$00,$00,$aa
.byte $aa,$00,$00,$0a,$0a
.byte $0a,$00,$aa,$aa,$00
alien_disintegrating_9: ; 3
.byte $5,$8
.byte $aa,$aa,$aa,$fa,$aa
.byte $5a,$aa,$aa,$aa,$aa
.byte $aa,$aa,$fa,$aa,$0a
.byte $a7,$aa,$aa,$aa,$aa
.byte $aa,$aa,$aa,$af,$aa
.byte $aa,$7a,$aa,$aa,$7a
.byte $aa,$aa,$aa,$aa,$aa
.byte $fa,$aa,$aa,$aa,$aa
alien_disintegrating_10: ; 4
.byte $5,$8
.byte $5a,$aa,$aa,$aa,$fa
.byte $aa,$aa,$aa,$aa,$aa
.byte $aa,$aa,$aa,$fa,$a0
.byte $a7,$aa,$aa,$fa,$aa
.byte $aa,$aa,$aa,$aa,$aa
.byte $aa,$aa,$aa,$aa,$7a
.byte $a7,$aa,$aa,$aa,$a7
.byte $fa,$aa,$aa,$aa,$aa
alien_disintegrating_11: ; 5
.byte $5,$8
.byte $aa,$aa,$aa,$aa,$aa
.byte $aa,$5a,$aa,$fa,$aa
.byte $aa,$aa,$aa,$aa,$fa
.byte $a7,$aa,$aa,$aa,$0a
.byte $a7,$aa,$aa,$aa,$fa
.byte $aa,$aa,$aa,$aa,$7a
.byte $aa,$aa,$aa,$aa,$7a
.byte $fa,$aa,$aa,$aa,$aa
alien_disintegrating_12: ; 6
.byte $5,$8
.byte $aa,$aa,$aa,$aa,$aa
.byte $aa,$aa,$aa,$aa,$aa
.byte $aa,$aa,$aa,$aa,$aa
.byte $aa,$a5,$aa,$fa,$aa
.byte $aa,$aa,$aa,$0a,$aa
.byte $7a,$aa,$aa,$aa,$af
.byte $7a,$aa,$aa,$aa,$af
.byte $fa,$aa,$aa,$aa,$5a
alien_disintegrating_13: ; 7
.byte $5,$8
.byte $aa,$aa,$aa,$aa,$aa
.byte $aa,$aa,$aa,$aa,$aa
.byte $aa,$aa,$aa,$aa,$aa
.byte $aa,$aa,$aa,$aa,$aa
.byte $aa,$aa,$aa,$aa,$aa
.byte $aa,$aa,$aa,$fa,$aa
.byte $aa,$a5,$aa,$0a,$aa
.byte $5a,$a7,$aa,$aa,$fa
alien_disintegrating_14: ; 8
.byte $5,$8
.byte $aa,$aa,$aa,$aa,$aa
.byte $aa,$aa,$aa,$aa,$aa
.byte $aa,$aa,$aa,$aa,$aa
.byte $aa,$aa,$aa,$aa,$aa
.byte $aa,$aa,$aa,$aa,$aa
.byte $aa,$aa,$aa,$aa,$aa
.byte $aa,$aa,$aa,$aa,$aa
.byte $7a,$5a,$fa,$0a,$fa
;=====================
;=====================
; SHOOTING
;=====================
;=====================
alien_shoot_sprite:
.byte $5,$8
.byte $aa,$7a,$f7,$7f,$aa
.byte $aa,$77,$07,$00,$aa
.byte $0a,$aa,$00,$77,$aa
.byte $aa,$a7,$17,$10,$aa
.byte $aa,$aa,$00,$00,$aa
.byte $aa,$aa,$77,$a5,$5a
.byte $aa,$aa,$07,$aa,$05
.byte $aa,$0a,$00,$0a,$00

View File

@ -0,0 +1,741 @@
; these are all facing left
;=====================
;=====================
; STANDING
;=====================
;=====================
;====================
; Going Left
astro_stand:
.byte 5,8
.byte $aa,$9a,$9a,$aa,$aa
.byte $aa,$bb,$99,$aa,$aa
.byte $aa,$aa,$0b,$aa,$aa
.byte $aa,$aa,$bb,$aa,$aa
.byte $aa,$aa,$bb,$aa,$aa
.byte $aa,$aa,$44,$aa,$aa
.byte $aa,$aa,$44,$aa,$aa
.byte $aa,$fa,$f4,$aa,$aa
;=====================
;=====================
; WALKING
;=====================
;=====================
astro_walk_progression:
.word astro_walk_left1
.word astro_walk_left2
.word astro_walk_left3
.word astro_walk_left4
.word astro_walk_left5
.word astro_walk_left6
.word astro_walk_left7
.word astro_walk_left8
.word astro_walk_left9
.word astro_walk_left10
astro_walk_left1:
.byte 5,8
.byte $aa,$9a,$9a,$aa,$aa
.byte $aa,$bb,$99,$aa,$aa
.byte $aa,$aa,$0b,$aa,$aa
.byte $aa,$aa,$bb,$aa,$aa
.byte $aa,$ab,$bb,$aa,$aa
.byte $aa,$aa,$44,$aa,$aa
.byte $aa,$44,$a4,$cc,$aa
.byte $af,$af,$7a,$7c,$aa
astro_walk_left2:
.byte 5,8
.byte $aa,$9a,$9a,$aa,$aa
.byte $aa,$bb,$99,$aa,$aa
.byte $aa,$aa,$0b,$aa,$aa
.byte $aa,$aa,$bb,$aa,$aa
.byte $aa,$ba,$bb,$aa,$aa
.byte $aa,$aa,$44,$aa,$aa
.byte $aa,$44,$a4,$cc,$aa
.byte $af,$f4,$7a,$7c,$aa
astro_walk_left3:
.byte 5,8
.byte $aa,$9a,$9a,$aa,$aa
.byte $aa,$bb,$99,$aa,$aa
.byte $aa,$aa,$0b,$aa,$aa
.byte $aa,$aa,$bb,$aa,$aa
.byte $aa,$ba,$0b,$aa,$aa
.byte $aa,$aa,$44,$aa,$aa
.byte $aa,$44,$a4,$cc,$aa
.byte $fa,$f4,$7a,$7c,$aa
astro_walk_left4:
.byte 5,8
.byte $aa,$9a,$9a,$aa,$aa
.byte $aa,$bb,$99,$aa,$aa
.byte $aa,$aa,$0b,$aa,$aa
.byte $aa,$aa,$bb,$aa,$aa
.byte $aa,$ba,$0b,$aa,$aa
.byte $aa,$aa,$44,$aa,$aa
.byte $aa,$44,$a4,$ca,$aa
.byte $fa,$f4,$aa,$7c,$a7
astro_walk_left5:
.byte 5,8
.byte $aa,$9a,$9a,$aa,$aa
.byte $aa,$bb,$99,$aa,$aa
.byte $aa,$aa,$0b,$aa,$aa
.byte $aa,$aa,$bb,$aa,$aa
.byte $aa,$bb,$00,$aa,$aa
.byte $7a,$aa,$44,$aa,$aa
.byte $aa,$cc,$44,$aa,$aa
.byte $aa,$f7,$f4,$aa,$aa
astro_walk_left6:
.byte 5,8
.byte $aa,$9a,$9a,$aa,$aa
.byte $aa,$bb,$99,$aa,$aa
.byte $aa,$aa,$0b,$aa,$aa
.byte $aa,$aa,$bb,$aa,$aa
.byte $aa,$ba,$0b,$aa,$aa
.byte $aa,$ca,$44,$aa,$aa
.byte $7a,$cc,$a4,$4a,$aa
.byte $aa,$a7,$fa,$f4,$aa
astro_walk_left7:
.byte 5,8
.byte $aa,$9a,$9a,$aa,$aa
.byte $aa,$bb,$99,$aa,$aa
.byte $aa,$aa,$0b,$aa,$aa
.byte $aa,$aa,$bb,$aa,$aa
.byte $aa,$aa,$0b,$aa,$aa
.byte $aa,$ca,$44,$aa,$aa
.byte $aa,$cc,$a4,$4a,$aa
.byte $a7,$7c,$fa,$f4,$aa
astro_walk_left8:
.byte 5,8
.byte $aa,$9a,$9a,$aa,$aa
.byte $aa,$bb,$99,$aa,$aa
.byte $aa,$aa,$0b,$aa,$aa
.byte $aa,$aa,$bb,$aa,$aa
.byte $aa,$ba,$0b,$aa,$aa
.byte $aa,$ca,$44,$aa,$aa
.byte $aa,$cc,$a4,$44,$aa
.byte $7a,$7c,$aa,$fa,$af
astro_walk_left9:
.byte 5,8
.byte $aa,$9a,$9a,$aa,$aa
.byte $aa,$bb,$99,$aa,$aa
.byte $aa,$aa,$0b,$aa,$aa
.byte $aa,$aa,$bb,$aa,$aa
.byte $aa,$aa,$bb,$aa,$aa
.byte $aa,$aa,$44,$aa,$aa
.byte $aa,$aa,$c4,$a4,$fa
.byte $aa,$7a,$7c,$af,$aa
astro_walk_left10:
.byte 5,8
.byte $aa,$9a,$9a,$aa,$aa
.byte $aa,$bb,$99,$aa,$aa
.byte $aa,$aa,$0b,$aa,$aa
.byte $aa,$aa,$bb,$aa,$aa
.byte $aa,$ba,$bb,$aa,$aa
.byte $aa,$aa,$44,$aa,$aa
.byte $aa,$aa,$44,$aa,$aa
.byte $aa,$fa,$7f,$7c,$aa
;=====================
;=====================
; RUNNING
;=====================
;=====================
astro_run_progression:
.word astro_run_left1
.word astro_run_left2
.word astro_run_left3
.word astro_run_left4
.word astro_run_left5
.word astro_run_left6
.word astro_run_left7
.word astro_run_left8
.word astro_run_left9
.word astro_run_left9
astro_run_left1:
.byte 5,8
.byte $aa,$9a,$9a,$aa,$aa
.byte $aa,$bb,$99,$aa,$aa
.byte $aa,$aa,$0b,$aa,$aa
.byte $aa,$aa,$bb,$aa,$aa
.byte $aa,$ba,$0b,$aa,$aa
.byte $aa,$aa,$44,$aa,$aa
.byte $aa,$aa,$44,$ac,$77
.byte $aa,$fa,$f4,$aa,$aa
astro_run_left2:
.byte 5,8
.byte $aa,$9a,$9a,$aa,$aa
.byte $aa,$bb,$99,$aa,$aa
.byte $aa,$aa,$0b,$aa,$aa
.byte $aa,$aa,$bb,$aa,$aa
.byte $ba,$ab,$00,$aa,$aa
.byte $aa,$ca,$44,$aa,$aa
.byte $aa,$ac,$44,$4a,$aa
.byte $aa,$aa,$fa,$f4,$aa
astro_run_left3:
.byte 5,8
.byte $aa,$9a,$9a,$aa,$aa
.byte $aa,$bb,$99,$aa,$aa
.byte $aa,$aa,$0b,$aa,$aa
.byte $aa,$aa,$bb,$aa,$aa
.byte $ab,$ab,$00,$aa,$aa
.byte $aa,$ca,$44,$aa,$aa
.byte $aa,$cc,$a4,$4a,$aa
.byte $a7,$a7,$fa,$af,$aa
astro_run_left4:
.byte 5,8
.byte $aa,$9a,$9a,$aa,$aa
.byte $aa,$bb,$99,$aa,$aa
.byte $aa,$aa,$0b,$aa,$aa
.byte $ba,$ba,$0b,$aa,$aa
.byte $aa,$ab,$00,$aa,$aa
.byte $aa,$ca,$44,$aa,$aa
.byte $aa,$cc,$aa,$44,$aa
.byte $7a,$a7,$aa,$fa,$af
astro_run_left5:
.byte 5,8
.byte $aa,$9a,$9a,$aa,$aa
.byte $aa,$bb,$99,$aa,$aa
.byte $aa,$aa,$0b,$aa,$aa
.byte $aa,$aa,$bb,$aa,$aa
.byte $aa,$ab,$0b,$aa,$aa
.byte $aa,$aa,$44,$4a,$fa
.byte $aa,$cc,$aa,$aa,$af
.byte $7a,$7c,$aa,$aa,$aa
astro_run_left6:
.byte 5,8
.byte $aa,$9a,$9a,$aa,$aa
.byte $aa,$bb,$99,$aa,$aa
.byte $aa,$aa,$0b,$aa,$aa
.byte $aa,$aa,$bb,$aa,$aa
.byte $aa,$ab,$00,$aa,$aa
.byte $aa,$aa,$44,$4a,$fa
.byte $aa,$aa,$cc,$aa,$af
.byte $aa,$7a,$7c,$aa,$aa
astro_run_left7:
.byte 5,8
.byte $aa,$9a,$9a,$aa,$aa
.byte $aa,$bb,$99,$aa,$aa
.byte $aa,$aa,$0b,$aa,$aa
.byte $aa,$aa,$bb,$aa,$aa
.byte $aa,$ab,$0b,$aa,$aa
.byte $aa,$4a,$44,$aa,$aa
.byte $aa,$a4,$c4,$ff,$aa
.byte $aa,$7a,$7c,$aa,$aa
astro_run_left8:
.byte 5,8
.byte $aa,$9a,$9a,$aa,$aa
.byte $aa,$bb,$99,$aa,$aa
.byte $aa,$aa,$0b,$aa,$aa
.byte $aa,$ba,$bb,$aa,$aa
.byte $aa,$aa,$0b,$ba,$aa
.byte $aa,$4a,$44,$aa,$aa
.byte $aa,$44,$ac,$ca,$aa
.byte $af,$af,$7a,$7c,$aa
astro_run_left9:
.byte 5,8
.byte $aa,$9a,$9a,$aa,$aa
.byte $aa,$bb,$99,$aa,$aa
.byte $aa,$aa,$0b,$aa,$aa
.byte $aa,$ba,$0b,$bb,$aa
.byte $aa,$aa,$00,$bb,$aa
.byte $aa,$aa,$44,$ca,$aa
.byte $aa,$44,$aa,$cc,$aa
.byte $fa,$f4,$aa,$7a,$7c
;=====================
;=====================
; JUMPING
;=====================
;=====================
;=====================
;=====================
; KICKING
;=====================
;=====================
; note: he needs to be facing left by default
kick1:
.byte 5,8
.byte $aa,$9a,$9a,$aa,$aa
.byte $aa,$bb,$99,$aa,$aa
.byte $aa,$aa,$0b,$aa,$aa
.byte $aa,$ba,$0b,$aa,$aa
.byte $bb,$ab,$00,$ba,$aa
.byte $aa,$aa,$44,$aa,$aa
.byte $aa,$44,$a4,$ca,$aa
.byte $af,$f4,$5a,$5c,$aa
;=====================
;=====================
; SHOOTING
;=====================
;=====================
shooting1:
.byte 5,8
.byte $AA,$AA,$9A,$9A,$AA
.byte $AA,$AA,$bb,$99,$AA
.byte $0A,$0A,$AA,$0B,$AA
.byte $AA,$A0,$AB,$B0,$AA
.byte $AA,$AA,$AA,$00,$AA
.byte $AA,$AA,$AA,$44,$AA
.byte $AA,$AA,$44,$c4,$AA
.byte $AA,$fA,$f4,$7A,$7C
;=====================
;=====================
; FALLING
;=====================
;=====================
; note: he falls into a crouch
astro_falling:
.byte 5,8
.byte $aa,$aa,$aa,$aa,$aa
.byte $aa,$aa,$9a,$9a,$aa
.byte $aa,$aa,$bb,$99,$aa
.byte $ab,$ba,$ba,$b0,$0b
.byte $aa,$aa,$aa,$00,$00
.byte $aa,$aa,$aa,$44,$44
.byte $ca,$4c,$44,$a4,$aa
.byte $f5,$f4,$aa,$aa,$aa
;=====================
;=====================
; CROUCHING
;=====================
;=====================
crouch_progression:
.word crouch1
.word crouch2
crouch1:
.byte 3,8
.byte $aa,$aa,$aa
.byte $9a,$9a,$aa
.byte $bb,$99,$aa
.byte $aa,$0b,$aa
.byte $aa,$bb,$aa
.byte $aa,$bb,$aa
.byte $44,$44,$aa
.byte $5a,$fc,$f4
crouch2:
.byte 5,8
.byte $AA,$aa,$aa,$aa,$AA
.byte $AA,$aa,$aa,$aa,$AA
.byte $AA,$9a,$9a,$aa,$AA
.byte $AA,$bb,$99,$aa,$AA
.byte $AA,$aa,$0b,$0a,$AA
.byte $AA,$aa,$bb,$00,$AA
.byte $AA,$ba,$4b,$aa,$AA
.byte $AA,$54,$f4,$f4,$AA
;=====================
;=====================
; SWIMMING
;=====================
;=====================
; see physicist_l1_swim.inc
;=====================
;=====================
; COLLAPSING
;=====================
;=====================
;=======================
; I've got a match
; your embrace, and my collapse
collapse_progression:
.word collapse1 ; 00
.word collapse2 ; 02
.word collapse3 ; 04
.word collapse4 ; 06
.word collapse5 ; 08
.word collapse5 ; 10
.word collapse5 ; 12
.word collapse5 ; 14
.word collapse5 ; 16
collapse1:
.byte 4,8
.byte $9a,$9a,$aa,$aa
.byte $ab,$99,$aa,$aa
.byte $aa,$0b,$aa,$aa
.byte $aa,$bb,$aa,$aa
.byte $aa,$bb,$aa,$aa
.byte $aa,$44,$aa,$aa
.byte $aa,$a4,$4a,$aa
.byte $aa,$fa,$f4,$aa
collapse2:
.byte 5,8
.byte $aa,$aa,$aa,$aa,$aa
.byte $b9,$99,$aa,$aa,$aa
.byte $ab,$b9,$aa,$aa,$aa
.byte $aa,$b0,$aa,$aa,$aa
.byte $aa,$bb,$00,$aa,$aa
.byte $aa,$bb,$44,$4a,$aa
.byte $aa,$ab,$aa,$a4,$4a
.byte $aa,$aa,$aa,$fa,$f4
collapse3:
.byte 6,8
.byte $aa,$aa,$aa,$aa,$aa,$aa
.byte $aa,$aa,$aa,$aa,$aa,$aa
.byte $9a,$9a,$aa,$aa,$aa,$aa
.byte $bb,$99,$aa,$aa,$aa,$aa
.byte $aa,$0b,$0a,$aa,$aa,$aa
.byte $aa,$bb,$00,$4a,$aa,$aa
.byte $aa,$bb,$a0,$44,$44,$fa
.byte $aa,$ab,$aa,$aa,$a4,$ff
collapse4:
.byte 7,8
.byte $aa,$aa,$aa,$aa,$aa,$aa,$aa
.byte $aa,$aa,$aa,$aa,$aa,$aa,$aa
.byte $aa,$aa,$aa,$aa,$aa,$aa,$aa
.byte $aa,$aa,$aa,$aa,$aa,$aa,$aa
.byte $9a,$9a,$aa,$aa,$aa,$aa,$aa
.byte $99,$bb,$00,$0a,$aa,$aa,$aa
.byte $aa,$aa,$bb,$00,$44,$4a,$fa
.byte $aa,$aa,$aa,$bb,$aa,$a4,$ff
collapse5:
.byte 8,8
.byte $aa,$aa,$aa,$aa,$aa,$aa,$aa,$aa
.byte $aa,$aa,$aa,$aa,$aa,$aa,$aa,$aa
.byte $aa,$aa,$aa,$aa,$aa,$aa,$aa,$aa
.byte $aa,$aa,$aa,$aa,$aa,$aa,$aa,$aa
.byte $aa,$aa,$aa,$aa,$aa,$aa,$aa,$aa
.byte $aa,$aa,$aa,$aa,$aa,$aa,$aa,$aa
.byte $99,$b9,$00,$b0,$00,$bb,$4a,$aa
.byte $a9,$ab,$aa,$aa,$bb,$b4,$44,$ff
;=====================
;=====================
; JUMPING
;=====================
;=====================
astro_jump_progression:
.word jump1
.word jump2
.word jump3
.word jump4
.word jump5
.word jump6
.word jump7
.word jump8
jump1:
.byte 5,8
.byte $aa,$9a,$9a,$aa,$aa
.byte $aa,$bb,$99,$aa,$aa
.byte $aa,$aa,$0b,$aa,$aa
.byte $aa,$aa,$bb,$aa,$aa
.byte $aa,$ba,$0b,$aa,$aa
.byte $aa,$aa,$44,$aa,$aa
.byte $aa,$44,$cc,$aa,$aa
.byte $fa,$f4,$5c,$aa,$aa
jump2:
.byte 5,8
.byte $9a,$9a,$aa,$aa,$aa
.byte $bb,$99,$aa,$aa,$aa
.byte $aa,$0b,$00,$aa,$aa
.byte $aa,$00,$bb,$aa,$aa
.byte $aa,$a0,$bb,$aa,$aa
.byte $aa,$44,$cb,$aa,$aa
.byte $aa,$44,$cc,$aa,$aa
.byte $fa,$f4,$5c,$aa,$aa
jump3:
.byte 5,8
.byte $9a,$9a,$aa,$aa,$aa
.byte $bb,$99,$aa,$aa,$aa
.byte $aa,$0b,$00,$aa,$aa
.byte $aa,$00,$bb,$aa,$aa
.byte $aa,$a0,$bb,$aa,$aa
.byte $44,$c4,$cb,$aa,$aa
.byte $a4,$4c,$cc,$cc,$aa
.byte $fa,$f4,$5a,$a5,$aa
jump4:
.byte 5,8
.byte $9a,$9a,$aa,$aa,$aa
.byte $bb,$99,$aa,$aa,$aa
.byte $aa,$0b,$00,$aa,$aa
.byte $aa,$00,$bb,$aa,$aa
.byte $aa,$a0,$bb,$aa,$aa
.byte $aa,$4b,$c4,$ca,$5a
.byte $aa,$44,$4c,$ac,$55
.byte $aa,$aa,$f4,$f4,$aa
jump5:
.byte 5,8
.byte $b9,$99,$aa,$aa,$aa
.byte $ab,$b9,$aa,$aa,$aa
.byte $ba,$b0,$0b,$aa,$aa
.byte $aa,$aa,$00,$aa,$aa
.byte $aa,$aa,$00,$aa,$aa
.byte $aa,$cc,$44,$4a,$aa
.byte $5a,$5c,$a4,$44,$fa
.byte $aa,$aa,$aa,$aa,$af
jump6:
.byte 5,8
.byte $aa,$b9,$99,$aa,$aa
.byte $aa,$ab,$b9,$aa,$aa
.byte $ab,$ba,$b0,$aa,$aa
.byte $aa,$aa,$00,$aa,$aa
.byte $aa,$aa,$40,$aa,$aa
.byte $aa,$cc,$44,$4a,$fa
.byte $aa,$cc,$a4,$a4,$ff
.byte $a5,$a5,$aa,$aa,$aa
jump7:
.byte 5,8
.byte $aa,$b9,$99,$aa,$aa
.byte $aa,$ab,$b9,$aa,$aa
.byte $aa,$aa,$b0,$aa,$aa
.byte $ab,$ab,$00,$aa,$aa
.byte $aa,$aa,$40,$aa,$aa
.byte $aa,$cc,$44,$4a,$fa
.byte $aa,$cc,$a4,$a4,$ff
.byte $a5,$a5,$aa,$aa,$aa
jump8:
.byte 5,8
.byte $aa,$9a,$9a,$aa,$aa
.byte $aa,$bb,$99,$aa,$aa
.byte $aa,$aa,$0b,$aa,$aa
.byte $aa,$b0,$bb,$aa,$aa
.byte $aa,$aa,$40,$aa,$aa
.byte $aa,$4a,$44,$aa,$aa
.byte $aa,$44,$c4,$ca,$aa
.byte $fa,$f4,$5a,$5c,$aa
;====================
;====================
; On Spike
;====================
;====================
; 9x40
astronaut_spike_sprite:
.byte 3,4
.byte $AA,$11,$AA
.byte $0A,$90,$0A
.byte $BB,$A9,$BB
.byte $BB,$AA,$BB
;=====================
;=====================
; CROUCH SHOOTING
;=====================
;=====================
crouch_shooting:
.byte 5,8
.byte $AA,$AA,$aa,$aa,$aa
.byte $AA,$AA,$aa,$aa,$aa
.byte $AA,$AA,$9a,$9a,$aa
.byte $AA,$AA,$bb,$99,$aa
.byte $0A,$0A,$aa,$0b,$0a
.byte $AA,$A0,$ba,$bb,$00
.byte $AA,$AA,$4a,$4b,$aa
.byte $AA,$AA,$54,$f4,$f4
;=====================
;=====================
; CROUCH KICKING
;=====================
;=====================
crouch_kicking:
.byte 5,8
.byte $AA,$AA,$aa,$aa,$aa
.byte $AA,$AA,$aa,$aa,$aa
.byte $AA,$AA,$9a,$9a,$aa
.byte $AA,$AA,$bb,$99,$aa
.byte $AA,$AA,$aa,$0b,$0a
.byte $AA,$AA,$aa,$bb,$00
.byte $AA,$AA,$4a,$bb,$a0
.byte $5A,$5C,$A4,$f4,$f4
;=====================
;=====================
; DISINTEGRATING
;=====================
;=====================
disintegrate_progression:
.word disintegrating_2 ; 0
.word disintegrating_3 ; 1
.word disintegrating_4 ; 2
.word disintegrating_4 ; 3
.word disintegrating_4 ; 4
.word disintegrating_4 ; 5
.word disintegrating_3 ; 6
.word disintegrating_9 ; 7
.word disintegrating_10 ; 8
.word disintegrating_11 ; 9
.word disintegrating_12 ; 10
.word disintegrating_13 ; 11
.word disintegrating_14 ; 12
.word disintegrating_14 ; 13
disintegrating_2:
.byte 5,8
.byte $aa,$aa,$aa,$aa,$aa
.byte $ee,$fe,$fe,$ee,$aa
.byte $ee,$ff,$ff,$ee,$aa
.byte $aa,$ee,$ff,$ee,$aa
.byte $ae,$ef,$ff,$ee,$aa
.byte $aa,$ee,$ff,$ee,$aa
.byte $aa,$ee,$ff,$ee,$aa
.byte $ff,$fe,$ff,$ee,$aa
disintegrating_3:
.byte 5,8
.byte $aa,$aa,$aa,$aa,$aa
.byte $aa,$fa,$fa,$aa,$aa
.byte $aa,$ff,$ff,$aa,$aa
.byte $aa,$aa,$fa,$aa,$aa
.byte $aa,$af,$fa,$aa,$aa
.byte $aa,$aa,$fa,$aa,$aa
.byte $aa,$aa,$ff,$aa,$aa
.byte $aa,$fa,$ff,$aa,$aa
disintegrating_4:
.byte 5,8
.byte $aa,$aa,$aa,$aa,$aa
.byte $aa,$0a,$0a,$aa,$aa
.byte $aa,$00,$00,$aa,$aa
.byte $aa,$aa,$0a,$aa,$aa
.byte $aa,$a0,$0a,$aa,$aa
.byte $aa,$aa,$0a,$aa,$aa
.byte $aa,$aa,$00,$aa,$aa
.byte $aa,$0a,$00,$aa,$aa
disintegrating_9:
.byte 5,8
.byte $aa,$aa,$aa,$aa,$aa
.byte $fa,$aa,$af,$aa,$aa
.byte $aa,$5a,$aa,$af,$aa
.byte $aa,$aa,$aa,$0a,$aa
.byte $af,$aa,$0a,$aa,$aa
.byte $aa,$aa,$aa,$fa,$aa
.byte $af,$aa,$aa,$aa,$aa
.byte $aa,$aa,$fa,$aa,$aa
disintegrating_10:
.byte 5,8
.byte $fa,$aa,$af,$aa,$aa
.byte $aa,$5a,$aa,$aa,$fa
.byte $aa,$aa,$aa,$aa,$aa
.byte $fa,$aa,$aa,$aa,$a0
.byte $aa,$aa,$aa,$0a,$aa
.byte $aa,$aa,$aa,$aa,$5a
.byte $fa,$aa,$aa,$aa,$aa
.byte $aa,$aa,$fa,$aa,$aa
disintegrating_11:
.byte 5,8
.byte $aa,$aa,$aa,$aa,$aa
.byte $aa,$aa,$fa,$aa,$aa
.byte $af,$aa,$aa,$aa,$af
.byte $aa,$aa,$aa,$aa,$aa
.byte $fa,$aa,$aa,$aa,$a0
.byte $aa,$aa,$aa,$0a,$fa
.byte $aa,$aa,$aa,$aa,$aa
.byte $af,$aa,$fa,$aa,$aa
disintegrating_12:
.byte 5,8
.byte $aa,$aa,$aa,$aa,$aa
.byte $aa,$aa,$aa,$aa,$aa
.byte $aa,$aa,$aa,$aa,$aa
.byte $aa,$aa,$fa,$aa,$aa
.byte $aa,$af,$aa,$aa,$fa
.byte $fa,$a5,$aa,$0a,$aa
.byte $aa,$aa,$aa,$aa,$a0
.byte $fa,$aa,$fa,$aa,$aa
disintegrating_13:
.byte 5,8
.byte $aa,$aa,$aa,$aa,$aa
.byte $aa,$aa,$aa,$aa,$aa
.byte $aa,$aa,$aa,$aa,$aa
.byte $aa,$aa,$aa,$aa,$aa
.byte $aa,$aa,$aa,$aa,$aa
.byte $aa,$aa,$af,$aa,$aa
.byte $aa,$4a,$aa,$0a,$a0
.byte $fa,$aa,$5a,$aa,$af
disintegrating_14:
.byte 5,8
.byte $aa,$aa,$aa,$aa,$aa
.byte $aa,$aa,$aa,$aa,$aa
.byte $aa,$aa,$aa,$aa,$aa
.byte $aa,$aa,$aa,$aa,$aa
.byte $aa,$aa,$aa,$aa,$aa
.byte $aa,$aa,$aa,$aa,$aa
.byte $aa,$aa,$aa,$aa,$aa
.byte $fa,$5a,$5a,$0a,$fa

View File

@ -27,7 +27,7 @@
handle_keypress:
lda PHYSICIST_STATE
lda ASTRONAUT_STATE
bmi no_keypress ; ignore keypress if dying/action
lda KEYPRESS ; 4
@ -79,7 +79,7 @@ left_pressed:
bne left_going_right
left_going_left:
lda PHYSICIST_STATE
lda ASTRONAUT_STATE
cmp #P_STANDING
beq walk_left
cmp #P_SHOOTING
@ -94,7 +94,7 @@ left_going_left:
jmp done_keypress
left_going_right:
lda PHYSICIST_STATE
lda ASTRONAUT_STATE
cmp #P_RUNNING
beq walk_right
cmp #P_WALKING
@ -133,7 +133,7 @@ right_pressed:
right_going_right:
lda PHYSICIST_STATE
lda ASTRONAUT_STATE
cmp #P_STANDING
beq walk_right
cmp #P_SHOOTING
@ -148,7 +148,7 @@ right_going_right:
jmp done_keypress
right_going_left:
lda PHYSICIST_STATE
lda ASTRONAUT_STATE
cmp #P_RUNNING
beq walk_left
cmp #P_WALKING
@ -203,7 +203,7 @@ run_right:
bne update_state
update_state:
sta PHYSICIST_STATE
sta ASTRONAUT_STATE
jmp done_keypress
@ -224,7 +224,7 @@ up:
;=============================
;=============================
lda PHYSICIST_STATE ; shoot if charging
lda ASTRONAUT_STATE ; shoot if charging
cmp #P_CROUCH_SHOOTING
beq up_no_fire
@ -240,7 +240,7 @@ up_on_elevator:
up_not_elevator:
lda PHYSICIST_STATE
lda ASTRONAUT_STATE
cmp #P_CROUCHING
beq stand_up
cmp #P_CROUCH_SHOOTING
@ -279,7 +279,7 @@ check_down:
;==========================
down:
lda PHYSICIST_STATE ; shoot if charging
lda ASTRONAUT_STATE ; shoot if charging
cmp #P_SHOOTING
beq down_no_fire
@ -294,7 +294,7 @@ down_on_elevator:
jmp change_state_clear_gait
down_not_elevator:
lda PHYSICIST_STATE
lda ASTRONAUT_STATE
cmp #P_SHOOTING
bne start_crouch
@ -310,7 +310,7 @@ start_crouch:
ldx #4 ; slide a bit
stx GAIT
ora #P_CROUCHING
sta PHYSICIST_STATE
sta ASTRONAUT_STATE
jmp done_keypress
start_crouch_norun:
@ -342,7 +342,7 @@ not_already_firing:
inc GUN_STATE
lda PHYSICIST_STATE
lda ASTRONAUT_STATE
and #STATE_CROUCHING
beq crouch_charge
ldy #P_CROUCH_SHOOTING
@ -350,7 +350,7 @@ not_already_firing:
crouch_charge:
ldy #P_SHOOTING
crouch_charge_go:
sty PHYSICIST_STATE
sty ASTRONAUT_STATE
jmp shoot
@ -372,7 +372,7 @@ space:
inc GUN_FIRE ; if charging, shoot
shoot:
lda PHYSICIST_STATE ; if in stance, then shoot
lda ASTRONAUT_STATE ; if in stance, then shoot
cmp #P_SHOOTING
beq in_position
cmp #P_CROUCH_SHOOTING
@ -396,7 +396,7 @@ stand_stance:
jmp change_state_clear_gait
kick:
bit PHYSICIST_STATE ; crouching state in V now
bit ASTRONAUT_STATE ; crouching state in V now
bvc kick_standing
lda #P_CROUCH_KICKING
@ -405,7 +405,7 @@ kick:
kick_standing:
lda #P_KICKING
kick_final:
sta PHYSICIST_STATE
sta ASTRONAUT_STATE
lda #15
sta GAIT
unknown:
@ -416,7 +416,7 @@ done_keypress:
change_state_clear_gait:
sta PHYSICIST_STATE
sta ASTRONAUT_STATE
lda #0
sta GAIT
jmp done_keypress

View File

@ -70,7 +70,7 @@ wait_loop:
;.include "gr_offsets.s"
.include "keyboard.s"
.include "starbase_physicist.s"
.include "starbase_astronaut.s"
.include "starbase_alien.s"
.include "starbase_doors.s"
@ -83,12 +83,10 @@ wait_loop:
.include "starbase_friend.s"
.include "starbase_alien_laser.s"
;.include "ootw_c4_action.s"
; room backgrounds
.include "graphics/starbase/ootw_c4_city.inc"
; sprites
.include "graphics/sprites/physicist.inc"
.include "graphics/sprites/astronaut.inc"
.include "graphics/sprites/alien.inc"

View File

@ -59,9 +59,9 @@ starbase_init:
sta HAVE_GUN
lda #19
sta PHYSICIST_X
sta ASTRONAUT_X
lda #230 ; start offscreen
sta PHYSICIST_Y
sta ASTRONAUT_Y
lda #28
sta fall_down_destination_smc+1
@ -70,7 +70,7 @@ starbase_init:
sta fall_sideways_destination_smc+1
lda #P_FALLING_DOWN ; fall into level
sta PHYSICIST_STATE
sta ASTRONAUT_STATE
lda #$2c
sta falling_stop_smc
@ -143,12 +143,12 @@ room0:
lda #0
sta cel_smc+1
lda PHYSICIST_STATE
lda ASTRONAUT_STATE
cmp #P_FALLING_DOWN
beq room0_falling
lda #28
sta PHYSICIST_Y
sta ASTRONAUT_Y
room0_falling:
; load background
@ -178,7 +178,7 @@ room1:
sta cel_smc+1
lda #8
sta PHYSICIST_Y
sta ASTRONAUT_Y
; load background
lda #>(hallway_rle)
@ -207,7 +207,7 @@ room2:
sta cel_smc+1
lda #18
sta PHYSICIST_Y
sta ASTRONAUT_Y
; load background
lda #>(causeway1_rle)
@ -243,7 +243,7 @@ room3:
sta cel_smc+1
lda #18
sta PHYSICIST_Y
sta ASTRONAUT_Y
; load top high
lda #>(causeway2_rle)
@ -292,17 +292,17 @@ room4:
lda #5
sta cer_smc+1
lda PHYSICIST_STATE
lda ASTRONAUT_STATE
cmp #P_IMPALED
beq r4_impaled
cmp #P_FALLING_DOWN
beq r4_impaled
lda #8
sta PHYSICIST_Y
sta ASTRONAUT_Y
lda #P_CROUCHING
sta PHYSICIST_STATE
sta ASTRONAUT_STATE
r4_impaled:
; load background
@ -410,7 +410,7 @@ no_scroll:
check_falling:
; only fall if falling sideways/down
lda PHYSICIST_STATE
lda ASTRONAUT_STATE
cmp #P_FALLING_SIDEWAYS
beq falling_sideways
cmp #P_FALLING_DOWN
@ -429,11 +429,11 @@ falling_sideways:
and #$3
bne no_fall_undo
dec PHYSICIST_X
dec PHYSICIST_Y
dec PHYSICIST_Y
dec PHYSICIST_Y
dec PHYSICIST_Y
dec ASTRONAUT_X
dec ASTRONAUT_Y
dec ASTRONAUT_Y
dec ASTRONAUT_Y
dec ASTRONAUT_Y
no_fall_undo:
jmp scroll_check
before:
@ -442,28 +442,28 @@ before:
and #$1
bne extra_boost
inc PHYSICIST_X
inc ASTRONAUT_X
extra_boost:
jmp scroll_check
falling_down:
; if falling down, and Y>=32, then impale
lda PHYSICIST_Y
lda ASTRONAUT_Y
cmp #32
bcc scroll_check ; blt
lda #9
sta PHYSICIST_X
sta ASTRONAUT_X
lda #38
sta PHYSICIST_Y
sta ASTRONAUT_Y
lda #0
sta GAIT
lda #P_IMPALED
sta PHYSICIST_STATE
sta ASTRONAUT_STATE
jmp not_falling
@ -477,7 +477,7 @@ scroll_check:
scroll_bg_check22:
lda PHYSICIST_Y ; once Y=22, stop falling (scroll instead)
lda ASTRONAUT_Y ; once Y=22, stop falling (scroll instead)
cmp #22
bcc not_far_enough ; blt
@ -553,12 +553,12 @@ c4_no_bg_action:
; move physicist
;===============================
jsr move_physicist
jsr move_astronaut
;===================
; check room limits
;===================
lda PHYSICIST_STATE
lda ASTRONAUT_STATE
cmp #P_FALLING_DOWN
beq done_room_limits
cmp #P_IMPALED
@ -580,7 +580,7 @@ done_room_limits:
bne regular_room
; don't start fall if impaled or already falling
lda PHYSICIST_STATE
lda ASTRONAUT_STATE
cmp #P_IMPALED
beq regular_room
cmp #P_FALLING_DOWN
@ -590,24 +590,24 @@ done_room_limits:
; only start falling if y>=18
lda PHYSICIST_Y
lda ASTRONAUT_Y
cmp #18
bcc regular_room ; blt
; only start falling if x>=7 and positive
lda PHYSICIST_X
lda ASTRONAUT_X
bmi regular_room
cmp #7
bcc regular_room ; blt
lda PHYSICIST_STATE
lda ASTRONAUT_STATE
cmp #P_JUMPING
beq fall_sideways
; if not jumping then fall down
lda #P_FALLING_DOWN
sta PHYSICIST_STATE
sta ASTRONAUT_STATE
lda #2
sta BG_SCROLL
@ -617,7 +617,7 @@ done_room_limits:
fall_sideways:
lda #P_FALLING_SIDEWAYS
sta PHYSICIST_STATE
sta ASTRONAUT_STATE
lda #2
sta BG_SCROLL
@ -630,26 +630,26 @@ regular_room:
; if in charger, draw that
lda WHICH_ROOM ; charger only room0
bne just_draw_physicist
bne just_draw_astronaut
lda PHYSICIST_X
lda ASTRONAUT_X
cmp #10
bne just_draw_physicist
bne just_draw_astronaut
lda GUN_CHARGE
cmp #200
bcs just_draw_physicist ; bge
bcs just_draw_astronaut ; bge
lda #P_STANDING
sta PHYSICIST_STATE
sta ASTRONAUT_STATE
jsr draw_charger
jmp after_draw_physicist
jmp after_draw_astronaut
just_draw_physicist:
jsr draw_physicist
after_draw_physicist:
just_draw_astronaut:
jsr draw_astronaut
after_draw_astronaut:
;===============
; draw alien
@ -775,7 +775,7 @@ city_frame_no_oflo:
cmp #4
bne regular_exit_check
lda PHYSICIST_X
lda ASTRONAUT_X
cmp #32
bcc regular_exit_check ; blt
@ -807,7 +807,7 @@ regular_exit_check:
city_right_yes_exit:
lda #0
sta PHYSICIST_X
sta ASTRONAUT_X
cer_smc:
lda #$0 ; smc+1 = exit location
sta WHICH_CAVE
@ -819,7 +819,7 @@ cer_smc:
city_exit_left:
lda #37
sta PHYSICIST_X
sta ASTRONAUT_X
cel_smc:
lda #0 ; smc+1
sta WHICH_CAVE

View File

@ -140,7 +140,7 @@ alien_no_move_run:
move_alien_standing:
; turn to face physicist if on same level
lda PHYSICIST_Y
lda ASTRONAUT_Y
cmp alien_y,X
bne done_move_alien_standing
@ -151,7 +151,7 @@ move_alien_standing:
and #$3f
bne done_move_alien_standing
lda PHYSICIST_X
lda ASTRONAUT_X
cmp alien_x,X
bcs alien_face_right

View File

@ -1,19 +1,19 @@
;=======================================
; Move physicist based on current state
; Move astronaut based on current state
;
move_physicist:
lda PHYSICIST_STATE
move_astronaut:
lda ASTRONAUT_STATE
cmp #P_WALKING
beq move_physicist_walking
beq move_astronaut_walking
cmp #P_RUNNING
beq move_physicist_running
beq move_astronaut_running
rts
;======================
; walking
move_physicist_walking:
move_astronaut_walking:
inc GAIT ; cycle through animation
lda GAIT
@ -24,16 +24,16 @@ move_physicist_walking:
lda DIRECTION
beq p_walk_left
inc PHYSICIST_X ; walk right
inc ASTRONAUT_X ; walk right
rts
p_walk_left:
dec PHYSICIST_X ; walk left
dec ASTRONAUT_X ; walk left
no_move_walk:
rts
;======================
; running
move_physicist_running:
move_astronaut_running:
; inc GAIT ; cycle through animation
inc GAIT ; cycle through animation
@ -45,59 +45,59 @@ move_physicist_running:
lda DIRECTION
beq p_run_left
inc PHYSICIST_X ; run right
inc ASTRONAUT_X ; run right
rts
p_run_left:
dec PHYSICIST_X ; run left
dec ASTRONAUT_X ; run left
no_move_run:
rts
;======================
; standing
move_physicist_standing:
move_astronaut_standing:
pstate_table_lo:
.byte <physicist_standing ; 00
.byte <physicist_walking ; 01
.byte <physicist_running ; 02
.byte <physicist_crouching ; 03
.byte <physicist_kicking ; 04
.byte <physicist_jumping ; 05
.byte <physicist_collapsing ; 06
.byte <physicist_falling_sideways; 07
.byte <physicist_standing ; 08 swinging
.byte <physicist_standing ; 09 elevator up
.byte <physicist_standing ; 0A elevator down
.byte <physicist_shooting ; 0B
.byte <physicist_falling_down ; 0C
.byte <physicist_impaled ; 0D
.byte <physicist_crouch_shooting; 0E
.byte <physicist_crouch_kicking ; 0F
.byte <physicist_disintegrating ; 10
.byte <astronaut_standing ; 00
.byte <astronaut_walking ; 01
.byte <astronaut_running ; 02
.byte <astronaut_crouching ; 03
.byte <astronaut_kicking ; 04
.byte <astronaut_jumping ; 05
.byte <astronaut_collapsing ; 06
.byte <astronaut_falling_sideways; 07
.byte <astronaut_standing ; 08 swinging
.byte <astronaut_standing ; 09 elevator up
.byte <astronaut_standing ; 0A elevator down
.byte <astronaut_shooting ; 0B
.byte <astronaut_falling_down ; 0C
.byte <astronaut_impaled ; 0D
.byte <astronaut_crouch_shooting; 0E
.byte <astronaut_crouch_kicking ; 0F
.byte <astronaut_disintegrating ; 10
pstate_table_hi:
.byte >physicist_standing
.byte >physicist_walking
.byte >physicist_running
.byte >physicist_crouching
.byte >physicist_kicking
.byte >physicist_jumping
.byte >physicist_collapsing
.byte >physicist_falling_sideways
.byte >physicist_standing ; 08 swinging
.byte >physicist_standing ; 09 elevator up
.byte >physicist_standing ; 0A elevator down
.byte >physicist_shooting ; 0B
.byte >physicist_falling_down ; 0C
.byte >physicist_impaled ; 0D
.byte >physicist_crouch_shooting; 0E
.byte >physicist_crouch_kicking ; 0F
.byte >physicist_disintegrating ; 10
.byte >astronaut_standing
.byte >astronaut_walking
.byte >astronaut_running
.byte >astronaut_crouching
.byte >astronaut_kicking
.byte >astronaut_jumping
.byte >astronaut_collapsing
.byte >astronaut_falling_sideways
.byte >astronaut_standing ; 08 swinging
.byte >astronaut_standing ; 09 elevator up
.byte >astronaut_standing ; 0A elevator down
.byte >astronaut_shooting ; 0B
.byte >astronaut_falling_down ; 0C
.byte >astronaut_impaled ; 0D
.byte >astronaut_crouch_shooting; 0E
.byte >astronaut_crouch_kicking ; 0F
.byte >astronaut_disintegrating ; 10
; Urgh, make sure this doesn't end up at $FF or you hit the
; NMOS 6502 bug
@ -110,12 +110,12 @@ pjump:
.align 1
;======================================
; draw physicist
; draw astronaut
;======================================
draw_physicist:
draw_astronaut:
lda PHYSICIST_STATE
lda ASTRONAUT_STATE
and #$1f ; mask off high state bits
tax
lda pstate_table_lo,x
@ -129,12 +129,12 @@ draw_physicist:
; STANDING
;==================================
physicist_standing:
astronaut_standing:
lda #<phys_stand
lda #<astro_stand
sta INL
lda #>phys_stand
lda #>astro_stand
sta INH
jmp finally_draw_him
@ -143,7 +143,7 @@ physicist_standing:
; SHOOTING
;==================================
physicist_shooting:
astronaut_shooting:
lda #<shooting1
sta INL
@ -158,7 +158,7 @@ physicist_shooting:
; KICKING
;==================================
physicist_kicking:
astronaut_kicking:
lda #<kick1
sta INL
@ -171,7 +171,7 @@ physicist_kicking:
bne short_draw
lda #P_STANDING
sta PHYSICIST_STATE
sta ASTRONAUT_STATE
short_draw:
jmp finally_draw_him
@ -180,7 +180,7 @@ short_draw:
; CROUCHING
;===================================
physicist_crouching:
astronaut_crouching:
; FIXME: we have an animation?
@ -193,10 +193,10 @@ physicist_crouching:
lda DIRECTION
beq p_slide_left
inc PHYSICIST_X
inc ASTRONAUT_X
jmp crouch_done_slide
p_slide_left:
dec PHYSICIST_X
dec ASTRONAUT_X
crouch_done_slide:
@ -212,14 +212,14 @@ crouch_done_slide:
; CROUCH KICKING
;===================================
physicist_crouch_kicking:
astronaut_crouch_kicking:
dec GAIT
lda GAIT
bpl still_kicking
lda #P_CROUCHING
sta PHYSICIST_STATE
sta ASTRONAUT_STATE
still_kicking:
@ -235,7 +235,7 @@ still_kicking:
; CROUCH SHOOTING
;===================================
physicist_crouch_shooting:
astronaut_crouch_shooting:
lda #<crouch_shooting
sta INL
@ -250,7 +250,7 @@ physicist_crouch_shooting:
; JUMPING
;===================================
physicist_jumping:
astronaut_jumping:
lda GAIT
cmp #32
@ -258,22 +258,22 @@ physicist_jumping:
; done juming
lda #STATE_RUNNING
bit PHYSICIST_STATE
bit ASTRONAUT_STATE
beq jump_to_stand
jump_to_run:
lda #0
sta GAIT
lda #P_RUNNING
sta PHYSICIST_STATE
jmp physicist_running
sta ASTRONAUT_STATE
jmp astronaut_running
jump_to_stand:
lda #0
sta GAIT
lda #P_STANDING
sta PHYSICIST_STATE
jmp physicist_standing
sta ASTRONAUT_STATE
jmp astronaut_standing
still_jumping:
@ -282,16 +282,16 @@ still_jumping:
tax
lda phys_jump_progression,X
lda astro_jump_progression,X
sta INL
lda phys_jump_progression+1,X
lda astro_jump_progression+1,X
sta INH
inc GAIT
lda #STATE_RUNNING
bit PHYSICIST_STATE
bit ASTRONAUT_STATE
beq jump_change_x_regular
jump_change_x_running:
@ -313,11 +313,11 @@ jump_change_x:
beq jump_left
jump_right:
inc PHYSICIST_X
inc ASTRONAUT_X
jmp finally_draw_him
jump_left:
dec PHYSICIST_X
dec ASTRONAUT_X
jump_no_move:
jmp finally_draw_him
@ -328,7 +328,7 @@ jump_no_move:
; Walking
;================================
physicist_walking:
astronaut_walking:
lda GAIT
cmp #40
bcc gait_fine ; blt
@ -342,10 +342,10 @@ gait_fine:
tax
lda phys_walk_progression,X
lda astro_walk_progression,X
sta INL
lda phys_walk_progression+1,X
lda astro_walk_progression+1,X
sta INH
jmp finally_draw_him
@ -354,7 +354,7 @@ gait_fine:
; Running
;================================
physicist_running:
astronaut_running:
lda GAIT
cmp #40
bcc run_gait_fine ; blt
@ -368,10 +368,10 @@ run_gait_fine:
tax
lda phys_run_progression,X
lda astro_run_progression,X
sta INL
lda phys_run_progression+1,X
lda astro_run_progression+1,X
sta INH
jmp finally_draw_him
@ -381,7 +381,7 @@ run_gait_fine:
; COLLAPSING
;==================================
physicist_collapsing:
astronaut_collapsing:
lda GAIT
cmp #18
@ -417,7 +417,7 @@ no_collapse_progress:
; DISINTEGRATING
;==================================
physicist_disintegrating:
astronaut_disintegrating:
lda GAIT
cmp #28
@ -455,20 +455,20 @@ no_disintegrate_progress:
; FALLING SIDEWAYS
;==================================
physicist_falling_sideways:
astronaut_falling_sideways:
lda FRAMEL
and #$3
bne no_fall_progress
inc PHYSICIST_X
inc PHYSICIST_Y ; must me mul of 2
inc PHYSICIST_Y
inc ASTRONAUT_X
inc ASTRONAUT_Y ; must me mul of 2
inc ASTRONAUT_Y
no_fall_progress:
lda PHYSICIST_Y
lda ASTRONAUT_Y
fall_sideways_destination_smc:
cmp #22
bne still_falling
@ -477,15 +477,15 @@ done_falling:
; sta GAIT
lda #P_CROUCHING
sta PHYSICIST_STATE
jmp physicist_crouching
sta ASTRONAUT_STATE
jmp astronaut_crouching
still_falling:
lda #<phys_falling
lda #<astro_falling
sta INL
lda #>phys_falling
lda #>astro_falling
sta INH
jmp finally_draw_him
@ -495,7 +495,7 @@ still_falling:
; FALLING DOWN
;==================================
physicist_falling_down:
astronaut_falling_down:
falling_stop_smc: ; $2C to fall, $4C for not
bit still_falling_down
@ -504,27 +504,27 @@ falling_stop_smc: ; $2C to fall, $4C for not
and #$1
bne no_fall_down_progress
inc PHYSICIST_Y ; must be mul of 2
inc PHYSICIST_Y
inc ASTRONAUT_Y ; must be mul of 2
inc ASTRONAUT_Y
no_fall_down_progress:
lda PHYSICIST_Y
lda ASTRONAUT_Y
fall_down_destination_smc:
cmp #22
bne still_falling_down
done_falling_down:
lda #P_CROUCHING
sta PHYSICIST_STATE
jmp physicist_crouching
sta ASTRONAUT_STATE
jmp astronaut_crouching
still_falling_down:
lda #<phys_stand
lda #<astro_stand
sta INL
lda #>phys_stand
lda #>astro_stand
sta INH
jmp finally_draw_him
@ -535,7 +535,7 @@ still_falling_down:
; IMPALED
;==================================
physicist_impaled:
astronaut_impaled:
lda GAIT
cmp #$80
@ -550,16 +550,16 @@ impale_not_done:
cmp #2 ; slide down one more
bne impale_enough
inc PHYSICIST_Y
inc PHYSICIST_Y
inc ASTRONAUT_Y
inc ASTRONAUT_Y
impale_enough:
inc GAIT
lda #<physicist_spike_sprite
lda #<astronaut_spike_sprite
sta INL
lda #>physicist_spike_sprite
lda #>astronaut_spike_sprite
sta INH
jmp finally_draw_him
@ -570,10 +570,10 @@ impale_enough:
finally_draw_him:
lda PHYSICIST_X
lda ASTRONAUT_X
sta XPOS
lda PHYSICIST_Y
lda ASTRONAUT_Y
sec
sbc EARTH_OFFSET ; adjust for earthquakes
sta YPOS
@ -600,7 +600,7 @@ facing_right:
check_screen_limit:
clc
lda PHYSICIST_X
lda ASTRONAUT_X
adc #$80
cmp LEFT_WALK_LIMIT
bcs just_fine_left ; (bge==bcs)
@ -608,7 +608,7 @@ check_screen_limit:
left_on_screen:
; if limit was -4, means we are off screen
; otherwise, stop physicist at limit
; otherwise, stop astronaut at limit
lda LEFT_WALK_LIMIT
cmp #($80 - 4)
@ -616,12 +616,12 @@ left_on_screen:
left_stop_at_barrier:
lda #0
sta PHYSICIST_STATE
sta ASTRONAUT_STATE
lda LEFT_WALK_LIMIT
sec
sbc #$7f
sta PHYSICIST_X
sta ASTRONAUT_X
rts
@ -634,7 +634,7 @@ just_fine_left:
; Check right edge of screen
; lda PHYSICIST_X
; lda ASTRONAUT_X
cmp RIGHT_WALK_LIMIT
bcc just_fine_right ; blt
@ -642,7 +642,7 @@ just_fine_left:
right_on_screen:
; if limit was 39, means we are off screen
; otherwise, stop physicist at limit
; otherwise, stop astronaut at limit
lda RIGHT_WALK_LIMIT
cmp #($80 + 39)
@ -650,12 +650,12 @@ right_on_screen:
right_stop_at_barrier:
lda #0
sta PHYSICIST_STATE
sta ASTRONAUT_STATE
lda RIGHT_WALK_LIMIT
clc
adc #$7f
sta PHYSICIST_X
sta ASTRONAUT_X
rts
too_far_right:

View File

@ -16,9 +16,9 @@ fire_blast:
lda blast0_out
bne done_fire_blast
lda PHYSICIST_X
lda ASTRONAUT_X
sta COLLISION_X
lda PHYSICIST_Y
lda ASTRONAUT_Y
sta COLLISION_Y
; activate blast slot
@ -39,11 +39,11 @@ fire_blast:
; set y
lda PHYSICIST_Y
lda ASTRONAUT_Y
clc
adc #4
ldx PHYSICIST_STATE
ldx ASTRONAUT_STATE
cpx #P_CROUCH_SHOOTING
bne blast_ypos_done
@ -67,7 +67,7 @@ blast_ypos_done:
blast_left:
jsr calc_gun_left_collision
ldx PHYSICIST_X
ldx ASTRONAUT_X
dex
stx blast0_end
@ -81,7 +81,7 @@ blast_left:
blast_right:
jsr calc_gun_right_collision
lda PHYSICIST_X
lda ASTRONAUT_X
clc
adc #5
sta blast0_start

View File

@ -3,7 +3,7 @@ TARGET_DOOR = $10
TARGET_SHIELD = $20
TARGET_FRIEND = $30
TARGET_ALIEN = $40
TARGET_PHYSICIST= $80
TARGET_ASTRONAUT= $80
;=============================
;=============================
@ -33,7 +33,7 @@ recalc_walk_left:
dey
recalc_walk_left_loop:
lda PHYSICIST_X
lda ASTRONAUT_X
cmp (DOOR_X),Y
bcc recalc_walk_left_continue ; blt
@ -41,7 +41,7 @@ recalc_walk_left_loop:
lda (DOOR_Y),Y
clc
adc #4
cmp PHYSICIST_Y
cmp ASTRONAUT_Y
bne recalc_walk_left_continue
; only if closer than previous found
@ -75,10 +75,10 @@ recalc_walk_right_loop:
lda (DOOR_Y),Y
clc
adc #4
cmp PHYSICIST_Y
cmp ASTRONAUT_Y
bne recalc_walk_right_continue
lda PHYSICIST_X
lda ASTRONAUT_X
cmp (DOOR_X),Y
bcs recalc_walk_right_continue ; bge
@ -273,25 +273,25 @@ done_calc_gun_right_friend_collision:
calc_gun_right_physicist:
lda COLLISION_X
cmp PHYSICIST_X
cmp ASTRONAUT_X
bcs calc_gun_right_physicist_continue ; bge
; only if closer than previous found
lda RIGHT_SHOOT_LIMIT
cmp PHYSICIST_X
cmp ASTRONAUT_X
bcc calc_gun_right_physicist_continue ; blt
lda PHYSICIST_STATE
lda ASTRONAUT_STATE
cmp #P_DISINTEGRATING
beq calc_gun_right_physicist_continue
calc_gun_right_physicist_there:
lda PHYSICIST_X
lda ASTRONAUT_X
sta RIGHT_SHOOT_LIMIT
; set target if hit
lda #TARGET_PHYSICIST
lda #TARGET_ASTRONAUT
sta RIGHT_SHOOT_TARGET
calc_gun_right_physicist_continue:
@ -517,25 +517,25 @@ done_calc_gun_left_friend_collision:
calc_gun_left_physicist:
lda COLLISION_X
cmp PHYSICIST_X
cmp ASTRONAUT_X
beq calc_gun_left_physicist_continue ; ble (not w self)
bcc calc_gun_left_physicist_continue ; blt
; only if closer than previous found
lda LEFT_SHOOT_LIMIT
cmp PHYSICIST_X
cmp ASTRONAUT_X
bcs calc_gun_left_physicist_continue ; bge
lda PHYSICIST_STATE
lda ASTRONAUT_STATE
cmp #P_DISINTEGRATING
beq calc_gun_left_physicist_continue
calc_gun_left_physicist_there:
lda PHYSICIST_X
lda ASTRONAUT_X
sta LEFT_SHOOT_LIMIT
; set target if hit
lda #TARGET_PHYSICIST
lda #TARGET_ASTRONAUT
sta LEFT_SHOOT_TARGET
calc_gun_left_physicist_continue:

View File

@ -149,10 +149,10 @@ handle_doors_open:
lda (DOOR_Y),Y
clc
adc #4
cmp PHYSICIST_Y
cmp ASTRONAUT_Y
bne close_door
lda PHYSICIST_X
lda ASTRONAUT_X
cmp (DOOR_XMAX),Y
bcs close_door ; bge
@ -175,10 +175,10 @@ handle_doors_closed:
lda (DOOR_Y),Y
clc
adc #4
cmp PHYSICIST_Y
cmp ASTRONAUT_Y
bne handle_doors_continue
lda PHYSICIST_X
lda ASTRONAUT_X
cmp (DOOR_XMAX),Y
bcs handle_doors_continue

View File

@ -152,7 +152,7 @@ draw_gun_charging:
zap_left:
ldx PHYSICIST_X
ldx ASTRONAUT_X
dex
dex
stx XPOS
@ -161,17 +161,17 @@ zap_left:
zap_right:
lda PHYSICIST_X
lda ASTRONAUT_X
clc
adc #5
sta XPOS
done_zap:
lda PHYSICIST_Y
lda ASTRONAUT_Y
clc
adc #4
ldy PHYSICIST_STATE
ldy ASTRONAUT_STATE
cpy #P_CROUCH_SHOOTING
bne done_zap_ypos
clc

View File

@ -44,9 +44,9 @@ laser1_count: .byte $0
;=========================
fire_laser:
lda PHYSICIST_X
lda ASTRONAUT_X
sta COLLISION_X
lda PHYSICIST_Y
lda ASTRONAUT_Y
sta COLLISION_Y
lda laser0_out
@ -63,11 +63,11 @@ fire_laser:
; set y
lda PHYSICIST_Y
lda ASTRONAUT_Y
clc
adc #4
ldx PHYSICIST_STATE
ldx ASTRONAUT_STATE
cpx #P_CROUCH_SHOOTING
bne laser_crouch_done
laser_crouch:
@ -90,7 +90,7 @@ laser_left:
jsr calc_gun_left_collision
ldx PHYSICIST_X
ldx ASTRONAUT_X
dex
stx laser0_end
@ -105,7 +105,7 @@ laser_right:
jsr calc_gun_right_collision
lda PHYSICIST_X
lda ASTRONAUT_X
clc
adc #5
sta laser0_start
@ -304,7 +304,7 @@ hit_something_common:
cmp #TARGET_FRIEND
beq laser_hit_friend
cmp #TARGET_PHYSICIST
cmp #TARGET_ASTRONAUT
beq laser_hit_physicist
; FIXME: reduce shields if hit them?
@ -341,7 +341,7 @@ laser_hit_friend:
laser_hit_physicist:
lda #P_DISINTEGRATING
sta PHYSICIST_STATE
sta ASTRONAUT_STATE
lda #0
sta GAIT

View File

@ -59,7 +59,7 @@ found_shield_slot:
; set y
lda PHYSICIST_Y
lda ASTRONAUT_Y
sta shield_y,X
; set x
@ -68,7 +68,7 @@ found_shield_slot:
shield_left:
ldy PHYSICIST_X
ldy ASTRONAUT_X
dey
tya
sta shield_x,X
@ -77,7 +77,7 @@ shield_left:
shield_right:
lda PHYSICIST_X
lda ASTRONAUT_X
clc
adc #5
sta shield_x,X

View File

@ -195,7 +195,7 @@ STATE_NO_KEYPRESS = $80
STATE_CROUCHING = $40
STATE_RUNNING = $20
PHYSICIST_STATE = $EA
ASTRONAUT_STATE = $EA
P_STANDING = $00
P_WALKING = $01
P_RUNNING = $02 | STATE_RUNNING
@ -225,10 +225,10 @@ DRAW_PAGE = $EE ; ALL
OFFSET = $EF
INTRO_LOOPL = $F0 ; INTRO
PHYSICIST_X = $F0 ; ALL
ASTRONAUT_X = $F0 ; ALL
INTRO_LOOPH = $F1 ; INTRO
PHYSICIST_Y = $F1 ; ALL
ASTRONAUT_Y = $F1 ; ALL
SPRITETEMP = $F2 ; ALL
XPOS = $F3 ; ALL