mirror of
https://github.com/deater/dos33fsprogs.git
synced 2025-04-16 05:37:24 +00:00
keen: fix problem with MAX_ENEMIES count
also start hooking up more levels
This commit is contained in:
parent
c19d21c26f
commit
beba8e05e9
@ -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
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
||||
|
@ -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
40
games/keen/level5.s
Normal 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"
|
@ -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
|
||||
|
||||
|
||||
|
||||
;===================================================
|
||||
|
@ -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
|
||||
|
||||
|
||||
|
||||
###
|
||||
|
BIN
games/keen/maps/level5_map.png
Normal file
BIN
games/keen/maps/level5_map.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 9.1 KiB |
@ -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
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user