diff --git a/games/keen/Makefile b/games/keen/Makefile index 66f270e5..943d7b0f 100644 --- a/games/keen/Makefile +++ b/games/keen/Makefile @@ -51,7 +51,7 @@ KEEN_MARS: keen_mars.o ld65 -o KEEN_MARS keen_mars.o -C ../../linker_scripts/apple2_2000.inc keen_mars.o: keen_mars.s zp.inc hardware.inc \ - maps/mars_map.gr.zx02 + maps/mars_map.gr.zx02 graphics/parts.gr.zx02 ca65 -o keen_mars.o keen_mars.s -l keen_mars.lst #### diff --git a/games/keen/graphics/Makefile b/games/keen/graphics/Makefile index 6fb28fa5..5dbe76ad 100644 --- a/games/keen/graphics/Makefile +++ b/games/keen/graphics/Makefile @@ -10,7 +10,7 @@ PNG2GR = ../../../utils/gr-utils/png2gr PNG2SPRITES = ../../../utils/gr-utils/png2sprites HGR_SPRITE = ../../../utils/hgr-utils/hgr_make_sprite -all: keen1_title.hgr.zx02 level1_bg.gr.zx02 +all: keen1_title.hgr.zx02 level1_bg.gr.zx02 parts.gr.zx02 #### @@ -33,6 +33,14 @@ level1_bg.gr.zx02: level1_bg.gr level1_bg.gr: level1_bg.png $(PNG2GR) level1_bg.png level1_bg.gr +#### + +parts.gr.zx02: parts.gr + $(ZX02) parts.gr parts.gr.zx02 + +parts.gr: parts.png + $(PNG2GR) parts.png parts.gr + #### diff --git a/games/keen/graphics/parts.png b/games/keen/graphics/parts.png new file mode 100644 index 00000000..81180b99 Binary files /dev/null and b/games/keen/graphics/parts.png differ diff --git a/games/keen/keen_mars.s b/games/keen/keen_mars.s index d316356e..58b7ed1c 100644 --- a/games/keen/keen_mars.s +++ b/games/keen/keen_mars.s @@ -162,6 +162,8 @@ done_with_keen: mars_zx02: .incbin "maps/mars_map.gr.zx02" +parts_zx02: + .incbin "graphics/parts.gr.zx02" .include "text_print.s" .include "gr_offsets.s" @@ -448,11 +450,7 @@ check_space: bne check_return space_pressed: - -; lda KEEN_JUMPING -; bne done_keypress ; don't jump if already jumping - - inc LEVEL_OVER + jsr do_action jmp done_keypress @@ -461,7 +459,9 @@ check_return: bne check_escape return_pressed: - inc LEVEL_OVER + ;inc LEVEL_OVER + + jsr do_action done_return: jmp no_keypress @@ -526,3 +526,76 @@ feet_invalid: + ;==================================== + ; show parts screen + ;==================================== +do_parts: + lda #parts_zx02 + sta ZX0_src+1 + + lda #$c ; load to page $c00 + + jsr full_decomp + + jsr gr_copy_to_current + + jsr page_flip + + bit TEXTGR + + bit KEYRESET +parts_loop: + lda KEYPRESS + bpl parts_loop + +done_parts: + bit KEYRESET + + bit FULLGR + + lda #mars_zx02 + sta ZX0_src+1 + + lda #$c ; load to page $c00 + + jsr full_decomp ; tail call + + rts + + +do_action: + + lda KEEN_X + cmp #15 + bcc do_nothing ; blt + + cmp #20 + bcc maybe_ship + + cmp #35 + bcs maybe_exit + +do_nothing: + ; TODO: make sound? + rts + +maybe_ship: + + + lda KEEN_Y + cmp #16 + bcc do_nothing + cmp #24 + bcs do_nothing + + jmp do_parts ; tail call + +maybe_exit: + + inc LEVEL_OVER + + rts diff --git a/games/keen/print_help.s b/games/keen/print_help.s index 35113863..10b98b89 100644 --- a/games/keen/print_help.s +++ b/games/keen/print_help.s @@ -1,4 +1,4 @@ -; For Help press ^H +; For Help press H print_help: bit KEYRESET ; clear keyboard @@ -31,9 +31,9 @@ help_text: .byte 0, 5,"CONTROLS:",0 .byte 3, 6, "A OR <- : MOVE LEFT",0 .byte 3, 7, "D OR -> : MOVE RIGHT",0 -.byte 3, 8, "W OR UP : ACTION, ENTER DOOR",0 -.byte 3, 9, "SPACEBAR : JUMP",0 -.byte 3,10, "RETURN : SHOOT LASER",0 +.byte 3, 8, "P : POGO",0 +.byte 3, 9, "SPACEBAR : ACTION/JUMP",0 +.byte 3,10, "RETURN : LASER",0 .byte 3,12, "ESC : QUITS",0 .byte 3,13, "CONTROL-T : TOGGLE SOUND",0 .byte 3,14, "J : ENABLE JOYSTICK",0