keen: hook up all 16 levels
most aren't even remotely playable yet
@ -12,7 +12,10 @@ EMPTY_DISK = ../../empty_disk/empty.dsk
|
|||||||
all: keen1_lores.dsk
|
all: keen1_lores.dsk
|
||||||
|
|
||||||
keen1_lores.dsk: HELLO LOADER TITLE ENGINE MARS \
|
keen1_lores.dsk: HELLO LOADER TITLE ENGINE MARS \
|
||||||
LEVEL1 LEVEL2 LEVEL3 LEVEL4 LEVEL5
|
LEVEL1 LEVEL2 LEVEL3 LEVEL4 \
|
||||||
|
LEVEL5 LEVEL6 LEVEL7 LEVEL8 \
|
||||||
|
LEVEL9 LEVEL10 LEVEL11 LEVEL12 \
|
||||||
|
LEVEL13 LEVEL14 LEVEL15 LEVEL16
|
||||||
cp $(EMPTY_DISK) keen1_lores.dsk
|
cp $(EMPTY_DISK) keen1_lores.dsk
|
||||||
$(DOS33) -y keen1_lores.dsk SAVE A HELLO
|
$(DOS33) -y keen1_lores.dsk SAVE A HELLO
|
||||||
$(DOS33) -y keen1_lores.dsk BSAVE -a 0x1000 LOADER
|
$(DOS33) -y keen1_lores.dsk BSAVE -a 0x1000 LOADER
|
||||||
@ -24,7 +27,17 @@ keen1_lores.dsk: HELLO LOADER TITLE ENGINE MARS \
|
|||||||
$(DOS33) -y keen1_lores.dsk BSAVE -a 0x6000 LEVEL3
|
$(DOS33) -y keen1_lores.dsk BSAVE -a 0x6000 LEVEL3
|
||||||
$(DOS33) -y keen1_lores.dsk BSAVE -a 0x6000 LEVEL4
|
$(DOS33) -y keen1_lores.dsk BSAVE -a 0x6000 LEVEL4
|
||||||
$(DOS33) -y keen1_lores.dsk BSAVE -a 0x6000 LEVEL5
|
$(DOS33) -y keen1_lores.dsk BSAVE -a 0x6000 LEVEL5
|
||||||
|
$(DOS33) -y keen1_lores.dsk BSAVE -a 0x6000 LEVEL6
|
||||||
|
$(DOS33) -y keen1_lores.dsk BSAVE -a 0x6000 LEVEL7
|
||||||
|
$(DOS33) -y keen1_lores.dsk BSAVE -a 0x6000 LEVEL8
|
||||||
|
$(DOS33) -y keen1_lores.dsk BSAVE -a 0x6000 LEVEL9
|
||||||
|
$(DOS33) -y keen1_lores.dsk BSAVE -a 0x6000 LEVEL10
|
||||||
|
$(DOS33) -y keen1_lores.dsk BSAVE -a 0x6000 LEVEL11
|
||||||
|
$(DOS33) -y keen1_lores.dsk BSAVE -a 0x6000 LEVEL12
|
||||||
|
$(DOS33) -y keen1_lores.dsk BSAVE -a 0x6000 LEVEL13
|
||||||
|
$(DOS33) -y keen1_lores.dsk BSAVE -a 0x6000 LEVEL14
|
||||||
|
$(DOS33) -y keen1_lores.dsk BSAVE -a 0x6000 LEVEL15
|
||||||
|
$(DOS33) -y keen1_lores.dsk BSAVE -a 0x6000 LEVEL16
|
||||||
|
|
||||||
###
|
###
|
||||||
|
|
||||||
@ -107,9 +120,104 @@ level5.o: level5.s enemies.inc \
|
|||||||
maps/level5_map.zx02
|
maps/level5_map.zx02
|
||||||
ca65 -o level5.o level5.s -l level5.lst
|
ca65 -o level5.o level5.s -l level5.lst
|
||||||
|
|
||||||
|
####
|
||||||
|
|
||||||
|
LEVEL6: level6.o
|
||||||
|
ld65 -o LEVEL6 level6.o -C ../../linker_scripts/apple2_6000.inc
|
||||||
|
|
||||||
|
level6.o: level6.s enemies.inc \
|
||||||
|
maps/level6_map.zx02
|
||||||
|
ca65 -o level6.o level6.s -l level6.lst
|
||||||
|
|
||||||
|
####
|
||||||
|
|
||||||
|
LEVEL7: level7.o
|
||||||
|
ld65 -o LEVEL7 level7.o -C ../../linker_scripts/apple2_6000.inc
|
||||||
|
|
||||||
|
level7.o: level7.s enemies.inc \
|
||||||
|
maps/level7_map.zx02
|
||||||
|
ca65 -o level7.o level7.s -l level7.lst
|
||||||
|
|
||||||
|
####
|
||||||
|
|
||||||
|
LEVEL8: level8.o
|
||||||
|
ld65 -o LEVEL8 level8.o -C ../../linker_scripts/apple2_6000.inc
|
||||||
|
|
||||||
|
level8.o: level8.s enemies.inc \
|
||||||
|
maps/level8_map.zx02
|
||||||
|
ca65 -o level8.o level8.s -l level8.lst
|
||||||
|
|
||||||
|
####
|
||||||
|
|
||||||
|
LEVEL9: level9.o
|
||||||
|
ld65 -o LEVEL9 level9.o -C ../../linker_scripts/apple2_6000.inc
|
||||||
|
|
||||||
|
level9.o: level9.s enemies.inc \
|
||||||
|
maps/level9_map.zx02
|
||||||
|
ca65 -o level9.o level9.s -l level9.lst
|
||||||
|
|
||||||
|
####
|
||||||
|
|
||||||
|
LEVEL10: level10.o
|
||||||
|
ld65 -o LEVEL10 level10.o -C ../../linker_scripts/apple2_6000.inc
|
||||||
|
|
||||||
|
level10.o: level10.s enemies.inc \
|
||||||
|
maps/level10_map.zx02
|
||||||
|
ca65 -o level10.o level10.s -l level10.lst
|
||||||
|
|
||||||
|
####
|
||||||
|
|
||||||
|
LEVEL11: level11.o
|
||||||
|
ld65 -o LEVEL11 level11.o -C ../../linker_scripts/apple2_6000.inc
|
||||||
|
|
||||||
|
level11.o: level11.s enemies.inc \
|
||||||
|
maps/level11_map.zx02
|
||||||
|
ca65 -o level11.o level11.s -l level11.lst
|
||||||
|
|
||||||
|
####
|
||||||
|
|
||||||
|
LEVEL12: level12.o
|
||||||
|
ld65 -o LEVEL12 level12.o -C ../../linker_scripts/apple2_6000.inc
|
||||||
|
|
||||||
|
level12.o: level12.s enemies.inc \
|
||||||
|
maps/level12_map.zx02
|
||||||
|
ca65 -o level12.o level12.s -l level12.lst
|
||||||
|
|
||||||
|
####
|
||||||
|
|
||||||
|
LEVEL13: level13.o
|
||||||
|
ld65 -o LEVEL13 level13.o -C ../../linker_scripts/apple2_6000.inc
|
||||||
|
|
||||||
|
level13.o: level13.s enemies.inc \
|
||||||
|
maps/level13_map.zx02
|
||||||
|
ca65 -o level13.o level13.s -l level13.lst
|
||||||
|
|
||||||
|
####
|
||||||
|
|
||||||
|
LEVEL14: level14.o
|
||||||
|
ld65 -o LEVEL14 level14.o -C ../../linker_scripts/apple2_6000.inc
|
||||||
|
|
||||||
|
level14.o: level14.s enemies.inc \
|
||||||
|
maps/level14_map.zx02
|
||||||
|
ca65 -o level14.o level14.s -l level14.lst
|
||||||
|
|
||||||
|
####
|
||||||
|
|
||||||
|
LEVEL15: level15.o
|
||||||
|
ld65 -o LEVEL15 level15.o -C ../../linker_scripts/apple2_6000.inc
|
||||||
|
|
||||||
|
level15.o: level15.s enemies.inc \
|
||||||
|
maps/level15_map.zx02
|
||||||
|
ca65 -o level15.o level15.s -l level15.lst
|
||||||
|
|
||||||
|
####
|
||||||
|
|
||||||
|
LEVEL16: level16.o
|
||||||
|
ld65 -o LEVEL16 level16.o -C ../../linker_scripts/apple2_6000.inc
|
||||||
|
|
||||||
|
level16.o: level16.s enemies.inc \
|
||||||
|
maps/level16_map.zx02
|
||||||
|
ca65 -o level16.o level16.s -l level16.lst
|
||||||
|
|
||||||
####
|
####
|
||||||
|
|
||||||
|
40
games/keen/level10.s
Normal file
@ -0,0 +1,40 @@
|
|||||||
|
; Level 10 (Ice Shrine 1)
|
||||||
|
|
||||||
|
; at $6000
|
||||||
|
|
||||||
|
level10_data:
|
||||||
|
.byte 20 ;MAX_TILE_X = 116 ; 116 wide
|
||||||
|
.byte 26 ;MAX_TILE_Y = 16 ; 16 tall
|
||||||
|
|
||||||
|
.byte 1 ;START_KEEN_TILEX = 1
|
||||||
|
.byte 13 ;START_KEEN_TILEY = 13
|
||||||
|
|
||||||
|
.byte 0 ;START_TILEMAP_X = 0
|
||||||
|
.byte 5 ;START_TILEMAP_Y = 5
|
||||||
|
|
||||||
|
.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:
|
||||||
|
.byte $0
|
||||||
|
|
||||||
|
.align $100
|
||||||
|
|
||||||
|
; at $6200
|
||||||
|
oracle_message:
|
||||||
|
; 012345678901234567890123456789012345678
|
||||||
|
.byte 2,21,"YOU HEAR IN YOUR MIND:",0
|
||||||
|
.byte 2,22,"IT IS TOO BAD THAT YOU CANNOT READ",0
|
||||||
|
.byte 2,23,"THE STANDARD GALACTIC ALPHABET, HUMAN",0
|
||||||
|
|
||||||
|
.align $100
|
||||||
|
|
||||||
|
; at $6300
|
||||||
|
level10_data_zx02:
|
||||||
|
.incbin "maps/level10_map.zx02"
|
40
games/keen/level11.s
Normal file
@ -0,0 +1,40 @@
|
|||||||
|
; Level 11 (Fourth Shrine)
|
||||||
|
|
||||||
|
; at $6000
|
||||||
|
|
||||||
|
level11_data:
|
||||||
|
.byte 20 ;MAX_TILE_X = 20 ; 20 wide
|
||||||
|
.byte 26 ;MAX_TILE_Y = 26 ; 26 tall
|
||||||
|
|
||||||
|
.byte 1 ;START_KEEN_TILEX = 1
|
||||||
|
.byte 13 ;START_KEEN_TILEY = 13
|
||||||
|
|
||||||
|
.byte 0 ;START_TILEMAP_X = 0
|
||||||
|
.byte 5 ;START_TILEMAP_Y = 5
|
||||||
|
|
||||||
|
.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:
|
||||||
|
.byte $0
|
||||||
|
|
||||||
|
.align $100
|
||||||
|
|
||||||
|
; at $6200
|
||||||
|
oracle_message:
|
||||||
|
; 012345678901234567890123456789012345678
|
||||||
|
.byte 2,21,"YOU HEAR IN YOUR MIND:",0
|
||||||
|
.byte 2,22,"IT IS TOO BAD THAT YOU CANNOT READ",0
|
||||||
|
.byte 2,23,"THE STANDARD GALACTIC ALPHABET, HUMAN",0
|
||||||
|
|
||||||
|
.align $100
|
||||||
|
|
||||||
|
; at $6300
|
||||||
|
level11_data_zx02:
|
||||||
|
.incbin "maps/level11_map.zx02"
|
40
games/keen/level12.s
Normal file
@ -0,0 +1,40 @@
|
|||||||
|
; Level 12 (Fifth Shrine)
|
||||||
|
|
||||||
|
; at $6000
|
||||||
|
|
||||||
|
level12_data:
|
||||||
|
.byte 20 ;MAX_TILE_X = 20 ; 20 wide
|
||||||
|
.byte 26 ;MAX_TILE_Y = 26 ; 26 tall
|
||||||
|
|
||||||
|
.byte 1 ;START_KEEN_TILEX = 1
|
||||||
|
.byte 13 ;START_KEEN_TILEY = 13
|
||||||
|
|
||||||
|
.byte 0 ;START_TILEMAP_X = 0
|
||||||
|
.byte 5 ;START_TILEMAP_Y = 5
|
||||||
|
|
||||||
|
.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:
|
||||||
|
.byte $0
|
||||||
|
|
||||||
|
.align $100
|
||||||
|
|
||||||
|
; at $6200
|
||||||
|
oracle_message:
|
||||||
|
; 012345678901234567890123456789012345678
|
||||||
|
.byte 2,21,"YOU HEAR IN YOUR MIND:",0
|
||||||
|
.byte 2,22,"IT IS TOO BAD THAT YOU CANNOT READ",0
|
||||||
|
.byte 2,23,"THE STANDARD GALACTIC ALPHABET, HUMAN",0
|
||||||
|
|
||||||
|
.align $100
|
||||||
|
|
||||||
|
; at $6300
|
||||||
|
level12_data_zx02:
|
||||||
|
.incbin "maps/level12_map.zx02"
|
65
games/keen/level13.s
Normal file
@ -0,0 +1,65 @@
|
|||||||
|
; Level 13 (Red Maze City)
|
||||||
|
|
||||||
|
.include "enemies.inc"
|
||||||
|
|
||||||
|
; at $6000
|
||||||
|
|
||||||
|
level13_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
|
||||||
|
|
||||||
|
; FIXME: this is not correct
|
||||||
|
; 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
|
||||||
|
level13_data_zx02:
|
||||||
|
.incbin "maps/level13_map.zx02"
|
65
games/keen/level14.s
Normal file
@ -0,0 +1,65 @@
|
|||||||
|
; Level 14 (Secret City)
|
||||||
|
|
||||||
|
.include "enemies.inc"
|
||||||
|
|
||||||
|
; at $6000
|
||||||
|
|
||||||
|
level14_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
|
||||||
|
|
||||||
|
; FIXME: this is not correct
|
||||||
|
; 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
|
||||||
|
level14_data_zx02:
|
||||||
|
.incbin "maps/level14_map.zx02"
|
40
games/keen/level15.s
Normal file
@ -0,0 +1,40 @@
|
|||||||
|
; Level 15 (Ice Shrine 2)
|
||||||
|
|
||||||
|
; at $6000
|
||||||
|
|
||||||
|
level15_data:
|
||||||
|
.byte 20 ;MAX_TILE_X = 20 ; 20 wide
|
||||||
|
.byte 26 ;MAX_TILE_Y = 26 ; 26 tall
|
||||||
|
|
||||||
|
.byte 1 ;START_KEEN_TILEX = 1
|
||||||
|
.byte 13 ;START_KEEN_TILEY = 13
|
||||||
|
|
||||||
|
.byte 0 ;START_TILEMAP_X = 0
|
||||||
|
.byte 5 ;START_TILEMAP_Y = 5
|
||||||
|
|
||||||
|
.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:
|
||||||
|
.byte $0
|
||||||
|
|
||||||
|
.align $100
|
||||||
|
|
||||||
|
; at $6200
|
||||||
|
oracle_message:
|
||||||
|
; 012345678901234567890123456789012345678
|
||||||
|
.byte 2,21,"YOU HEAR IN YOUR MIND:",0
|
||||||
|
.byte 2,22,"IT IS TOO BAD THAT YOU CANNOT READ",0
|
||||||
|
.byte 2,23,"THE STANDARD GALACTIC ALPHABET, HUMAN",0
|
||||||
|
|
||||||
|
.align $100
|
||||||
|
|
||||||
|
; at $6300
|
||||||
|
level15_data_zx02:
|
||||||
|
.incbin "maps/level15_map.zx02"
|
65
games/keen/level16.s
Normal file
@ -0,0 +1,65 @@
|
|||||||
|
; Level 16 (Vorticon Castle)
|
||||||
|
|
||||||
|
.include "enemies.inc"
|
||||||
|
|
||||||
|
; at $6000
|
||||||
|
|
||||||
|
level16_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
|
||||||
|
|
||||||
|
; FIXME: this is not correct
|
||||||
|
; 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
|
||||||
|
level16_data_zx02:
|
||||||
|
.incbin "maps/level16_map.zx02"
|
40
games/keen/level6.s
Normal file
@ -0,0 +1,40 @@
|
|||||||
|
; Level 6 (Second Shrine)
|
||||||
|
|
||||||
|
; at $6000
|
||||||
|
|
||||||
|
level6_data:
|
||||||
|
.byte 20 ;MAX_TILE_X = 20 ; 20 wide
|
||||||
|
.byte 26 ;MAX_TILE_Y = 26 ; 26 tall
|
||||||
|
|
||||||
|
.byte 1 ;START_KEEN_TILEX = 1
|
||||||
|
.byte 13 ;START_KEEN_TILEY = 13
|
||||||
|
|
||||||
|
.byte 0 ;START_TILEMAP_X = 0
|
||||||
|
.byte 5 ;START_TILEMAP_Y = 5
|
||||||
|
|
||||||
|
.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:
|
||||||
|
.byte $0
|
||||||
|
|
||||||
|
.align $100
|
||||||
|
|
||||||
|
; at $6200
|
||||||
|
oracle_message:
|
||||||
|
; 012345678901234567890123456789012345678
|
||||||
|
.byte 2,21,"YOU HEAR IN YOUR MIND:",0
|
||||||
|
.byte 2,22,"IT IS TOO BAD THAT YOU CANNOT READ",0
|
||||||
|
.byte 2,23,"THE STANDARD GALACTIC ALPHABET, HUMAN",0
|
||||||
|
|
||||||
|
.align $100
|
||||||
|
|
||||||
|
; at $6300
|
||||||
|
level6_data_zx02:
|
||||||
|
.incbin "maps/level6_map.zx02"
|
65
games/keen/level7.s
Normal file
@ -0,0 +1,65 @@
|
|||||||
|
; Level 7 (Emerald City)
|
||||||
|
|
||||||
|
.include "enemies.inc"
|
||||||
|
|
||||||
|
; at $6000
|
||||||
|
|
||||||
|
level7_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
|
||||||
|
|
||||||
|
; FIXME: this is not correct
|
||||||
|
; 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
|
||||||
|
level7_data_zx02:
|
||||||
|
.incbin "maps/level7_map.zx02"
|
65
games/keen/level8.s
Normal file
@ -0,0 +1,65 @@
|
|||||||
|
; Level 8 (Ice City)
|
||||||
|
|
||||||
|
.include "enemies.inc"
|
||||||
|
|
||||||
|
; at $6000
|
||||||
|
|
||||||
|
level8_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
|
||||||
|
|
||||||
|
; FIXME: this is not correct
|
||||||
|
; 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
|
||||||
|
level8_data_zx02:
|
||||||
|
.incbin "maps/level8_map.zx02"
|
40
games/keen/level9.s
Normal file
@ -0,0 +1,40 @@
|
|||||||
|
; Level 9 (Third Shrine)
|
||||||
|
|
||||||
|
; at $6000
|
||||||
|
|
||||||
|
level9_data:
|
||||||
|
.byte 20 ;MAX_TILE_X = 116 ; 116 wide
|
||||||
|
.byte 26 ;MAX_TILE_Y = 16 ; 16 tall
|
||||||
|
|
||||||
|
.byte 1 ;START_KEEN_TILEX = 1
|
||||||
|
.byte 13 ;START_KEEN_TILEY = 13
|
||||||
|
|
||||||
|
.byte 0 ;START_TILEMAP_X = 0
|
||||||
|
.byte 5 ;START_TILEMAP_Y = 5
|
||||||
|
|
||||||
|
.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:
|
||||||
|
.byte $0
|
||||||
|
|
||||||
|
.align $100
|
||||||
|
|
||||||
|
; at $6200
|
||||||
|
oracle_message:
|
||||||
|
; 012345678901234567890123456789012345678
|
||||||
|
.byte 2,21,"YOU HEAR IN YOUR MIND:",0
|
||||||
|
.byte 2,22,"IT IS TOO BAD THAT YOU CANNOT READ",0
|
||||||
|
.byte 2,23,"THE STANDARD GALACTIC ALPHABET, HUMAN",0
|
||||||
|
|
||||||
|
.align $100
|
||||||
|
|
||||||
|
; at $6300
|
||||||
|
level9_data_zx02:
|
||||||
|
.incbin "maps/level9_map.zx02"
|
@ -8,7 +8,12 @@ PNG2GR = ../../../utils/gr-utils/png2gr
|
|||||||
all: png2map \
|
all: png2map \
|
||||||
level1_map.zx02 level2_map.zx02 \
|
level1_map.zx02 level2_map.zx02 \
|
||||||
level3_map.zx02 level4_map.zx02 \
|
level3_map.zx02 level4_map.zx02 \
|
||||||
level5_map.zx02 \
|
level5_map.zx02 level6_map.zx02 \
|
||||||
|
level7_map.zx02 level8_map.zx02 \
|
||||||
|
level9_map.zx02 level10_map.zx02 \
|
||||||
|
level11_map.zx02 level12_map.zx02 \
|
||||||
|
level13_map.zx02 level14_map.zx02 \
|
||||||
|
level15_map.zx02 level16_map.zx02 \
|
||||||
mars_map.zx02
|
mars_map.zx02
|
||||||
|
|
||||||
###
|
###
|
||||||
@ -51,6 +56,93 @@ level5_map.zx02: level5_map.inc
|
|||||||
level5_map.inc: level5_map.png png2map
|
level5_map.inc: level5_map.png png2map
|
||||||
./png2map level5_map.png level5_map.inc
|
./png2map level5_map.png level5_map.inc
|
||||||
|
|
||||||
|
###
|
||||||
|
|
||||||
|
level6_map.zx02: level6_map.inc
|
||||||
|
$(ZX02) level6_map.inc level6_map.zx02
|
||||||
|
|
||||||
|
level6_map.inc: level6_map.png png2map
|
||||||
|
./png2map level6_map.png level6_map.inc
|
||||||
|
|
||||||
|
###
|
||||||
|
|
||||||
|
level7_map.zx02: level7_map.inc
|
||||||
|
$(ZX02) level7_map.inc level7_map.zx02
|
||||||
|
|
||||||
|
level7_map.inc: level7_map.png png2map
|
||||||
|
./png2map level7_map.png level7_map.inc
|
||||||
|
|
||||||
|
###
|
||||||
|
|
||||||
|
level8_map.zx02: level8_map.inc
|
||||||
|
$(ZX02) level8_map.inc level8_map.zx02
|
||||||
|
|
||||||
|
level8_map.inc: level8_map.png png2map
|
||||||
|
./png2map level8_map.png level8_map.inc
|
||||||
|
|
||||||
|
###
|
||||||
|
|
||||||
|
level9_map.zx02: level9_map.inc
|
||||||
|
$(ZX02) level9_map.inc level9_map.zx02
|
||||||
|
|
||||||
|
level9_map.inc: level9_map.png png2map
|
||||||
|
./png2map level9_map.png level9_map.inc
|
||||||
|
|
||||||
|
###
|
||||||
|
|
||||||
|
level10_map.zx02: level10_map.inc
|
||||||
|
$(ZX02) level10_map.inc level10_map.zx02
|
||||||
|
|
||||||
|
level10_map.inc: level10_map.png png2map
|
||||||
|
./png2map level10_map.png level10_map.inc
|
||||||
|
|
||||||
|
###
|
||||||
|
|
||||||
|
level11_map.zx02: level11_map.inc
|
||||||
|
$(ZX02) level11_map.inc level11_map.zx02
|
||||||
|
|
||||||
|
level11_map.inc: level11_map.png png2map
|
||||||
|
./png2map level11_map.png level11_map.inc
|
||||||
|
|
||||||
|
###
|
||||||
|
|
||||||
|
level12_map.zx02: level12_map.inc
|
||||||
|
$(ZX02) level12_map.inc level12_map.zx02
|
||||||
|
|
||||||
|
level12_map.inc: level12_map.png png2map
|
||||||
|
./png2map level12_map.png level12_map.inc
|
||||||
|
|
||||||
|
###
|
||||||
|
|
||||||
|
level13_map.zx02: level13_map.inc
|
||||||
|
$(ZX02) level13_map.inc level13_map.zx02
|
||||||
|
|
||||||
|
level13_map.inc: level13_map.png png2map
|
||||||
|
./png2map level13_map.png level13_map.inc
|
||||||
|
|
||||||
|
###
|
||||||
|
|
||||||
|
level14_map.zx02: level14_map.inc
|
||||||
|
$(ZX02) level14_map.inc level14_map.zx02
|
||||||
|
|
||||||
|
level14_map.inc: level14_map.png png2map
|
||||||
|
./png2map level14_map.png level14_map.inc
|
||||||
|
|
||||||
|
###
|
||||||
|
|
||||||
|
level15_map.zx02: level15_map.inc
|
||||||
|
$(ZX02) level15_map.inc level15_map.zx02
|
||||||
|
|
||||||
|
level15_map.inc: level15_map.png png2map
|
||||||
|
./png2map level15_map.png level15_map.inc
|
||||||
|
|
||||||
|
###
|
||||||
|
|
||||||
|
level16_map.zx02: level16_map.inc
|
||||||
|
$(ZX02) level16_map.inc level16_map.zx02
|
||||||
|
|
||||||
|
level16_map.inc: level16_map.png png2map
|
||||||
|
./png2map level16_map.png level16_map.inc
|
||||||
|
|
||||||
|
|
||||||
###
|
###
|
||||||
|
BIN
games/keen/maps/level10_map.png
Normal file
After Width: | Height: | Size: 12 KiB |
BIN
games/keen/maps/level11_map.png
Normal file
After Width: | Height: | Size: 11 KiB |
BIN
games/keen/maps/level12_map.png
Normal file
After Width: | Height: | Size: 11 KiB |
BIN
games/keen/maps/level13_map.png
Normal file
After Width: | Height: | Size: 21 KiB |
BIN
games/keen/maps/level14_map.png
Normal file
After Width: | Height: | Size: 18 KiB |
BIN
games/keen/maps/level15_map.png
Normal file
After Width: | Height: | Size: 13 KiB |
BIN
games/keen/maps/level16_map.png
Normal file
After Width: | Height: | Size: 17 KiB |
Before Width: | Height: | Size: 4.0 KiB After Width: | Height: | Size: 3.9 KiB |
Before Width: | Height: | Size: 9.1 KiB After Width: | Height: | Size: 9.1 KiB |
BIN
games/keen/maps/level6_map.png
Normal file
After Width: | Height: | Size: 9.6 KiB |
BIN
games/keen/maps/level7_map.png
Normal file
After Width: | Height: | Size: 17 KiB |
BIN
games/keen/maps/level8_map.png
Normal file
After Width: | Height: | Size: 14 KiB |
BIN
games/keen/maps/level9_map.png
Normal file
After Width: | Height: | Size: 11 KiB |