diff --git a/games/keen/Makefile b/games/keen/Makefile index 9fbf43ae..f9ab4aea 100644 --- a/games/keen/Makefile +++ b/games/keen/Makefile @@ -12,7 +12,7 @@ EMPTY_DISK = ../../empty_disk/empty.dsk all: keen1_lores.dsk keen1_lores.dsk: HELLO LOADER TITLE ENGINE MARS \ - LEVEL1 LEVEL2 LEVEL3 + LEVEL1 LEVEL2 LEVEL3 LEVEL4 cp $(EMPTY_DISK) keen1_lores.dsk $(DOS33) -y keen1_lores.dsk SAVE A HELLO $(DOS33) -y keen1_lores.dsk BSAVE -a 0x1000 LOADER @@ -22,6 +22,7 @@ keen1_lores.dsk: HELLO LOADER TITLE ENGINE MARS \ $(DOS33) -y keen1_lores.dsk BSAVE -a 0x6000 LEVEL1 $(DOS33) -y keen1_lores.dsk BSAVE -a 0x6000 LEVEL2 $(DOS33) -y keen1_lores.dsk BSAVE -a 0x6000 LEVEL3 + $(DOS33) -y keen1_lores.dsk BSAVE -a 0x6000 LEVEL4 ### @@ -87,6 +88,16 @@ level3.o: level3.s enemies.inc \ maps/level3_map.zx02 ca65 -o level3.o level3.s -l level3.lst +#### + +LEVEL4: level4.o + ld65 -o LEVEL4 level4.o -C ../../linker_scripts/apple2_6000.inc + +level4.o: level4.s enemies.inc \ + maps/level4_map.zx02 + ca65 -o level4.o level4.s -l level4.lst + + #### diff --git a/games/keen/level3.s b/games/keen/level3.s index 861546e4..07113f1d 100644 --- a/games/keen/level3.s +++ b/games/keen/level3.s @@ -6,7 +6,7 @@ level3_data: .byte 116 ;MAX_TILE_X = 116 ; 116 wide -.byte 44 ;MAX_TILE_Y = 16 ; 16 tall +.byte 44 ;MAX_TILE_Y = 16 ; 44 tall .byte 1 ;START_KEEN_TILEX = 1 .byte 13 ;START_KEEN_TILEY = 13 diff --git a/games/keen/level4.s b/games/keen/level4.s new file mode 100644 index 00000000..6567619a --- /dev/null +++ b/games/keen/level4.s @@ -0,0 +1,65 @@ +; Level 4 (Capital City) + +.include "enemies.inc" + +; at $6000 + +level3_data: +.byte 116 ;MAX_TILE_X = 116 ; 116 wide +.byte 20 ;MAX_TILE_Y = 16 ; 20 tall + +.byte 4 ;START_KEEN_TILEX = 4 +.byte 16 ;START_KEEN_TILEY = 16 + +.byte 0 ;START_TILEMAP_X = 0 +.byte 8 ;START_TILEMAP_Y = 8 + +.byte 0 ;NUM_ENEMIES = 8 + +.byte 32 ;HARDTOP_TILES = 32 ; start at 32 +.byte 40 ;ALLHARD_TILES = 40 ; start at 40 + + +.align $100 + +; at $6100 +enemy_data: + +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, RIGHT, LEFT, RIGHT,LEFT,LEFT +enemy_data_tilex: .byte 16, 19, 23, 14, 14, 16, 42, 70 +enemy_data_tiley: .byte 9, 9, 9, 45, 38, 43, 44, 34 +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 + + +; enemy1: yorp @16,9, right +; enemy2: yorp @19,9 left +; enemy3: yorp @23,9 left +; enemy4: yorp @14,45 right +; enemy5: yorp @14,38 left +; enemy6: yorp @16,43 right +; enemy7: yorp @42,44 left +; enemy8: yorp @70,34 left + +; enemy9: garg @50,31 right +; enemy10: garg @63,45 right + +; enemy?: butler robot@27,7 left +; enemy?: vorticon @53,8 right + +.align $100 + +; at $6200 +oracle_message: +.byte $0 + +.align $100 + +; at $6300 +level1_data_zx02: + .incbin "maps/level4_map.zx02" diff --git a/games/keen/loader.s b/games/keen/loader.s index 470d3f66..f4d0b987 100644 --- a/games/keen/loader.s +++ b/games/keen/loader.s @@ -201,6 +201,7 @@ filenames: .word keen1_filename .word keen2_filename .word keen3_filename + .word keen4_filename engine_filename: .byte "ENGINE",0 @@ -214,6 +215,8 @@ keen2_filename: .byte "LEVEL2",0 keen3_filename: .byte "LEVEL3",0 +keen4_filename: + .byte "LEVEL4",0 ;=================================================== diff --git a/games/keen/maps/Makefile b/games/keen/maps/Makefile index 45ad7f50..4f624009 100644 --- a/games/keen/maps/Makefile +++ b/games/keen/maps/Makefile @@ -7,7 +7,7 @@ PNG2GR = ../../../utils/gr-utils/png2gr all: png2map \ level1_map.zx02 level2_map.zx02 \ - level3_map.zx02 \ + level3_map.zx02 level4_map.zx02 \ mars_map.zx02 ### @@ -34,6 +34,14 @@ level3_map.zx02: level3_map.inc level3_map.inc: level3_map.png png2map ./png2map level3_map.png level3_map.inc +### + +level4_map.zx02: level4_map.inc + $(ZX02) level4_map.inc level4_map.zx02 + +level4_map.inc: level4_map.png png2map + ./png2map level4_map.png level4_map.inc + ### diff --git a/games/keen/maps/level4_map.png b/games/keen/maps/level4_map.png new file mode 100644 index 00000000..80ec71ec Binary files /dev/null and b/games/keen/maps/level4_map.png differ