mirror of
https://github.com/deater/dos33fsprogs.git
synced 2024-06-13 03:29:32 +00:00
mist_hgr: hooray, can go through book to a featureless void
that void is mist island, but apparently really foggy
This commit is contained in:
parent
c47e3aa4bb
commit
3fec7e69fa
|
@ -19,8 +19,9 @@ all: mist_hgr.dsk
|
||||||
|
|
||||||
mist_hgr.dsk: QBOOT TEXT_TITLE QLOAD \
|
mist_hgr.dsk: QBOOT TEXT_TITLE QLOAD \
|
||||||
MIST_TITLE \
|
MIST_TITLE \
|
||||||
SAVE1 SAVE2 SAVE3 SAVE4 SAVE5
|
SAVE1 SAVE2 SAVE3 SAVE4 SAVE5 \
|
||||||
#MIST OCTAGON VIEWER \
|
MIST
|
||||||
|
# OCTAGON VIEWER \
|
||||||
# DENTIST D\'NI SHIP GENERATOR \
|
# DENTIST D\'NI SHIP GENERATOR \
|
||||||
cp $(EMPTY_DISK) mist_hgr.dsk
|
cp $(EMPTY_DISK) mist_hgr.dsk
|
||||||
$(DOS33_RAW) mist_hgr.dsk 0 0 QBOOT 0 1
|
$(DOS33_RAW) mist_hgr.dsk 0 0 QBOOT 0 1
|
||||||
|
@ -32,10 +33,9 @@ mist_hgr.dsk: QBOOT TEXT_TITLE QLOAD \
|
||||||
$(DOS33_RAW) mist_hgr.dsk 0 13 SAVE3 0 1
|
$(DOS33_RAW) mist_hgr.dsk 0 13 SAVE3 0 1
|
||||||
$(DOS33_RAW) mist_hgr.dsk 0 14 SAVE4 0 1
|
$(DOS33_RAW) mist_hgr.dsk 0 14 SAVE4 0 1
|
||||||
$(DOS33_RAW) mist_hgr.dsk 0 15 SAVE5 0 1
|
$(DOS33_RAW) mist_hgr.dsk 0 15 SAVE5 0 1
|
||||||
$(DOS33_RAW) mist_hgr.dsk 1 0 QLOAD 0 0
|
$(DOS33_RAW) mist_hgr.dsk 1 0 QLOAD 0 0
|
||||||
$(DOS33_RAW) mist_hgr.dsk 3 0 MIST_TITLE 0 0
|
$(DOS33_RAW) mist_hgr.dsk 3 0 MIST_TITLE 0 0
|
||||||
# 84
|
$(DOS33_RAW) mist_hgr.dsk 9 0 MIST 0 0
|
||||||
# $(DOS33_RAW) mist_hgr.dsk 8 0 MIST 0 159
|
|
||||||
# $(DOS33_RAW) mist_hgr.dsk 18 0 OCTAGON 0 128
|
# $(DOS33_RAW) mist_hgr.dsk 18 0 OCTAGON 0 128
|
||||||
# $(DOS33_RAW) mist_hgr.dsk 26 0 DENTIST 0 31
|
# $(DOS33_RAW) mist_hgr.dsk 26 0 DENTIST 0 31
|
||||||
# $(DOS33_RAW) mist_hgr.dsk 28 0 D\'NI 0 27
|
# $(DOS33_RAW) mist_hgr.dsk 28 0 D\'NI 0 27
|
||||||
|
@ -177,8 +177,8 @@ common_routines.inc: qload.lst generate_common
|
||||||
MIST_TITLE: mist_title.o
|
MIST_TITLE: mist_title.o
|
||||||
ld65 -o MIST_TITLE mist_title.o -C $(LINKER_SCRIPTS)/apple2_4000.inc
|
ld65 -o MIST_TITLE mist_title.o -C $(LINKER_SCRIPTS)/apple2_4000.inc
|
||||||
|
|
||||||
mist_title.o: mist_title.s zp.inc hardware.inc common_defines.inc \
|
mist_title.o: mist_title.s \
|
||||||
common_routines.inc \
|
zp.inc hardware.inc common_defines.inc common_routines.inc \
|
||||||
graphics_title_hgr/mist_title.lzsa graphics_title/title_graphics.inc \
|
graphics_title_hgr/mist_title.lzsa graphics_title/title_graphics.inc \
|
||||||
gr_offsets.s end_level.s \
|
gr_offsets.s end_level.s \
|
||||||
draw_pointer.s text_print.s gr_fast_clear.s decompress_fast_v2.s \
|
draw_pointer.s text_print.s gr_fast_clear.s decompress_fast_v2.s \
|
||||||
|
@ -191,26 +191,23 @@ mist_title.o: mist_title.s zp.inc hardware.inc common_defines.inc \
|
||||||
|
|
||||||
####
|
####
|
||||||
|
|
||||||
MIST: mist.o
|
MIST: mist_island.o
|
||||||
ld65 -o MIST mist.o -C ./apple2_2000.inc
|
ld65 -o MIST mist_island.o -C $(LINKER_SCRIPTS)/apple2_4000.inc
|
||||||
|
|
||||||
mist.o: mist.s zp.inc hardware.inc common_defines.inc common_routines.inc \
|
mist_island.o: mist_island.s \
|
||||||
|
zp.inc hardware.inc common_defines.inc common_routines.inc \
|
||||||
graphics_mist/mist_graphics.inc \
|
graphics_mist/mist_graphics.inc \
|
||||||
common_sprites.inc \
|
common_sprites.inc \
|
||||||
leveldata_mist.inc \
|
leveldata_mist.inc \
|
||||||
clock_bridge_puzzle.s clock_sprites.inc \
|
clock_bridge_puzzle.s \
|
||||||
marker_switch.s \
|
marker_switch.s \
|
||||||
keyboard.s \
|
keyboard.s draw_pointer.s end_level.s mist_puzzles.s handle_pages.s
|
||||||
draw_pointer.s \
|
ca65 -o mist_island.o mist_island.s -l mist_island.lst
|
||||||
end_level.s \
|
|
||||||
mist_puzzles.s \
|
|
||||||
handle_pages.s
|
|
||||||
ca65 -o mist.o mist.s -l mist.lst
|
|
||||||
|
|
||||||
####
|
####
|
||||||
|
|
||||||
GENERATOR: generator.o
|
GENERATOR: generator.o
|
||||||
ld65 -o GENERATOR generator.o -C ./apple2_2000.inc
|
ld65 -o GENERATOR generator.o -C $(LINKER_SCRIPTS)/apple2_2000.inc
|
||||||
|
|
||||||
generator.o: generator.s zp.inc hardware.inc \
|
generator.o: generator.s zp.inc hardware.inc \
|
||||||
common_defines.inc common_routines.inc \
|
common_defines.inc common_routines.inc \
|
||||||
|
@ -223,7 +220,7 @@ generator.o: generator.s zp.inc hardware.inc \
|
||||||
####
|
####
|
||||||
|
|
||||||
OCTAGON: octagon.o
|
OCTAGON: octagon.o
|
||||||
ld65 -o OCTAGON octagon.o -C ./apple2_2000.inc
|
ld65 -o OCTAGON octagon.o -C $(LINKER_SCRIPTS)/apple2_2000.inc
|
||||||
|
|
||||||
octagon.o: octagon.s zp.inc hardware.inc common_defines.inc \
|
octagon.o: octagon.s zp.inc hardware.inc common_defines.inc \
|
||||||
common_routines.inc \
|
common_routines.inc \
|
||||||
|
@ -241,7 +238,7 @@ octagon.o: octagon.s zp.inc hardware.inc common_defines.inc \
|
||||||
####
|
####
|
||||||
|
|
||||||
D\'NI: dni.o
|
D\'NI: dni.o
|
||||||
ld65 -o D\'NI dni.o -C ./apple2_2000.inc
|
ld65 -o D\'NI dni.o -C $(LINKER_SCRIPTS)/apple2_2000.inc
|
||||||
|
|
||||||
dni.o: dni.s zp.inc hardware.inc common_defines.inc \
|
dni.o: dni.s zp.inc hardware.inc common_defines.inc \
|
||||||
common_routines.inc \
|
common_routines.inc \
|
||||||
|
@ -255,7 +252,7 @@ dni.o: dni.s zp.inc hardware.inc common_defines.inc \
|
||||||
####
|
####
|
||||||
|
|
||||||
MECHE: meche.o
|
MECHE: meche.o
|
||||||
ld65 -o MECHE meche.o -C ./apple2_2000.inc
|
ld65 -o MECHE meche.o -C $(LINKER_SCRIPTS)/apple2_2000.inc
|
||||||
|
|
||||||
meche.o: meche.s zp.inc hardware.inc common_defines.inc \
|
meche.o: meche.s zp.inc hardware.inc common_defines.inc \
|
||||||
common_routines.inc \
|
common_routines.inc \
|
||||||
|
@ -275,7 +272,7 @@ meche.o: meche.s zp.inc hardware.inc common_defines.inc \
|
||||||
####
|
####
|
||||||
|
|
||||||
SELENA: selena.o
|
SELENA: selena.o
|
||||||
ld65 -o SELENA selena.o -C ./apple2_2000.inc
|
ld65 -o SELENA selena.o -C $(LINKER_SCRIPTS)/apple2_2000.inc
|
||||||
|
|
||||||
selena.o: selena.s zp.inc hardware.inc common_defines.inc \
|
selena.o: selena.s zp.inc hardware.inc common_defines.inc \
|
||||||
common_routines.inc \
|
common_routines.inc \
|
||||||
|
@ -294,7 +291,7 @@ selena.o: selena.s zp.inc hardware.inc common_defines.inc \
|
||||||
####
|
####
|
||||||
|
|
||||||
SUB: sub.o
|
SUB: sub.o
|
||||||
ld65 -o SUB sub.o -C ./apple2_2000.inc
|
ld65 -o SUB sub.o -C $(LINKER_SCRIPTS)/apple2_2000.inc
|
||||||
|
|
||||||
sub.o: sub.s zp.inc hardware.inc common_defines.inc \
|
sub.o: sub.s zp.inc hardware.inc common_defines.inc \
|
||||||
common_routines.inc \
|
common_routines.inc \
|
||||||
|
@ -312,7 +309,7 @@ sub.o: sub.s zp.inc hardware.inc common_defines.inc \
|
||||||
####
|
####
|
||||||
|
|
||||||
VIEWER: viewer.o
|
VIEWER: viewer.o
|
||||||
ld65 -o VIEWER viewer.o -C ./apple2_2000.inc
|
ld65 -o VIEWER viewer.o -C $(LINKER_SCRIPTS)/apple2_2000.inc
|
||||||
|
|
||||||
viewer.o: viewer.s zp.inc hardware.inc common_defines.inc \
|
viewer.o: viewer.s zp.inc hardware.inc common_defines.inc \
|
||||||
graphics_viewer/viewer_graphics.inc \
|
graphics_viewer/viewer_graphics.inc \
|
||||||
|
@ -330,7 +327,7 @@ viewer.o: viewer.s zp.inc hardware.inc common_defines.inc \
|
||||||
####
|
####
|
||||||
|
|
||||||
STONEY: stoney.o
|
STONEY: stoney.o
|
||||||
ld65 -o STONEY stoney.o -C ./apple2_2000.inc
|
ld65 -o STONEY stoney.o -C $(LINKER_SCRIPTS)/apple2_2000.inc
|
||||||
|
|
||||||
stoney.o: stoney.s zp.inc hardware.inc common_defines.inc \
|
stoney.o: stoney.s zp.inc hardware.inc common_defines.inc \
|
||||||
graphics_stoney/stoney_graphics.inc \
|
graphics_stoney/stoney_graphics.inc \
|
||||||
|
@ -350,7 +347,7 @@ stoney.o: stoney.s zp.inc hardware.inc common_defines.inc \
|
||||||
####
|
####
|
||||||
|
|
||||||
SHIP: ship.o
|
SHIP: ship.o
|
||||||
ld65 -o SHIP ship.o -C ./apple2_2000.inc
|
ld65 -o SHIP ship.o -C $(LINKER_SCRIPTS)/apple2_2000.inc
|
||||||
|
|
||||||
ship.o: ship.s zp.inc hardware.inc common_defines.inc \
|
ship.o: ship.s zp.inc hardware.inc common_defines.inc \
|
||||||
graphics_ship/ship_graphics.inc \
|
graphics_ship/ship_graphics.inc \
|
||||||
|
@ -369,7 +366,7 @@ ship.o: ship.s zp.inc hardware.inc common_defines.inc \
|
||||||
####
|
####
|
||||||
|
|
||||||
CABIN: cabin.o
|
CABIN: cabin.o
|
||||||
ld65 -o CABIN cabin.o -C ./apple2_2000.inc
|
ld65 -o CABIN cabin.o -C $(LINKER_SCRIPTS)/apple2_2000.inc
|
||||||
|
|
||||||
cabin.o: cabin.s zp.inc hardware.inc common_defines.inc \
|
cabin.o: cabin.s zp.inc hardware.inc common_defines.inc \
|
||||||
common_routines.inc \
|
common_routines.inc \
|
||||||
|
@ -389,7 +386,7 @@ cabin.o: cabin.s zp.inc hardware.inc common_defines.inc \
|
||||||
####
|
####
|
||||||
|
|
||||||
CHANNEL: channel.o
|
CHANNEL: channel.o
|
||||||
ld65 -o CHANNEL channel.o -C ./apple2_2000.inc
|
ld65 -o CHANNEL channel.o -C $(LINKER_SCRIPTS)/apple2_2000.inc
|
||||||
|
|
||||||
channel.o: channel.s zp.inc hardware.inc common_defines.inc \
|
channel.o: channel.s zp.inc hardware.inc common_defines.inc \
|
||||||
common_routines.inc \
|
common_routines.inc \
|
||||||
|
@ -408,7 +405,7 @@ channel.o: channel.s zp.inc hardware.inc common_defines.inc \
|
||||||
####
|
####
|
||||||
|
|
||||||
ARBOR: arbor.o
|
ARBOR: arbor.o
|
||||||
ld65 -o ARBOR arbor.o -C ./apple2_2000.inc
|
ld65 -o ARBOR arbor.o -C $(LINKER_SCRIPTS)/apple2_2000.inc
|
||||||
|
|
||||||
arbor.o: arbor.s zp.inc hardware.inc common_defines.inc \
|
arbor.o: arbor.s zp.inc hardware.inc common_defines.inc \
|
||||||
common_routines.inc \
|
common_routines.inc \
|
||||||
|
@ -420,7 +417,7 @@ arbor.o: arbor.s zp.inc hardware.inc common_defines.inc \
|
||||||
####
|
####
|
||||||
|
|
||||||
NIBEL: nibel.o
|
NIBEL: nibel.o
|
||||||
ld65 -o NIBEL nibel.o -C ./apple2_2000.inc
|
ld65 -o NIBEL nibel.o -C $(LINKER_SCRIPTS)/apple2_2000.inc
|
||||||
|
|
||||||
nibel.o: nibel.s zp.inc hardware.inc common_defines.inc \
|
nibel.o: nibel.s zp.inc hardware.inc common_defines.inc \
|
||||||
common_routines.inc \
|
common_routines.inc \
|
||||||
|
@ -432,7 +429,7 @@ nibel.o: nibel.s zp.inc hardware.inc common_defines.inc \
|
||||||
####
|
####
|
||||||
|
|
||||||
DENTIST: dentist.o
|
DENTIST: dentist.o
|
||||||
ld65 -o DENTIST dentist.o -C ./apple2_2000.inc
|
ld65 -o DENTIST dentist.o -C $(LINKER_SCRIPTS)/apple2_2000.inc
|
||||||
|
|
||||||
dentist.o: dentist.s zp.inc hardware.inc common_defines.inc \
|
dentist.o: dentist.s zp.inc hardware.inc common_defines.inc \
|
||||||
common_routines.inc \
|
common_routines.inc \
|
||||||
|
|
524
games/mist_hgr/clock_bridge_puzzle.s
Normal file
524
games/mist_hgr/clock_bridge_puzzle.s
Normal file
|
@ -0,0 +1,524 @@
|
||||||
|
; note, the clock is a bit different in the real game
|
||||||
|
; can't see face when pressing buttons
|
||||||
|
; and the way the hands move is a bit more complex (or is it?)
|
||||||
|
|
||||||
|
;======================
|
||||||
|
; reset the puzzle inside the clock
|
||||||
|
|
||||||
|
clock_inside_reset:
|
||||||
|
|
||||||
|
lda #0
|
||||||
|
sta CLOCK_TOP
|
||||||
|
sta CLOCK_MIDDLE
|
||||||
|
sta CLOCK_BOTTOM
|
||||||
|
sta CLOCK_COUNT
|
||||||
|
sta CLOCK_LAST
|
||||||
|
rts
|
||||||
|
|
||||||
|
|
||||||
|
;======================
|
||||||
|
; handle the clock inside puzzle
|
||||||
|
|
||||||
|
clock_inside_puzzle:
|
||||||
|
|
||||||
|
lda XPOS
|
||||||
|
cmp #25
|
||||||
|
bcc inside_not_reset
|
||||||
|
|
||||||
|
inside_reset:
|
||||||
|
jsr clock_inside_reset
|
||||||
|
rts
|
||||||
|
|
||||||
|
inside_not_reset:
|
||||||
|
lda CLOCK_COUNT
|
||||||
|
cmp #9
|
||||||
|
beq inside_done
|
||||||
|
|
||||||
|
lda XPOS
|
||||||
|
cmp #18
|
||||||
|
bcc inside_left
|
||||||
|
bcs inside_right
|
||||||
|
|
||||||
|
inside_left:
|
||||||
|
inc CLOCK_MIDDLE
|
||||||
|
|
||||||
|
lda CLOCK_LAST
|
||||||
|
cmp #1
|
||||||
|
bne left_spin_bottom
|
||||||
|
lda YPOS
|
||||||
|
cmp #24
|
||||||
|
bcs left_nospin_bottom
|
||||||
|
|
||||||
|
left_spin_bottom:
|
||||||
|
inc CLOCK_BOTTOM
|
||||||
|
|
||||||
|
left_nospin_bottom:
|
||||||
|
lda #1
|
||||||
|
jmp wrap_wheels
|
||||||
|
|
||||||
|
inside_right:
|
||||||
|
inc CLOCK_MIDDLE
|
||||||
|
|
||||||
|
lda CLOCK_LAST
|
||||||
|
cmp #2
|
||||||
|
bne right_spin_top
|
||||||
|
lda YPOS
|
||||||
|
cmp #24
|
||||||
|
bcs right_nospin_top
|
||||||
|
|
||||||
|
right_spin_top:
|
||||||
|
inc CLOCK_TOP
|
||||||
|
right_nospin_top:
|
||||||
|
lda #2
|
||||||
|
|
||||||
|
wrap_wheels:
|
||||||
|
sta CLOCK_LAST
|
||||||
|
inc CLOCK_COUNT
|
||||||
|
|
||||||
|
ldx #0
|
||||||
|
wrap_wheels_loop:
|
||||||
|
lda CLOCK_TOP,X
|
||||||
|
cmp #3
|
||||||
|
bne no_wrap
|
||||||
|
lda #0
|
||||||
|
sta CLOCK_TOP,X
|
||||||
|
no_wrap:
|
||||||
|
inx
|
||||||
|
cpx #3
|
||||||
|
bne wrap_wheels_loop
|
||||||
|
|
||||||
|
; see if done!
|
||||||
|
; note 0->3, 1->1, 2->2 so want 2/2/1 -> 2/2/1
|
||||||
|
lda CLOCK_TOP
|
||||||
|
cmp #2
|
||||||
|
bne no_open_gear
|
||||||
|
lda CLOCK_MIDDLE
|
||||||
|
cmp #2
|
||||||
|
bne no_open_gear
|
||||||
|
lda CLOCK_BOTTOM
|
||||||
|
cmp #1
|
||||||
|
bne no_open_gear
|
||||||
|
|
||||||
|
lda #1
|
||||||
|
change_gear:
|
||||||
|
sta GEAR_OPEN
|
||||||
|
|
||||||
|
jsr open_the_gear
|
||||||
|
jmp inside_done
|
||||||
|
|
||||||
|
no_open_gear:
|
||||||
|
lda GEAR_OPEN
|
||||||
|
beq inside_done
|
||||||
|
|
||||||
|
; change if it was open
|
||||||
|
lda #0
|
||||||
|
jmp change_gear
|
||||||
|
|
||||||
|
inside_done:
|
||||||
|
rts
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
;======================
|
||||||
|
; draw the clock inside
|
||||||
|
|
||||||
|
draw_clock_inside:
|
||||||
|
|
||||||
|
lda DIRECTION
|
||||||
|
cmp #DIRECTION_S
|
||||||
|
bne done_draw_clock_puzzle
|
||||||
|
|
||||||
|
; draw weight
|
||||||
|
|
||||||
|
; lda #<clock_weight_sprite
|
||||||
|
; sta INL
|
||||||
|
; lda #>clock_weight_sprite
|
||||||
|
; sta INH
|
||||||
|
|
||||||
|
; lda #9
|
||||||
|
; sta XPOS
|
||||||
|
|
||||||
|
; lda CLOCK_COUNT
|
||||||
|
; asl
|
||||||
|
; asl
|
||||||
|
; clc
|
||||||
|
; adc #4
|
||||||
|
; sta YPOS
|
||||||
|
; jsr put_sprite_crop
|
||||||
|
|
||||||
|
; lda CLOCK_TOP
|
||||||
|
; asl
|
||||||
|
; tay
|
||||||
|
; lda clock_gear_sprites,Y
|
||||||
|
; sta INL
|
||||||
|
; lda clock_gear_sprites+1,Y
|
||||||
|
; sta INH
|
||||||
|
|
||||||
|
; lda #17
|
||||||
|
; sta XPOS
|
||||||
|
; lda #8
|
||||||
|
; sta YPOS
|
||||||
|
; jsr put_sprite_crop
|
||||||
|
|
||||||
|
; lda CLOCK_MIDDLE
|
||||||
|
; asl
|
||||||
|
; tay
|
||||||
|
; lda clock_gear_sprites,Y
|
||||||
|
; sta INL
|
||||||
|
; lda clock_gear_sprites+1,Y
|
||||||
|
; sta INH
|
||||||
|
|
||||||
|
; lda #17
|
||||||
|
; sta XPOS
|
||||||
|
; lda #12
|
||||||
|
; sta YPOS
|
||||||
|
; jsr put_sprite_crop
|
||||||
|
|
||||||
|
; lda CLOCK_BOTTOM
|
||||||
|
; asl
|
||||||
|
; tay
|
||||||
|
; lda clock_gear_sprites,Y
|
||||||
|
; sta INL
|
||||||
|
; lda clock_gear_sprites+1,Y
|
||||||
|
; sta INH
|
||||||
|
|
||||||
|
; lda #17
|
||||||
|
; sta XPOS
|
||||||
|
; lda #16
|
||||||
|
; sta YPOS
|
||||||
|
; jsr put_sprite_crop
|
||||||
|
done_draw_clock_puzzle:
|
||||||
|
rts
|
||||||
|
|
||||||
|
|
||||||
|
;======================
|
||||||
|
; open the gear
|
||||||
|
|
||||||
|
open_the_gear:
|
||||||
|
|
||||||
|
lda GEAR_OPEN
|
||||||
|
beq no_gear_open
|
||||||
|
|
||||||
|
yes_gear_open:
|
||||||
|
ldy #LOCATION_NORTH_EXIT
|
||||||
|
lda #MIST_OPEN_GEAR
|
||||||
|
sta location15,Y ; MIST_GEAR
|
||||||
|
|
||||||
|
ldy #LOCATION_NORTH_EXIT_DIR
|
||||||
|
lda #DIRECTION_E
|
||||||
|
sta location15,Y ; MIST_GEAR
|
||||||
|
|
||||||
|
ldy #LOCATION_NORTH_BG
|
||||||
|
lda #<gear_open_n_lzsa
|
||||||
|
sta location15,Y ; MIST_GEAR
|
||||||
|
lda #>gear_open_n_lzsa
|
||||||
|
sta location15+1,Y ; MIST_GEAR
|
||||||
|
|
||||||
|
ldy #LOCATION_SOUTH_BG
|
||||||
|
lda #<clock_inside_open_lzsa
|
||||||
|
sta location23,Y ; MIST_CLOCK_INSIDE
|
||||||
|
lda #>clock_inside_open_lzsa
|
||||||
|
sta location23+1,Y ; MIST_CLOCK_INSIDE
|
||||||
|
|
||||||
|
jmp done_open_the_gear
|
||||||
|
|
||||||
|
|
||||||
|
no_gear_open:
|
||||||
|
|
||||||
|
ldy #LOCATION_NORTH_EXIT
|
||||||
|
lda #$FF
|
||||||
|
sta location15,Y ; MIST_GEAR
|
||||||
|
|
||||||
|
; ldy #LOCATION_NORTH_EXIT_DIR
|
||||||
|
; lda #DIRECTION_E
|
||||||
|
; sta location15,Y
|
||||||
|
|
||||||
|
ldy #LOCATION_NORTH_BG
|
||||||
|
lda #<gear_n_lzsa
|
||||||
|
sta location15,Y ; MIST_GEAR
|
||||||
|
lda #>gear_n_lzsa
|
||||||
|
sta location15+1,Y ; MIST_GEAR
|
||||||
|
|
||||||
|
ldy #LOCATION_SOUTH_BG
|
||||||
|
lda #<clock_inside_s_lzsa ; MIST_CLOCK_INSIDE
|
||||||
|
sta location23,Y
|
||||||
|
lda #>clock_inside_s_lzsa
|
||||||
|
sta location23+1,Y
|
||||||
|
|
||||||
|
done_open_the_gear:
|
||||||
|
|
||||||
|
jsr change_location
|
||||||
|
|
||||||
|
rts
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
;======================
|
||||||
|
; raise bridge
|
||||||
|
|
||||||
|
raise_bridge:
|
||||||
|
|
||||||
|
lda CLOCK_BRIDGE
|
||||||
|
beq lower_bridge
|
||||||
|
|
||||||
|
ldy #LOCATION_SOUTH_EXIT
|
||||||
|
lda #MIST_CLOCK_ISLAND
|
||||||
|
sta location21,Y ; MIST_CLOCK_PUZZLE
|
||||||
|
|
||||||
|
ldy #LOCATION_SOUTH_EXIT_DIR
|
||||||
|
lda #DIRECTION_S
|
||||||
|
sta location21,Y ; MIST_CLOCK_PUZZLE
|
||||||
|
|
||||||
|
ldy #LOCATION_SOUTH_BG
|
||||||
|
lda #<clock_puzzle_bridge_lzsa
|
||||||
|
sta location21,Y ; MIST_CLOCK_PUZZLE
|
||||||
|
lda #>clock_puzzle_bridge_lzsa
|
||||||
|
sta location21+1,Y ; MIST_CLOCK_PUZZLE
|
||||||
|
|
||||||
|
; draw it on other too
|
||||||
|
lda #<clock_bridge_lzsa
|
||||||
|
sta location11,Y ; MIST_CLOCK
|
||||||
|
lda #>clock_bridge_lzsa
|
||||||
|
sta location11+1,Y ; MIST_CLOCK
|
||||||
|
|
||||||
|
jmp done_clock_bridge
|
||||||
|
|
||||||
|
lower_bridge:
|
||||||
|
|
||||||
|
ldy #LOCATION_SOUTH_EXIT
|
||||||
|
; lda #MIST_TREE_CORRIDOR_5
|
||||||
|
lda #$ff
|
||||||
|
sta location21,Y ; MIST_CLOCK_PUZZLE
|
||||||
|
|
||||||
|
ldy #LOCATION_SOUTH_EXIT_DIR
|
||||||
|
lda #DIRECTION_N
|
||||||
|
sta location21,Y ; MIST_CLOCK_PUZZLE
|
||||||
|
|
||||||
|
ldy #LOCATION_SOUTH_BG
|
||||||
|
lda #<clock_puzzle_s_lzsa
|
||||||
|
sta location21,Y ; MIST_CLOCK_PUZZLE
|
||||||
|
lda #>clock_puzzle_s_lzsa
|
||||||
|
sta location21+1,Y ; MIST_CLOCK_PUZZLE
|
||||||
|
|
||||||
|
; lower on other too
|
||||||
|
|
||||||
|
lda #<clock_s_lzsa
|
||||||
|
sta location11,Y ; MIST_CLOCK
|
||||||
|
lda #>clock_s_lzsa
|
||||||
|
sta location11+1,Y ; MIST_CLOCK
|
||||||
|
|
||||||
|
done_clock_bridge:
|
||||||
|
|
||||||
|
rts
|
||||||
|
|
||||||
|
;======================
|
||||||
|
; draw the clock face
|
||||||
|
|
||||||
|
draw_clock_face:
|
||||||
|
|
||||||
|
lda DIRECTION
|
||||||
|
cmp #DIRECTION_S
|
||||||
|
bne done_draw_clock_face
|
||||||
|
|
||||||
|
lda CLOCK_HOUR
|
||||||
|
asl
|
||||||
|
tay
|
||||||
|
; lda clock_hour_sprites,Y
|
||||||
|
; sta INL
|
||||||
|
; lda clock_hour_sprites+1,Y
|
||||||
|
; sta INH
|
||||||
|
|
||||||
|
lda LOCATION
|
||||||
|
cmp #MIST_CLOCK
|
||||||
|
bne old_clock_face
|
||||||
|
|
||||||
|
new_clock_face:
|
||||||
|
lda #24
|
||||||
|
sta XPOS
|
||||||
|
lda #8
|
||||||
|
bne done_clock_face ; bra
|
||||||
|
|
||||||
|
old_clock_face:
|
||||||
|
lda #20
|
||||||
|
sta XPOS
|
||||||
|
lda #6
|
||||||
|
done_clock_face:
|
||||||
|
sta YPOS
|
||||||
|
; jsr put_sprite_crop
|
||||||
|
|
||||||
|
; lda CLOCK_MINUTE
|
||||||
|
; asl
|
||||||
|
; tay
|
||||||
|
; lda clock_minute_sprites,Y
|
||||||
|
; sta INL
|
||||||
|
; lda clock_minute_sprites+1,Y
|
||||||
|
; sta INH
|
||||||
|
|
||||||
|
lda LOCATION
|
||||||
|
cmp #MIST_CLOCK
|
||||||
|
bne old_clock_face2
|
||||||
|
|
||||||
|
new_clock_face2:
|
||||||
|
lda #24
|
||||||
|
sta XPOS
|
||||||
|
lda #8
|
||||||
|
bne done_clock_face2 ; bra
|
||||||
|
|
||||||
|
old_clock_face2:
|
||||||
|
lda #20
|
||||||
|
sta XPOS
|
||||||
|
lda #6
|
||||||
|
done_clock_face2:
|
||||||
|
|
||||||
|
sta YPOS
|
||||||
|
; jsr put_sprite_crop
|
||||||
|
done_draw_clock_face:
|
||||||
|
|
||||||
|
rts
|
||||||
|
|
||||||
|
|
||||||
|
;======================
|
||||||
|
; clock puzzle
|
||||||
|
|
||||||
|
clock_puzzle:
|
||||||
|
lda CURSOR_X
|
||||||
|
cmp #19
|
||||||
|
bcc clock_puzzle_minutes ; blt
|
||||||
|
|
||||||
|
cmp #24
|
||||||
|
bcc clock_puzzle_hours ; blt
|
||||||
|
bcs clock_puzzle_button ; bge
|
||||||
|
|
||||||
|
clock_puzzle_hours:
|
||||||
|
inc CLOCK_HOUR
|
||||||
|
lda CLOCK_HOUR
|
||||||
|
cmp #12
|
||||||
|
bne clock_puzzle_done
|
||||||
|
|
||||||
|
lda #0
|
||||||
|
sta CLOCK_HOUR
|
||||||
|
beq clock_puzzle_done
|
||||||
|
|
||||||
|
clock_puzzle_minutes:
|
||||||
|
inc CLOCK_MINUTE
|
||||||
|
lda CLOCK_MINUTE
|
||||||
|
cmp #12
|
||||||
|
bne clock_puzzle_done
|
||||||
|
|
||||||
|
lda #0
|
||||||
|
sta CLOCK_MINUTE
|
||||||
|
beq clock_puzzle_done
|
||||||
|
|
||||||
|
clock_puzzle_button:
|
||||||
|
|
||||||
|
lda CLOCK_MINUTE
|
||||||
|
cmp #8
|
||||||
|
bne bridge_down
|
||||||
|
|
||||||
|
lda CLOCK_HOUR
|
||||||
|
cmp #2
|
||||||
|
bne bridge_down
|
||||||
|
|
||||||
|
lda #1
|
||||||
|
jmp bridge_adjust
|
||||||
|
|
||||||
|
bridge_down:
|
||||||
|
lda #0
|
||||||
|
|
||||||
|
bridge_adjust:
|
||||||
|
sta CLOCK_BRIDGE
|
||||||
|
|
||||||
|
jsr click_speaker ; click speaker
|
||||||
|
|
||||||
|
jsr raise_bridge
|
||||||
|
|
||||||
|
; update the background
|
||||||
|
|
||||||
|
jsr change_location
|
||||||
|
|
||||||
|
clock_puzzle_done:
|
||||||
|
|
||||||
|
rts
|
||||||
|
|
||||||
|
|
||||||
|
;.include "clock_sprites.inc"
|
||||||
|
|
||||||
|
|
||||||
|
; put at 12,6 on screen 4 N
|
||||||
|
gear_block_sprite1:
|
||||||
|
.byte 4,3
|
||||||
|
.byte $ff,$ff,$ff,$ff
|
||||||
|
.byte $df,$df,$df,$df
|
||||||
|
.byte $ff,$dd,$ff,$0f
|
||||||
|
|
||||||
|
; put at 9,6 on screen 20 N
|
||||||
|
gear_block_sprite2:
|
||||||
|
.byte 7,4
|
||||||
|
.byte $ff,$ff,$ff,$ff,$ff,$ff,$ff
|
||||||
|
.byte $ff,$ff,$ff,$ff,$ff,$ff,$ff
|
||||||
|
.byte $fd,$fd,$dd,$ff,$dd,$fd,$df
|
||||||
|
.byte $ff,$ff,$dd,$ff,$dd,$ff,$0f
|
||||||
|
|
||||||
|
; put at 21,4 on screen 5 N
|
||||||
|
gear_block_sprite3:
|
||||||
|
.byte 2,2
|
||||||
|
.byte $ff,$ff
|
||||||
|
.byte $ff,$ff
|
||||||
|
|
||||||
|
|
||||||
|
check_gear_delete:
|
||||||
|
|
||||||
|
; all views of gear are when looking north?
|
||||||
|
|
||||||
|
lda DIRECTION
|
||||||
|
cmp #DIRECTION_N
|
||||||
|
bne done_gear_delete
|
||||||
|
|
||||||
|
lda LOCATION
|
||||||
|
cmp #MIST_ABOVE_DOCK
|
||||||
|
beq gear_look1
|
||||||
|
cmp #MIST_DOCK_STEPS
|
||||||
|
beq gear_look2
|
||||||
|
cmp #MIST_GEAR_BASE
|
||||||
|
beq gear_look2
|
||||||
|
cmp #MIST_BASE_STEPS
|
||||||
|
beq gear_look3
|
||||||
|
cmp #MIST_STEPS_1ST_LANDING
|
||||||
|
beq gear_look3
|
||||||
|
bne done_gear_delete
|
||||||
|
|
||||||
|
gear_look1:
|
||||||
|
lda #<gear_block_sprite1
|
||||||
|
sta INL
|
||||||
|
lda #>gear_block_sprite1
|
||||||
|
sta INH
|
||||||
|
lda #12
|
||||||
|
sta XPOS
|
||||||
|
lda #6
|
||||||
|
jmp draw_gear_delete
|
||||||
|
|
||||||
|
gear_look2:
|
||||||
|
lda #<gear_block_sprite2
|
||||||
|
sta INL
|
||||||
|
lda #>gear_block_sprite2
|
||||||
|
sta INH
|
||||||
|
lda #9
|
||||||
|
sta XPOS
|
||||||
|
lda #6
|
||||||
|
jmp draw_gear_delete
|
||||||
|
|
||||||
|
gear_look3:
|
||||||
|
lda #<gear_block_sprite3
|
||||||
|
sta INL
|
||||||
|
lda #>gear_block_sprite3
|
||||||
|
sta INH
|
||||||
|
lda #21
|
||||||
|
sta XPOS
|
||||||
|
lda #4
|
||||||
|
|
||||||
|
draw_gear_delete:
|
||||||
|
sta YPOS
|
||||||
|
; jsr put_sprite_crop
|
||||||
|
|
||||||
|
done_gear_delete:
|
||||||
|
rts
|
163
games/mist_hgr/graphics_mist/Makefile
Normal file
163
games/mist_hgr/graphics_mist/Makefile
Normal file
|
@ -0,0 +1,163 @@
|
||||||
|
#include ../Makefile.inc
|
||||||
|
|
||||||
|
LZSA = ~/research/lzsa/lzsa/lzsa
|
||||||
|
MAKE_VGI = ../../../graphics/hgr/vgi/make_vgi_asm
|
||||||
|
|
||||||
|
all: mist_graphics.inc
|
||||||
|
|
||||||
|
####
|
||||||
|
|
||||||
|
mist_graphics.inc: \
|
||||||
|
todo.lzsa
|
||||||
|
# dock_n.lzsa dock_s.lzsa dock_e.lzsa dock_w.lzsa dock_w_open.lzsa \
|
||||||
|
# dock_shipup_e.lzsa dock_shipup_n.lzsa \
|
||||||
|
# dock_switch_n.lzsa dock_switch_s.lzsa \
|
||||||
|
# dock_switch_shipup_s.lzsa \
|
||||||
|
# dock_steps_w.lzsa \
|
||||||
|
# cat_letter.lzsa \
|
||||||
|
# above_dock_e.lzsa above_dock_n.lzsa above_dock_s.lzsa \
|
||||||
|
# above_dock_shipup_s.lzsa above_dock_shipup_e.lzsa \
|
||||||
|
# step_base_s.lzsa step_base_n.lzsa \
|
||||||
|
# step_land1_w.lzsa step_land1_e.lzsa \
|
||||||
|
# step_land1_shipup_e.lzsa \
|
||||||
|
# step_land2_e.lzsa step_land2_w.lzsa \
|
||||||
|
# step_land2_shipup_e.lzsa \
|
||||||
|
# step_dentist_n.lzsa step_dentist_e.lzsa step_dentist_w.lzsa \
|
||||||
|
# step_dentist_shipup_e.lzsa \
|
||||||
|
# step_land3_w.lzsa step_land3_e.lzsa \
|
||||||
|
# step_land3_shipup_e.lzsa \
|
||||||
|
# step_top_e.lzsa step_top_w.lzsa step_top_n.lzsa step_top_s.lzsa \
|
||||||
|
# step_top_shipup_e.lzsa \
|
||||||
|
# pool_n.lzsa pool_s.lzsa pool_e.lzsa pool_w.lzsa \
|
||||||
|
# pool_shipup_s.lzsa \
|
||||||
|
# clock_e.lzsa clock_n.lzsa clock_s.lzsa clock_bridge.lzsa \
|
||||||
|
# spaceship_far_e.lzsa spaceship_far_n.lzsa \
|
||||||
|
# tree1_n.lzsa tree1_s.lzsa \
|
||||||
|
# tree1_shipup_n.lzsa \
|
||||||
|
# tree2_n.lzsa tree2_s.lzsa tree2_e.lzsa tree2_w.lzsa \
|
||||||
|
# tree5_n.lzsa tree5_e.lzsa tree5_s.lzsa \
|
||||||
|
# gear_n.lzsa gear_w.lzsa gear_s.lzsa gear_open_n.lzsa\
|
||||||
|
# gear_shipup_s.lzsa \
|
||||||
|
# gear_base_n.lzsa \
|
||||||
|
# spaceship_switch_s.lzsa spaceship_switch_n.lzsa \
|
||||||
|
# spaceship_path_e.lzsa spaceship_path_w.lzsa \
|
||||||
|
# tree4_n.lzsa tree4_s.lzsa tree4_w.lzsa tree4_e.lzsa \
|
||||||
|
# clock_island_s.lzsa clock_island_n.lzsa \
|
||||||
|
# clock_puzzle_s.lzsa clock_puzzle_bridge.lzsa \
|
||||||
|
# clock_inside_n.lzsa clock_inside_s.lzsa clock_inside_open.lzsa \
|
||||||
|
# gear_open_e.lzsa \
|
||||||
|
# pad_n.lzsa pad_e.lzsa \
|
||||||
|
# spaceship_door_n.lzsa spaceship_door_open_n.lzsa \
|
||||||
|
# tower2_base_w.lzsa tower2_top_w.lzsa \
|
||||||
|
# tower2_path_e.lzsa tower2_path_n.lzsa \
|
||||||
|
# pillar_cross.lzsa pillar_eye.lzsa pillar_snake.lzsa pillar_emu.lzsa \
|
||||||
|
# pillar_bug.lzsa pillar_anchor.lzsa pillar_arrow.lzsa pillar_leaf.lzsa
|
||||||
|
echo "dock_n_lzsa: .incbin \"todo.lzsa\"" > mist_graphics.inc
|
||||||
|
echo "dock_s_lzsa: .incbin \"todo.lzsa\"" >> mist_graphics.inc
|
||||||
|
echo "dock_e_lzsa: .incbin \"todo.lzsa\"" >> mist_graphics.inc
|
||||||
|
echo "dock_w_lzsa: .incbin \"todo.lzsa\"" >> mist_graphics.inc
|
||||||
|
echo "dock_shipup_e_lzsa: .incbin \"todo.lzsa\"" >> mist_graphics.inc
|
||||||
|
echo "dock_shipup_n_lzsa: .incbin \"todo.lzsa\"" >> mist_graphics.inc
|
||||||
|
echo "dock_w_open_lzsa: .incbin \"todo.lzsa\"" >> mist_graphics.inc
|
||||||
|
echo "dock_switch_n_lzsa: .incbin \"todo.lzsa\"" >> mist_graphics.inc
|
||||||
|
echo "dock_switch_s_lzsa: .incbin \"todo.lzsa\"" >> mist_graphics.inc
|
||||||
|
echo "dock_switch_shipup_s_lzsa: .incbin \"todo.lzsa\"" >> mist_graphics.inc
|
||||||
|
echo "dock_steps_w_lzsa: .incbin \"todo.lzsa\"" >> mist_graphics.inc
|
||||||
|
echo "cat_letter_lzsa: .incbin \"todo.lzsa\"" >> mist_graphics.inc
|
||||||
|
echo "above_dock_e_lzsa: .incbin \"todo.lzsa\"" >> mist_graphics.inc
|
||||||
|
echo "above_dock_s_lzsa: .incbin \"todo.lzsa\"" >> mist_graphics.inc
|
||||||
|
echo "above_dock_n_lzsa: .incbin \"todo.lzsa\"" >> mist_graphics.inc
|
||||||
|
echo "above_dock_shipup_s_lzsa: .incbin \"todo.lzsa\"" >> mist_graphics.inc
|
||||||
|
echo "above_dock_shipup_e_lzsa: .incbin \"todo.lzsa\"" >> mist_graphics.inc
|
||||||
|
echo "step_base_n_lzsa: .incbin \"todo.lzsa\"" >> mist_graphics.inc
|
||||||
|
echo "step_base_s_lzsa: .incbin \"todo.lzsa\"" >> mist_graphics.inc
|
||||||
|
echo "step_land1_w_lzsa: .incbin \"todo.lzsa\"" >> mist_graphics.inc
|
||||||
|
echo "step_land1_e_lzsa: .incbin \"todo.lzsa\"" >> mist_graphics.inc
|
||||||
|
echo "step_land1_shipup_e_lzsa: .incbin \"todo.lzsa\"" >> mist_graphics.inc
|
||||||
|
echo "step_land2_w_lzsa: .incbin \"todo.lzsa\"" >> mist_graphics.inc
|
||||||
|
echo "step_land2_e_lzsa: .incbin \"todo.lzsa\"" >> mist_graphics.inc
|
||||||
|
echo "step_land2_shipup_e_lzsa: .incbin \"todo.lzsa\"" >> mist_graphics.inc
|
||||||
|
echo "step_dentist_n_lzsa: .incbin \"todo.lzsa\"" >> mist_graphics.inc
|
||||||
|
echo "step_dentist_w_lzsa: .incbin \"todo.lzsa\"" >> mist_graphics.inc
|
||||||
|
echo "step_dentist_e_lzsa: .incbin \"todo.lzsa\"" >> mist_graphics.inc
|
||||||
|
echo "step_dentist_shipup_e_lzsa: .incbin \"todo.lzsa\"" >> mist_graphics.inc
|
||||||
|
echo "step_land3_w_lzsa: .incbin \"todo.lzsa\"" >> mist_graphics.inc
|
||||||
|
echo "step_land3_e_lzsa: .incbin \"todo.lzsa\"" >> mist_graphics.inc
|
||||||
|
echo "step_land3_shipup_e_lzsa: .incbin \"todo.lzsa\"" >> mist_graphics.inc
|
||||||
|
echo "step_top_e_lzsa: .incbin \"todo.lzsa\"" >> mist_graphics.inc
|
||||||
|
echo "step_top_w_lzsa: .incbin \"todo.lzsa\"" >> mist_graphics.inc
|
||||||
|
echo "step_top_n_lzsa: .incbin \"todo.lzsa\"" >> mist_graphics.inc
|
||||||
|
echo "step_top_s_lzsa: .incbin \"todo.lzsa\"" >> mist_graphics.inc
|
||||||
|
echo "step_top_shipup_e_lzsa: .incbin \"todo.lzsa\"" >> mist_graphics.inc
|
||||||
|
echo "pool_n_lzsa: .incbin \"todo.lzsa\"" >> mist_graphics.inc
|
||||||
|
echo "pool_s_lzsa: .incbin \"todo.lzsa\"" >> mist_graphics.inc
|
||||||
|
echo "pool_e_lzsa: .incbin \"todo.lzsa\"" >> mist_graphics.inc
|
||||||
|
echo "pool_w_lzsa: .incbin \"todo.lzsa\"" >> mist_graphics.inc
|
||||||
|
echo "pool_shipup_s_lzsa: .incbin \"todo.lzsa\"" >> mist_graphics.inc
|
||||||
|
echo "clock_s_lzsa: .incbin \"todo.lzsa\"" >> mist_graphics.inc
|
||||||
|
echo "clock_n_lzsa: .incbin \"todo.lzsa\"" >> mist_graphics.inc
|
||||||
|
echo "clock_e_lzsa: .incbin \"todo.lzsa\"" >> mist_graphics.inc
|
||||||
|
echo "clock_bridge_lzsa: .incbin \"todo.lzsa\"" >> mist_graphics.inc
|
||||||
|
echo "spaceship_far_n_lzsa: .incbin \"todo.lzsa\"" >> mist_graphics.inc
|
||||||
|
echo "spaceship_far_e_lzsa: .incbin \"todo.lzsa\"" >> mist_graphics.inc
|
||||||
|
echo "tree1_n_lzsa: .incbin \"todo.lzsa\"" >> mist_graphics.inc
|
||||||
|
echo "tree1_s_lzsa: .incbin \"todo.lzsa\"" >> mist_graphics.inc
|
||||||
|
echo "tree1_shipup_n_lzsa: .incbin \"todo.lzsa\"" >> mist_graphics.inc
|
||||||
|
echo "tree2_n_lzsa: .incbin \"todo.lzsa\"" >> mist_graphics.inc
|
||||||
|
echo "tree2_s_lzsa: .incbin \"todo.lzsa\"" >> mist_graphics.inc
|
||||||
|
echo "tree2_e_lzsa: .incbin \"todo.lzsa\"" >> mist_graphics.inc
|
||||||
|
echo "tree2_w_lzsa: .incbin \"todo.lzsa\"" >> mist_graphics.inc
|
||||||
|
echo "tree5_n_lzsa: .incbin \"todo.lzsa\"" >> mist_graphics.inc
|
||||||
|
echo "tree5_s_lzsa: .incbin \"todo.lzsa\"" >> mist_graphics.inc
|
||||||
|
echo "tree5_e_lzsa: .incbin \"todo.lzsa\"" >> mist_graphics.inc
|
||||||
|
echo "gear_n_lzsa: .incbin \"todo.lzsa\"" >> mist_graphics.inc
|
||||||
|
echo "gear_s_lzsa: .incbin \"todo.lzsa\"" >> mist_graphics.inc
|
||||||
|
echo "gear_w_lzsa: .incbin \"todo.lzsa\"" >> mist_graphics.inc
|
||||||
|
echo "gear_shipup_s_lzsa: .incbin \"todo.lzsa\"" >> mist_graphics.inc
|
||||||
|
echo "gear_open_n_lzsa: .incbin \"todo.lzsa\"" >> mist_graphics.inc
|
||||||
|
echo "gear_base_n_lzsa: .incbin \"todo.lzsa\"" >> mist_graphics.inc
|
||||||
|
echo "spaceship_switch_n_lzsa: .incbin \"todo.lzsa\"" >> mist_graphics.inc
|
||||||
|
echo "spaceship_switch_s_lzsa: .incbin \"todo.lzsa\"" >> mist_graphics.inc
|
||||||
|
echo "spaceship_path_w_lzsa: .incbin \"todo.lzsa\"" >> mist_graphics.inc
|
||||||
|
echo "tree4_n_lzsa: .incbin \"todo.lzsa\"" >> mist_graphics.inc
|
||||||
|
echo "tree4_s_lzsa: .incbin \"todo.lzsa\"" >> mist_graphics.inc
|
||||||
|
echo "tree4_w_lzsa: .incbin \"todo.lzsa\"" >> mist_graphics.inc
|
||||||
|
echo "tree4_e_lzsa: .incbin \"todo.lzsa\"" >> mist_graphics.inc
|
||||||
|
echo "clock_island_s_lzsa: .incbin \"todo.lzsa\"" >> mist_graphics.inc
|
||||||
|
echo "clock_island_n_lzsa: .incbin \"todo.lzsa\"" >> mist_graphics.inc
|
||||||
|
echo "clock_puzzle_s_lzsa: .incbin \"todo.lzsa\"" >> mist_graphics.inc
|
||||||
|
echo "clock_puzzle_bridge_lzsa: .incbin \"todo.lzsa\"" >> mist_graphics.inc
|
||||||
|
echo "clock_inside_s_lzsa: .incbin \"todo.lzsa\"" >> mist_graphics.inc
|
||||||
|
echo "clock_inside_n_lzsa: .incbin \"todo.lzsa\"" >> mist_graphics.inc
|
||||||
|
echo "clock_inside_open_lzsa: .incbin \"todo.lzsa\"" >> mist_graphics.inc
|
||||||
|
echo "gear_open_e_lzsa: .incbin \"todo.lzsa\"" >> mist_graphics.inc
|
||||||
|
echo "pad_n_lzsa: .incbin \"todo.lzsa\"" >> mist_graphics.inc
|
||||||
|
echo "pad_e_lzsa: .incbin \"todo.lzsa\"" >> mist_graphics.inc
|
||||||
|
echo "spaceship_door_n_lzsa: .incbin \"todo.lzsa\"" >> mist_graphics.inc
|
||||||
|
echo "spaceship_door_open_n_lzsa: .incbin \"todo.lzsa\"" >> mist_graphics.inc
|
||||||
|
echo "tower2_base_w_lzsa: .incbin \"todo.lzsa\"" >> mist_graphics.inc
|
||||||
|
echo "tower2_top_w_lzsa: .incbin \"todo.lzsa\"" >> mist_graphics.inc
|
||||||
|
echo "tower2_path_e_lzsa: .incbin \"todo.lzsa\"" >> mist_graphics.inc
|
||||||
|
echo "tower2_path_n_lzsa: .incbin \"todo.lzsa\"" >> mist_graphics.inc
|
||||||
|
echo "pillar_cross_lzsa: .incbin \"todo.lzsa\"" >> mist_graphics.inc
|
||||||
|
echo "pillar_eye_lzsa: .incbin \"todo.lzsa\"" >> mist_graphics.inc
|
||||||
|
echo "pillar_snake_lzsa: .incbin \"todo.lzsa\"" >> mist_graphics.inc
|
||||||
|
echo "pillar_emu_lzsa: .incbin \"todo.lzsa\"" >> mist_graphics.inc
|
||||||
|
echo "pillar_bug_lzsa: .incbin \"todo.lzsa\"" >> mist_graphics.inc
|
||||||
|
echo "pillar_anchor_lzsa: .incbin \"todo.lzsa\"" >> mist_graphics.inc
|
||||||
|
echo "pillar_arrow_lzsa: .incbin \"todo.lzsa\"" >> mist_graphics.inc
|
||||||
|
echo "pillar_leaf_lzsa: .incbin \"todo.lzsa\"" >> mist_graphics.inc
|
||||||
|
|
||||||
|
|
||||||
|
#####
|
||||||
|
|
||||||
|
%.data: %.vgi
|
||||||
|
$(MAKE_VGI) -b < $< > $@
|
||||||
|
|
||||||
|
%.lzsa: %.data
|
||||||
|
$(LZSA) -r -f2 $< $@
|
||||||
|
|
||||||
|
####
|
||||||
|
|
||||||
|
clean:
|
||||||
|
rm -f *~ *.o *.lst *.gr *.lzsa mist_graphics.inc
|
3
games/mist_hgr/graphics_mist/todo.vgi
Normal file
3
games/mist_hgr/graphics_mist/todo.vgi
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
; TODO
|
||||||
|
CLS 0xff ; white2 background
|
||||||
|
END
|
97
games/mist_hgr/handle_pages.s
Normal file
97
games/mist_hgr/handle_pages.s
Normal file
|
@ -0,0 +1,97 @@
|
||||||
|
; FIXME: should be able to drop pages back where we picked them up
|
||||||
|
|
||||||
|
;==============================
|
||||||
|
; Take Blue Page
|
||||||
|
;==============================
|
||||||
|
; A should be page to take (i.e. MECHE_PAGE or similar)
|
||||||
|
|
||||||
|
take_blue_page:
|
||||||
|
pha
|
||||||
|
jsr drop_current_page
|
||||||
|
pla
|
||||||
|
|
||||||
|
pha
|
||||||
|
eor BLUE_PAGES_TAKEN ; toggle the taken flag
|
||||||
|
sta BLUE_PAGES_TAKEN
|
||||||
|
pla
|
||||||
|
|
||||||
|
ora #HOLDING_BLUE_PAGE ; put it in hand
|
||||||
|
sta HOLDING_PAGE
|
||||||
|
rts
|
||||||
|
|
||||||
|
|
||||||
|
;==============================
|
||||||
|
; Take Red Page
|
||||||
|
;==============================
|
||||||
|
; A should be page to take (i.e. MECHE_PAGE or similar)
|
||||||
|
|
||||||
|
take_red_page:
|
||||||
|
pha
|
||||||
|
jsr drop_current_page
|
||||||
|
pla
|
||||||
|
|
||||||
|
pha
|
||||||
|
eor RED_PAGES_TAKEN
|
||||||
|
sta RED_PAGES_TAKEN
|
||||||
|
pla
|
||||||
|
|
||||||
|
ora #HOLDING_RED_PAGE
|
||||||
|
sta HOLDING_PAGE
|
||||||
|
rts
|
||||||
|
|
||||||
|
;==============================
|
||||||
|
; Take White Page
|
||||||
|
;==============================
|
||||||
|
|
||||||
|
take_white_page:
|
||||||
|
pha
|
||||||
|
jsr drop_current_page
|
||||||
|
pla
|
||||||
|
|
||||||
|
pha
|
||||||
|
lda #1
|
||||||
|
sta WHITE_PAGE_TAKEN
|
||||||
|
pla
|
||||||
|
|
||||||
|
ora #HOLDING_WHITE_PAGE
|
||||||
|
sta HOLDING_PAGE
|
||||||
|
rts
|
||||||
|
|
||||||
|
;==============================
|
||||||
|
; Drop current page
|
||||||
|
;==============================
|
||||||
|
; clicked on a page while holding another
|
||||||
|
drop_current_page:
|
||||||
|
lda HOLDING_PAGE
|
||||||
|
and #$c0
|
||||||
|
|
||||||
|
cmp #HOLDING_RED_PAGE
|
||||||
|
beq drop_red_page
|
||||||
|
cmp #HOLDING_BLUE_PAGE
|
||||||
|
beq drop_blue_page
|
||||||
|
cmp #HOLDING_WHITE_PAGE
|
||||||
|
beq drop_white_page
|
||||||
|
|
||||||
|
; there was no page?
|
||||||
|
rts
|
||||||
|
|
||||||
|
drop_white_page:
|
||||||
|
lda #0
|
||||||
|
sta WHITE_PAGE_TAKEN
|
||||||
|
rts
|
||||||
|
|
||||||
|
drop_red_page:
|
||||||
|
lda HOLDING_PAGE
|
||||||
|
and #$3f
|
||||||
|
eor RED_PAGES_TAKEN
|
||||||
|
sta RED_PAGES_TAKEN
|
||||||
|
rts
|
||||||
|
|
||||||
|
drop_blue_page:
|
||||||
|
lda HOLDING_PAGE
|
||||||
|
and #$3f
|
||||||
|
eor BLUE_PAGES_TAKEN
|
||||||
|
sta BLUE_PAGES_TAKEN
|
||||||
|
rts
|
||||||
|
|
||||||
|
|
793
games/mist_hgr/leveldata_mist.inc
Normal file
793
games/mist_hgr/leveldata_mist.inc
Normal file
|
@ -0,0 +1,793 @@
|
||||||
|
|
||||||
|
;===============================================
|
||||||
|
; level data for Mist Island level
|
||||||
|
;===============================================
|
||||||
|
|
||||||
|
locations:
|
||||||
|
.word location0, location1, location2, location3
|
||||||
|
.word location4, location5, location6, location7
|
||||||
|
.word location8, location9, location10,location11
|
||||||
|
.word location12,location13,location14,location15
|
||||||
|
.word location16,location17,location18,location19
|
||||||
|
.word location20,location21,location22,location23
|
||||||
|
.word location24,location25,location26,location27
|
||||||
|
.word location28,location29,location30,location31
|
||||||
|
.word location32,location33,location34,location35
|
||||||
|
.word location36,location37,location38,location39
|
||||||
|
|
||||||
|
; MIST_ARRIVAL_DOCK -- dock
|
||||||
|
location0:
|
||||||
|
.byte MIST_DOCK_SWITCH ; north exit
|
||||||
|
.byte $ff ; south exit
|
||||||
|
.byte $ff ; east exit
|
||||||
|
.byte MIST_VIEWER_DOOR ; west exit
|
||||||
|
.byte DIRECTION_N ; north exit_dir
|
||||||
|
.byte DIRECTION_S ; south exit_dir
|
||||||
|
.byte $ff ; east exit_dir
|
||||||
|
.byte DIRECTION_W ; west exit_dir
|
||||||
|
.word dock_n_lzsa ; north bg
|
||||||
|
.word dock_s_lzsa ; south bg
|
||||||
|
.word dock_e_lzsa ; east bg
|
||||||
|
.word dock_w_lzsa ; west bg
|
||||||
|
.byte BG_EAST|BG_NORTH|BG_SOUTH|BG_WEST ; all bgs
|
||||||
|
.byte DIRECTION_E ; special exit
|
||||||
|
.byte 9,29 ; special x
|
||||||
|
.byte 2,46 ; special y
|
||||||
|
.word enter_stoneyship-1 ; special function
|
||||||
|
|
||||||
|
|
||||||
|
; MIST_DOCK_SWITCH -- by dock switch
|
||||||
|
location1:
|
||||||
|
.byte MIST_DOCK_STEPS ; north exit
|
||||||
|
.byte MIST_ARRIVAL_DOCK ; south exit
|
||||||
|
.byte $ff ; east exit
|
||||||
|
.byte $ff ; west exit
|
||||||
|
.byte DIRECTION_W ; north exit_dir
|
||||||
|
.byte DIRECTION_S ; south exit_dir
|
||||||
|
.byte $ff ; east exit_dir
|
||||||
|
.byte $ff ; west exit_dir
|
||||||
|
.word dock_switch_n_lzsa ; north bg
|
||||||
|
.word dock_switch_s_lzsa ; south bg
|
||||||
|
.word $0000 ; east bg
|
||||||
|
.word $0000 ; west bg
|
||||||
|
.byte BG_NORTH|BG_SOUTH
|
||||||
|
.byte DIRECTION_N ; special exit
|
||||||
|
.byte 23,30 ; special x
|
||||||
|
.byte 25,44 ; special y
|
||||||
|
.word click_switch_dock-1 ; special function
|
||||||
|
|
||||||
|
; MIST_DOCK_STEPS -- dock steps
|
||||||
|
location2:
|
||||||
|
.byte MIST_GEAR ; north exit
|
||||||
|
.byte $ff ; south exit
|
||||||
|
.byte MIST_DOCK_SWITCH ; east exit
|
||||||
|
.byte MIST_ABOVE_DOCK ; west exit
|
||||||
|
.byte DIRECTION_N ; north exit_dir
|
||||||
|
.byte $ff ; south exit_dir
|
||||||
|
.byte DIRECTION_S ; east exit_dir
|
||||||
|
.byte DIRECTION_S ; west exit_dir
|
||||||
|
.word gear_base_n_lzsa ; north bg
|
||||||
|
.word $0000 ; south bg
|
||||||
|
.word $0000 ; east bg
|
||||||
|
.word dock_steps_w_lzsa ; west bg
|
||||||
|
.byte BG_WEST|BG_NORTH
|
||||||
|
.byte $ff ; special exit
|
||||||
|
|
||||||
|
; MIST_ABOVE_DOCK -- above dock path
|
||||||
|
location3:
|
||||||
|
.byte MIST_GEAR_BASE ; north exit
|
||||||
|
.byte MIST_BASE_STEPS ; south exit
|
||||||
|
.byte MIST_DOCK_SWITCH ; east exit
|
||||||
|
.byte $ff ; west exit
|
||||||
|
.byte DIRECTION_N ; north exit_dir
|
||||||
|
.byte DIRECTION_S ; south exit_dir
|
||||||
|
.byte DIRECTION_S ; east exit_dir
|
||||||
|
.byte $ff ; west exit_dir
|
||||||
|
.word above_dock_n_lzsa ; north bg
|
||||||
|
.word above_dock_s_lzsa ; south bg
|
||||||
|
.word above_dock_e_lzsa ; east bg
|
||||||
|
.word $0000 ; west bg
|
||||||
|
.byte BG_SOUTH|BG_NORTH|BG_EAST
|
||||||
|
.byte $ff ; special exit
|
||||||
|
|
||||||
|
; MIST_BASE_STEPS -- base of steps
|
||||||
|
location4:
|
||||||
|
.byte MIST_ABOVE_DOCK ; north exit
|
||||||
|
.byte MIST_STEPS_1ST_LANDING ; south exit
|
||||||
|
.byte $ff ; east exit
|
||||||
|
.byte $ff ; west exit
|
||||||
|
.byte DIRECTION_N ; north exit_dir
|
||||||
|
.byte DIRECTION_W ; south exit_dir
|
||||||
|
.byte $ff ; east exit_dir
|
||||||
|
.byte $ff ; west exit_dir
|
||||||
|
.word step_base_n_lzsa ; north bg
|
||||||
|
.word step_base_s_lzsa ; south bg
|
||||||
|
.word $0000 ; east bg
|
||||||
|
.word $0000 ; west bg
|
||||||
|
.byte BG_SOUTH|BG_NORTH
|
||||||
|
.byte $ff ; special exit
|
||||||
|
|
||||||
|
; MIST_STEPS_1ST_LANDING -- steps 1st landing
|
||||||
|
location5:
|
||||||
|
.byte MIST_ABOVE_DOCK ; north exit
|
||||||
|
.byte $ff ; south exit
|
||||||
|
.byte MIST_BASE_STEPS ; east exit
|
||||||
|
.byte MIST_STEPS_2ND_LANDING ; west exit
|
||||||
|
.byte DIRECTION_N ; north exit_dir
|
||||||
|
.byte $ff ; south exit_dir
|
||||||
|
.byte DIRECTION_N ; east exit_dir
|
||||||
|
.byte DIRECTION_W ; west exit_dir
|
||||||
|
.word step_base_n_lzsa ; north bg
|
||||||
|
.word $0000 ; south bg
|
||||||
|
.word step_land1_e_lzsa ; east bg
|
||||||
|
.word step_land1_w_lzsa ; west bg
|
||||||
|
.byte BG_WEST | BG_EAST | BG_NORTH
|
||||||
|
.byte $ff ; special exit
|
||||||
|
|
||||||
|
; MIST_STEPS_2ND_LANDING -- steps 2nd landing
|
||||||
|
location6:
|
||||||
|
.byte $ff ; north exit
|
||||||
|
.byte $ff ; south exit
|
||||||
|
.byte MIST_STEPS_1ST_LANDING ; east exit
|
||||||
|
.byte MIST_STEPS_DENTIST ; west exit
|
||||||
|
.byte $ff ; north exit_dir
|
||||||
|
.byte $ff ; south exit_dir
|
||||||
|
.byte DIRECTION_E ; east exit_dir
|
||||||
|
.byte DIRECTION_W ; west exit_dir
|
||||||
|
.word $0000 ; north bg
|
||||||
|
.word $0000 ; south bg
|
||||||
|
.word step_land2_e_lzsa ; east bg
|
||||||
|
.word step_land2_w_lzsa ; west bg
|
||||||
|
.byte BG_WEST | BG_EAST
|
||||||
|
.byte DIRECTION_W ; special exit (letter)
|
||||||
|
.byte 27,32 ; special x
|
||||||
|
.byte 36,45 ; special y
|
||||||
|
.word read_letter-1
|
||||||
|
|
||||||
|
; MIST_STEPS_DENTIST -- steps outside dentist chair branch
|
||||||
|
location7:
|
||||||
|
.byte $ff ; north exit
|
||||||
|
.byte $ff ; south exit
|
||||||
|
.byte MIST_STEPS_2ND_LANDING ; east exit
|
||||||
|
.byte MIST_STEPS_4TH_LANDING ; west exit
|
||||||
|
.byte $ff ; north exit_dir
|
||||||
|
.byte $ff ; south exit_dir
|
||||||
|
.byte DIRECTION_E ; east exit_dir
|
||||||
|
.byte DIRECTION_W ; west exit_dir
|
||||||
|
.word step_dentist_n_lzsa ; north bg
|
||||||
|
.word $0000 ; south bg
|
||||||
|
.word step_dentist_e_lzsa ; east bg
|
||||||
|
.word step_dentist_w_lzsa ; west bg
|
||||||
|
.byte BG_EAST|BG_WEST|BG_NORTH
|
||||||
|
.byte DIRECTION_N ; special exit
|
||||||
|
.byte 10,30 ; special x
|
||||||
|
.byte 0,46 ; special y
|
||||||
|
.word goto_dentist-1
|
||||||
|
|
||||||
|
|
||||||
|
; MIST_STEPS_4TH_LANDING -- steps one more time up
|
||||||
|
location8:
|
||||||
|
.byte $ff ; north exit
|
||||||
|
.byte $ff ; south exit
|
||||||
|
.byte MIST_STEPS_DENTIST ; east exit
|
||||||
|
.byte MIST_OUTSIDE_TEMPLE ; west exit
|
||||||
|
.byte $ff ; north exit_dir
|
||||||
|
.byte $ff ; south exit_dir
|
||||||
|
.byte DIRECTION_E ; east exit_dir
|
||||||
|
.byte DIRECTION_W ; west exit_dir
|
||||||
|
.word $0000 ; north bg
|
||||||
|
.word $0000 ; south bg
|
||||||
|
.word step_land3_e_lzsa ; east bg
|
||||||
|
.word step_land3_w_lzsa ; west bg
|
||||||
|
.byte BG_WEST | BG_EAST ; west and eastl
|
||||||
|
.byte DIRECTION_E ; special exit
|
||||||
|
.byte 0,16 ; special x
|
||||||
|
.byte 0,32 ; special y
|
||||||
|
.word goto_dentist_steps-1
|
||||||
|
|
||||||
|
; MIST_OUTSIDE_TEMPLE -- at the top outside temple
|
||||||
|
location9:
|
||||||
|
.byte $ff ; north exit
|
||||||
|
.byte MIST_POOL ; south exit
|
||||||
|
.byte MIST_STEPS_4TH_LANDING ; east exit
|
||||||
|
.byte MIST_ROCKET_PATH_PAD ; west exit
|
||||||
|
.byte DIRECTION_N ; north exit_dir
|
||||||
|
.byte DIRECTION_S ; south exit_dir
|
||||||
|
.byte DIRECTION_E ; east exit_dir
|
||||||
|
.byte DIRECTION_N|DIRECTION_ONLY_POINT ; west exit_dir
|
||||||
|
.word step_top_n_lzsa ; north bg
|
||||||
|
.word step_top_s_lzsa ; south bg
|
||||||
|
.word step_top_e_lzsa ; east bg
|
||||||
|
.word step_top_w_lzsa ; west bg
|
||||||
|
.byte BG_EAST|BG_WEST|BG_NORTH|BG_SOUTH ; all dirs
|
||||||
|
.byte DIRECTION_N ; special exit
|
||||||
|
.byte 10,30 ; special x
|
||||||
|
.byte 0,46 ; special y
|
||||||
|
.word enter_octagon-1
|
||||||
|
|
||||||
|
; MIST_POOL -- pool
|
||||||
|
location10:
|
||||||
|
.byte MIST_OUTSIDE_TEMPLE ; north exit
|
||||||
|
.byte MIST_TREE_CORRIDOR_1 ; south exit
|
||||||
|
.byte $ff ; east exit
|
||||||
|
.byte $ff ; west exit
|
||||||
|
.byte DIRECTION_N ; north exit_dir
|
||||||
|
.byte DIRECTION_S ; south exit_dir
|
||||||
|
.byte $ff ; east exit_dir
|
||||||
|
.byte $ff ; west exit_dir
|
||||||
|
.word pool_n_lzsa ; north bg
|
||||||
|
.word pool_s_lzsa ; south bg
|
||||||
|
.word pool_e_lzsa ; east bg
|
||||||
|
.word pool_w_lzsa ; west bg
|
||||||
|
.byte BG_NORTH|BG_SOUTH|BG_EAST|BG_WEST
|
||||||
|
.byte DIRECTION_E|DIRECTION_W ; special exit
|
||||||
|
.byte 2,38 ; special x
|
||||||
|
.byte 10,32 ; special y
|
||||||
|
.word pool_pillars-1
|
||||||
|
|
||||||
|
; MIST_CLOCK -- clock
|
||||||
|
location11:
|
||||||
|
.byte MIST_TREE_CORRIDOR_5 ; north exit
|
||||||
|
.byte MIST_CLOCK_PUZZLE ; south exit
|
||||||
|
.byte $ff ; east exit
|
||||||
|
.byte $ff ; west exit
|
||||||
|
.byte DIRECTION_N ; north exit_dir
|
||||||
|
.byte DIRECTION_S ; south exit_dir
|
||||||
|
.byte $ff ; east exit_dir
|
||||||
|
.byte $ff ; west exit_dir
|
||||||
|
.word clock_n_lzsa ; north bg
|
||||||
|
.word clock_s_lzsa ; south bg
|
||||||
|
.word clock_e_lzsa ; east bg
|
||||||
|
.word $0000 ; west bg
|
||||||
|
.byte BG_SOUTH|BG_EAST|BG_NORTH
|
||||||
|
.byte DIRECTION_E ; special exit
|
||||||
|
.byte 5,30 ; special x
|
||||||
|
.byte 2,46 ; special y
|
||||||
|
.word enter_channel_clock-1 ; special function
|
||||||
|
|
||||||
|
; MIST_SPACESHIP_FAR -- spaceship far
|
||||||
|
location12:
|
||||||
|
.byte MIST_SPACESHIP_SWITCH ; north exit
|
||||||
|
.byte $ff ; south exit
|
||||||
|
.byte MIST_ROCKET_PATH_PAD ; east exit
|
||||||
|
.byte $ff ; west exit
|
||||||
|
.byte DIRECTION_N ; north exit_dir
|
||||||
|
.byte $ff ; south exit_dir
|
||||||
|
.byte DIRECTION_E ; east exit_dir
|
||||||
|
.byte $ff ; west exit_dir
|
||||||
|
.word spaceship_far_n_lzsa ; north bg
|
||||||
|
.word $0000 ; south bg
|
||||||
|
.word spaceship_far_e_lzsa ; east bg
|
||||||
|
.word $0000 ; west bg
|
||||||
|
.byte BG_NORTH|BG_EAST
|
||||||
|
.byte $ff ; special exit
|
||||||
|
|
||||||
|
; MIST_TREE_CORRIDOR_2 -- tree corridor #2
|
||||||
|
location13:
|
||||||
|
.byte MIST_TREE_CORRIDOR_1 ; north exit
|
||||||
|
.byte MIST_TREE_CORRIDOR_4 ; south exit
|
||||||
|
.byte $ff ; east exit
|
||||||
|
.byte $ff ; west exit
|
||||||
|
.byte DIRECTION_N|DIRECTION_ONLY_POINT ; north exit_dir
|
||||||
|
.byte DIRECTION_S ; south exit_dir
|
||||||
|
.byte $ff ; east exit_dir
|
||||||
|
.byte $ff ; west exit_dir
|
||||||
|
.word tree2_n_lzsa ; north bg
|
||||||
|
.word tree2_s_lzsa ; south bg
|
||||||
|
.word tree2_e_lzsa ; east bg
|
||||||
|
.word tree2_w_lzsa ; west bg
|
||||||
|
.byte BG_NORTH|BG_SOUTH|BG_EAST|BG_WEST
|
||||||
|
.byte DIRECTION_E|DIRECTION_W|DIRECTION_N
|
||||||
|
.byte 6,33 ; special x
|
||||||
|
.byte 10,38 ; special y
|
||||||
|
.word tree2_pillars-1
|
||||||
|
|
||||||
|
|
||||||
|
; MIST_TREE_CORRIDOR_5 -- tree corridor #5
|
||||||
|
location14:
|
||||||
|
.byte MIST_TREE_CORRIDOR_4 ; north exit
|
||||||
|
.byte MIST_CLOCK ; south exit
|
||||||
|
.byte $ff ; east exit
|
||||||
|
.byte $ff ; west exit
|
||||||
|
.byte DIRECTION_N ; north exit_dir
|
||||||
|
.byte DIRECTION_S ; south exit_dir
|
||||||
|
.byte DIRECTION_E ; east exit_dir
|
||||||
|
.byte $ff ; west exit_dir
|
||||||
|
.word tree5_n_lzsa ; north bg
|
||||||
|
.word tree5_s_lzsa ; south bg
|
||||||
|
.word tree5_e_lzsa ; east bg
|
||||||
|
.word $0000 ; west bg
|
||||||
|
.byte BG_NORTH | BG_EAST | BG_SOUTH
|
||||||
|
.byte DIRECTION_E ; special exit
|
||||||
|
.byte 9,29 ; special x
|
||||||
|
.byte 2,46 ; special y
|
||||||
|
.word enter_channel_main-1 ; special function
|
||||||
|
|
||||||
|
; MIST_GEAR -- gear
|
||||||
|
location15:
|
||||||
|
.byte $ff ; north exit
|
||||||
|
.byte MIST_ABOVE_DOCK ; south exit
|
||||||
|
.byte $ff ; east exit
|
||||||
|
.byte $ff ; west exit
|
||||||
|
.byte $ff ; north exit_dir
|
||||||
|
.byte DIRECTION_E ; south exit_dir
|
||||||
|
.byte $ff ; east exit_dir
|
||||||
|
.byte $ff ; west exit_dir
|
||||||
|
.word gear_n_lzsa ; north bg
|
||||||
|
.word gear_s_lzsa ; south bg
|
||||||
|
.word $0000 ; east bg
|
||||||
|
.word gear_w_lzsa ; west bg
|
||||||
|
.byte BG_NORTH | BG_SOUTH | BG_WEST
|
||||||
|
.byte DIRECTION_N ; special exit
|
||||||
|
.byte 4,10 ; special x
|
||||||
|
.byte 28,35 ; special y
|
||||||
|
.word click_switch_gear-1 ; special function
|
||||||
|
|
||||||
|
; MIST_GEAR_BASE -- gear base
|
||||||
|
location16:
|
||||||
|
.byte MIST_GEAR ; north exit
|
||||||
|
.byte MIST_BASE_STEPS ; south exit
|
||||||
|
.byte MIST_DOCK_SWITCH ; east exit
|
||||||
|
.byte $ff ; west exit
|
||||||
|
.byte DIRECTION_N ; north exit_dir
|
||||||
|
.byte DIRECTION_S ; south exit_dir
|
||||||
|
.byte DIRECTION_S ; east exit_dir
|
||||||
|
.byte $ff ; west exit_dir
|
||||||
|
.word gear_base_n_lzsa ; north bg
|
||||||
|
.word above_dock_s_lzsa ; south bg
|
||||||
|
.word above_dock_e_lzsa ; east bg
|
||||||
|
.word $0000 ; west bg
|
||||||
|
.byte BG_NORTH | BG_EAST | BG_SOUTH
|
||||||
|
.byte $ff ; special exit
|
||||||
|
|
||||||
|
; MIST_CAT_LETTER -- catherine letter
|
||||||
|
location17:
|
||||||
|
.byte MIST_STEPS_2ND_LANDING ; north exit
|
||||||
|
.byte $ff ; south exit
|
||||||
|
.byte $ff ; east exit
|
||||||
|
.byte $ff ; west exit
|
||||||
|
.byte DIRECTION_W ; north exit_dir
|
||||||
|
.byte $ff ; south exit_dir
|
||||||
|
.byte $ff ; east exit_dir
|
||||||
|
.byte $ff ; west exit_dir
|
||||||
|
.word cat_letter_lzsa ; north bg
|
||||||
|
.word $0000 ; south bg
|
||||||
|
.word $0000 ; east bg
|
||||||
|
.word $0000 ; west bg
|
||||||
|
.byte BG_NORTH
|
||||||
|
.byte $ff ; special exit
|
||||||
|
|
||||||
|
; MIST_SPACESHIP_SWITCH -- spaceship switch
|
||||||
|
location18:
|
||||||
|
.byte MIST_ROCKET_CLOSE ; north exit
|
||||||
|
.byte MIST_SPACESHIP_FAR ; south exit
|
||||||
|
.byte $ff ; east exit
|
||||||
|
.byte $ff ; west exit
|
||||||
|
.byte DIRECTION_N ; north exit_dir
|
||||||
|
.byte DIRECTION_E ; south exit_dir
|
||||||
|
.byte $ff ; east exit_dir
|
||||||
|
.byte $ff ; west exit_dir
|
||||||
|
.word spaceship_switch_n_lzsa ; north bg
|
||||||
|
.word spaceship_switch_s_lzsa ; south bg
|
||||||
|
.word $0000 ; east bg
|
||||||
|
.word $0000 ; west bg
|
||||||
|
.byte BG_NORTH|BG_SOUTH
|
||||||
|
.byte DIRECTION_N ; special exit
|
||||||
|
.byte 22,27 ; special x
|
||||||
|
.byte 20,28 ; special y
|
||||||
|
.word click_switch_spaceship-1 ; special function
|
||||||
|
|
||||||
|
; MIST_TREE_CORRIDOR_4 -- tree corridor4 (with generator switch)
|
||||||
|
location19:
|
||||||
|
.byte MIST_TREE_CORRIDOR_2 ; north exit
|
||||||
|
.byte MIST_TREE_CORRIDOR_5 ; south exit
|
||||||
|
.byte $ff ; east exit
|
||||||
|
.byte $ff ; west exit
|
||||||
|
.byte DIRECTION_N ; north exit_dir
|
||||||
|
.byte DIRECTION_S ; south exit_dir
|
||||||
|
.byte $ff ; east exit_dir
|
||||||
|
.byte DIRECTION_W ; west exit_dir
|
||||||
|
.word tree4_n_lzsa ; north bg
|
||||||
|
.word tree4_s_lzsa ; south bg
|
||||||
|
.word tree4_e_lzsa ; east bg
|
||||||
|
.word tree4_w_lzsa ; west bg
|
||||||
|
.byte BG_NORTH|BG_SOUTH|BG_WEST|BG_EAST
|
||||||
|
.byte DIRECTION_W ; special exit
|
||||||
|
.byte 6,34 ; special x
|
||||||
|
.byte 0,46 ; special y
|
||||||
|
.word go_to_generator-1 ; special function
|
||||||
|
|
||||||
|
; MIST_TREE_CORRIDOR_1
|
||||||
|
location20:
|
||||||
|
.byte MIST_POOL ; north exit
|
||||||
|
.byte MIST_TREE_CORRIDOR_2 ; south exit
|
||||||
|
.byte $ff ; east exit
|
||||||
|
.byte $ff ; west exit
|
||||||
|
.byte DIRECTION_N ; north exit_dir
|
||||||
|
.byte DIRECTION_S ; south exit_dir
|
||||||
|
.byte $ff ; east exit_dir
|
||||||
|
.byte $ff ; west exit_dir
|
||||||
|
.word tree1_n_lzsa ; north bg
|
||||||
|
.word tree1_s_lzsa ; south bg
|
||||||
|
.word $0000 ; east bg
|
||||||
|
.word $0000 ; west bg
|
||||||
|
.byte BG_NORTH|BG_SOUTH
|
||||||
|
.byte $ff ; special exit
|
||||||
|
|
||||||
|
; MIST_CLOCK_PUZZLE -- clock puzzle
|
||||||
|
location21:
|
||||||
|
.byte MIST_TREE_CORRIDOR_5 ; north exit
|
||||||
|
.byte $ff ; south exit
|
||||||
|
.byte $ff ; east exit
|
||||||
|
.byte $ff ; west exit
|
||||||
|
.byte DIRECTION_N ; north exit_dir
|
||||||
|
.byte $ff ; south exit_dir
|
||||||
|
.byte $ff ; east exit_dir
|
||||||
|
.byte $ff ; west exit_dir
|
||||||
|
.word clock_n_lzsa ; north bg
|
||||||
|
.word clock_puzzle_s_lzsa ; south bg
|
||||||
|
.word $0000 ; east bg
|
||||||
|
.word $0000 ; west bg
|
||||||
|
.byte BG_SOUTH|BG_NORTH
|
||||||
|
.byte DIRECTION_S ; special exit
|
||||||
|
.byte 12,30 ; special x
|
||||||
|
.byte 38,48 ; special y
|
||||||
|
.word clock_puzzle-1 ; special function
|
||||||
|
|
||||||
|
; MIST_CLOCK_ISLAND -- clock island
|
||||||
|
location22:
|
||||||
|
.byte MIST_CLOCK ; north exit
|
||||||
|
.byte MIST_CLOCK_INSIDE ; south exit
|
||||||
|
.byte $ff ; east exit
|
||||||
|
.byte $ff ; west exit
|
||||||
|
.byte DIRECTION_N ; north exit_dir
|
||||||
|
.byte DIRECTION_S ; south exit_dir
|
||||||
|
.byte $ff ; east exit_dir
|
||||||
|
.byte $ff ; west exit_dir
|
||||||
|
.word clock_island_n_lzsa ; north bg
|
||||||
|
.word clock_island_s_lzsa ; south bg
|
||||||
|
.word $0000 ; east bg
|
||||||
|
.word $0000 ; west bg
|
||||||
|
.byte BG_SOUTH|BG_NORTH
|
||||||
|
.byte DIRECTION_S ; special exit
|
||||||
|
.byte 3,9 ; special x
|
||||||
|
.byte 26,36 ; special y
|
||||||
|
.word click_switch_clock-1 ; special function
|
||||||
|
|
||||||
|
|
||||||
|
; MYST_CLOCK_INSIDE -- clock inside
|
||||||
|
location23:
|
||||||
|
.byte MIST_CLOCK_ISLAND ; north exit
|
||||||
|
.byte $ff ; south exit
|
||||||
|
.byte $ff ; east exit
|
||||||
|
.byte $ff ; west exit
|
||||||
|
.byte DIRECTION_N ; north exit_dir
|
||||||
|
.byte $ff ; south exit_dir
|
||||||
|
.byte $ff ; east exit_dir
|
||||||
|
.byte $ff ; west exit_dir
|
||||||
|
.word clock_inside_n_lzsa ; north bg
|
||||||
|
.word clock_inside_s_lzsa ; south bg
|
||||||
|
.word $0000 ; east bg
|
||||||
|
.word $0000 ; west bg
|
||||||
|
.byte BG_SOUTH|BG_NORTH
|
||||||
|
.byte DIRECTION_S ; special exit
|
||||||
|
.byte 12,30 ; special x
|
||||||
|
.byte 8,32 ; special y
|
||||||
|
.word clock_inside_puzzle-1 ; special function
|
||||||
|
|
||||||
|
; MIST_OPEN_GEAR -- open_gear (?)
|
||||||
|
location24:
|
||||||
|
.byte $ff ; north exit
|
||||||
|
.byte $ff ; south exit
|
||||||
|
.byte MIST_GEAR ; east exit
|
||||||
|
.byte $ff ; west exit
|
||||||
|
.byte $ff ; north exit_dir
|
||||||
|
.byte $ff ; south exit_dir
|
||||||
|
.byte DIRECTION_N ; east exit_dir
|
||||||
|
.byte $ff ; west exit_dir
|
||||||
|
.word $0000 ; north bg
|
||||||
|
.word $0000 ; south bg
|
||||||
|
.word gear_open_e_lzsa ; east bg
|
||||||
|
.word $0000 ; west bg
|
||||||
|
.byte BG_EAST
|
||||||
|
.byte DIRECTION_E ; special exit
|
||||||
|
.byte 17,23 ; special x
|
||||||
|
.byte 14,24 ; special y
|
||||||
|
.word go_to_meche-1 ; special function
|
||||||
|
|
||||||
|
; MIST_ROCKET_PATH_PAD -- pad on way to rocket
|
||||||
|
location25:
|
||||||
|
.byte MIST_SPACESHIP_PATH ; north exit
|
||||||
|
.byte $ff ; south exit
|
||||||
|
.byte MIST_OUTSIDE_TEMPLE ; east exit
|
||||||
|
.byte $ff ; west exit
|
||||||
|
.byte DIRECTION_W ; north exit_dir
|
||||||
|
.byte $ff ; south exit_dir
|
||||||
|
.byte DIRECTION_E ; east exit_dir
|
||||||
|
.byte $ff ; west exit_dir
|
||||||
|
.word pad_n_lzsa ; north bg
|
||||||
|
.word $0000 ; south bg
|
||||||
|
.word pad_e_lzsa ; east bg
|
||||||
|
.word $0000 ; west bg
|
||||||
|
.byte BG_NORTH | BG_EAST
|
||||||
|
.byte DIRECTION_N
|
||||||
|
.byte 0,20 ; special x
|
||||||
|
.byte 0,48 ; special y
|
||||||
|
.word pad_special-1 ; special function
|
||||||
|
|
||||||
|
; MIST_ROCKET_CLOSE -- rocket close in
|
||||||
|
location26:
|
||||||
|
.byte MIST_SPACESHIP_SWITCH ; north exit
|
||||||
|
.byte $ff ; south exit
|
||||||
|
.byte $ff ; east exit
|
||||||
|
.byte $ff ; west exit
|
||||||
|
.byte DIRECTION_N ; north exit_dir
|
||||||
|
.byte $ff ; south exit_dir
|
||||||
|
.byte $ff ; east exit_dir
|
||||||
|
.byte $ff ; west exit_dir
|
||||||
|
.word spaceship_door_n_lzsa ; north bg
|
||||||
|
.word $0000 ; south bg
|
||||||
|
.word $0000 ; east bg
|
||||||
|
.word $0000 ; west bg
|
||||||
|
.byte BG_NORTH
|
||||||
|
.byte DIRECTION_N ; special exit
|
||||||
|
.byte 15,25 ; special x
|
||||||
|
.byte 8,46 ; special y
|
||||||
|
.word open_ss_door-1 ; special function
|
||||||
|
|
||||||
|
; MIST_TOWER2_PATH -- tower2 path
|
||||||
|
location27:
|
||||||
|
.byte MIST_TOWER2_BASE ; north exit
|
||||||
|
.byte $ff ; south exit
|
||||||
|
.byte MIST_ROCKET_PATH_PAD ; east exit
|
||||||
|
.byte $ff ; west exit
|
||||||
|
.byte DIRECTION_W|DIRECTION_ONLY_POINT ; north exit_dir
|
||||||
|
.byte $ff ; south exit_dir
|
||||||
|
.byte DIRECTION_E ; east exit_dir
|
||||||
|
.byte $ff ; west exit_dir
|
||||||
|
.word tower2_path_n_lzsa ; north bg
|
||||||
|
.word $0000 ; south bg
|
||||||
|
.word tower2_path_e_lzsa ; east bg
|
||||||
|
.word $0000 ; west bg
|
||||||
|
.byte BG_NORTH|BG_EAST
|
||||||
|
.byte $ff
|
||||||
|
|
||||||
|
; MIST_TOWER2_BASE -- tower2 base
|
||||||
|
location28:
|
||||||
|
.byte $ff ; north exit
|
||||||
|
.byte $ff ; south exit
|
||||||
|
.byte $ff ; east exit
|
||||||
|
.byte MIST_TOWER2_PATH ; west exit
|
||||||
|
.byte $ff ; north exit_dir
|
||||||
|
.byte $ff ; south exit_dir
|
||||||
|
.byte $ff ; east exit_dir
|
||||||
|
.byte DIRECTION_N ; west exit_dir
|
||||||
|
.word $0000 ; north bg
|
||||||
|
.word $0000 ; south bg
|
||||||
|
.word $0000 ; east bg
|
||||||
|
.word tower2_base_w_lzsa ; west bg
|
||||||
|
.byte BG_WEST
|
||||||
|
.byte DIRECTION_W ; special exit
|
||||||
|
.byte 13,27 ; special x
|
||||||
|
.byte 0,46 ; special y
|
||||||
|
.word leave_tower2-1 ; special function
|
||||||
|
|
||||||
|
; MIST_TOWER2_TOP -- tower2 top
|
||||||
|
location29:
|
||||||
|
.byte $ff ; north exit
|
||||||
|
.byte $ff ; south exit
|
||||||
|
.byte $ff ; east exit
|
||||||
|
.byte MIST_TOWER2_BASE ; west exit
|
||||||
|
.byte $ff ; north exit_dir
|
||||||
|
.byte $ff ; south exit_dir
|
||||||
|
.byte $ff ; east exit_dir
|
||||||
|
.byte DIRECTION_W|DIRECTION_ONLY_POINT ; west exit_dir
|
||||||
|
.word $0000 ; north bg
|
||||||
|
.word $0000 ; south bg
|
||||||
|
.word $0000 ; east bg
|
||||||
|
.word tower2_top_w_lzsa ; west bg
|
||||||
|
.byte BG_WEST
|
||||||
|
.byte DIRECTION_W ; special exit
|
||||||
|
.byte 17,22 ; special x
|
||||||
|
.byte 10,18 ; special y
|
||||||
|
.word circuit_breaker-1 ; special function
|
||||||
|
|
||||||
|
; MIST_VIEWER_DOOR -- viewer door
|
||||||
|
location30:
|
||||||
|
.byte MIST_DOCK_SWITCH ; north exit
|
||||||
|
.byte $ff ; south exit
|
||||||
|
.byte $ff ; east exit
|
||||||
|
.byte $ff ; west exit
|
||||||
|
.byte DIRECTION_N ; north exit_dir
|
||||||
|
.byte DIRECTION_S ; south exit_dir
|
||||||
|
.byte $ff ; east exit_dir
|
||||||
|
.byte $ff ; west exit_dir
|
||||||
|
.word dock_n_lzsa ; north bg
|
||||||
|
.word dock_s_lzsa ; south bg
|
||||||
|
.word dock_e_lzsa ; east bg
|
||||||
|
.word dock_w_open_lzsa ; west bg
|
||||||
|
.byte BG_EAST|BG_NORTH|BG_SOUTH|BG_WEST ; all bgs
|
||||||
|
.byte DIRECTION_W ; special exit
|
||||||
|
.byte 9,29 ; special x
|
||||||
|
.byte 2,46 ; special y
|
||||||
|
.word enter_viewer-1 ; special function
|
||||||
|
|
||||||
|
; MIST_PILLAR_EYE -- pillar with eye
|
||||||
|
location31:
|
||||||
|
.byte $ff ; north exit
|
||||||
|
.byte $ff ; south exit
|
||||||
|
.byte $ff ; east exit
|
||||||
|
.byte MIST_POOL ; west exit
|
||||||
|
.byte $ff ; north exit_dir
|
||||||
|
.byte $ff ; south exit_dir
|
||||||
|
.byte $ff ; east exit_dir
|
||||||
|
.byte DIRECTION_W ; west exit_dir
|
||||||
|
.word $0000 ; north bg
|
||||||
|
.word $0000 ; south bg
|
||||||
|
.word $0000 ; east bg
|
||||||
|
.word pillar_eye_lzsa ; west bg
|
||||||
|
.byte BG_WEST
|
||||||
|
.byte DIRECTION_W ; special exit
|
||||||
|
.byte 14,27 ; special x
|
||||||
|
.byte 12,30 ; special y
|
||||||
|
.word touch_pillar-1 ; special function
|
||||||
|
|
||||||
|
; MIST_PILLAR_SNAKE -- pillar with snake
|
||||||
|
location32:
|
||||||
|
.byte $ff ; north exit
|
||||||
|
.byte $ff ; south exit
|
||||||
|
.byte $ff ; east exit
|
||||||
|
.byte MIST_POOL ; west exit
|
||||||
|
.byte $ff ; north exit_dir
|
||||||
|
.byte $ff ; south exit_dir
|
||||||
|
.byte $ff ; east exit_dir
|
||||||
|
.byte DIRECTION_W ; west exit_dir
|
||||||
|
.word $0000 ; north bg
|
||||||
|
.word $0000 ; south bg
|
||||||
|
.word $0000 ; east bg
|
||||||
|
.word pillar_snake_lzsa ; west bg
|
||||||
|
.byte BG_WEST
|
||||||
|
.byte DIRECTION_W ; special exit
|
||||||
|
.byte 14,27 ; special x
|
||||||
|
.byte 12,30 ; special y
|
||||||
|
.word touch_pillar-1 ; special function
|
||||||
|
|
||||||
|
; MIST_PILLAR_BUG -- pillar with bug
|
||||||
|
location33:
|
||||||
|
.byte $ff ; north exit
|
||||||
|
.byte $ff ; south exit
|
||||||
|
.byte $ff ; east exit
|
||||||
|
.byte MIST_TREE_CORRIDOR_2 ; west exit
|
||||||
|
.byte $ff ; north exit_dir
|
||||||
|
.byte $ff ; south exit_dir
|
||||||
|
.byte $ff ; east exit_dir
|
||||||
|
.byte DIRECTION_W ; west exit_dir
|
||||||
|
.word $0000 ; north bg
|
||||||
|
.word $0000 ; south bg
|
||||||
|
.word $0000 ; east bg
|
||||||
|
.word pillar_bug_lzsa ; west bg
|
||||||
|
.byte BG_WEST
|
||||||
|
.byte DIRECTION_W ; special exit
|
||||||
|
.byte 14,27 ; special x
|
||||||
|
.byte 12,30 ; special y
|
||||||
|
.word touch_pillar-1 ; special function
|
||||||
|
|
||||||
|
; MIST_PILLAR_ANCHOR -- pillar with anchor
|
||||||
|
location34:
|
||||||
|
.byte $ff ; north exit
|
||||||
|
.byte $ff ; south exit
|
||||||
|
.byte $ff ; east exit
|
||||||
|
.byte MIST_TREE_CORRIDOR_2 ; west exit
|
||||||
|
.byte $ff ; north exit_dir
|
||||||
|
.byte $ff ; south exit_dir
|
||||||
|
.byte $ff ; east exit_dir
|
||||||
|
.byte DIRECTION_W ; west exit_dir
|
||||||
|
.word $0000 ; north bg
|
||||||
|
.word $0000 ; south bg
|
||||||
|
.word $0000 ; east bg
|
||||||
|
.word pillar_anchor_lzsa ; west bg
|
||||||
|
.byte BG_WEST
|
||||||
|
.byte DIRECTION_W ; special exit
|
||||||
|
.byte 14,27 ; special x
|
||||||
|
.byte 12,30 ; special y
|
||||||
|
.word touch_pillar-1 ; special function
|
||||||
|
|
||||||
|
; MIST_PILLAR_ARROW -- pillar with arrow
|
||||||
|
location35:
|
||||||
|
.byte $ff ; north exit
|
||||||
|
.byte $ff ; south exit
|
||||||
|
.byte MIST_TREE_CORRIDOR_2 ; east exit
|
||||||
|
.byte $ff ; west exit
|
||||||
|
.byte $ff ; north exit_dir
|
||||||
|
.byte $ff ; south exit_dir
|
||||||
|
.byte DIRECTION_E ; east exit_dir
|
||||||
|
.byte $ff ; west exit_dir
|
||||||
|
.word $0000 ; north bg
|
||||||
|
.word $0000 ; south bg
|
||||||
|
.word pillar_arrow_lzsa ; east bg
|
||||||
|
.word $0000 ; west bg
|
||||||
|
.byte BG_EAST
|
||||||
|
.byte DIRECTION_E ; special exit
|
||||||
|
.byte 14,27 ; special x
|
||||||
|
.byte 12,30 ; special y
|
||||||
|
.word touch_pillar-1 ; special function
|
||||||
|
|
||||||
|
; MIST_PILLAR_LEAF -- pillar with leaf
|
||||||
|
location36:
|
||||||
|
.byte $ff ; north exit
|
||||||
|
.byte $ff ; south exit
|
||||||
|
.byte MIST_TREE_CORRIDOR_2 ; east exit
|
||||||
|
.byte $ff ; west exit
|
||||||
|
.byte $ff ; north exit_dir
|
||||||
|
.byte $ff ; south exit_dir
|
||||||
|
.byte DIRECTION_E ; east exit_dir
|
||||||
|
.byte $ff ; west exit_dir
|
||||||
|
.word $0000 ; north bg
|
||||||
|
.word $0000 ; south bg
|
||||||
|
.word pillar_leaf_lzsa ; east bg
|
||||||
|
.word $0000 ; west bg
|
||||||
|
.byte BG_EAST
|
||||||
|
.byte DIRECTION_E ; special exit
|
||||||
|
.byte 14,27 ; special x
|
||||||
|
.byte 12,30 ; special y
|
||||||
|
.word touch_pillar-1 ; special function
|
||||||
|
|
||||||
|
; MIST_PILLAR_CROSS -- pillar with cross
|
||||||
|
location37:
|
||||||
|
.byte $ff ; north exit
|
||||||
|
.byte $ff ; south exit
|
||||||
|
.byte MIST_POOL ; east exit
|
||||||
|
.byte $ff ; west exit
|
||||||
|
.byte $ff ; north exit_dir
|
||||||
|
.byte $ff ; south exit_dir
|
||||||
|
.byte DIRECTION_E ; east exit_dir
|
||||||
|
.byte $ff ; west exit_dir
|
||||||
|
.word $0000 ; north bg
|
||||||
|
.word $0000 ; south bg
|
||||||
|
.word pillar_cross_lzsa ; east bg
|
||||||
|
.word $0000 ; west bg
|
||||||
|
.byte BG_EAST
|
||||||
|
.byte DIRECTION_E ; special exit
|
||||||
|
.byte 14,27 ; special x
|
||||||
|
.byte 12,30 ; special y
|
||||||
|
.word touch_pillar-1 ; special function
|
||||||
|
|
||||||
|
; MIST_PILLAR_EMU -- pillar with emu
|
||||||
|
location38:
|
||||||
|
.byte $ff ; north exit
|
||||||
|
.byte $ff ; south exit
|
||||||
|
.byte MIST_POOL ; east exit
|
||||||
|
.byte $ff ; west exit
|
||||||
|
.byte $ff ; north exit_dir
|
||||||
|
.byte $ff ; south exit_dir
|
||||||
|
.byte DIRECTION_E ; east exit_dir
|
||||||
|
.byte $ff ; west exit_dir
|
||||||
|
.word $0000 ; north bg
|
||||||
|
.word $0000 ; south bg
|
||||||
|
.word pillar_emu_lzsa ; east bg
|
||||||
|
.word $0000 ; west bg
|
||||||
|
.byte BG_EAST
|
||||||
|
.byte DIRECTION_E ; special exit
|
||||||
|
.byte 14,27 ; special x
|
||||||
|
.byte 12,30 ; special y
|
||||||
|
.word touch_pillar-1 ; special function
|
||||||
|
|
||||||
|
; there is a corresponding east background
|
||||||
|
; but we are out of room
|
||||||
|
|
||||||
|
; MIST_SPACESHIP_PATH -- spaceship path
|
||||||
|
location39:
|
||||||
|
.byte $ff ; north exit
|
||||||
|
.byte $ff ; south exit
|
||||||
|
.byte $ff ; east exit
|
||||||
|
.byte MIST_SPACESHIP_FAR ; west exit
|
||||||
|
.byte $ff ; north exit_dir
|
||||||
|
.byte $ff ; south exit_dir
|
||||||
|
.byte $ff ; east exit_dir
|
||||||
|
.byte DIRECTION_N ; west exit_dir
|
||||||
|
.word $0000 ; north bg
|
||||||
|
.word $0000 ; south bg
|
||||||
|
.word $0000 ; east bg
|
||||||
|
.word spaceship_path_w_lzsa ; west bg
|
||||||
|
.byte BG_WEST
|
||||||
|
.byte $ff ; special exit
|
|
@ -20,10 +20,10 @@ skip_turn_off_music:
|
||||||
sta clear_all_color+1
|
sta clear_all_color+1
|
||||||
|
|
||||||
jsr clear_all
|
jsr clear_all
|
||||||
jsr page_flip
|
; jsr page_flip
|
||||||
|
|
||||||
jsr clear_all
|
; jsr clear_all
|
||||||
jsr page_flip
|
; jsr page_flip
|
||||||
|
|
||||||
; play sound effect
|
; play sound effect
|
||||||
|
|
||||||
|
|
228
games/mist_hgr/marker_switch.s
Normal file
228
games/mist_hgr/marker_switch.s
Normal file
|
@ -0,0 +1,228 @@
|
||||||
|
; Marker switches
|
||||||
|
; 1 MARKER_DOCK = $01 MIST_DOCK_SWITCH N 0
|
||||||
|
; 15 MARKER_GEARS = $02 MIST_GEAR N 1
|
||||||
|
; 18 MARKER_SPACESHIP= $04 MIST_SPACESHIP_SWITCH N 2
|
||||||
|
; 19 MARKER_GENERATOR= $08 MIST_TREE_CORRIDOR_4 W 3
|
||||||
|
; 22 MARKER_CLOCK = $10 MIST_CLOCK_ISLAND S 4
|
||||||
|
; cab/0 MARKER_TREE = $20 CABIN_OUTSIDE E 5
|
||||||
|
; cab/1 MARKER_TREE = $20 CABIN_OPEN E 5
|
||||||
|
; 13 MARKER_POOL = $40 MIST_TREE_CORRIDOR_2 N 6
|
||||||
|
; den/0 MARKER_DENTIST = $80 DENTIST_OUTSIDE N 7
|
||||||
|
; den/1 MARKER_DENTIST = $80 DENTIST_OUTSIDE_OPEN N 7
|
||||||
|
|
||||||
|
; up is on
|
||||||
|
|
||||||
|
|
||||||
|
; game starts with
|
||||||
|
; map -> library on (always?)
|
||||||
|
; DOCK = off, draws dock
|
||||||
|
; DENTIST=off, draws round dentist building
|
||||||
|
; POOL=off, draws pool and pillars
|
||||||
|
; SPACESHIP=off, draws spaceship
|
||||||
|
; geneator=off, draws generator building
|
||||||
|
; cabin= off, draws shack and tree ring
|
||||||
|
; clock, off, draws island and box on shore
|
||||||
|
; gears,, off, draws gears
|
||||||
|
|
||||||
|
; note on actual if you open white page but walk away, the door will
|
||||||
|
; shut and the switch will flip back
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
; which switch in A
|
||||||
|
click_marker_switch:
|
||||||
|
|
||||||
|
; click
|
||||||
|
|
||||||
|
eor MARKER_SWITCHES ; toggle switch
|
||||||
|
sta MARKER_SWITCHES
|
||||||
|
|
||||||
|
cmp #$FE ; all but dock
|
||||||
|
bne dont_open_secret
|
||||||
|
|
||||||
|
lda #1
|
||||||
|
bne done_handle_secret
|
||||||
|
|
||||||
|
dont_open_secret:
|
||||||
|
lda #0
|
||||||
|
|
||||||
|
done_handle_secret:
|
||||||
|
sta COMPARTMENT_OPEN
|
||||||
|
|
||||||
|
jsr click_speaker
|
||||||
|
jsr click_speaker
|
||||||
|
|
||||||
|
rts
|
||||||
|
|
||||||
|
marker_sprite_off:
|
||||||
|
.byte 2,2
|
||||||
|
.byte $AA,$AA
|
||||||
|
.byte $6A,$6A
|
||||||
|
|
||||||
|
marker_sprite_on:
|
||||||
|
.byte 2,2
|
||||||
|
.byte $6A,$6A
|
||||||
|
.byte $AA,$AA
|
||||||
|
|
||||||
|
marker_wide_sprite_off:
|
||||||
|
.byte 3,2
|
||||||
|
.byte $AA,$AA,$AA
|
||||||
|
.byte $6A,$6A,$6A
|
||||||
|
|
||||||
|
marker_wide_sprite_on:
|
||||||
|
.byte 3,2
|
||||||
|
.byte $96,$A6,$96
|
||||||
|
.byte $AA,$55,$AA
|
||||||
|
|
||||||
|
|
||||||
|
marker_sprites_on:
|
||||||
|
.word marker_sprite_on ; dock
|
||||||
|
.word marker_sprite_on ; gears
|
||||||
|
.word marker_sprite_on ; spaceship
|
||||||
|
.word marker_sprite_on ; generator
|
||||||
|
.word marker_sprite_on ; clock
|
||||||
|
.word marker_sprite_on ; tree
|
||||||
|
.word marker_sprite_on ; pool
|
||||||
|
.word marker_wide_sprite_on ; dentist
|
||||||
|
|
||||||
|
marker_sprites_off:
|
||||||
|
.word marker_sprite_off ; dock
|
||||||
|
.word marker_sprite_off ; gears
|
||||||
|
.word marker_sprite_off ; spaceship
|
||||||
|
.word marker_sprite_off ; generator
|
||||||
|
.word marker_sprite_off ; clock
|
||||||
|
.word marker_sprite_off ; tree
|
||||||
|
.word marker_sprite_off ; pool
|
||||||
|
.word marker_wide_sprite_off ; dentist
|
||||||
|
|
||||||
|
marker_sprites_direction:
|
||||||
|
.byte DIRECTION_N ; dock
|
||||||
|
.byte DIRECTION_N ; gears
|
||||||
|
.byte DIRECTION_N ; spaceship
|
||||||
|
.byte DIRECTION_W ; generator
|
||||||
|
.byte DIRECTION_S ; clock
|
||||||
|
.byte DIRECTION_E ; tree
|
||||||
|
.byte DIRECTION_N ; pool
|
||||||
|
.byte DIRECTION_N ; dentist
|
||||||
|
|
||||||
|
marker_sprites_xy:
|
||||||
|
.byte 26,26 ; dock
|
||||||
|
.byte 7,30 ; gears
|
||||||
|
.byte 23,22 ; spaceship
|
||||||
|
.byte 8,28 ; generator
|
||||||
|
.byte 5,28 ; clock
|
||||||
|
.byte 24,24 ; cabin
|
||||||
|
.byte 28,18 ; pool
|
||||||
|
.byte 5,32 ; dentist
|
||||||
|
|
||||||
|
; FIXME: use generic log2 table somewhere
|
||||||
|
marker_which:
|
||||||
|
.byte $01,$02,$04,$08,$10,$20,$40,$80
|
||||||
|
|
||||||
|
|
||||||
|
draw_marker_switch:
|
||||||
|
|
||||||
|
; see if need to draw
|
||||||
|
|
||||||
|
lda WHICH_LOAD
|
||||||
|
cmp #LOAD_DENTIST
|
||||||
|
beq marker_check_dentist
|
||||||
|
cmp #LOAD_CABIN
|
||||||
|
beq marker_check_cabin
|
||||||
|
cmp #LOAD_MIST
|
||||||
|
beq marker_check_myst
|
||||||
|
rts
|
||||||
|
|
||||||
|
marker_check_myst:
|
||||||
|
lda LOCATION
|
||||||
|
check_ms_dock:
|
||||||
|
cmp #MIST_DOCK_SWITCH
|
||||||
|
bne check_ms_gear
|
||||||
|
ldy #0
|
||||||
|
beq draw_marker
|
||||||
|
check_ms_gear:
|
||||||
|
cmp #MIST_GEAR
|
||||||
|
bne check_ms_spaceship
|
||||||
|
ldy #1
|
||||||
|
bne draw_marker
|
||||||
|
check_ms_spaceship:
|
||||||
|
cmp #MIST_SPACESHIP_SWITCH
|
||||||
|
bne check_ms_generator
|
||||||
|
ldy #2
|
||||||
|
bne draw_marker
|
||||||
|
check_ms_generator:
|
||||||
|
cmp #MIST_TREE_CORRIDOR_4
|
||||||
|
bne check_ms_clock
|
||||||
|
ldy #3
|
||||||
|
bne draw_marker
|
||||||
|
check_ms_clock:
|
||||||
|
cmp #MIST_CLOCK_ISLAND
|
||||||
|
bne check_ms_pool
|
||||||
|
ldy #4
|
||||||
|
bne draw_marker
|
||||||
|
check_ms_pool:
|
||||||
|
cmp #MIST_TREE_CORRIDOR_2
|
||||||
|
bne done_draw_marker
|
||||||
|
ldy #6
|
||||||
|
bne draw_marker
|
||||||
|
|
||||||
|
marker_check_dentist:
|
||||||
|
lda LOCATION
|
||||||
|
cmp #DENTIST_OUTSIDE
|
||||||
|
beq dentist_marker
|
||||||
|
cmp #DENTIST_OUTSIDE_OPEN
|
||||||
|
bne done_draw_marker
|
||||||
|
dentist_marker:
|
||||||
|
ldy #7
|
||||||
|
bne draw_marker ; bra
|
||||||
|
|
||||||
|
marker_check_cabin:
|
||||||
|
lda LOCATION
|
||||||
|
cmp #CABIN_OUTSIDE
|
||||||
|
beq cabin_marker
|
||||||
|
cmp #CABIN_OPEN
|
||||||
|
bne done_draw_marker
|
||||||
|
cabin_marker:
|
||||||
|
ldy #5
|
||||||
|
|
||||||
|
draw_marker:
|
||||||
|
; check if facing right direction
|
||||||
|
|
||||||
|
lda marker_sprites_direction,Y
|
||||||
|
cmp DIRECTION
|
||||||
|
bne done_draw_marker
|
||||||
|
|
||||||
|
tya
|
||||||
|
tax
|
||||||
|
asl
|
||||||
|
tay
|
||||||
|
|
||||||
|
lda marker_sprites_xy,Y
|
||||||
|
sta XPOS
|
||||||
|
lda marker_sprites_xy+1,Y
|
||||||
|
sta YPOS
|
||||||
|
|
||||||
|
lda MARKER_SWITCHES
|
||||||
|
and marker_which,X
|
||||||
|
beq draw_marker_off
|
||||||
|
|
||||||
|
draw_marker_on:
|
||||||
|
lda marker_sprites_on,Y
|
||||||
|
sta INL
|
||||||
|
lda marker_sprites_on+1,Y
|
||||||
|
jmp actually_draw_marker
|
||||||
|
|
||||||
|
draw_marker_off:
|
||||||
|
lda marker_sprites_off,Y
|
||||||
|
sta INL
|
||||||
|
lda marker_sprites_off+1,Y
|
||||||
|
|
||||||
|
|
||||||
|
actually_draw_marker:
|
||||||
|
sta INH
|
||||||
|
; jsr put_sprite_crop
|
||||||
|
|
||||||
|
done_draw_marker:
|
||||||
|
rts
|
||||||
|
|
||||||
|
|
|
@ -16,13 +16,17 @@ mist_start:
|
||||||
; init screen
|
; init screen
|
||||||
;===================
|
;===================
|
||||||
|
|
||||||
jsr TEXT
|
; jsr TEXT
|
||||||
jsr HOME
|
; jsr HOME
|
||||||
bit KEYRESET
|
bit KEYRESET
|
||||||
|
|
||||||
|
; bit SET_GR
|
||||||
|
; bit PAGE0
|
||||||
|
; bit LORES
|
||||||
|
|
||||||
bit SET_GR
|
bit SET_GR
|
||||||
bit PAGE0
|
bit PAGE0
|
||||||
bit LORES
|
bit HIRES
|
||||||
bit FULLGR
|
bit FULLGR
|
||||||
|
|
||||||
;=================
|
;=================
|
||||||
|
@ -42,6 +46,7 @@ mist_start:
|
||||||
|
|
||||||
lda #20
|
lda #20
|
||||||
sta CURSOR_X
|
sta CURSOR_X
|
||||||
|
lda #89
|
||||||
sta CURSOR_Y
|
sta CURSOR_Y
|
||||||
|
|
||||||
; init the clock bridge
|
; init the clock bridge
|
||||||
|
@ -61,20 +66,22 @@ mist_start:
|
||||||
lda #1
|
lda #1
|
||||||
sta CURSOR_VISIBLE ; visible at first
|
sta CURSOR_VISIBLE ; visible at first
|
||||||
|
|
||||||
|
jsr save_bg_14x14 ; save initial bg
|
||||||
|
|
||||||
game_loop:
|
game_loop:
|
||||||
;=================
|
;=================
|
||||||
; reset things
|
; reset things
|
||||||
;=================
|
;=================
|
||||||
|
|
||||||
lda #0
|
; lda #0
|
||||||
sta IN_RIGHT
|
; sta IN_RIGHT
|
||||||
sta IN_LEFT
|
; sta IN_LEFT
|
||||||
|
|
||||||
;====================================
|
;====================================
|
||||||
; copy background to current page
|
; copy background to current page
|
||||||
;====================================
|
;====================================
|
||||||
|
|
||||||
jsr gr_copy_to_current
|
; jsr gr_copy_to_current
|
||||||
|
|
||||||
;====================================
|
;====================================
|
||||||
; handle special-case forground logic
|
; handle special-case forground logic
|
||||||
|
@ -151,7 +158,7 @@ nothing_special:
|
||||||
; page flip
|
; page flip
|
||||||
;====================================
|
;====================================
|
||||||
|
|
||||||
jsr page_flip
|
; jsr page_flip
|
||||||
|
|
||||||
|
|
||||||
;=================
|
;=================
|
||||||
|
|
692
games/mist_hgr/mist_puzzles.s
Normal file
692
games/mist_hgr/mist_puzzles.s
Normal file
|
@ -0,0 +1,692 @@
|
||||||
|
;==========================
|
||||||
|
; adjust ship up/down
|
||||||
|
;==========================
|
||||||
|
adjust_ship:
|
||||||
|
|
||||||
|
lda SHIP_RAISED
|
||||||
|
bne make_ship_up
|
||||||
|
jmp make_ship_down
|
||||||
|
|
||||||
|
make_ship_up:
|
||||||
|
|
||||||
|
; update backgrounds south
|
||||||
|
|
||||||
|
ldy #LOCATION_SOUTH_BG
|
||||||
|
|
||||||
|
lda #<pool_shipup_s_lzsa
|
||||||
|
sta location10,Y ; MIST_POOL
|
||||||
|
lda #>pool_shipup_s_lzsa
|
||||||
|
sta location10+1,Y ; MIST_POOL
|
||||||
|
|
||||||
|
lda #<gear_shipup_s_lzsa
|
||||||
|
sta location15,Y ; MIST_GEAR
|
||||||
|
lda #>gear_shipup_s_lzsa
|
||||||
|
sta location15+1,Y ; MIST_GEAR
|
||||||
|
|
||||||
|
lda #<dock_switch_shipup_s_lzsa
|
||||||
|
sta location1,Y ; MIST_DOCK_SWITCH
|
||||||
|
lda #>dock_switch_shipup_s_lzsa
|
||||||
|
sta location1+1,Y ; MIST_DOCK_SWITCH
|
||||||
|
|
||||||
|
lda #<above_dock_shipup_s_lzsa
|
||||||
|
sta location3,Y ; MIST_ABOVE_DOCK
|
||||||
|
sta location16,Y ; MIST_GEAR_BASE
|
||||||
|
lda #>above_dock_shipup_s_lzsa
|
||||||
|
sta location3+1,Y ; MIST_ABOVE_DOCK
|
||||||
|
sta location16+1,Y ; MIST_GEAR_BASE
|
||||||
|
|
||||||
|
|
||||||
|
; update backgrounds north
|
||||||
|
|
||||||
|
ldy #LOCATION_NORTH_BG
|
||||||
|
|
||||||
|
lda #<tree1_shipup_n_lzsa
|
||||||
|
sta location20,Y ; MIST_TREE_CORRIDOR_1
|
||||||
|
lda #>tree1_shipup_n_lzsa
|
||||||
|
sta location20+1,Y ; MIST_TREE_CORRIDOR_1
|
||||||
|
|
||||||
|
lda #<dock_shipup_n_lzsa
|
||||||
|
sta location0,Y ; MIST_ARRIVAL_DOCK
|
||||||
|
lda #>dock_shipup_n_lzsa
|
||||||
|
sta location0+1,Y ; MIST_ARRIVAL_DOCK
|
||||||
|
|
||||||
|
; update backgrounds east
|
||||||
|
|
||||||
|
ldy #LOCATION_EAST_BG
|
||||||
|
lda #<step_top_shipup_e_lzsa
|
||||||
|
sta location9,Y ; MIST_OUTSIDE_TEMPLE
|
||||||
|
lda #>step_top_shipup_e_lzsa
|
||||||
|
sta location9+1,Y ; MIST_OUTSIDE_TEMPLE
|
||||||
|
|
||||||
|
lda #<step_land3_shipup_e_lzsa
|
||||||
|
sta location8,Y ; MIST_STEPS_4TH_LANDING
|
||||||
|
lda #>step_land3_shipup_e_lzsa
|
||||||
|
sta location8+1,Y ; MIST_STEPS_4TH_LANDING
|
||||||
|
|
||||||
|
lda #<step_dentist_shipup_e_lzsa
|
||||||
|
sta location7,Y ; MIST_STEPS_DENTIST
|
||||||
|
lda #>step_dentist_shipup_e_lzsa
|
||||||
|
sta location7+1,Y ; MIST_STEPS_DENTIST
|
||||||
|
|
||||||
|
lda #<step_land2_shipup_e_lzsa
|
||||||
|
sta location6,Y ; MIST_STEPS_2ND_LANDING
|
||||||
|
lda #>step_land2_shipup_e_lzsa
|
||||||
|
sta location6+1,Y ; MIST_STEPS_2ND_LANDING
|
||||||
|
|
||||||
|
lda #<step_land1_shipup_e_lzsa
|
||||||
|
sta location5,Y ; MIST_STEPS_1ST_LANDING
|
||||||
|
lda #>step_land1_shipup_e_lzsa
|
||||||
|
sta location5+1,Y ; MIST_STEPS_1ST_LANDING
|
||||||
|
|
||||||
|
lda #<above_dock_shipup_e_lzsa
|
||||||
|
sta location3,Y ; MIST_ABOVE_DOCK
|
||||||
|
sta location16,Y ; MIST_GEAR_BASE
|
||||||
|
lda #>above_dock_shipup_e_lzsa
|
||||||
|
sta location3+1,Y ; MIST_ABOVE_DOCK
|
||||||
|
sta location16+1,Y ; MIST_GEAR_BASE
|
||||||
|
|
||||||
|
lda #<dock_shipup_e_lzsa
|
||||||
|
sta location0,Y ; MIST_ARRIVAL_DOCK
|
||||||
|
sta location30,Y ; MIST_VIEWER_DOOR
|
||||||
|
lda #>dock_shipup_e_lzsa
|
||||||
|
sta location0+1,Y ; MIST_ARRIVAL_DOCK
|
||||||
|
sta location30+1,Y ; MIST_VIEWER_DOOR
|
||||||
|
|
||||||
|
; hook up exit on dock to ship
|
||||||
|
ldy #LOCATION_SPECIAL_EXIT
|
||||||
|
lda #DIRECTION_E
|
||||||
|
sta location0,Y ; MIST_ARRIVAL_DOCK
|
||||||
|
|
||||||
|
rts
|
||||||
|
|
||||||
|
make_ship_down:
|
||||||
|
|
||||||
|
; update backgrounds south
|
||||||
|
|
||||||
|
ldy #LOCATION_SOUTH_BG
|
||||||
|
lda #<pool_s_lzsa
|
||||||
|
sta location10,Y ; MIST_POOL
|
||||||
|
lda #>pool_s_lzsa
|
||||||
|
sta location10+1,Y ; MIST_POOL
|
||||||
|
|
||||||
|
lda #<gear_s_lzsa
|
||||||
|
sta location15,Y ; MIST_GEAR
|
||||||
|
lda #>gear_s_lzsa
|
||||||
|
sta location15+1,Y ; MIST_GEAR
|
||||||
|
|
||||||
|
lda #<dock_switch_s_lzsa
|
||||||
|
sta location1,Y ; MIST_DOCK_SWITCH
|
||||||
|
lda #>dock_switch_s_lzsa
|
||||||
|
sta location1+1,Y ; MIST_DOCK_SWITCH
|
||||||
|
|
||||||
|
lda #<above_dock_s_lzsa
|
||||||
|
sta location3,Y ; MIST_ABOVE_DOCK
|
||||||
|
sta location16,Y ; MIST_GEAR_BASE
|
||||||
|
lda #>above_dock_s_lzsa
|
||||||
|
sta location3+1,Y ; MIST_ABOVE_DOCK
|
||||||
|
sta location16+1,Y ; MIST_GEAR_BASE
|
||||||
|
|
||||||
|
; update backgrounds north
|
||||||
|
|
||||||
|
ldy #LOCATION_NORTH_BG
|
||||||
|
lda #<tree1_n_lzsa
|
||||||
|
sta location20,Y ; MIST_TREE_CORRIDOR_1
|
||||||
|
lda #>tree1_n_lzsa
|
||||||
|
sta location20+1,Y ; MIST_TREE_CORRIDOR_1
|
||||||
|
|
||||||
|
lda #<dock_n_lzsa
|
||||||
|
sta location0,Y ; MIST_ARRIVAL_DOCK
|
||||||
|
lda #>dock_n_lzsa
|
||||||
|
sta location0+1,Y ; MIST_ARRIVAL_DOCK
|
||||||
|
|
||||||
|
; update backgrounds east
|
||||||
|
|
||||||
|
ldy #LOCATION_EAST_BG
|
||||||
|
lda #<step_top_e_lzsa
|
||||||
|
sta location9,Y ; MIST_OUTSIDE_TEMPLE
|
||||||
|
lda #>step_top_e_lzsa
|
||||||
|
sta location9+1,Y ; MIST_OUTSIDE_TEMPLE
|
||||||
|
|
||||||
|
lda #<step_land3_e_lzsa
|
||||||
|
sta location8,Y ; MIST_STEPS_4TH_LANDING
|
||||||
|
lda #>step_land3_e_lzsa
|
||||||
|
sta location8+1,Y ; MIST_STEPS_4TH_LANDING
|
||||||
|
|
||||||
|
lda #<step_dentist_e_lzsa
|
||||||
|
sta location7,Y ; MIST_STEPS_DENTIST
|
||||||
|
lda #>step_dentist_e_lzsa
|
||||||
|
sta location7+1,Y ; MIST_STEPS_DENTIST
|
||||||
|
|
||||||
|
lda #<step_land2_e_lzsa
|
||||||
|
sta location6,Y ; MIST_STEPS_2ND_LANDING
|
||||||
|
lda #>step_land2_e_lzsa
|
||||||
|
sta location6+1,Y ; MIST_STEPS_2ND_LANDING
|
||||||
|
|
||||||
|
lda #<step_land1_e_lzsa
|
||||||
|
sta location5,Y ; MIST_STEPS_1ST_LANDING
|
||||||
|
lda #>step_land1_e_lzsa
|
||||||
|
sta location5+1,Y ; MIST_STEPS_1ST_LANDING
|
||||||
|
|
||||||
|
lda #<above_dock_e_lzsa
|
||||||
|
sta location3,Y ; MIST_ABOVE_DOCK
|
||||||
|
sta location16,Y ; MIST_GEAR_BASE
|
||||||
|
lda #>above_dock_e_lzsa
|
||||||
|
sta location3+1,Y ; MIST_ABOVE_DOCK
|
||||||
|
sta location16+1,Y ; MIST_GEAR_BASE
|
||||||
|
|
||||||
|
lda #<dock_e_lzsa
|
||||||
|
sta location0,Y ; MIST_ARRIVAL_DOCK
|
||||||
|
sta location30,Y ; MIST_VIEWER_DOOR
|
||||||
|
lda #>dock_e_lzsa
|
||||||
|
sta location0+1,Y ; MIST_ARRIVAL_DOCK
|
||||||
|
sta location30+1,Y ; MIST_VIEWER_DOOR
|
||||||
|
|
||||||
|
; remove exit on dock to ship
|
||||||
|
ldy #LOCATION_SPECIAL_EXIT
|
||||||
|
lda #$ff
|
||||||
|
sta location0,Y ; MIST_ARRIVAL_DOCK
|
||||||
|
|
||||||
|
rts
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
;==========================
|
||||||
|
; draw green if on
|
||||||
|
;==========================
|
||||||
|
draw_pillar:
|
||||||
|
lda LOCATION
|
||||||
|
sec
|
||||||
|
sbc #MIST_PILLAR_EYE ; find which one we are on
|
||||||
|
tay
|
||||||
|
tax
|
||||||
|
|
||||||
|
lda PILLAR_ON
|
||||||
|
and powersoftwo,Y
|
||||||
|
|
||||||
|
beq done_draw_pillar
|
||||||
|
|
||||||
|
; is on, so draw it green
|
||||||
|
txa
|
||||||
|
asl
|
||||||
|
tay
|
||||||
|
|
||||||
|
lda pillar_sprites,Y
|
||||||
|
sta INL
|
||||||
|
lda pillar_sprites+1,Y
|
||||||
|
sta INH
|
||||||
|
|
||||||
|
lda #17
|
||||||
|
sta XPOS
|
||||||
|
lda #16
|
||||||
|
sta YPOS
|
||||||
|
|
||||||
|
; jsr put_sprite_crop
|
||||||
|
|
||||||
|
done_draw_pillar:
|
||||||
|
rts
|
||||||
|
|
||||||
|
|
||||||
|
;=========================
|
||||||
|
; pillar was touched
|
||||||
|
;=========================
|
||||||
|
|
||||||
|
touch_pillar:
|
||||||
|
|
||||||
|
lda LOCATION
|
||||||
|
sec
|
||||||
|
sbc #MIST_PILLAR_EYE ; find which on we touched
|
||||||
|
tay
|
||||||
|
|
||||||
|
lda PILLAR_ON
|
||||||
|
eor powersoftwo,Y
|
||||||
|
sta PILLAR_ON
|
||||||
|
|
||||||
|
rts
|
||||||
|
|
||||||
|
;=====================================
|
||||||
|
; check to see if ship needs to change
|
||||||
|
;=====================================
|
||||||
|
|
||||||
|
check_change_ship:
|
||||||
|
|
||||||
|
; check to see if we need to raise/lower ship
|
||||||
|
|
||||||
|
lda SHIP_RAISED
|
||||||
|
beq ship_is_down
|
||||||
|
|
||||||
|
ship_is_up:
|
||||||
|
lda PILLAR_ON
|
||||||
|
cmp #(PILLAR_SNAKE|PILLAR_BUG|PILLAR_LEAF)
|
||||||
|
beq done_adjusting_ship
|
||||||
|
|
||||||
|
; lower ship
|
||||||
|
lda #0
|
||||||
|
jmp move_the_ship
|
||||||
|
|
||||||
|
ship_is_down:
|
||||||
|
|
||||||
|
lda PILLAR_ON
|
||||||
|
cmp #(PILLAR_SNAKE|PILLAR_BUG|PILLAR_LEAF)
|
||||||
|
bne done_adjusting_ship
|
||||||
|
|
||||||
|
; raise ship
|
||||||
|
lda #1
|
||||||
|
jmp move_the_ship
|
||||||
|
|
||||||
|
done_adjusting_ship:
|
||||||
|
rts
|
||||||
|
|
||||||
|
|
||||||
|
move_the_ship:
|
||||||
|
sta SHIP_RAISED
|
||||||
|
|
||||||
|
; play noise
|
||||||
|
|
||||||
|
jsr long_beep
|
||||||
|
|
||||||
|
; adjust the backgrounds
|
||||||
|
|
||||||
|
jsr adjust_ship
|
||||||
|
|
||||||
|
rts
|
||||||
|
|
||||||
|
powersoftwo:
|
||||||
|
.byte $01,$02,$04,$08,$10,$20,$40,$80
|
||||||
|
|
||||||
|
pillar_sprites:
|
||||||
|
.word eye_sprite,snake_sprite,bug_sprite,anchor_sprite
|
||||||
|
.word arrow_sprite,leaf_sprite,cross_sprite,emu_sprite
|
||||||
|
|
||||||
|
eye_sprite: ; @17,16
|
||||||
|
.byte 7,6
|
||||||
|
.byte $AA,$AA,$AA,$AA,$AA,$AA,$AA
|
||||||
|
.byte $AA,$AA,$4A,$4A,$4A,$AA,$AA
|
||||||
|
.byte $4A,$A4,$44,$A4,$44,$A4,$4A
|
||||||
|
.byte $A4,$4A,$44,$4A,$44,$4A,$A4
|
||||||
|
.byte $AA,$AA,$A4,$A4,$A4,$AA,$AA
|
||||||
|
.byte $AA,$AA,$AA,$AA,$AA,$AA,$AA
|
||||||
|
|
||||||
|
snake_sprite: ; @17,16
|
||||||
|
.byte 6,6
|
||||||
|
.byte $AA,$4A,$4A,$AA,$AA,$AA
|
||||||
|
.byte $AA,$44,$AA,$4A,$A4,$4A
|
||||||
|
.byte $AA,$44,$AA,$44,$AA,$44
|
||||||
|
.byte $AA,$44,$AA,$44,$AA,$44
|
||||||
|
.byte $AA,$44,$AA,$44,$AA,$44
|
||||||
|
.byte $AA,$AA,$A4,$AA,$AA,$A4
|
||||||
|
|
||||||
|
bug_sprite: ; @17,16
|
||||||
|
.byte 6,5
|
||||||
|
.byte $AA,$AA,$AA,$AA,$AA,$AA
|
||||||
|
.byte $AA,$44,$AA,$44,$AA,$44
|
||||||
|
.byte $AA,$4A,$44,$44,$44,$4A
|
||||||
|
.byte $AA,$AA,$44,$44,$44,$AA
|
||||||
|
.byte $AA,$44,$AA,$A4,$AA,$44
|
||||||
|
|
||||||
|
|
||||||
|
anchor_sprite: ; @17,16
|
||||||
|
.byte 6,6
|
||||||
|
.byte $AA,$AA,$AA,$4A,$AA,$AA
|
||||||
|
.byte $AA,$AA,$AA,$44,$AA,$AA
|
||||||
|
.byte $AA,$AA,$A4,$44,$A4,$AA
|
||||||
|
.byte $AA,$AA,$AA,$44,$AA,$AA
|
||||||
|
.byte $AA,$A4,$4A,$44,$4A,$A4
|
||||||
|
.byte $AA,$AA,$AA,$A4,$AA,$AA
|
||||||
|
|
||||||
|
arrow_sprite: ; @17,16
|
||||||
|
.byte 7,6
|
||||||
|
.byte $AA,$AA,$AA,$AA,$4A,$4A,$4A
|
||||||
|
.byte $AA,$AA,$AA,$AA,$AA,$44,$44
|
||||||
|
.byte $AA,$AA,$AA,$4A,$A4,$AA,$A4
|
||||||
|
.byte $AA,$AA,$44,$AA,$AA,$AA,$AA
|
||||||
|
.byte $A4,$44,$AA,$AA,$AA,$AA,$AA
|
||||||
|
.byte $AA,$A4,$AA,$AA,$AA,$AA,$AA
|
||||||
|
|
||||||
|
leaf_sprite: ; @17,16
|
||||||
|
.byte 6,6
|
||||||
|
.byte $AA,$4A,$AA,$AA,$AA,$4A
|
||||||
|
.byte $AA,$44,$44,$4A,$44,$44
|
||||||
|
.byte $AA,$44,$44,$44,$44,$AA
|
||||||
|
.byte $AA,$A4,$44,$44,$44,$4A
|
||||||
|
.byte $AA,$4A,$AA,$44,$44,$44
|
||||||
|
.byte $AA,$A4,$AA,$AA,$AA,$AA
|
||||||
|
|
||||||
|
cross_sprite: ; @17,16
|
||||||
|
.byte 6,6
|
||||||
|
.byte $AA,$AA,$AA,$AA,$AA,$AA
|
||||||
|
.byte $AA,$AA,$A4,$44,$A4,$AA
|
||||||
|
.byte $AA,$4A,$AA,$44,$AA,$4A
|
||||||
|
.byte $AA,$44,$A4,$44,$A4,$44
|
||||||
|
.byte $AA,$AA,$AA,$44,$AA,$AA
|
||||||
|
.byte $AA,$AA,$A4,$A4,$A4,$AA
|
||||||
|
|
||||||
|
emu_sprite: ; @17,16
|
||||||
|
.byte 7,6
|
||||||
|
.byte $AA,$AA,$AA,$AA,$AA,$4A,$AA
|
||||||
|
.byte $AA,$AA,$AA,$AA,$AA,$44,$A4
|
||||||
|
.byte $AA,$4A,$44,$44,$44,$44,$AA
|
||||||
|
.byte $AA,$44,$44,$44,$44,$A4,$AA
|
||||||
|
.byte $AA,$44,$AA,$44,$AA,$AA,$AA
|
||||||
|
.byte $AA,$AA,$AA,$A4,$A4,$AA,$AA
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
tree2_pillars:
|
||||||
|
lda DIRECTION
|
||||||
|
cmp #DIRECTION_E
|
||||||
|
beq tree2_east
|
||||||
|
cmp #DIRECTION_W
|
||||||
|
beq tree2_west
|
||||||
|
|
||||||
|
; handle the pool marker switch
|
||||||
|
tree2_north:
|
||||||
|
lda CURSOR_X
|
||||||
|
cmp #25
|
||||||
|
bcc tree2_not_switch
|
||||||
|
cmp #32
|
||||||
|
bcs tree2_not_switch
|
||||||
|
|
||||||
|
lda CURSOR_Y
|
||||||
|
cmp #16
|
||||||
|
bcc tree2_not_switch
|
||||||
|
cmp #24
|
||||||
|
bcs tree2_not_switch
|
||||||
|
|
||||||
|
lda #MARKER_POOL
|
||||||
|
jmp click_marker_switch
|
||||||
|
|
||||||
|
tree2_not_switch:
|
||||||
|
; we have to fake going north
|
||||||
|
lda #MIST_TREE_CORRIDOR_1
|
||||||
|
sta LOCATION
|
||||||
|
jmp change_location
|
||||||
|
|
||||||
|
tree2_west:
|
||||||
|
lda CURSOR_X
|
||||||
|
cmp #22
|
||||||
|
bcs goto_bug_pillar
|
||||||
|
bcc goto_anchor_pillar
|
||||||
|
|
||||||
|
tree2_east:
|
||||||
|
lda CURSOR_X
|
||||||
|
cmp #18
|
||||||
|
bcs goto_arrow_pillar
|
||||||
|
bcc goto_leaf_pillar
|
||||||
|
|
||||||
|
pool_pillars:
|
||||||
|
lda DIRECTION
|
||||||
|
cmp #DIRECTION_E
|
||||||
|
beq pool_east
|
||||||
|
bne pool_west
|
||||||
|
|
||||||
|
pool_west:
|
||||||
|
lda CURSOR_X
|
||||||
|
cmp #28
|
||||||
|
bcs goto_eye_pillar
|
||||||
|
cmp #12
|
||||||
|
bcs goto_snake_pillar
|
||||||
|
bcc goto_bug_pillar
|
||||||
|
|
||||||
|
pool_east:
|
||||||
|
lda CURSOR_X
|
||||||
|
cmp #28
|
||||||
|
bcs goto_leaf_pillar
|
||||||
|
cmp #11
|
||||||
|
bcs goto_cross_pillar
|
||||||
|
bcc goto_emu_pillar
|
||||||
|
|
||||||
|
|
||||||
|
goto_eye_pillar:
|
||||||
|
lda #MIST_PILLAR_EYE
|
||||||
|
jmp done_pillar
|
||||||
|
|
||||||
|
goto_snake_pillar:
|
||||||
|
lda #MIST_PILLAR_SNAKE
|
||||||
|
jmp done_pillar
|
||||||
|
|
||||||
|
goto_bug_pillar:
|
||||||
|
lda #MIST_PILLAR_BUG
|
||||||
|
jmp done_pillar
|
||||||
|
|
||||||
|
goto_anchor_pillar:
|
||||||
|
lda #MIST_PILLAR_ANCHOR
|
||||||
|
jmp done_pillar
|
||||||
|
|
||||||
|
|
||||||
|
goto_emu_pillar:
|
||||||
|
lda #MIST_PILLAR_EMU
|
||||||
|
jmp done_pillar
|
||||||
|
|
||||||
|
goto_cross_pillar:
|
||||||
|
lda #MIST_PILLAR_CROSS
|
||||||
|
jmp done_pillar
|
||||||
|
|
||||||
|
goto_leaf_pillar:
|
||||||
|
lda #MIST_PILLAR_LEAF
|
||||||
|
jmp done_pillar
|
||||||
|
|
||||||
|
goto_arrow_pillar:
|
||||||
|
lda #MIST_PILLAR_ARROW
|
||||||
|
jmp done_pillar
|
||||||
|
|
||||||
|
done_pillar:
|
||||||
|
sta LOCATION
|
||||||
|
jmp change_location
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
draw_circuit_breaker:
|
||||||
|
lda ANIMATE_FRAME
|
||||||
|
beq done_draw_circuit_breaker
|
||||||
|
|
||||||
|
lda #18
|
||||||
|
sta XPOS
|
||||||
|
lda #12
|
||||||
|
sta YPOS
|
||||||
|
|
||||||
|
lda #<breaker_down_sprite
|
||||||
|
sta INL
|
||||||
|
lda #>breaker_down_sprite
|
||||||
|
sta INH
|
||||||
|
|
||||||
|
; jsr put_sprite_crop
|
||||||
|
|
||||||
|
lda FRAMEL
|
||||||
|
and #$1f
|
||||||
|
bne done_draw_circuit_breaker
|
||||||
|
dec ANIMATE_FRAME
|
||||||
|
|
||||||
|
done_draw_circuit_breaker:
|
||||||
|
rts
|
||||||
|
|
||||||
|
|
||||||
|
breaker_down_sprite:
|
||||||
|
.byte 4,3
|
||||||
|
.byte $00,$ff,$00,$ff
|
||||||
|
.byte $99,$77,$77,$99
|
||||||
|
.byte $69,$67,$67,$69
|
||||||
|
|
||||||
|
;=======================
|
||||||
|
; flip circuit breaker
|
||||||
|
|
||||||
|
; if room==MIST_TOWER2_TOP, and with #$fe
|
||||||
|
; if room==MIST_TOWER1_TOP, and with #$fd
|
||||||
|
|
||||||
|
circuit_breaker:
|
||||||
|
|
||||||
|
jsr click_speaker ; click speaker
|
||||||
|
|
||||||
|
lda #2
|
||||||
|
sta ANIMATE_FRAME
|
||||||
|
|
||||||
|
lda LOCATION
|
||||||
|
cmp #MIST_TOWER2_TOP
|
||||||
|
bne other_circuit_breaker
|
||||||
|
|
||||||
|
lda BREAKER_TRIPPED
|
||||||
|
and #$fe
|
||||||
|
jmp done_circuit_breaker
|
||||||
|
|
||||||
|
other_circuit_breaker:
|
||||||
|
lda BREAKER_TRIPPED
|
||||||
|
and #$fd
|
||||||
|
|
||||||
|
done_circuit_breaker:
|
||||||
|
sta BREAKER_TRIPPED
|
||||||
|
|
||||||
|
bne done_turn_on_breaker
|
||||||
|
|
||||||
|
turn_on_breaker:
|
||||||
|
|
||||||
|
lda GENERATOR_VOLTS
|
||||||
|
cmp #$60
|
||||||
|
bcs done_turn_on_breaker
|
||||||
|
|
||||||
|
sta ROCKET_VOLTS
|
||||||
|
sta ROCKET_VOLTS_DISP
|
||||||
|
|
||||||
|
|
||||||
|
done_turn_on_breaker:
|
||||||
|
|
||||||
|
rts
|
||||||
|
|
||||||
|
|
||||||
|
;======================
|
||||||
|
; open the spaceship door
|
||||||
|
|
||||||
|
open_ss_door:
|
||||||
|
|
||||||
|
; check if voltage is 59
|
||||||
|
lda ROCKET_VOLTS
|
||||||
|
cmp #$59
|
||||||
|
bne done_ss_door
|
||||||
|
|
||||||
|
; change to open door image
|
||||||
|
ldy #LOCATION_NORTH_BG
|
||||||
|
lda #<spaceship_door_open_n_lzsa
|
||||||
|
sta location26,Y ; MIST_ROCKET_CLOSE
|
||||||
|
lda #>spaceship_door_open_n_lzsa
|
||||||
|
sta location26+1,Y ; MIST_ROCKET_CLOSE
|
||||||
|
|
||||||
|
; change to load new level if through
|
||||||
|
ldy #LOCATION_SPECIAL_FUNC
|
||||||
|
lda #<(go_to_selena-1)
|
||||||
|
sta location26,Y ; MIST_ROCKET_CLOSE
|
||||||
|
lda #>(go_to_selena-1)
|
||||||
|
sta location26+1,Y ; MIST_ROCKET_CLOSE
|
||||||
|
|
||||||
|
jsr change_location
|
||||||
|
|
||||||
|
done_ss_door:
|
||||||
|
rts
|
||||||
|
|
||||||
|
|
||||||
|
;======================
|
||||||
|
; go to selena
|
||||||
|
;======================
|
||||||
|
|
||||||
|
go_to_selena:
|
||||||
|
|
||||||
|
lda #LOAD_SELENA ; Selena
|
||||||
|
sta WHICH_LOAD
|
||||||
|
|
||||||
|
lda #SELENA_INSIDE_SHIP
|
||||||
|
sta LOCATION
|
||||||
|
|
||||||
|
lda #DIRECTION_E
|
||||||
|
sta DIRECTION
|
||||||
|
|
||||||
|
lda #$ff
|
||||||
|
sta LEVEL_OVER
|
||||||
|
|
||||||
|
rts
|
||||||
|
|
||||||
|
;======================
|
||||||
|
; go to generator
|
||||||
|
;======================
|
||||||
|
|
||||||
|
go_to_generator:
|
||||||
|
|
||||||
|
lda CURSOR_X
|
||||||
|
cmp #27
|
||||||
|
bcs goto_tower
|
||||||
|
|
||||||
|
cmp #13
|
||||||
|
bcs goto_shack
|
||||||
|
|
||||||
|
marker_switch:
|
||||||
|
lda CURSOR_Y
|
||||||
|
cmp #24
|
||||||
|
bcc missed_switch
|
||||||
|
|
||||||
|
cmp #38
|
||||||
|
bcs missed_switch
|
||||||
|
|
||||||
|
lda #MARKER_GENERATOR
|
||||||
|
jmp click_marker_switch
|
||||||
|
|
||||||
|
missed_switch:
|
||||||
|
|
||||||
|
rts
|
||||||
|
|
||||||
|
goto_shack:
|
||||||
|
lda #GEN_GREEN_SHACK
|
||||||
|
jmp into_generator
|
||||||
|
|
||||||
|
goto_tower:
|
||||||
|
lda #GEN_TOWER1_TRAIL
|
||||||
|
|
||||||
|
into_generator:
|
||||||
|
sta LOCATION
|
||||||
|
|
||||||
|
lda #LOAD_GENERATOR ; Selena
|
||||||
|
sta WHICH_LOAD
|
||||||
|
|
||||||
|
lda #$ff
|
||||||
|
sta LEVEL_OVER
|
||||||
|
|
||||||
|
rts
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
;=================================
|
||||||
|
; marker switch compartment stuff
|
||||||
|
;=================================
|
||||||
|
|
||||||
|
draw_white_page:
|
||||||
|
|
||||||
|
lda DIRECTION
|
||||||
|
cmp #DIRECTION_N
|
||||||
|
bne no_white_page
|
||||||
|
|
||||||
|
lda COMPARTMENT_OPEN
|
||||||
|
beq no_white_page
|
||||||
|
|
||||||
|
lda WHITE_PAGE_TAKEN
|
||||||
|
bne no_white_page
|
||||||
|
|
||||||
|
lda #<white_page_sprite
|
||||||
|
sta INL
|
||||||
|
lda #>white_page_sprite
|
||||||
|
sta INH
|
||||||
|
|
||||||
|
lda #25
|
||||||
|
sta XPOS
|
||||||
|
lda #34
|
||||||
|
sta YPOS
|
||||||
|
|
||||||
|
; jsr put_sprite_crop
|
||||||
|
|
||||||
|
no_white_page:
|
||||||
|
rts
|
||||||
|
|
||||||
|
|
||||||
|
grab_white_page:
|
||||||
|
lda WHITE_PAGE_TAKEN
|
||||||
|
bne missing_page
|
||||||
|
|
||||||
|
jmp take_white_page
|
||||||
|
|
||||||
|
missing_page:
|
||||||
|
rts
|
||||||
|
|
|
@ -657,12 +657,12 @@ draw_and_wait:
|
||||||
pha
|
pha
|
||||||
stx getsrc_smc+1
|
stx getsrc_smc+1
|
||||||
sty getsrc_smc+2
|
sty getsrc_smc+2
|
||||||
lda #$c ; load to page $c00
|
lda #$8 ; load to page $800
|
||||||
jsr decompress_lzsa2_fast
|
jsr decompress_lzsa2_fast
|
||||||
|
|
||||||
lda #$0
|
lda #$0
|
||||||
sta VGIL
|
sta VGIL
|
||||||
lda #$c
|
lda #$8
|
||||||
sta VGIH
|
sta VGIH
|
||||||
|
|
||||||
jsr play_vgi
|
jsr play_vgi
|
||||||
|
|
|
@ -197,7 +197,7 @@ load_address_array:
|
||||||
.byte $08 ; FIRST_SECTOR
|
.byte $08 ; FIRST_SECTOR
|
||||||
|
|
||||||
track_array:
|
track_array:
|
||||||
.byte 3, 8, 1,21 ; MIST_TITLE,MIST,MECHE,SELENA
|
.byte 3, 9, 1,21 ; MIST_TITLE,MIST,MECHE,SELENA
|
||||||
.byte 18,31,11, 1 ; OCTAGON,VIEWER,STONEY,CHANNEL
|
.byte 18,31,11, 1 ; OCTAGON,VIEWER,STONEY,CHANNEL
|
||||||
.byte 27,26,10,20 ; CABIN,DENTIST,ARBOR,NIBEL
|
.byte 27,26,10,20 ; CABIN,DENTIST,ARBOR,NIBEL
|
||||||
.byte 30,32,28,30 ; SHIP,GENERATOR,D'NI,SUB
|
.byte 30,32,28,30 ; SHIP,GENERATOR,D'NI,SUB
|
||||||
|
@ -215,7 +215,7 @@ sector_array:
|
||||||
.byte 0 ; FIRST_SECTOR
|
.byte 0 ; FIRST_SECTOR
|
||||||
|
|
||||||
length_array:
|
length_array:
|
||||||
.byte 99,159,157,145 ; MIST_TITLE,MIST,MECHE,SELENA
|
.byte 99, 99,157,145 ; MIST_TITLE,MIST,MECHE,SELENA
|
||||||
.byte 128, 20,158,135 ; OCTAGON,VIEWER,STONEY,CHANNEL
|
.byte 128, 20,158,135 ; OCTAGON,VIEWER,STONEY,CHANNEL
|
||||||
.byte 61, 31,159,109 ; CABIN,DENTIST,ARBOR,NIBEL
|
.byte 61, 31,159,109 ; CABIN,DENTIST,ARBOR,NIBEL
|
||||||
.byte 20, 33, 27, 78 ; SHIP,GENERATOR,D'NI,SUB
|
.byte 20, 33, 27, 78 ; SHIP,GENERATOR,D'NI,SUB
|
||||||
|
|
59
games/mist_hgr/simple_sounds.s
Normal file
59
games/mist_hgr/simple_sounds.s
Normal file
|
@ -0,0 +1,59 @@
|
||||||
|
|
||||||
|
;============================
|
||||||
|
; click the speaker
|
||||||
|
;============================
|
||||||
|
; FIXME: make it last longer?
|
||||||
|
|
||||||
|
click_speaker:
|
||||||
|
lda SOUND_STATUS
|
||||||
|
bmi done_click
|
||||||
|
bit $c030
|
||||||
|
done_click:
|
||||||
|
rts
|
||||||
|
|
||||||
|
|
||||||
|
long_beep:
|
||||||
|
ldy #235
|
||||||
|
bne do_beep
|
||||||
|
|
||||||
|
short_beep:
|
||||||
|
ldy #40
|
||||||
|
bne do_beep
|
||||||
|
|
||||||
|
;===========================
|
||||||
|
; BEEP (inlined)
|
||||||
|
;===========================
|
||||||
|
do_beep:
|
||||||
|
lda SOUND_STATUS
|
||||||
|
bmi done_beep
|
||||||
|
|
||||||
|
sty tone_smc+1
|
||||||
|
|
||||||
|
; BEEP
|
||||||
|
; repeat 30 times
|
||||||
|
lda #30 ; 2
|
||||||
|
tone1_loop:
|
||||||
|
|
||||||
|
tone_smc:
|
||||||
|
|
||||||
|
ldy #24 ; 2
|
||||||
|
loopC: ldx #6 ; 2
|
||||||
|
loopD: dex ; 1
|
||||||
|
bne loopD ; 2
|
||||||
|
dey ; 1
|
||||||
|
bne loopC ; 2
|
||||||
|
|
||||||
|
bit SPEAKER ; 3 ; click speaker
|
||||||
|
|
||||||
|
sec ; 1
|
||||||
|
sbc #1 ; 2
|
||||||
|
bne tone1_loop ; 2
|
||||||
|
|
||||||
|
; Try X=6 Y=21 cycles=757
|
||||||
|
; Try X=6 Y=24 cycles=865
|
||||||
|
; Try X=7 Y=235 cycles=9636
|
||||||
|
done_beep:
|
||||||
|
rts
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user