keen: sorta of working controls on mars again

This commit is contained in:
Vince Weaver 2024-04-11 22:03:05 -04:00
parent 5bd0d77d18
commit 358b05229e
2 changed files with 103 additions and 67 deletions

View File

@ -42,23 +42,9 @@ plenty_of_keens:
sta FRAMEL
sta FRAMEH
sta KEEN_WALKING
sta KEEN_JUMPING
; sta LEVEL_OVER
sta LASER_OUT
sta KEEN_XL
sta KEEN_FALLING
sta KEEN_SHOOTING
lda #4
sta DRAW_PAGE
; lda #18
; sta KEEN_X
; lda #11
; sta KEEN_Y
; see if returning and it game over
lda LEVEL_OVER
@ -224,53 +210,33 @@ return_to_title:
;=========================
; draw keen
;=========================
; D32
draw_keen:
lda MARS_Y
and #1
beq draw_keen_even
draw_keen_odd:
; calculate address of MARS_Y/2
lda MARS_Y
and #$FE
tay
lda gr_offsets,Y
sta OUTL
lda gr_offsets+1,Y
sec
lda MARS_TILEX
sbc TILEMAP_X
asl
clc
adc DRAW_PAGE
sta OUTH
adc MARS_X
sta XPOS
ldy MARS_X
lda (OUTL),Y
and #$0f
ora #$D0
sta (OUTL),Y
lda MARS_Y
sec
lda MARS_TILEY
sbc TILEMAP_Y
asl
asl
clc
adc #2
adc MARS_Y
sta YPOS
and #$FE
tay
lda gr_offsets,Y
sta OUTL
lda gr_offsets+1,Y
clc
adc DRAW_PAGE
sta OUTH
ldx #<keen_sprite_tiny
lda #>keen_sprite_tiny
stx INL
sta INH
jsr put_sprite_crop
ldy MARS_X
lda #$23
sta (OUTL),Y
rts
rts ; tail call
@ -482,7 +448,7 @@ parts_zx02:
.include "mars_sfx.s"
.include "longer_sound.s"
.include "gr_putsprite_crop.s"
mars_data_zx02:
.incbin "maps/mars_new.zx02"
@ -490,3 +456,9 @@ mars_data_zx02:
; dummy
enemy_data_out:
enemy_data_tilex:
keen_sprite_tiny:
.byte 1,2
.byte $DA
.byte $23

View File

@ -1,3 +1,5 @@
MAX_TILE_Y = 57 ; 69-12
;==============================
; Handle Keypress
;==============================
@ -200,12 +202,45 @@ check_up:
bne check_down
up_pressed:
ldy MARS_X
ldx MARS_Y
dex
jsr check_valid_feet
bcc done_up_pressed
dec MARS_Y
lda MARS_TILEY
cmp #0 ; not needed
beq move_keen_up
sec
lda TILEMAP_Y
sbc MARS_TILEY
cmp #4
bcc scroll_keen_up
move_keen_up:
lda MARS_Y
beq keen_up_not2
move_keen_up2:
lda #0
sta MARS_Y
jmp done_check_up
keen_up_not2:
dec MARS_TILEY
lda #2
sta MARS_Y
jmp done_check_up
scroll_keen_up:
dec TILEMAP_Y
dec MARS_TILEY
jsr copy_tilemap_subset
; ldy MARS_X
; ldx MARS_Y
; dex
; jsr check_valid_feet
; bcc done_up_pressed
; dec MARS_Y
done_check_up:
done_up_pressed:
jmp done_keypress
@ -215,12 +250,41 @@ check_down:
cmp #$0A
bne check_space
down_pressed:
ldy MARS_X
ldx MARS_Y
inx
jsr check_valid_feet
bcc done_up_pressed
inc MARS_Y
sec
lda MARS_TILEY
sbc TILEMAP_Y
cmp #8
bcc move_keen_down
lda TILEMAP_Y
cmp #MAX_TILE_Y
bcs move_keen_down
jmp scroll_keen_down
move_keen_down:
lda #0
sta MARS_Y
inc MARS_TILEY
jmp done_check_down
scroll_keen_down:
lda #0
sta MARS_Y
inc TILEMAP_Y
inc MARS_TILEY
jsr copy_tilemap_subset
; ldy MARS_X
; ldx MARS_Y
; inx
; jsr check_valid_feet
; bcc done_up_pressed
; inc MARS_Y
done_check_down:
done_down_pressed:
jmp done_keypress