From c19d21c26f1809b33598e2dfd2d0c0c2fdbb8204 Mon Sep 17 00:00:00 2001 From: Vince Weaver Date: Sun, 21 Apr 2024 01:29:51 -0400 Subject: [PATCH] keen: initial checkin on level4 --- games/keen/Makefile | 13 ++++++- games/keen/level3.s | 2 +- games/keen/level4.s | 65 +++++++++++++++++++++++++++++++++ games/keen/loader.s | 3 ++ games/keen/maps/Makefile | 10 ++++- games/keen/maps/level4_map.png | Bin 0 -> 4052 bytes 6 files changed, 90 insertions(+), 3 deletions(-) create mode 100644 games/keen/level4.s create mode 100644 games/keen/maps/level4_map.png 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 0000000000000000000000000000000000000000..80ec71ec1ff4a377f55ca52818de1a4ed3631ba8 GIT binary patch literal 4052 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 Kt~wa<`+opaEtA{; literal 0 HcmV?d00001