Compare commits
5 Commits
beba8e05e9
...
871836628a
Author | SHA1 | Date | |
---|---|---|---|
|
871836628a | ||
|
7b3705dcf0 | ||
|
9c5472339d | ||
|
9b418215d1 | ||
|
f836ca3e5b |
|
@ -12,7 +12,10 @@ EMPTY_DISK = ../../empty_disk/empty.dsk
|
|||
all: keen1_lores.dsk
|
||||
|
||||
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
|
||||
$(DOS33) -y keen1_lores.dsk SAVE A HELLO
|
||||
$(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 LEVEL4
|
||||
$(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
|
||||
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
|
||||
|
||||
####
|
||||
|
||||
|
@ -118,7 +226,7 @@ ENGINE: engine.o
|
|||
|
||||
engine.o: engine.s zp.inc hardware.inc \
|
||||
text_help.s gr_fast_clear.s text_quit_yn.s text_drawbox.s \
|
||||
level1_enemies.s level1_items.s \
|
||||
level1_enemies.s engine_items.s \
|
||||
graphics/keen_graphics.inc sprites/keen_sprites.inc \
|
||||
status_bar.s draw_keen.s move_keen.s gr_putsprite_crop.s \
|
||||
draw_tilemap.s tilemap_lookup.s \
|
||||
|
@ -127,22 +235,6 @@ engine.o: engine.s zp.inc hardware.inc \
|
|||
ca65 -o engine.o engine.s -l engine.lst
|
||||
|
||||
|
||||
####
|
||||
|
||||
#LEVEL2: level2.o
|
||||
# ld65 -o LEVEL2 level2.o -C ../../linker_scripts/apple2_2000.inc
|
||||
#
|
||||
#level2.o: level2.s zp.inc hardware.inc \
|
||||
# text_help.s gr_fast_clear.s text_quit_yn.s text_drawbox.s \
|
||||
# level1_enemies.s level1_items.s \
|
||||
# graphics/keen_graphics.inc sprites/keen_sprites.inc \
|
||||
# maps/level2_map.zx02 \
|
||||
# status_bar.s draw_keen.s move_keen.s gr_putsprite_crop.s \
|
||||
# draw_tilemap.s tilemap_lookup.s \
|
||||
# level1_sfx.s longer_sound.s level2_data.inc \
|
||||
# keyboard.s handle_laser.s
|
||||
# ca65 -o level2.o level2.s -l level2.lst
|
||||
|
||||
####
|
||||
|
||||
graphics/keen1_title.hgr.zx02:
|
||||
|
|
|
@ -9,8 +9,6 @@
|
|||
|
||||
.include "enemies.inc"
|
||||
|
||||
; .include "level1_data.inc"
|
||||
|
||||
level_data = $6000
|
||||
max_tile_x = level_data+0
|
||||
max_tile_y = level_data+1
|
||||
|
@ -97,6 +95,7 @@ level_start:
|
|||
sta KEEN_FALLING
|
||||
sta KEEN_SHOOTING
|
||||
sta KEYCARDS
|
||||
sta ORACLE_SPOKEN
|
||||
|
||||
; debug
|
||||
|
||||
|
@ -324,7 +323,7 @@ level1_levelover:
|
|||
.include "handle_laser.s"
|
||||
.include "draw_tilemap.s"
|
||||
.include "level1_enemies.s"
|
||||
.include "level1_items.s"
|
||||
.include "engine_items.s"
|
||||
|
||||
.include "level1_sfx.s"
|
||||
.include "longer_sound.s"
|
||||
|
|
|
@ -1,3 +1,26 @@
|
|||
ITEMS_START = 24 ; pogo is first?
|
||||
ITEMS_MAX = 35 ; green keycard is last
|
||||
|
||||
ITEM_DOOR = 11
|
||||
ITEM_POGO = 24
|
||||
ITEM_SPECIAL = 25
|
||||
|
||||
ITEM_KEYCARD = 32
|
||||
|
||||
; POGO= 24
|
||||
; SPECIAL = 25 (ship part or oracle)
|
||||
; GUN = 26
|
||||
; LOLLIPOP = 27
|
||||
; SODA = 28
|
||||
; PIZZA = 29
|
||||
; BOOK = 30
|
||||
; BEAR = 31
|
||||
; YELLOW KEYCARD = 32
|
||||
; RED KEYCARD = 33
|
||||
; BLUE KEYCARD = 34
|
||||
; GREEN KEYCARD = 35
|
||||
|
||||
|
||||
;======================
|
||||
; check touching things
|
||||
;======================
|
||||
|
@ -123,25 +146,33 @@ check_item:
|
|||
lda (INL),Y
|
||||
|
||||
do_check_item:
|
||||
cmp #26
|
||||
beq was_oracle
|
||||
|
||||
cmp #27
|
||||
cmp #ITEMS_START
|
||||
bcc done_check_item ; not an item
|
||||
cmp #32
|
||||
cmp #(ITEMS_MAX+1)
|
||||
bcs done_check_item ; not an item
|
||||
|
||||
cmp #ITEM_POGO
|
||||
beq was_pogo ; if pogo, then pogo
|
||||
|
||||
cmp #ITEM_SPECIAL ; if oracle/ship part skip ahead
|
||||
beq was_special
|
||||
|
||||
sec
|
||||
sbc #27 ; subtract off to get index
|
||||
sbc #ITEMS_START ; subtract off to get index
|
||||
|
||||
; 0 = laser gun
|
||||
; 1 = lollipop 100 pts
|
||||
; 2 = book 1000 pts
|
||||
; 2 = carbonated beverage 200 pts
|
||||
; 3 = pizza 500 pts
|
||||
; 4 = carbonated beverage 200 pts
|
||||
; ? = bear 5000 pts
|
||||
; 4 = book 1000 pts
|
||||
; 5 = bear 5000 pts
|
||||
; 6...9 = keycards
|
||||
|
||||
beq get_laser_gun
|
||||
beq get_laser_gun ; if laser gun skip ahead
|
||||
|
||||
cmp #6
|
||||
bcs get_keycard
|
||||
|
||||
; otherwise look up points and add it
|
||||
|
||||
|
@ -163,6 +194,9 @@ get_laser_gun:
|
|||
; keycards go here too...
|
||||
get_keycard:
|
||||
|
||||
; TODO
|
||||
|
||||
|
||||
done_item_pickup:
|
||||
|
||||
; erase big tilemap
|
||||
|
@ -186,7 +220,7 @@ done_check_item:
|
|||
check_door:
|
||||
ldy #0
|
||||
lda (INL),Y
|
||||
cmp #11 ; door tile
|
||||
cmp #ITEM_DOOR ; door tile
|
||||
bne done_check_door
|
||||
|
||||
at_door:
|
||||
|
@ -200,10 +234,31 @@ at_door:
|
|||
done_check_door:
|
||||
rts
|
||||
|
||||
;==================================
|
||||
; item pogo
|
||||
;==================================
|
||||
was_pogo:
|
||||
lda #$FF
|
||||
sta POGO ; pick up pogo
|
||||
bne done_item_pickup ; bra
|
||||
|
||||
;==================================
|
||||
; item special
|
||||
;==================================
|
||||
; if oracle text, then oracle
|
||||
; otherwise is ship part
|
||||
|
||||
was_special:
|
||||
lda oracle_message
|
||||
cmp #$ff
|
||||
beq was_ship_part
|
||||
|
||||
was_oracle:
|
||||
lda ORACLE_SPOKEN
|
||||
bne done_oracle
|
||||
|
||||
bit KEYRESET
|
||||
|
||||
inc ORACLE_SPOKEN
|
||||
|
||||
bit TEXTGR
|
||||
|
@ -232,6 +287,13 @@ done_oracle:
|
|||
|
||||
rts
|
||||
|
||||
was_ship_part:
|
||||
; TODO
|
||||
|
||||
; play sound effect
|
||||
|
||||
jmp done_item_pickup
|
||||
|
||||
|
||||
;=============================
|
||||
; check if touching enemy
|
||||
|
@ -318,8 +380,8 @@ score_lookup:
|
|||
.byte $00,$01,$10,$05,$02,$50 ; BCD
|
||||
; 0 = laser gun
|
||||
; 1 = lollipop 100 pts
|
||||
; 2 = book 1000 pts
|
||||
; 2 = carbonated beverage 200 pts
|
||||
; 3 = pizza 500 pts
|
||||
; 4 = carbonated beverage 200 pts
|
||||
; ? = bear 5000 pts
|
||||
; 4 = book 1000 pts
|
||||
; 5 = bear 5000 pts
|
||||
|
|
@ -1,5 +1,5 @@
|
|||
5 HOME
|
||||
10 PRINT "LOADING KEEN V0.06"
|
||||
10 PRINT "LOADING KEEN V0.07"
|
||||
20 PRINT " KEEN1 PROOF-OF-CONCEPT DEMAKE"
|
||||
30 PRINT:PRINT
|
||||
70 PRINT "BASED ON KEEN1 BY ID"
|
||||
|
|
|
@ -16,8 +16,8 @@ level1_data:
|
|||
|
||||
.byte 8 ;NUM_ENEMIES = 8
|
||||
|
||||
.byte 32 ;HARDTOP_TILES = 32 ; start at 32
|
||||
.byte 40 ;ALLHARD_TILES = 40 ; start at 40
|
||||
.byte 40 ;HARDTOP_TILES = 40
|
||||
.byte 48 ;ALLHARD_TILES = 48
|
||||
|
||||
|
||||
.align $100
|
||||
|
@ -40,7 +40,7 @@ enemy_data_count: .byte 8, 8, 8, 8, 8, 8, 8, 8
|
|||
|
||||
; at $6200
|
||||
oracle_message:
|
||||
.byte $0
|
||||
.byte $FF ; no message
|
||||
|
||||
.align $100
|
||||
|
||||
|
|
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,"A YORPY MIND-THOUGHT BELLOWS:",0
|
||||
.byte 2,22,"YOU CANNOT KILL THE",0
|
||||
.byte 2,23,"VORTICON COMMANDER DIRECTLY.",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"
|
|
@ -14,30 +14,30 @@ SFX_YORPBOPSND = 8
|
|||
play_sfx:
|
||||
|
||||
lda sounds_low,Y
|
||||
sta INL
|
||||
sta SOUNDL
|
||||
lda sounds_high,Y
|
||||
sta INH
|
||||
sta SOUNDH
|
||||
|
||||
ldy #0
|
||||
sty SOUND_OFFSET
|
||||
play_sfx_loop:
|
||||
ldy SOUND_OFFSET
|
||||
lda (INL),Y
|
||||
lda (SOUNDL),Y
|
||||
sta speaker_frequency
|
||||
|
||||
iny
|
||||
lda (INL),Y
|
||||
lda (SOUNDL),Y
|
||||
cmp #$FF
|
||||
beq play_done
|
||||
|
||||
asl
|
||||
; clc
|
||||
; adc (INL),Y
|
||||
; adc (SOUNDL),Y
|
||||
|
||||
sta speaker_duration
|
||||
iny
|
||||
bne no_wrap
|
||||
inc INH
|
||||
inc SOUNDH
|
||||
no_wrap:
|
||||
|
||||
sty SOUND_OFFSET
|
||||
|
|
|
@ -14,8 +14,8 @@ level2_data:
|
|||
|
||||
.byte 0 ;NUM_ENEMIES = 8
|
||||
|
||||
.byte 32 ;HARDTOP_TILES = 32 ; start at 32
|
||||
.byte 40 ;ALLHARD_TILES = 40 ; start at 40
|
||||
.byte 40 ;HARDTOP_TILES = 40
|
||||
.byte 48 ;ALLHARD_TILES = 48
|
||||
|
||||
|
||||
.align $100
|
||||
|
|
|
@ -16,8 +16,8 @@ level3_data:
|
|||
|
||||
.byte 8 ;NUM_ENEMIES = 8
|
||||
|
||||
.byte 32 ;HARDTOP_TILES = 32 ; start at 32
|
||||
.byte 40 ;ALLHARD_TILES = 40 ; start at 40
|
||||
.byte 40 ;HARDTOP_TILES = 40
|
||||
.byte 48 ;ALLHARD_TILES = 48
|
||||
|
||||
|
||||
.align $100
|
||||
|
@ -56,7 +56,7 @@ enemy_data_count: .byte 8, 8, 8, 8, 8, 8, 8, 8
|
|||
|
||||
; at $6200
|
||||
oracle_message:
|
||||
.byte $0
|
||||
.byte $FF ; no message
|
||||
|
||||
.align $100
|
||||
|
||||
|
|
|
@ -14,10 +14,10 @@ level4_data:
|
|||
.byte 0 ;START_TILEMAP_X = 0
|
||||
.byte 8 ;START_TILEMAP_Y = 8
|
||||
|
||||
.byte 0 ;NUM_ENEMIES = 8
|
||||
.byte 8 ;NUM_ENEMIES = 8
|
||||
|
||||
.byte 32 ;HARDTOP_TILES = 32 ; start at 32
|
||||
.byte 40 ;ALLHARD_TILES = 40 ; start at 40
|
||||
.byte 40 ;HARDTOP_TILES = 40
|
||||
.byte 48 ;ALLHARD_TILES = 48
|
||||
|
||||
|
||||
.align $100
|
||||
|
@ -28,38 +28,37 @@ 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_direction: .byte LEFT, LEFT, LEFT, LEFT, RIGHT, RIGHT,RIGHT,RIGHT
|
||||
enemy_data_tilex: .byte 18, 31, 18, 43, 17, 32, 105, 103
|
||||
enemy_data_tiley: .byte 3, 3, 7, 7 , 16, 16, 11, 16
|
||||
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
|
||||
; enemy1: yorp @18,3, leftt
|
||||
; enemy2: yorp @31,3 left
|
||||
; enemy3: yorp @18,7 left
|
||||
; enemy4: yorp @43,7 left
|
||||
; enemy5: yorp @17,16 right
|
||||
; enemy6: yorp @32,16 right
|
||||
; enemy7: yorp @105,11 right
|
||||
; enemy8: yorp @103,16 right
|
||||
|
||||
; enemy?: butler robot@27,7 left
|
||||
; enemy?: vorticon @53,8 right
|
||||
; enemy9: garg @63,16 right
|
||||
|
||||
|
||||
; enemy?: vorticon @97,4 right
|
||||
|
||||
.align $100
|
||||
|
||||
; at $6200
|
||||
oracle_message:
|
||||
.byte $0
|
||||
.byte $FF ; no message
|
||||
|
||||
.align $100
|
||||
|
||||
; at $6300
|
||||
level1_data_zx02:
|
||||
level4_data_zx02:
|
||||
.incbin "maps/level4_map.zx02"
|
||||
|
|
|
@ -2,20 +2,20 @@
|
|||
|
||||
; at $6000
|
||||
|
||||
level2_data:
|
||||
.byte 20 ;MAX_TILE_X = 116 ; 116 wide
|
||||
.byte 26 ;MAX_TILE_Y = 16 ; 16 tall
|
||||
level5_data:
|
||||
.byte 24 ;MAX_TILE_X
|
||||
.byte 37 ;MAX_TILE_Y
|
||||
|
||||
.byte 1 ;START_KEEN_TILEX = 1
|
||||
.byte 13 ;START_KEEN_TILEY = 13
|
||||
.byte 1 ;START_KEEN_TILEX
|
||||
.byte 29 ;START_KEEN_TILEY
|
||||
|
||||
.byte 0 ;START_TILEMAP_X = 0
|
||||
.byte 5 ;START_TILEMAP_Y = 5
|
||||
.byte 0 ;START_TILEMAP_X
|
||||
.byte 21 ;START_TILEMAP_Y
|
||||
|
||||
.byte 0 ;NUM_ENEMIES = 8
|
||||
.byte 0 ;NUM_ENEMIES
|
||||
|
||||
.byte 32 ;HARDTOP_TILES = 32 ; start at 32
|
||||
.byte 40 ;ALLHARD_TILES = 40 ; start at 40
|
||||
.byte 40 ;HARDTOP_TILES
|
||||
.byte 48 ;ALLHARD_TILES
|
||||
|
||||
|
||||
.align $100
|
||||
|
@ -24,14 +24,15 @@ level2_data:
|
|||
enemy_data:
|
||||
.byte $0
|
||||
|
||||
; enemy0: garg at 7,7, right
|
||||
|
||||
|
||||
.align $100
|
||||
|
||||
; at $6200
|
||||
oracle_message:
|
||||
.byte $FF ; no 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
|
||||
|
||||
|
|
40
games/keen/level6.s
Normal file
|
@ -0,0 +1,40 @@
|
|||
; Level 6 (Second Shrine)
|
||||
|
||||
; at $6000
|
||||
|
||||
level6_data:
|
||||
.byte 24 ;MAX_TILE_X
|
||||
.byte 40 ;MAX_TILE_Y
|
||||
|
||||
.byte 1 ;START_KEEN_TILEX
|
||||
.byte 32 ;START_KEEN_TILEY
|
||||
|
||||
.byte 0 ;START_TILEMAP_X
|
||||
.byte 24 ;START_TILEMAP_Y
|
||||
|
||||
.byte 0 ;NUM_ENEMIES
|
||||
|
||||
.byte 40 ;HARDTOP_TILES
|
||||
.byte 48 ;ALLHARD_TILES
|
||||
|
||||
|
||||
.align $100
|
||||
|
||||
; at $6100
|
||||
enemy_data:
|
||||
.byte $0
|
||||
|
||||
.align $100
|
||||
|
||||
; at $6200
|
||||
oracle_message:
|
||||
; 0123456789012345678901234567890123456789
|
||||
.byte 2,21,"A MESSAGE ECHOES IN YOUR HEAD:",0
|
||||
.byte 2,22,"THE TELEPORTER IN THE ICE WILL",0
|
||||
.byte 2,23,"SEND YOU TO THE DARK SIDE OF MARS.",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 \
|
||||
level1_map.zx02 level2_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
|
||||
|
||||
###
|
||||
|
@ -51,6 +56,93 @@ level5_map.zx02: level5_map.inc
|
|||
level5_map.inc: level5_map.png png2map
|
||||
./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: 10 KiB After Width: | Height: | Size: 11 KiB |
Before Width: | Height: | Size: 6.6 KiB After Width: | Height: | Size: 8.9 KiB |
Before Width: | Height: | Size: 14 KiB After Width: | Height: | Size: 14 KiB |
Before Width: | Height: | Size: 4.0 KiB After Width: | Height: | Size: 11 KiB |
Before Width: | Height: | Size: 9.1 KiB After Width: | Height: | Size: 9.4 KiB |
BIN
games/keen/maps/level6_map.png
Normal file
After Width: | Height: | Size: 9.8 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 |
|
@ -155,6 +155,8 @@ MAX_TILE_Y = $AA
|
|||
NUM_ENEMIES = $AF
|
||||
HARDTOP_TILES = $B0
|
||||
ALLHARD_TILES = $B1
|
||||
SOUNDL = $B2
|
||||
SOUNDH = $B3
|
||||
|
||||
WHICH_SLOT = $DA
|
||||
JS_BUTTON_STATE = $DB
|
||||
|
|