diff --git a/games/keen/Makefile b/games/keen/Makefile index 0a513f40..9fbf43ae 100644 --- a/games/keen/Makefile +++ b/games/keen/Makefile @@ -65,7 +65,7 @@ mars.o: mars.s zp.inc hardware.inc game_over.s \ LEVEL1: level1.o ld65 -o LEVEL1 level1.o -C ../../linker_scripts/apple2_6000.inc -level1.o: level1.s \ +level1.o: level1.s enemies.inc \ maps/level1_map.zx02 ca65 -o level1.o level1.s -l level1.lst @@ -74,7 +74,7 @@ level1.o: level1.s \ LEVEL2: level2.o ld65 -o LEVEL2 level2.o -C ../../linker_scripts/apple2_6000.inc -level2.o: level2.s \ +level2.o: level2.s enemies.inc \ maps/level2_map.zx02 ca65 -o level2.o level2.s -l level2.lst @@ -83,7 +83,7 @@ level2.o: level2.s \ LEVEL3: level3.o ld65 -o LEVEL3 level3.o -C ../../linker_scripts/apple2_6000.inc -level3.o: level3.s \ +level3.o: level3.s enemies.inc \ maps/level3_map.zx02 ca65 -o level3.o level3.s -l level3.lst diff --git a/games/keen/enemies.inc b/games/keen/enemies.inc new file mode 100644 index 00000000..17bf3921 --- /dev/null +++ b/games/keen/enemies.inc @@ -0,0 +1,10 @@ +YORP = 0 + +YORP_WALK = 0 +YORP_JUMP = 1 +YORP_SEARCH = 2 +YORP_WALK2 = 3 +YORP_STUNNED= 4 + +LEFT = $FF +RIGHT = $1 diff --git a/games/keen/engine.s b/games/keen/engine.s index f12857a8..96be6578 100644 --- a/games/keen/engine.s +++ b/games/keen/engine.s @@ -7,6 +7,8 @@ .include "hardware.inc" .include "common_defines.inc" + .include "enemies.inc" + ; .include "level1_data.inc" level_data = $6000 @@ -19,10 +21,18 @@ level_data = $6000 num_enemies = level_data+6 hardtop_tiles = level_data+7 allhard_tiles = level_data+8 +enemy_data = $6100 + enemy_data_out = enemy_data+0 + enemy_data_exploding = enemy_data+8 + enemy_data_type = enemy_data+16 + enemy_data_direction = enemy_data+24 + enemy_data_tilex = enemy_data+32 + enemy_data_tiley = enemy_data+40 + enemy_data_x = enemy_data+48 + enemy_data_y = enemy_data+56 + enemy_data_state = enemy_data+64 + enemy_data_count = enemy_data+72 - - -;enemy_data = $6100 oracle_message = $6200 level_data_zx02 = $6300 diff --git a/games/keen/level1.s b/games/keen/level1.s index 150c2749..6ee1df51 100644 --- a/games/keen/level1.s +++ b/games/keen/level1.s @@ -1,5 +1,7 @@ ; Level 1 (Border Town) +.include "enemies.inc" + ; at $6000 level1_data: @@ -22,11 +24,21 @@ level1_data: ; at $6100 enemy_data: -.byte $0 + +enemy_data_out: .byte 1, 0, 0, 0, 0, 0, 0, 0 +enemy_data_exploding: .byte 0, 0, 0, 0, 0, 0, 0, 0 +enemy_data_type: .byte YORP, YORP, YORP, YORP, YORP, YORP,YORP,YORP +enemy_data_direction: .byte RIGHT, LEFT, LEFT, LEFT, LEFT, RIGHT,RIGHT,LEFT +enemy_data_tilex: .byte 19, 38, 45, 69, 81, 89, 92, 100 +enemy_data_tiley: .byte 13, 4, 4, 13, 4, 4, 13, 10 +enemy_data_x: .byte 0, 0, 0, 0, 0, 0, 0, 0 +enemy_data_y: .byte 0, 0, 0, 0, 0, 0, 0, 0 +enemy_data_state: .byte 0, 0, 0, 0, 0, 0, 0, 0 +enemy_data_count: .byte 8, 8, 8, 8, 8, 8, 8, 8 .align $100 -; at $6200\ +; at $6200 oracle_message: .byte $0 @@ -35,3 +47,6 @@ oracle_message: ; at $6300 level1_data_zx02: .incbin "maps/level1_map.zx02" + + + diff --git a/games/keen/level1_enemies.s b/games/keen/level1_enemies.s index 6489abf7..1b63a96c 100644 --- a/games/keen/level1_enemies.s +++ b/games/keen/level1_enemies.s @@ -393,27 +393,27 @@ enemy_explosion_sprite3: .byte $7A,$5A .byte $A5,$A7 -YORP = 0 +;YORP = 0 -YORP_WALK = 0 -YORP_JUMP = 1 -YORP_SEARCH = 2 -YORP_WALK2 = 3 -YORP_STUNNED= 4 +;YORP_WALK = 0 +;YORP_JUMP = 1 +;YORP_SEARCH = 2 +;YORP_WALK2 = 3 +;YORP_STUNNED= 4 -LEFT = $FF -RIGHT = $1 +;LEFT = $FF +;RIGHT = $1 -enemy_data_out: .byte 1, 0, 0, 0, 0, 0, 0, 0 -enemy_data_exploding: .byte 0, 0, 0, 0, 0, 0, 0, 0 -enemy_data_type: .byte YORP, YORP, YORP, YORP, YORP, YORP,YORP,YORP -enemy_data_direction: .byte RIGHT, LEFT, LEFT, LEFT, LEFT, RIGHT,RIGHT,LEFT -enemy_data_tilex: .byte 19, 38, 45, 69, 81, 89, 92, 100 -enemy_data_tiley: .byte 13, 4, 4, 13, 4, 4, 13, 10 -enemy_data_x: .byte 0, 0, 0, 0, 0, 0, 0, 0 -enemy_data_y: .byte 0, 0, 0, 0, 0, 0, 0, 0 -enemy_data_state: .byte 0, 0, 0, 0, 0, 0, 0, 0 -enemy_data_count: .byte 8, 8, 8, 8, 8, 8, 8, 8 +;enemy_data_out: .byte 1, 0, 0, 0, 0, 0, 0, 0 +;enemy_data_exploding: .byte 0, 0, 0, 0, 0, 0, 0, 0 +;enemy_data_type: .byte YORP, YORP, YORP, YORP, YORP, YORP,YORP,YORP +;enemy_data_direction: .byte RIGHT, LEFT, LEFT, LEFT, LEFT, RIGHT,RIGHT,LEFT +;enemy_data_tilex: .byte 19, 38, 45, 69, 81, 89, 92, 100 +;enemy_data_tiley: .byte 13, 4, 4, 13, 4, 4, 13, 10 +;enemy_data_x: .byte 0, 0, 0, 0, 0, 0, 0, 0 +;enemy_data_y: .byte 0, 0, 0, 0, 0, 0, 0, 0 +;enemy_data_state: .byte 0, 0, 0, 0, 0, 0, 0, 0 +;enemy_data_count: .byte 8, 8, 8, 8, 8, 8, 8, 8 ; question: when do they activate? When do they move when offscreen? diff --git a/games/keen/level3.s b/games/keen/level3.s index 053efa73..3fc60029 100644 --- a/games/keen/level3.s +++ b/games/keen/level3.s @@ -4,7 +4,7 @@ level3_data: .byte 116 ;MAX_TILE_X = 116 ; 116 wide -.byte 16 ;MAX_TILE_Y = 16 ; 16 tall +.byte 44 ;MAX_TILE_Y = 16 ; 16 tall .byte 1 ;START_KEEN_TILEX = 1 .byte 13 ;START_KEEN_TILEY = 13 @@ -12,7 +12,7 @@ level3_data: .byte 0 ;START_TILEMAP_X = 0 .byte 5 ;START_TILEMAP_Y = 5 -.byte 8 ;NUM_ENEMIES = 8 +.byte 0 ;NUM_ENEMIES = 8 .byte 32 ;HARDTOP_TILES = 32 ; start at 32 .byte 40 ;ALLHARD_TILES = 40 ; start at 40 diff --git a/games/keen/loader.s b/games/keen/loader.s index 7039d25b..470d3f66 100644 --- a/games/keen/loader.s +++ b/games/keen/loader.s @@ -200,6 +200,7 @@ filenames: .word mars_filename .word keen1_filename .word keen2_filename + .word keen3_filename engine_filename: .byte "ENGINE",0 diff --git a/games/keen/mars.s b/games/keen/mars.s index ab35170a..a811b8a1 100644 --- a/games/keen/mars.s +++ b/games/keen/mars.s @@ -42,6 +42,8 @@ plenty_of_keens: sta FRAMEL sta FRAMEH + sta NUM_ENEMIES + lda #4 sta DRAW_PAGE