keen: fix problem with MAX_ENEMIES count

also start hooking up more levels
This commit is contained in:
Vince Weaver 2024-04-21 18:53:46 -04:00
parent c19d21c26f
commit beba8e05e9
9 changed files with 137 additions and 24 deletions

View File

@ -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 LEVEL4
LEVEL1 LEVEL2 LEVEL3 LEVEL4 LEVEL5
cp $(EMPTY_DISK) keen1_lores.dsk
$(DOS33) -y keen1_lores.dsk SAVE A HELLO
$(DOS33) -y keen1_lores.dsk BSAVE -a 0x1000 LOADER
@ -23,6 +23,7 @@ keen1_lores.dsk: HELLO LOADER TITLE ENGINE MARS \
$(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
$(DOS33) -y keen1_lores.dsk BSAVE -a 0x6000 LEVEL5
###
@ -97,6 +98,16 @@ level4.o: level4.s enemies.inc \
maps/level4_map.zx02
ca65 -o level4.o level4.s -l level4.lst
####
LEVEL5: level5.o
ld65 -o LEVEL5 level5.o -C ../../linker_scripts/apple2_6000.inc
level5.o: level5.s enemies.inc \
maps/level5_map.zx02
ca65 -o level5.o level5.s -l level5.lst

View File

@ -122,6 +122,8 @@ laser_enemies:
ldy #0 ; which enemy
laser_enemies_loop:
cpy NUM_ENEMIES
beq done_laser_enemies_loop
; see if out
@ -164,9 +166,11 @@ hit_something:
jmp exit_laser_enemy
done_laser_enemy:
iny
cpy NUM_ENEMIES
bne laser_enemies_loop
; iny
; cpy NUM_ENEMIES
jmp laser_enemies_loop
done_laser_enemies_loop:
exit_laser_enemy:
rts

View File

@ -8,6 +8,11 @@ move_enemies:
ldx #0
move_enemies_loop:
cpx NUM_ENEMIES
bne keep_on_moving
jmp done_move_enemies_loop
keep_on_moving:
; only move if out
@ -242,10 +247,12 @@ move_left_noflo:
done_move_enemy:
inx
cpx NUM_ENEMIES
beq totally_done_move_enemies
; cpx NUM_ENEMIES
; beq totally_done_move_enemies
jmp move_enemies_loop
done_move_enemies_loop:
totally_done_move_enemies:
rts
@ -258,6 +265,8 @@ draw_enemies:
ldy #0
draw_enemies_loop:
cpy NUM_ENEMIES
beq done_draw_enemies
; see if out
@ -365,10 +374,11 @@ draw_enemy:
done_draw_enemy:
iny
cpy NUM_ENEMIES
beq exit_draw_enemy
; cpy NUM_ENEMIES
; beq exit_draw_enemy
jmp draw_enemies_loop
done_draw_enemies:
exit_draw_enemy:
rts

View File

@ -4,7 +4,7 @@
; at $6000
level3_data:
level4_data:
.byte 116 ;MAX_TILE_X = 116 ; 116 wide
.byte 20 ;MAX_TILE_Y = 16 ; 20 tall
@ -36,7 +36,7 @@ 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

40
games/keen/level5.s Normal file
View File

@ -0,0 +1,40 @@
; Level 5 (Pogo Shrine)
; at $6000
level2_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
level5_data_zx02:
.incbin "maps/level5_map.zx02"

View File

@ -195,6 +195,8 @@ copy_filename_done:
rts
; FIXME: probably smaler to build the level filename on the fly?
filenames:
.word title_filename
.word mars_filename
@ -202,6 +204,18 @@ filenames:
.word keen2_filename
.word keen3_filename
.word keen4_filename
.word keen5_filename
.word keen6_filename
.word keen7_filename
.word keen8_filename
.word keen9_filename
.word keen10_filename
.word keen11_filename
.word keen12_filename
.word keen13_filename
.word keen14_filename
.word keen15_filename
.word keen16_filename
engine_filename:
.byte "ENGINE",0
@ -217,6 +231,31 @@ keen3_filename:
.byte "LEVEL3",0
keen4_filename:
.byte "LEVEL4",0
keen5_filename:
.byte "LEVEL5",0
keen6_filename:
.byte "LEVEL6",0
keen7_filename:
.byte "LEVEL7",0
keen8_filename:
.byte "LEVEL8",0
keen9_filename:
.byte "LEVEL9",0
keen10_filename:
.byte "LEVEL10",0
keen11_filename:
.byte "LEVEL11",0
keen12_filename:
.byte "LEVEL12",0
keen13_filename:
.byte "LEVEL13",0
keen14_filename:
.byte "LEVEL14",0
keen15_filename:
.byte "LEVEL15",0
keen16_filename:
.byte "LEVEL16",0
;===================================================

View File

@ -8,6 +8,7 @@ PNG2GR = ../../../utils/gr-utils/png2gr
all: png2map \
level1_map.zx02 level2_map.zx02 \
level3_map.zx02 level4_map.zx02 \
level5_map.zx02 \
mars_map.zx02
###
@ -42,6 +43,14 @@ level4_map.zx02: level4_map.inc
level4_map.inc: level4_map.png png2map
./png2map level4_map.png level4_map.inc
###
level5_map.zx02: level5_map.inc
$(ZX02) level5_map.inc level5_map.zx02
level5_map.inc: level5_map.png png2map
./png2map level5_map.png level5_map.inc
###

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.1 KiB

View File

@ -618,25 +618,25 @@ location_size:
location_actions_low:
.byte <(enter_level-1),<(enter_level-1) ; level1, level2
.byte <(enter_level-1),<(dummy_action-1) ; level3, level4
.byte <(dummy_action-1),<(dummy_action-1)
.byte <(dummy_action-1),<(dummy_action-1)
.byte <(dummy_action-1),<(dummy_action-1)
.byte <(dummy_action-1),<(dummy_action-1)
.byte <(dummy_action-1),<(dummy_action-1)
.byte <(dummy_action-1),<(dummy_action-1)
.byte <(enter_level-1),<(enter_level-1) ; level3, level4
.byte <(enter_level-1),<(enter_level-1) ; level4, level6
.byte <(enter_level-1),<(enter_level-1) ; level7, level8
.byte <(enter_level-1),<(enter_level-1) ; level9, level10
.byte <(enter_level-1),<(enter_level-1) ; level11, level12
.byte <(enter_level-1),<(enter_level-1) ; level13, level14
.byte <(enter_level-1),<(enter_level-1) ; level15, level16
.byte <(do_parts-1),<(transport_right-1) ; ship, l transport
.byte <(transport_left-1),<(transport_secret-1) ; r trans, secret
location_actions_high:
.byte >(enter_level-1),>(enter_level-1) ; level1, level2
.byte >(enter_level-1),>(dummy_action-1) ; level3, level4
.byte >(dummy_action-1),>(dummy_action-1)
.byte >(dummy_action-1),>(dummy_action-1)
.byte >(dummy_action-1),>(dummy_action-1)
.byte >(dummy_action-1),>(dummy_action-1)
.byte >(dummy_action-1),>(dummy_action-1)
.byte >(dummy_action-1),>(dummy_action-1)
.byte >(enter_level-1),>(enter_level-1) ; level3, level4
.byte >(enter_level-1),>(enter_level-1) ; level5, level6
.byte >(enter_level-1),>(enter_level-1) ; level7, level8
.byte >(enter_level-1),>(enter_level-1) ; level9, level10
.byte >(enter_level-1),>(enter_level-1) ; level11, level12
.byte >(enter_level-1),>(enter_level-1) ; level13, level14
.byte >(enter_level-1),>(enter_level-1) ; level15, level16
.byte >(do_parts-1),>(transport_right-1) ; ship, l transport
.byte >(transport_left-1),>(transport_secret-1) ; r trans, secret