mist: give names to all the raw constants for rooms

also split off the octagon room

probably broke some things :(
This commit is contained in:
Vince Weaver 2020-03-19 17:25:20 -04:00
parent 7659956927
commit 8a861e28a2
38 changed files with 822 additions and 621 deletions

View File

@ -8,12 +8,13 @@ B2D = ../bmp2dhr/b2d
all: mist.dsk all: mist.dsk
mist.dsk: HELLO LOADER MIST_TITLE MIST MECHE SELENA mist.dsk: HELLO LOADER MIST_TITLE MIST OCTAGON MECHE SELENA
cp empty.dsk mist.dsk cp empty.dsk mist.dsk
$(DOS33) -y mist.dsk SAVE A HELLO $(DOS33) -y mist.dsk SAVE A HELLO
$(DOS33) -y mist.dsk BSAVE -a 0x1000 LOADER $(DOS33) -y mist.dsk BSAVE -a 0x1000 LOADER
$(DOS33) -y mist.dsk BSAVE -a 0x4000 MIST_TITLE $(DOS33) -y mist.dsk BSAVE -a 0x4000 MIST_TITLE
$(DOS33) -y mist.dsk BSAVE -a 0x1400 MIST $(DOS33) -y mist.dsk BSAVE -a 0x1400 MIST
$(DOS33) -y mist.dsk BSAVE -a 0x1400 OCTAGON
$(DOS33) -y mist.dsk BSAVE -a 0x1400 MECHE $(DOS33) -y mist.dsk BSAVE -a 0x1400 MECHE
$(DOS33) -y mist.dsk BSAVE -a 0x1400 SELENA $(DOS33) -y mist.dsk BSAVE -a 0x1400 SELENA
$(DOS33) -y mist.dsk BSAVE -a 0x9000 ./audio/link_noise.btc LINK_NOISE.BTC $(DOS33) -y mist.dsk BSAVE -a 0x9000 ./audio/link_noise.btc LINK_NOISE.BTC
@ -55,10 +56,8 @@ mist.o: mist.s zp.inc hardware.inc common_defines.inc \
common_sprites.inc \ common_sprites.inc \
leveldata_mist.inc \ leveldata_mist.inc \
clock_bridge_puzzle.s clock_sprites.inc \ clock_bridge_puzzle.s clock_sprites.inc \
link_book_mist_dock.s \
letter_cat.s \ letter_cat.s \
marker_switch.s \ marker_switch.s \
brother_books.s \
keyboard.s \ keyboard.s \
draw_pointer.s \ draw_pointer.s \
end_level.s \ end_level.s \
@ -68,6 +67,25 @@ mist.o: mist.s zp.inc hardware.inc common_defines.inc \
#### ####
OCTAGON: octagon.o
ld65 -o OCTAGON octagon.o -C ../linker_scripts/apple2_1400.inc
octagon.o: octagon.s zp.inc hardware.inc common_defines.inc \
graphics_octagon/octagon_graphics.inc \
common_sprites.inc \
leveldata_octagon.inc \
letter_cat.s \
marker_switch.s \
brother_books.s \
keyboard.s \
draw_pointer.s \
end_level.s \
gr_copy.s audio.s text_print.s decompress_fast_v2.s
ca65 -o octagon.o octagon.s -l octagon.lst
####
MECHE: meche.o MECHE: meche.o
ld65 -o MECHE meche.o -C ../linker_scripts/apple2_1400.inc ld65 -o MECHE meche.o -C ../linker_scripts/apple2_1400.inc
@ -110,4 +128,4 @@ graphics_island/mist_graphics.inc:
#### ####
clean: clean:
rm -f *~ *.o *.lst HELLO LOADER MIST_TITLE MIST MECHE SELENA rm -f *~ *.o *.lst HELLO LOADER MIST_TITLE MIST OCTAGON MECHE SELENA

View File

@ -1,3 +1,6 @@
put settining init values into TITLE? This would allow save/load
if we ever got to that point
Selena: Selena:
+ turn around? + turn around?
+ whole way to tower thing + whole way to tower thing

View File

@ -193,24 +193,24 @@ open_the_gear:
yes_gear_open: yes_gear_open:
ldy #LOCATION_NORTH_EXIT ldy #LOCATION_NORTH_EXIT
lda #30 lda #MIST_OPEN_GEAR
sta location19,Y sta location15,Y ; MIST_GEAR
ldy #LOCATION_NORTH_EXIT_DIR ldy #LOCATION_NORTH_EXIT_DIR
lda #DIRECTION_E lda #DIRECTION_E
sta location19,Y sta location15,Y ; MIST_GEAR
ldy #LOCATION_NORTH_BG ldy #LOCATION_NORTH_BG
lda #<gear_open_n_lzsa lda #<gear_open_n_lzsa
sta location19,Y sta location15,Y ; MIST_GEAR
lda #>gear_open_n_lzsa lda #>gear_open_n_lzsa
sta location19+1,Y sta location15+1,Y ; MIST_GEAR
ldy #LOCATION_SOUTH_BG ldy #LOCATION_SOUTH_BG
lda #<clock_inside_open_lzsa lda #<clock_inside_open_lzsa
sta location27,Y sta location23,Y ; MIST_CLOCK_INSIDE
lda #>clock_inside_open_lzsa lda #>clock_inside_open_lzsa
sta location27+1,Y sta location23+1,Y ; MIST_CLOCK_INSIDE
jmp done_open_the_gear jmp done_open_the_gear
@ -219,23 +219,23 @@ no_gear_open:
ldy #LOCATION_NORTH_EXIT ldy #LOCATION_NORTH_EXIT
lda #$FF lda #$FF
sta location19,Y sta location15,Y ; MIST_GEAR
; ldy #LOCATION_NORTH_EXIT_DIR ; ldy #LOCATION_NORTH_EXIT_DIR
; lda #DIRECTION_E ; lda #DIRECTION_E
; sta location19,Y ; sta location15,Y
ldy #LOCATION_NORTH_BG ldy #LOCATION_NORTH_BG
lda #<gear_n_lzsa lda #<gear_n_lzsa
sta location19,Y sta location15,Y ; MIST_GEAR
lda #>gear_n_lzsa lda #>gear_n_lzsa
sta location19+1,Y sta location15+1,Y ; MIST_GEAR
ldy #LOCATION_SOUTH_BG ldy #LOCATION_SOUTH_BG
lda #<clock_inside_s_lzsa lda #<clock_inside_s_lzsa ; MIST_CLOCK_INSIDE
sta location27,Y sta location23,Y
lda #>clock_inside_s_lzsa lda #>clock_inside_s_lzsa
sta location27+1,Y sta location23+1,Y
done_open_the_gear: done_open_the_gear:
@ -254,49 +254,49 @@ raise_bridge:
beq lower_bridge beq lower_bridge
ldy #LOCATION_SOUTH_EXIT ldy #LOCATION_SOUTH_EXIT
lda #26 lda #MIST_CLOCK_ISLAND
sta location25,Y sta location21,Y ; MIST_CLOCK_PUZZLE
ldy #LOCATION_SOUTH_EXIT_DIR ldy #LOCATION_SOUTH_EXIT_DIR
lda #DIRECTION_S lda #DIRECTION_S
sta location25,Y sta location21,Y ; MIST_CLOCK_PUZZLE
ldy #LOCATION_SOUTH_BG ldy #LOCATION_SOUTH_BG
lda #<clock_puzzle_bridge_lzsa lda #<clock_puzzle_bridge_lzsa
sta location25,Y sta location21,Y ; MIST_CLOCK_PUZZLE
lda #>clock_puzzle_bridge_lzsa lda #>clock_puzzle_bridge_lzsa
sta location25+1,Y sta location21+1,Y ; MIST_CLOCK_PUZZLE
; draw it on other too ; draw it on other too
lda #<clock_bridge_lzsa lda #<clock_bridge_lzsa
sta location15,Y sta location11,Y ; MIST_CLOCK
lda #>clock_bridge_lzsa lda #>clock_bridge_lzsa
sta location15+1,Y sta location11+1,Y ; MIST_CLOCK
jmp done_clock_bridge jmp done_clock_bridge
lower_bridge: lower_bridge:
ldy #LOCATION_SOUTH_EXIT ldy #LOCATION_SOUTH_EXIT
lda #18 lda #MIST_TREE_CORRIDOR_5
sta location25,Y sta location21,Y ; MIST_CLOCK_PUZZLE
ldy #LOCATION_SOUTH_EXIT_DIR ldy #LOCATION_SOUTH_EXIT_DIR
lda #DIRECTION_N lda #DIRECTION_N
sta location25,Y sta location21,Y ; MIST_CLOCK_PUZZLE
ldy #LOCATION_SOUTH_BG ldy #LOCATION_SOUTH_BG
lda #<clock_puzzle_s_lzsa lda #<clock_puzzle_s_lzsa
sta location25,Y sta location21,Y ; MIST_CLOCK_PUZZLE
lda #>clock_puzzle_s_lzsa lda #>clock_puzzle_s_lzsa
sta location25+1,Y sta location21+1,Y ; MIST_CLOCK_PUZZLE
; lower on other too ; lower on other too
lda #<clock_s_lzsa lda #<clock_s_lzsa
sta location15,Y sta location11,Y ; MIST_CLOCK
lda #>clock_s_lzsa lda #>clock_s_lzsa
sta location15+1,Y sta location11+1,Y ; MIST_CLOCK
done_clock_bridge: done_clock_bridge:
jsr change_location jsr change_location
@ -430,13 +430,13 @@ check_gear_delete:
bne done_gear_delete bne done_gear_delete
lda LOCATION lda LOCATION
cmp #4 cmp #MIST_ABOVE_DOCK
beq gear_look1 beq gear_look1
cmp #3 cmp #MIST_DOCK_STEPS
beq gear_look2 beq gear_look2
cmp #20 cmp #MIST_GEAR_BASE
beq gear_look2 beq gear_look2
cmp #5 cmp #MIST_BASE_STEPS
beq gear_look3 beq gear_look3
bne done_gear_delete bne done_gear_delete

View File

@ -42,3 +42,97 @@ LOCATION_SPECIAL_Y1=20
LOCATION_SPECIAL_Y2=21 LOCATION_SPECIAL_Y2=21
LOCATION_SPECIAL_FUNC=22 ; pointer-1 of function to call on click LOCATION_SPECIAL_FUNC=22 ; pointer-1 of function to call on click
;================================
; Loader definitions
LOAD_TITLE = $0
LOAD_MIST = $1
LOAD_MECHE = $2
LOAD_SELENA = $3
LOAD_OCTAGON = $4
;================================
; Level definitions
; Title
TITLE_MIST_LINKING_DOCK = 0
; Mist
MIST_ARRIVAL_DOCK = 0
MIST_DOCK_SWITCH = 1
MIST_DOCK_STEPS = 2
MIST_ABOVE_DOCK = 3
MIST_BASE_STEPS = 4
MIST_STEPS_1ST_LANDING = 5
MIST_STEPS_2ND_LANDING = 6
MIST_STEPS_DENTIST = 7
MIST_STEPS_4TH_LANDING = 8
MIST_OUTSIDE_TEMPLE = 9
MIST_POOL = 10
MIST_CLOCK = 11
MIST_SPACESHIP_FAR = 12
MIST_TREE_CORRIDOR_2 = 13
MIST_TREE_CORRIDOR_5 = 14
MIST_GEAR = 15
MIST_GEAR_BASE = 16
MIST_DENTIST_DOOR = 17
MIST_SPACESHIP_SWITCH = 18
MIST_TREE_CORRIDOR_4 = 19
MIST_TREE_CABIN = 20
MIST_CLOCK_PUZZLE = 21
MIST_CLOCK_ISLAND = 22
MIST_CLOCK_INSIDE = 23
MIST_OPEN_GEAR = 24
MIST_CHAIR_VIEW = 25
MIST_GREEN_SHACK = 26
MIST_GREEN_STEPS1 = 27
MIST_GREEN_STEPS6 = 28
MIST_GENERATOR_DOOR = 29
MIST_GENERATOR_ROOM = 30
MIST_ROCKET_PATH_PAD = 31
MIST_ROCKET_CLOSE = 32
MIST_TOWER2_PATH = 33
MIST_TOWER2_BASE = 34
MIST_TOWER2_TOP = 35
MIST_TOWER1_TRAIL = 36
MIST_TOWER1_TRAIL2 = 37
MIST_TOWER1_BOTTOM = 38
MIST_TOWER1_TOP = 39
; Mist Octagon Building
OCTAGON_TEMPLE_DOORWAY = 0
OCTAGON_TEMPLE_CENTER = 1
OCTAGON_RED_BOOKSHELF = 2
OCTAGON_FIREPLACE = 3
OCTAGON_IN_FIREPLACE = 4
OCTAGON_CEILING = 5
; Mechanical Engineering
MECHE_INSIDE_GEAR = 0
MECHE_CLOSED_BOOK = 1
MECHE_OPEN_BOOK = 2
MECHE_ARRIVAL = 3
MECHE_ENTRANCE = 4
MECHE_FORT_VIEW = 5
; Selena Age
SELENA_INSIDE_SHIP = 0
SELENA_CONTROLS = 1
SELENA_ELECTRIC_ORGAN = 2
SELENA_WALKWAY1 = 3
SELENA_SPACESHIP_DOOR = 4
SELENA_WALKWAY4 = 5
SELENA_BUNKER = 6
SELENA_SUB_ROOM = 7
SELENA_BOOK_ROOM = 8
SELENA_BOOK_CLOSED = 9
SELENA_BOOK_OPEN = 10

View File

@ -1,15 +1,15 @@
;======================= ;=======================
; flip circuit breaker ; flip circuit breaker
; if room==42, and with #$fe ; if room==MIST_TOWER2_TOP, and with #$fe
; if room==??, and with #$fd ; if room==MIST_TOWER1_TOP, and with #$fd
circuit_breaker: circuit_breaker:
bit $C030 ; click speaker bit $C030 ; click speaker
lda LOCATION lda LOCATION
cmp #42 cmp #MIST_TOWER2_TOP
bne other_circuit_breaker bne other_circuit_breaker
lda BREAKER_TRIPPED lda BREAKER_TRIPPED
@ -53,16 +53,16 @@ open_ss_door:
; change to open door image ; change to open door image
ldy #LOCATION_NORTH_BG ldy #LOCATION_NORTH_BG
lda #<spaceship_door_open_n_lzsa lda #<spaceship_door_open_n_lzsa
sta location38,Y sta location32,Y ; MIST_ROCKET_CLOSE
lda #>spaceship_door_open_n_lzsa lda #>spaceship_door_open_n_lzsa
sta location38+1,Y sta location32+1,Y ; MIST_ROCKET_CLOSE
; change to load new level if through ; change to load new level if through
ldy #LOCATION_SPECIAL_FUNC ldy #LOCATION_SPECIAL_FUNC
lda #<(go_to_selena-1) lda #<(go_to_selena-1)
sta location38,Y sta location32,Y ; MIST_ROCKET_CLOSE
lda #>(go_to_selena-1) lda #>(go_to_selena-1)
sta location38+1,Y sta location32+1,Y ; MIST_ROCKET_CLOSE
jsr change_location jsr change_location
@ -91,18 +91,18 @@ go_to_selena:
open_gen_door: open_gen_door:
ldy #LOCATION_NORTH_EXIT ldy #LOCATION_NORTH_EXIT
lda #36 lda #MIST_GENERATOR_ROOM
sta location35,Y sta location29,Y ; MIST_GENERATOR_DOOR
ldy #LOCATION_NORTH_EXIT_DIR ldy #LOCATION_NORTH_EXIT_DIR
lda #(DIRECTION_N | DIRECTION_SPLIT | DIRECTION_ONLY_POINT) lda #(DIRECTION_N | DIRECTION_SPLIT | DIRECTION_ONLY_POINT)
sta location35,Y sta location29,Y ; MIST_GENERATOR_DOOR
ldy #LOCATION_NORTH_BG ldy #LOCATION_NORTH_BG
lda #<gen_door_open_n_lzsa lda #<gen_door_open_n_lzsa
sta location35,Y sta location29,Y ; MIST_GENERATOR_DOOR
lda #>gen_door_open_n_lzsa lda #>gen_door_open_n_lzsa
sta location35+1,Y sta location29+1,Y ; MIST_GENERATOR_DOOR
jsr change_location jsr change_location
@ -129,7 +129,7 @@ needle_strings:
generator_button_press: generator_button_press:
lda YPOS lda CURSOR_Y
cmp #38 cmp #38
bcs button_bottom_row ; bge bcs button_bottom_row ; bge

View File

@ -20,15 +20,9 @@ mist_graphics.inc: \
step_dentist_n.lzsa step_dentist_e.lzsa step_dentist_w.lzsa \ step_dentist_n.lzsa step_dentist_e.lzsa step_dentist_w.lzsa \
step_land3_w.lzsa step_land3_e.lzsa \ step_land3_w.lzsa step_land3_e.lzsa \
step_top_e.lzsa step_top_w.lzsa step_top_n.lzsa step_top_s.lzsa \ step_top_e.lzsa step_top_w.lzsa step_top_n.lzsa step_top_s.lzsa \
temple_door_n.lzsa temple_door_s.lzsa \
temple_center_n.lzsa temple_center_s.lzsa temple_center_e.lzsa \
temple_center_w.lzsa temple_center_up.lzsa \
red_book_shelf.lzsa \
red_book_closed.lzsa \
pool_s.lzsa \ pool_s.lzsa \
clock_s.lzsa clock_bridge.lzsa \ clock_s.lzsa clock_bridge.lzsa \
spaceship_far_e.lzsa spaceship_far_n.lzsa \ spaceship_far_e.lzsa spaceship_far_n.lzsa \
red_book_open.lzsa red_book_static.lzsa red_book_static2.lzsa \
tree2_n.lzsa \ tree2_n.lzsa \
tree5_n.lzsa tree5_e.lzsa \ tree5_n.lzsa tree5_e.lzsa \
gear_n.lzsa gear_w.lzsa gear_s.lzsa gear_open_n.lzsa\ gear_n.lzsa gear_w.lzsa gear_s.lzsa gear_open_n.lzsa\
@ -40,8 +34,6 @@ mist_graphics.inc: \
clock_island_s.lzsa clock_island_n.lzsa \ clock_island_s.lzsa clock_island_n.lzsa \
clock_puzzle_s.lzsa clock_puzzle_bridge.lzsa \ clock_puzzle_s.lzsa clock_puzzle_bridge.lzsa \
clock_inside_s.lzsa clock_inside_open.lzsa \ clock_inside_s.lzsa clock_inside_open.lzsa \
fireplace_e.lzsa \
in_fireplace_w.lzsa in_fireplace_door.lzsa \
gear_open_e.lzsa \ gear_open_e.lzsa \
chair_view_s.lzsa chair_view_n.lzsa \ chair_view_s.lzsa chair_view_n.lzsa \
generator_n.lzsa generator_s.lzsa \ generator_n.lzsa generator_s.lzsa \
@ -82,23 +74,11 @@ mist_graphics.inc: \
echo "step_top_w_lzsa: .incbin \"step_top_w.lzsa\"" >> mist_graphics.inc echo "step_top_w_lzsa: .incbin \"step_top_w.lzsa\"" >> mist_graphics.inc
echo "step_top_n_lzsa: .incbin \"step_top_n.lzsa\"" >> mist_graphics.inc echo "step_top_n_lzsa: .incbin \"step_top_n.lzsa\"" >> mist_graphics.inc
echo "step_top_s_lzsa: .incbin \"step_top_s.lzsa\"" >> mist_graphics.inc echo "step_top_s_lzsa: .incbin \"step_top_s.lzsa\"" >> mist_graphics.inc
echo "temple_door_n_lzsa: .incbin \"temple_door_n.lzsa\"" >> mist_graphics.inc
echo "temple_door_s_lzsa: .incbin \"temple_door_s.lzsa\"" >> mist_graphics.inc
echo "temple_center_n_lzsa: .incbin \"temple_center_n.lzsa\"" >> mist_graphics.inc
echo "temple_center_s_lzsa: .incbin \"temple_center_s.lzsa\"" >> mist_graphics.inc
echo "temple_center_e_lzsa: .incbin \"temple_center_e.lzsa\"" >> mist_graphics.inc
echo "temple_center_w_lzsa: .incbin \"temple_center_w.lzsa\"" >> mist_graphics.inc
echo "temple_center_up_lzsa: .incbin \"temple_center_up.lzsa\"" >> mist_graphics.inc
echo "red_book_closed_lzsa: .incbin \"red_book_closed.lzsa\"" >> mist_graphics.inc
echo "red_book_shelf_lzsa: .incbin \"red_book_shelf.lzsa\"" >> mist_graphics.inc
echo "pool_s_lzsa: .incbin \"pool_s.lzsa\"" >> mist_graphics.inc echo "pool_s_lzsa: .incbin \"pool_s.lzsa\"" >> mist_graphics.inc
echo "clock_s_lzsa: .incbin \"clock_s.lzsa\"" >> mist_graphics.inc echo "clock_s_lzsa: .incbin \"clock_s.lzsa\"" >> mist_graphics.inc
echo "clock_bridge_lzsa: .incbin \"clock_bridge.lzsa\"" >> mist_graphics.inc echo "clock_bridge_lzsa: .incbin \"clock_bridge.lzsa\"" >> mist_graphics.inc
echo "spaceship_far_n_lzsa: .incbin \"spaceship_far_n.lzsa\"" >> mist_graphics.inc echo "spaceship_far_n_lzsa: .incbin \"spaceship_far_n.lzsa\"" >> mist_graphics.inc
echo "spaceship_far_e_lzsa: .incbin \"spaceship_far_e.lzsa\"" >> mist_graphics.inc echo "spaceship_far_e_lzsa: .incbin \"spaceship_far_e.lzsa\"" >> mist_graphics.inc
echo "red_book_open_lzsa: .incbin \"red_book_open.lzsa\"" >> mist_graphics.inc
echo "red_book_static_lzsa: .incbin \"red_book_static.lzsa\"" >> mist_graphics.inc
echo "red_book_static2_lzsa: .incbin \"red_book_static2.lzsa\"" >> mist_graphics.inc
echo "tree2_n_lzsa: .incbin \"tree2_n.lzsa\"" >> mist_graphics.inc echo "tree2_n_lzsa: .incbin \"tree2_n.lzsa\"" >> mist_graphics.inc
echo "tree5_n_lzsa: .incbin \"tree5_n.lzsa\"" >> mist_graphics.inc echo "tree5_n_lzsa: .incbin \"tree5_n.lzsa\"" >> mist_graphics.inc
echo "tree5_e_lzsa: .incbin \"tree5_e.lzsa\"" >> mist_graphics.inc echo "tree5_e_lzsa: .incbin \"tree5_e.lzsa\"" >> mist_graphics.inc
@ -121,9 +101,6 @@ mist_graphics.inc: \
echo "clock_puzzle_bridge_lzsa: .incbin \"clock_puzzle_bridge.lzsa\"" >> mist_graphics.inc echo "clock_puzzle_bridge_lzsa: .incbin \"clock_puzzle_bridge.lzsa\"" >> mist_graphics.inc
echo "clock_inside_s_lzsa: .incbin \"clock_inside_s.lzsa\"" >> mist_graphics.inc echo "clock_inside_s_lzsa: .incbin \"clock_inside_s.lzsa\"" >> mist_graphics.inc
echo "clock_inside_open_lzsa: .incbin \"clock_inside_open.lzsa\"" >> mist_graphics.inc echo "clock_inside_open_lzsa: .incbin \"clock_inside_open.lzsa\"" >> mist_graphics.inc
echo "fireplace_e_lzsa: .incbin \"fireplace_e.lzsa\"" >> mist_graphics.inc
echo "in_fireplace_w_lzsa: .incbin \"in_fireplace_w.lzsa\"" >> mist_graphics.inc
echo "in_fireplace_door_lzsa: .incbin \"in_fireplace_door.lzsa\"" >> mist_graphics.inc
echo "gear_open_e_lzsa: .incbin \"gear_open_e.lzsa\"" >> mist_graphics.inc echo "gear_open_e_lzsa: .incbin \"gear_open_e.lzsa\"" >> mist_graphics.inc
echo "chair_view_s_lzsa: .incbin \"chair_view_s.lzsa\"" >> mist_graphics.inc echo "chair_view_s_lzsa: .incbin \"chair_view_s.lzsa\"" >> mist_graphics.inc
echo "chair_view_n_lzsa: .incbin \"chair_view_n.lzsa\"" >> mist_graphics.inc echo "chair_view_n_lzsa: .incbin \"chair_view_n.lzsa\"" >> mist_graphics.inc
@ -164,4 +141,4 @@ mist_graphics.inc: \
#### ####
clean: clean:
rm -f *~ *.o *.lst *.gr mist_graphics.inc rm -f *~ *.o *.lst *.gr *.lzsa mist_graphics.inc

View File

@ -23,23 +23,11 @@ step_top_e_lzsa: .incbin "step_top_e.lzsa"
step_top_w_lzsa: .incbin "step_top_w.lzsa" step_top_w_lzsa: .incbin "step_top_w.lzsa"
step_top_n_lzsa: .incbin "step_top_n.lzsa" step_top_n_lzsa: .incbin "step_top_n.lzsa"
step_top_s_lzsa: .incbin "step_top_s.lzsa" step_top_s_lzsa: .incbin "step_top_s.lzsa"
temple_door_n_lzsa: .incbin "temple_door_n.lzsa"
temple_door_s_lzsa: .incbin "temple_door_s.lzsa"
temple_center_n_lzsa: .incbin "temple_center_n.lzsa"
temple_center_s_lzsa: .incbin "temple_center_s.lzsa"
temple_center_e_lzsa: .incbin "temple_center_e.lzsa"
temple_center_w_lzsa: .incbin "temple_center_w.lzsa"
temple_center_up_lzsa: .incbin "temple_center_up.lzsa"
red_book_closed_lzsa: .incbin "red_book_closed.lzsa"
red_book_shelf_lzsa: .incbin "red_book_shelf.lzsa"
pool_s_lzsa: .incbin "pool_s.lzsa" pool_s_lzsa: .incbin "pool_s.lzsa"
clock_s_lzsa: .incbin "clock_s.lzsa" clock_s_lzsa: .incbin "clock_s.lzsa"
clock_bridge_lzsa: .incbin "clock_bridge.lzsa" clock_bridge_lzsa: .incbin "clock_bridge.lzsa"
spaceship_far_n_lzsa: .incbin "spaceship_far_n.lzsa" spaceship_far_n_lzsa: .incbin "spaceship_far_n.lzsa"
spaceship_far_e_lzsa: .incbin "spaceship_far_e.lzsa" spaceship_far_e_lzsa: .incbin "spaceship_far_e.lzsa"
red_book_open_lzsa: .incbin "red_book_open.lzsa"
red_book_static_lzsa: .incbin "red_book_static.lzsa"
red_book_static2_lzsa: .incbin "red_book_static2.lzsa"
tree2_n_lzsa: .incbin "tree2_n.lzsa" tree2_n_lzsa: .incbin "tree2_n.lzsa"
tree5_n_lzsa: .incbin "tree5_n.lzsa" tree5_n_lzsa: .incbin "tree5_n.lzsa"
tree5_e_lzsa: .incbin "tree5_e.lzsa" tree5_e_lzsa: .incbin "tree5_e.lzsa"
@ -62,9 +50,6 @@ clock_puzzle_s_lzsa: .incbin "clock_puzzle_s.lzsa"
clock_puzzle_bridge_lzsa: .incbin "clock_puzzle_bridge.lzsa" clock_puzzle_bridge_lzsa: .incbin "clock_puzzle_bridge.lzsa"
clock_inside_s_lzsa: .incbin "clock_inside_s.lzsa" clock_inside_s_lzsa: .incbin "clock_inside_s.lzsa"
clock_inside_open_lzsa: .incbin "clock_inside_open.lzsa" clock_inside_open_lzsa: .incbin "clock_inside_open.lzsa"
fireplace_e_lzsa: .incbin "fireplace_e.lzsa"
in_fireplace_w_lzsa: .incbin "in_fireplace_w.lzsa"
in_fireplace_door_lzsa: .incbin "in_fireplace_door.lzsa"
gear_open_e_lzsa: .incbin "gear_open_e.lzsa" gear_open_e_lzsa: .incbin "gear_open_e.lzsa"
chair_view_s_lzsa: .incbin "chair_view_s.lzsa" chair_view_s_lzsa: .incbin "chair_view_s.lzsa"
chair_view_n_lzsa: .incbin "chair_view_n.lzsa" chair_view_n_lzsa: .incbin "chair_view_n.lzsa"

View File

@ -0,0 +1,48 @@
#include ../Makefile.inc
PNG2RLE = ../../gr-utils/png2rle
PNG2GR = ../../gr-utils/png2gr
LZSA = ~/research/lzsa/lzsa/lzsa
all: octagon_graphics.inc
####
octagon_graphics.inc: \
temple_door_n.lzsa temple_door_s.lzsa \
temple_center_n.lzsa temple_center_s.lzsa temple_center_e.lzsa \
temple_center_w.lzsa temple_center_up.lzsa \
red_book_shelf.lzsa \
red_book_open.lzsa red_book_closed.lzsa \
red_book_static.lzsa red_book_static2.lzsa \
fireplace_e.lzsa \
in_fireplace_w.lzsa in_fireplace_door.lzsa
echo "temple_door_n_lzsa: .incbin \"temple_door_n.lzsa\"" > octagon_graphics.inc
echo "temple_door_s_lzsa: .incbin \"temple_door_s.lzsa\"" >> octagon_graphics.inc
echo "temple_center_n_lzsa: .incbin \"temple_center_n.lzsa\"" >> octagon_graphics.inc
echo "temple_center_s_lzsa: .incbin \"temple_center_s.lzsa\"" >> octagon_graphics.inc
echo "temple_center_e_lzsa: .incbin \"temple_center_e.lzsa\"" >> octagon_graphics.inc
echo "temple_center_w_lzsa: .incbin \"temple_center_w.lzsa\"" >> octagon_graphics.inc
echo "temple_center_up_lzsa: .incbin \"temple_center_up.lzsa\"" >> octagon_graphics.inc
echo "red_book_open_lzsa: .incbin \"red_book_open.lzsa\"" >> octagon_graphics.inc
echo "red_book_closed_lzsa: .incbin \"red_book_closed.lzsa\"" >> octagon_graphics.inc
echo "red_book_shelf_lzsa: .incbin \"red_book_shelf.lzsa\"" >> octagon_graphics.inc
echo "red_book_static_lzsa: .incbin \"red_book_static.lzsa\"" >> octagon_graphics.inc
echo "red_book_static2_lzsa: .incbin \"red_book_static2.lzsa\"" >> octagon_graphics.inc
echo "fireplace_e_lzsa: .incbin \"fireplace_e.lzsa\"" >> octagon_graphics.inc
echo "in_fireplace_w_lzsa: .incbin \"in_fireplace_w.lzsa\"" >> octagon_graphics.inc
echo "in_fireplace_door_lzsa: .incbin \"in_fireplace_door.lzsa\"" >> octagon_graphics.inc
%.gr: %.png
$(PNG2GR) $< $@
%.lzsa: %.gr
$(LZSA) -r -f2 $< $@
####
clean:
rm -f *~ *.o *.lst *.gr octagon_graphics.inc

View File

Before

Width:  |  Height:  |  Size: 897 B

After

Width:  |  Height:  |  Size: 897 B

View File

Before

Width:  |  Height:  |  Size: 918 B

After

Width:  |  Height:  |  Size: 918 B

View File

Before

Width:  |  Height:  |  Size: 1000 B

After

Width:  |  Height:  |  Size: 1000 B

View File

Before

Width:  |  Height:  |  Size: 771 B

After

Width:  |  Height:  |  Size: 771 B

View File

Before

Width:  |  Height:  |  Size: 11 KiB

After

Width:  |  Height:  |  Size: 11 KiB

View File

Before

Width:  |  Height:  |  Size: 9.7 KiB

After

Width:  |  Height:  |  Size: 9.7 KiB

View File

Before

Width:  |  Height:  |  Size: 12 KiB

After

Width:  |  Height:  |  Size: 12 KiB

View File

Before

Width:  |  Height:  |  Size: 12 KiB

After

Width:  |  Height:  |  Size: 12 KiB

View File

Before

Width:  |  Height:  |  Size: 979 B

After

Width:  |  Height:  |  Size: 979 B

View File

Before

Width:  |  Height:  |  Size: 15 KiB

After

Width:  |  Height:  |  Size: 15 KiB

View File

Before

Width:  |  Height:  |  Size: 1.0 KiB

After

Width:  |  Height:  |  Size: 1.0 KiB

View File

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 1.1 KiB

View File

Before

Width:  |  Height:  |  Size: 1.0 KiB

After

Width:  |  Height:  |  Size: 1.0 KiB

View File

Before

Width:  |  Height:  |  Size: 1.0 KiB

After

Width:  |  Height:  |  Size: 1.0 KiB

View File

Before

Width:  |  Height:  |  Size: 831 B

After

Width:  |  Height:  |  Size: 831 B

View File

@ -7,12 +7,12 @@ locations:
.word location0, location1, location2, location3 .word location0, location1, location2, location3
.word location4, location5 .word location4, location5
; Inside gear on Mist ; MECHE_INSIDE_GEAR -- Inside gear on Mist
location0: location0:
.byte $ff ; north exit .byte $ff ; north exit
.byte $ff ; south exit .byte $ff ; south exit
.byte 1 ; east exit .byte MECHE_CLOSED_BOOK ; east exit
.byte $ff ; west exit .byte $ff ; west exit
.byte $ff ; north exit_dir .byte $ff ; north exit_dir
.byte $ff ; south exit_dir .byte $ff ; south exit_dir
.byte DIRECTION_E ; east exit_dir .byte DIRECTION_E ; east exit_dir
@ -25,12 +25,12 @@ location0:
.byte $ff ; special exit .byte $ff ; special exit
; closed book ; MECHE_CLOSED_BOOK -- closed book
location1: location1:
.byte $ff ; north exit .byte $ff ; north exit
.byte $ff ; south exit .byte $ff ; south exit
.byte 2 ; east exit .byte MECHE_OPEN_BOOK ; east exit
.byte $ff ; west exit .byte $ff ; west exit
.byte $ff ; north exit_dir .byte $ff ; north exit_dir
.byte $ff ; south exit_dir .byte $ff ; south exit_dir
.byte DIRECTION_E ; east exit_dir .byte DIRECTION_E ; east exit_dir
@ -42,12 +42,12 @@ location1:
.byte BG_EAST .byte BG_EAST
.byte $ff ; special exit .byte $ff ; special exit
; open book ; MECHE_OPEN_BOOK -- open book
location2: location2:
.byte $ff ; north exit .byte $ff ; north exit
.byte $ff ; south exit .byte $ff ; south exit
.byte 0 ; east exit .byte MECHE_INSIDE_GEAR ; east exit
.byte $ff ; west exit .byte $ff ; west exit
.byte $ff ; north exit_dir .byte $ff ; north exit_dir
.byte $ff ; south exit_dir .byte $ff ; south exit_dir
.byte DIRECTION_E ; east exit_dir .byte DIRECTION_E ; east exit_dir
@ -63,12 +63,12 @@ location2:
.word meche_link_book-1 ; special function .word meche_link_book-1 ; special function
; arrival ; MECHE_ARRIVAL -- arrival
location3: location3:
.byte $ff ; north exit .byte $ff ; north exit
.byte $ff ; south exit .byte $ff ; south exit
.byte $ff ; east exit .byte $ff ; east exit
.byte 4 ; west exit .byte MECHE_ENTRANCE ; west exit
.byte $ff ; north exit_dir .byte $ff ; north exit_dir
.byte $ff ; south exit_dir .byte $ff ; south exit_dir
.byte $ff ; east exit_dir .byte $ff ; east exit_dir
@ -80,12 +80,12 @@ location3:
.byte BG_WEST .byte BG_WEST
.byte $ff ; special exit .byte $ff ; special exit
; entrance ; MECHE_ENTRANCE -- entrance
location4: location4:
.byte 5 ; north exit .byte MECHE_FORT_VIEW ; north exit
.byte $ff ; south exit .byte $ff ; south exit
.byte $ff ; east exit .byte $ff ; east exit
.byte 3 ; west exit .byte MECHE_ARRIVAL ; west exit
.byte DIRECTION_N ; north exit_dir .byte DIRECTION_N ; north exit_dir
.byte $ff ; south exit_dir .byte $ff ; south exit_dir
.byte $ff ; east exit_dir .byte $ff ; east exit_dir
@ -97,12 +97,12 @@ location4:
.byte BG_NORTH|BG_SOUTH|BG_EAST|BG_WEST .byte BG_NORTH|BG_SOUTH|BG_EAST|BG_WEST
.byte $ff ; special exit .byte $ff ; special exit
; fort view ; MECHE_FORT_VIEW -- fort view
location5: location5:
.byte 5 ; north exit .byte MECHE_FORT_VIEW ; north exit
.byte 4 ; south exit .byte MECHE_ENTRANCE ; south exit
.byte $ff ; east exit .byte $ff ; east exit
.byte $ff ; west exit .byte $ff ; west exit
.byte DIRECTION_S ; north exit_dir .byte DIRECTION_S ; north exit_dir
.byte DIRECTION_S ; south exit_dir .byte DIRECTION_S ; south exit_dir
.byte $ff ; east exit_dir .byte $ff ; east exit_dir

View File

@ -4,7 +4,7 @@
;=============================================== ;===============================================
locations: locations:
.word location1, location1, location2, location3 .word location0, location1, location2, location3
.word location4, location5, location6, location7 .word location4, location5, location6, location7
.word location8, location9, location10,location11 .word location8, location9, location10,location11
.word location12,location13,location14,location15 .word location12,location13,location14,location15
@ -14,36 +14,13 @@ locations:
.word location28,location29,location30,location31 .word location28,location29,location30,location31
.word location32,location33,location34,location35 .word location32,location33,location34,location35
.word location36,location37,location38,location39 .word location36,location37,location38,location39
.word location40,location41,location42,location43
.word location44,location45,location46
; myst linking book ; MIST_ARRIVAL_DOCK -- dock
;location0: location0:
; .byte $ff ; north exit .byte MIST_DOCK_SWITCH ; north exit
; .byte $ff ; south exit .byte $ff ; south exit
; .byte $ff ; east exit .byte $ff ; east exit
; .byte $ff ; west exit .byte $ff ; west exit
; .byte $ff ; north exit_dir
; .byte $ff ; south exit_dir
; .byte $ff ; east exit_dir
; .byte $ff ; west exit_dir
; .word m_link_book_lzsa ; north bg
; .word $0000 ; south bg
; .word $0000 ; east bg
; .word $0000 ; west bg
; .byte BG_NORTH ; only north bg
; .byte DIRECTION_N ; special exit
; .byte 21,31 ; special x
; .byte 10,24 ; special y
; .word mist_link_book-1 ; special function
; dock
location1:
.byte $2 ; north exit
.byte $ff ; south exit
.byte $ff ; east exit
.byte $ff ; west exit
.byte DIRECTION_N ; north exit_dir .byte DIRECTION_N ; north exit_dir
.byte DIRECTION_S ; south exit_dir .byte DIRECTION_S ; south exit_dir
.byte $ff ; east exit_dir .byte $ff ; east exit_dir
@ -55,12 +32,12 @@ location1:
.byte BG_EAST|BG_NORTH|BG_SOUTH|BG_WEST ; all bgs .byte BG_EAST|BG_NORTH|BG_SOUTH|BG_WEST ; all bgs
.byte $ff ; special exit .byte $ff ; special exit
; by dock switch ; MIST_DOCK_SWITCH -- by dock switch
location2: location1:
.byte 3 ; north exit .byte MIST_DOCK_STEPS ; north exit
.byte 1 ; south exit .byte MIST_DOCK_SWITCH ; south exit
.byte $ff ; east exit .byte $ff ; east exit
.byte $ff ; west exit .byte $ff ; west exit
.byte DIRECTION_W ; north exit_dir .byte DIRECTION_W ; north exit_dir
.byte DIRECTION_S ; south exit_dir .byte DIRECTION_S ; south exit_dir
.byte $ff ; east exit_dir .byte $ff ; east exit_dir
@ -75,14 +52,12 @@ location2:
.byte 25,32 ; special y .byte 25,32 ; special y
.word click_switch-1 ; special function .word click_switch-1 ; special function
; MIST_DOCK_STEPS -- dock steps
location2:
; dock steps .byte MIST_GEAR ; north exit
location3: .byte $ff ; south exit
.byte 19 ; north exit .byte MIST_DOCK_SWITCH ; east exit
.byte $ff ; south exit .byte MIST_ABOVE_DOCK ; west exit
.byte 2 ; east exit
.byte 4 ; west exit
.byte DIRECTION_N ; north exit_dir .byte DIRECTION_N ; north exit_dir
.byte $ff ; south exit_dir .byte $ff ; south exit_dir
.byte DIRECTION_S ; east exit_dir .byte DIRECTION_S ; east exit_dir
@ -96,12 +71,12 @@ location3:
; above dock path ; MIST_ABOVE_DOCK -- above dock path
location4: location3:
.byte 20 ; north exit .byte MIST_GEAR_BASE ; north exit
.byte 5 ; south exit .byte MIST_BASE_STEPS ; south exit
.byte 2 ; east exit .byte MIST_DOCK_SWITCH ; east exit
.byte $ff ; west exit .byte $ff ; west exit
.byte DIRECTION_N ; north exit_dir .byte DIRECTION_N ; north exit_dir
.byte DIRECTION_S ; south exit_dir .byte DIRECTION_S ; south exit_dir
.byte DIRECTION_S ; east exit_dir .byte DIRECTION_S ; east exit_dir
@ -114,11 +89,11 @@ location4:
.byte $ff ; special exit .byte $ff ; special exit
; base of steps ; base of steps
location5: location4:
.byte 4 ; north exit .byte MIST_ABOVE_DOCK ; north exit
.byte 6 ; south exit .byte MIST_STEPS_1ST_LANDING ; south exit
.byte $ff ; east exit .byte $ff ; east exit
.byte $ff ; west exit .byte $ff ; west exit
.byte DIRECTION_N ; north exit_dir .byte DIRECTION_N ; north exit_dir
.byte DIRECTION_W ; south exit_dir .byte DIRECTION_W ; south exit_dir
.byte $ff ; east exit_dir .byte $ff ; east exit_dir
@ -130,12 +105,12 @@ location5:
.byte BG_SOUTH|BG_NORTH .byte BG_SOUTH|BG_NORTH
.byte $ff ; special exit .byte $ff ; special exit
; steps 1st landing ; MIST_STEPS_1ST_LANDING -- steps 1st landing
location6: location5:
.byte $ff ; north exit .byte $ff ; north exit
.byte $ff ; south exit .byte $ff ; south exit
.byte 5 ; east exit .byte MIST_BASE_STEPS ; east exit
.byte 7 ; west exit .byte MIST_STEPS_2ND_LANDING ; west exit
.byte $ff ; north exit_dir .byte $ff ; north exit_dir
.byte $ff ; south exit_dir .byte $ff ; south exit_dir
.byte DIRECTION_N ; east exit_dir .byte DIRECTION_N ; east exit_dir
@ -147,12 +122,12 @@ location6:
.byte BG_WEST | BG_EAST .byte BG_WEST | BG_EAST
.byte $ff ; special exit .byte $ff ; special exit
; steps 2nd landing ; MIST_STEPS_2ND_LANDING -- steps 2nd landing
location7: location6:
.byte $ff ; north exit .byte $ff ; north exit
.byte $ff ; south exit .byte $ff ; south exit
.byte 6 ; east exit .byte MIST_STEPS_1ST_LANDING ; east exit
.byte 8 ; west exit .byte MIST_STEPS_DENTIST ; west exit
.byte $ff ; north exit_dir .byte $ff ; north exit_dir
.byte $ff ; south exit_dir .byte $ff ; south exit_dir
.byte DIRECTION_E ; east exit_dir .byte DIRECTION_E ; east exit_dir
@ -168,12 +143,12 @@ location7:
.word read_letter-1 .word read_letter-1
; steps outside dentist chair branch ; MIST_STEPS_DENTIST -- steps outside dentist chair branch
location8: location7:
.byte 21 ; north exit .byte MIST_DENTIST_DOOR ; north exit
.byte $ff ; south exit .byte $ff ; south exit
.byte 7 ; east exit .byte MIST_STEPS_2ND_LANDING ; east exit
.byte 9 ; west exit .byte 8 ; west exit
.byte DIRECTION_N ; north exit_dir .byte DIRECTION_N ; north exit_dir
.byte $ff ; south exit_dir .byte $ff ; south exit_dir
.byte DIRECTION_E ; east exit_dir .byte DIRECTION_E ; east exit_dir
@ -185,12 +160,12 @@ location8:
.byte BG_EAST|BG_WEST|BG_NORTH .byte BG_EAST|BG_WEST|BG_NORTH
.byte $ff ; special exit .byte $ff ; special exit
; steps one more time up ; MIST_STEPS_4TH_LANDING -- steps one more time up
location9: location8:
.byte $ff ; north exit .byte $ff ; north exit
.byte $ff ; south exit .byte $ff ; south exit
.byte 8 ; east exit .byte MIST_STEPS_DENTIST ; east exit
.byte 10 ; west exit .byte MIST_OUTSIDE_TEMPLE ; west exit
.byte $ff ; north exit_dir .byte $ff ; north exit_dir
.byte $ff ; south exit_dir .byte $ff ; south exit_dir
.byte DIRECTION_E ; east exit_dir .byte DIRECTION_E ; east exit_dir
@ -202,12 +177,13 @@ location9:
.byte BG_WEST | BG_EAST ; west and eastl .byte BG_WEST | BG_EAST ; west and eastl
.byte $ff ; special exit .byte $ff ; special exit
; at the top outside temple ; MIST_OUTSIDE_TEMPLE -- at the top outside temple
location10: location9:
.byte 11 ; north exit ; .byte 10 ; north exit
.byte 14 ; south exit .byte $ff ; north exit
.byte 9 ; east exit .byte MIST_POOL ; south exit
.byte 37 ; west exit .byte MIST_STEPS_4TH_LANDING ; east exit
.byte MIST_ROCKET_PATH_PAD ; west exit
.byte DIRECTION_N ; north exit_dir .byte DIRECTION_N ; north exit_dir
.byte DIRECTION_S ; south exit_dir .byte DIRECTION_S ; south exit_dir
.byte DIRECTION_E ; east exit_dir .byte DIRECTION_E ; east exit_dir
@ -219,67 +195,13 @@ location10:
.byte BG_EAST|BG_WEST|BG_NORTH|BG_SOUTH ; all dirs .byte BG_EAST|BG_WEST|BG_NORTH|BG_SOUTH ; all dirs
.byte $ff ; special exit .byte $ff ; special exit
; temple doorway
location11:
.byte 12 ; north exit
.byte 10 ; 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 temple_door_n_lzsa ; north bg
.word temple_door_s_lzsa ; south bg
.word $0000 ; east bg
.word $0000 ; west bg
.byte BG_NORTH|BG_SOUTH ; north and south
.byte $ff ; special exit
; temple inside ; MIST_POOL -- pool
location12: location10:
.byte $ff ; north exit .byte $ff ; north exit
.byte 11 ; south exit .byte MIST_TREE_CORRIDOR_4 ; south exit
.byte 28 ; east exit .byte $ff ; east exit
.byte 13 ; west exit .byte $ff ; west exit
.byte $ff ; north exit_dir
.byte DIRECTION_S ; south exit_dir
.byte DIRECTION_E ; east exit_dir
.byte DIRECTION_W ; west exit_dir
.word temple_center_n_lzsa ; north bg
.word temple_center_s_lzsa ; south bg
.word temple_center_e_lzsa ; east bg
.word temple_center_w_lzsa ; west bg
.byte BG_NORTH|BG_WEST|BG_SOUTH|BG_EAST ; all directions
.byte $ff ; special exit
; red book shelf
location13:
.byte $ff ; north exit
.byte $ff ; south exit
.byte $ff ; east exit
.byte 12 ; 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 red_book_shelf_lzsa ; west bg
.byte BG_WEST ; west
.byte DIRECTION_N ; special exit
.byte 16,25 ; special x
.byte 16,32 ; special y
.word red_book-1 ; special function
; pool
location14:
.byte $ff ; north exit
.byte 23 ; south exit
.byte $ff ; east exit
.byte $ff ; west exit
.byte $ff ; north exit_dir .byte $ff ; north exit_dir
.byte DIRECTION_S ; south exit_dir .byte DIRECTION_S ; south exit_dir
.byte $ff ; east exit_dir .byte $ff ; east exit_dir
@ -291,12 +213,12 @@ location14:
.byte BG_SOUTH .byte BG_SOUTH
.byte $ff ; special exit .byte $ff ; special exit
; clock ; MIST_CLOCK -- clock
location15: location11:
.byte $ff ; north exit .byte $ff ; north exit
.byte 25 ; south exit .byte MIST_CLOCK_PUZZLE ; south exit
.byte $ff ; east exit .byte $ff ; east exit
.byte $ff ; west exit .byte $ff ; west exit
.byte $ff ; north exit_dir .byte $ff ; north exit_dir
.byte DIRECTION_S ; south exit_dir .byte DIRECTION_S ; south exit_dir
.byte $ff ; east exit_dir .byte $ff ; east exit_dir
@ -308,12 +230,12 @@ location15:
.byte BG_SOUTH .byte BG_SOUTH
.byte $ff ; special exit .byte $ff ; special exit
; spaceship far ; MIST_SPACESHIP_FAR -- spaceship far
location16: location12:
.byte 22 ; north exit .byte MIST_SPACESHIP_SWITCH ; north exit
.byte $ff ; south exit .byte $ff ; south exit
.byte 37 ; east exit .byte MIST_ROCKET_PATH_PAD ; east exit
.byte $ff ; west exit .byte $ff ; west exit
.byte DIRECTION_N ; north exit_dir .byte DIRECTION_N ; north exit_dir
.byte $ff ; south exit_dir .byte $ff ; south exit_dir
.byte DIRECTION_E ; east exit_dir .byte DIRECTION_E ; east exit_dir
@ -325,12 +247,12 @@ location16:
.byte BG_NORTH|BG_EAST .byte BG_NORTH|BG_EAST
.byte $ff ; special exit .byte $ff ; special exit
; tree corridor #2 ; MIST_TREE_CORRIDOR_2 -- tree corridor #2
location17: location13:
.byte 10 ; north exit .byte MIST_OUTSIDE_TEMPLE ; north exit
.byte $ff ; south exit .byte $ff ; south exit
.byte $ff ; east exit .byte $ff ; east exit
.byte $ff ; west exit .byte $ff ; west exit
.byte DIRECTION_N ; north exit_dir .byte DIRECTION_N ; north exit_dir
.byte $ff ; south exit_dir .byte $ff ; south exit_dir
.byte $ff ; east exit_dir .byte $ff ; east exit_dir
@ -345,12 +267,12 @@ location17:
.byte 19,23 ; special y .byte 19,23 ; special y
.word click_switch-1 ; special function .word click_switch-1 ; special function
; tree corridor #5 ; MIST_TREE_CORRIDOR_5 -- tree corridor #5
location18: location14:
.byte 23 ; north exit .byte MIST_TREE_CORRIDOR_4 ; north exit
.byte $ff ; south exit .byte $ff ; south exit
.byte 24 ; east exit .byte MIST_TREE_CABIN ; east exit
.byte $ff ; west exit .byte $ff ; west exit
.byte DIRECTION_N ; north exit_dir .byte DIRECTION_N ; north exit_dir
.byte $ff ; south exit_dir .byte $ff ; south exit_dir
.byte DIRECTION_E ; east exit_dir .byte DIRECTION_E ; east exit_dir
@ -362,12 +284,12 @@ location18:
.byte BG_NORTH | BG_EAST .byte BG_NORTH | BG_EAST
.byte $ff ; special exit .byte $ff ; special exit
; gear ; MIST_GEAR -- gear
location19: location15:
.byte $ff ; north exit .byte $ff ; north exit
.byte 4 ; south exit .byte MIST_ABOVE_DOCK ; south exit
.byte $ff ; east exit .byte $ff ; east exit
.byte $ff ; west exit .byte $ff ; west exit
.byte $ff ; north exit_dir .byte $ff ; north exit_dir
.byte DIRECTION_E ; south exit_dir .byte DIRECTION_E ; south exit_dir
.byte $ff ; east exit_dir .byte $ff ; east exit_dir
@ -383,12 +305,12 @@ location19:
.word click_switch-1 ; special function .word click_switch-1 ; special function
; gear base ; MIST_GEAR_BASE -- gear base
location20: location16:
.byte 19 ; north exit .byte MIST_GEAR ; north exit
.byte $ff ; south exit .byte $ff ; south exit
.byte 2 ; east exit .byte MIST_DOCK_SWITCH ; east exit
.byte $ff ; west exit .byte $ff ; west exit
.byte DIRECTION_N ; north exit_dir .byte DIRECTION_N ; north exit_dir
.byte $ff ; south exit_dir .byte $ff ; south exit_dir
.byte DIRECTION_S ; east exit_dir .byte DIRECTION_S ; east exit_dir
@ -400,12 +322,12 @@ location20:
.byte BG_NORTH | BG_EAST .byte BG_NORTH | BG_EAST
.byte $ff ; special exit .byte $ff ; special exit
; dentist door ; MIST_DENTIST_DOOR -- dentist door
location21: location17:
.byte 31 ; north exit .byte MIST_CHAIR_VIEW ; north exit
.byte 9 ; south exit .byte MIST_STEPS_4TH_LANDING ; south exit
.byte $ff ; east exit .byte $ff ; east exit
.byte $ff ; west exit .byte $ff ; west exit
.byte DIRECTION_N ; north exit_dir .byte DIRECTION_N ; north exit_dir
.byte DIRECTION_W ; south exit_dir .byte DIRECTION_W ; south exit_dir
.byte $ff ; east exit_dir .byte $ff ; east exit_dir
@ -417,12 +339,12 @@ location21:
.byte BG_NORTH | BG_SOUTH .byte BG_NORTH | BG_SOUTH
.byte $ff ; special exit .byte $ff ; special exit
; spaceship switch ; MIST_SPACESHIP_SWITCH -- spaceship switch
location22: location18:
.byte 38 ; north exit .byte MIST_ROCKET_CLOSE ; north exit
.byte $ff ; south exit .byte $ff ; south exit
.byte $ff ; east exit .byte $ff ; east exit
.byte $ff ; west exit .byte $ff ; west exit
.byte DIRECTION_N ; north exit_dir .byte DIRECTION_N ; north exit_dir
.byte $ff ; south exit_dir .byte $ff ; south exit_dir
.byte $ff ; east exit_dir .byte $ff ; east exit_dir
@ -434,12 +356,12 @@ location22:
.byte BG_NORTH .byte BG_NORTH
.byte $ff ; special exit .byte $ff ; special exit
; tree corridor4 (with generator switch) ; MIST_TREE_CORRIDOR_4 -- tree corridor4 (with generator switch)
location23: location19:
.byte 17 ; north exit .byte MIST_TREE_CORRIDOR_2 ; north exit
.byte 15 ; south exit .byte MIST_CLOCK ; south exit
.byte $ff ; east exit .byte $ff ; east exit
.byte 43 ; west exit .byte MIST_TOWER1_TRAIL ; west exit
.byte DIRECTION_N ; north exit_dir .byte DIRECTION_N ; north exit_dir
.byte DIRECTION_S ; south exit_dir .byte DIRECTION_S ; south exit_dir
.byte $ff ; east exit_dir .byte $ff ; east exit_dir
@ -454,12 +376,12 @@ location23:
.byte 0,46 ; special y .byte 0,46 ; special y
.word green_house-1 ; special function .word green_house-1 ; special function
; tree cabin ; MIST_TREE_CABIN -- tree cabin
location24: location20:
.byte $ff ; north exit .byte $ff ; north exit
.byte $ff ; south exit .byte $ff ; south exit
.byte 18 ; east exit .byte MIST_TREE_CORRIDOR_5 ; east exit
.byte $ff ; west exit .byte $ff ; west exit
.byte $ff ; north exit_dir .byte $ff ; north exit_dir
.byte $ff ; south exit_dir .byte $ff ; south exit_dir
.byte DIRECTION_E ; east exit_dir .byte DIRECTION_E ; east exit_dir
@ -471,12 +393,12 @@ location24:
.byte BG_EAST .byte BG_EAST
.byte $ff ; special exit .byte $ff ; special exit
; clock puzzle ; MIST_CLOCK_PUZZLE -- clock puzzle
location25: location21:
.byte $ff ; north exit .byte $ff ; north exit
.byte 18 ; south exit .byte MIST_TREE_CORRIDOR_5 ; south exit
.byte $ff ; east exit .byte $ff ; east exit
.byte $ff ; west exit .byte $ff ; west exit
.byte $ff ; north exit_dir .byte $ff ; north exit_dir
.byte DIRECTION_N ; south exit_dir .byte DIRECTION_N ; south exit_dir
.byte $ff ; east exit_dir .byte $ff ; east exit_dir
@ -491,10 +413,10 @@ location25:
.byte 38,48 ; special y .byte 38,48 ; special y
.word clock_puzzle-1 ; special function .word clock_puzzle-1 ; special function
; clock island ; MIST_CLOCK_ISLAND -- clock island
location26: location22:
.byte 18 ; north exit .byte MIST_TREE_CORRIDOR_5 ; north exit
.byte 27 ; south exit .byte MIST_CLOCK_INSIDE ; south exit
.byte $ff ; east exit .byte $ff ; east exit
.byte $ff ; west exit .byte $ff ; west exit
.byte DIRECTION_N ; north exit_dir .byte DIRECTION_N ; north exit_dir
@ -508,12 +430,12 @@ location26:
.byte BG_SOUTH|BG_NORTH .byte BG_SOUTH|BG_NORTH
.byte $ff ; special exit .byte $ff ; special exit
; clock inside ; MYST_CLOCK_INSIDE -- clock inside
location27: location23:
.byte $ff ; north exit .byte $ff ; north exit
.byte 26 ; south exit .byte MIST_CLOCK_ISLAND ; south exit
.byte $ff ; east exit .byte $ff ; east exit
.byte $ff ; west exit .byte $ff ; west exit
.byte $ff ; north exit_dir .byte $ff ; north exit_dir
.byte DIRECTION_N ; south exit_dir .byte DIRECTION_N ; south exit_dir
.byte $ff ; east exit_dir .byte $ff ; east exit_dir
@ -528,45 +450,12 @@ location27:
.byte 8,32 ; special y .byte 8,32 ; special y
.word clock_inside_puzzle-1 ; special function .word clock_inside_puzzle-1 ; special function
; fireplace
location28:
.byte $ff ; north exit
.byte $ff ; south exit
.byte 29 ; east exit
.byte $ff ; west exit
.byte $ff ; north exit_dir
.byte $ff ; south exit_dir
.byte DIRECTION_W ; east exit_dir
.byte $ff ; west exit_dir
.word $0000 ; north bg
.word $0000 ; south bg
.word fireplace_e_lzsa ; east bg
.word $0000 ; west bg
.byte BG_EAST
.byte $ff ; special exit
; in fireplace ; MIST_OPEN_GEAR -- open_gear (?)
location29: location24:
.byte $ff ; north exit .byte $ff ; north exit
.byte $ff ; south exit .byte $ff ; south exit
.byte $ff ; east exit .byte MIST_GEAR ; east exit
.byte 12 ; 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 in_fireplace_w_lzsa ; west bg
.byte BG_WEST ; west
.byte $ff ; special exit
; open_gear
location30:
.byte $ff ; north exit
.byte $ff ; south exit
.byte 19 ; east exit
.byte $ff ; west exit .byte $ff ; west exit
.byte $ff ; north exit_dir .byte $ff ; north exit_dir
.byte $ff ; south exit_dir .byte $ff ; south exit_dir
@ -582,12 +471,12 @@ location30:
.byte 14,24 ; special y .byte 14,24 ; special y
.word go_to_meche-1 ; special function .word go_to_meche-1 ; special function
; chair view ; MIST_CHAIR_VIEW -- chair view
location31: location25:
.byte 31 ; north exit .byte MIST_CHAIR_VIEW ; north exit
.byte 21 ; south exit .byte MIST_DENTIST_DOOR ; south exit
.byte $ff ; east exit .byte $ff ; east exit
.byte $ff ; west exit .byte $ff ; west exit
.byte DIRECTION_S ; north exit_dir .byte DIRECTION_S ; north exit_dir
.byte DIRECTION_S ; south exit_dir .byte DIRECTION_S ; south exit_dir
.byte $ff ; east exit_dir .byte $ff ; east exit_dir
@ -599,12 +488,12 @@ location31:
.byte BG_NORTH | BG_SOUTH .byte BG_NORTH | BG_SOUTH
.byte $ff ; TODO: lightswitch .byte $ff ; TODO: lightswitch
; green shack ; MIST_GREEN_SHACK
location32: location26:
.byte $ff ; north exit .byte $ff ; north exit
.byte $ff ; south exit .byte $ff ; south exit
.byte 23 ; east exit .byte MIST_TREE_CORRIDOR_4 ; east exit
.byte 33 ; west exit .byte MIST_GREEN_STEPS1 ; west exit
.byte $ff ; north exit_dir .byte $ff ; north exit_dir
.byte $ff ; south exit_dir .byte $ff ; south exit_dir
.byte DIRECTION_E ; east exit_dir .byte DIRECTION_E ; east exit_dir
@ -616,12 +505,12 @@ location32:
.byte BG_EAST | BG_WEST .byte BG_EAST | BG_WEST
.byte $ff .byte $ff
; green shack steps 1 ; MIST_GREEN_STEPS1 -- green shack steps 1
location33: location27:
.byte 34 ; north exit .byte MIST_GREEN_STEPS6 ; north exit
.byte 32 ; south exit .byte MIST_GREEN_SHACK ; south exit
.byte $ff ; east exit .byte $ff ; east exit
.byte $ff ; west exit .byte $ff ; west exit
.byte DIRECTION_N ; north exit_dir .byte DIRECTION_N ; north exit_dir
.byte DIRECTION_E ; south exit_dir .byte DIRECTION_E ; south exit_dir
.byte $ff ; east exit_dir .byte $ff ; east exit_dir
@ -633,12 +522,12 @@ location33:
.byte BG_NORTH | BG_SOUTH .byte BG_NORTH | BG_SOUTH
.byte $ff .byte $ff
; green shack steps 6 ; MIST_GREEN_STEPS6 -- green shack steps 6
location34: location28:
.byte 35 ; north exit .byte MIST_GENERATOR_DOOR ; north exit
.byte $ff ; south exit .byte $ff ; south exit
.byte $ff ; east exit .byte $ff ; east exit
.byte 33 ; west exit .byte MIST_GREEN_STEPS1 ; west exit
.byte DIRECTION_N ; north exit_dir .byte DIRECTION_N ; north exit_dir
.byte $ff ; south exit_dir .byte $ff ; south exit_dir
.byte $ff ; east exit_dir .byte $ff ; east exit_dir
@ -650,12 +539,12 @@ location34:
.byte BG_NORTH | BG_WEST .byte BG_NORTH | BG_WEST
.byte $ff .byte $ff
; generator room door ; MIST_GENERATOR_DOOR -- generator room door
location35: location29:
.byte 35 ; north exit .byte MIST_GENERATOR_DOOR ; north exit
.byte 34 ; south exit .byte MIST_GREEN_STEPS6 ; south exit
.byte $ff ; east exit .byte $ff ; east exit
.byte $ff ; west exit .byte $ff ; west exit
.byte DIRECTION_S ; north exit_dir .byte DIRECTION_S ; north exit_dir
.byte DIRECTION_W ; south exit_dir .byte DIRECTION_W ; south exit_dir
.byte $ff ; east exit_dir .byte $ff ; east exit_dir
@ -671,10 +560,10 @@ location35:
.word open_gen_door-1 ; special function .word open_gen_door-1 ; special function
; generator room ; MIST_GENERATOR_ROOM -- generator room
location36: location30:
.byte 36 ; north exit .byte MIST_GENERATOR_ROOM ; north exit
.byte 35 ; south exit .byte MIST_GENERATOR_DOOR ; south exit
.byte $ff ; east exit .byte $ff ; east exit
.byte $ff ; west exit .byte $ff ; west exit
.byte DIRECTION_S ; north exit_dir .byte DIRECTION_S ; north exit_dir
@ -691,12 +580,12 @@ location36:
.byte 34,40 ; special y .byte 34,40 ; special y
.word generator_button_press-1 ; special function .word generator_button_press-1 ; special function
; pad on way to rocket ; MIST_ROCKET_PATH_PAD -- pad on way to rocket
location37: location31:
.byte 16 ; north exit .byte MIST_SPACESHIP_FAR ; north exit
.byte $ff ; south exit .byte $ff ; south exit
.byte 10 ; east exit .byte MIST_OUTSIDE_TEMPLE ; east exit
.byte $ff ; west exit .byte $ff ; west exit
.byte DIRECTION_N ; north exit_dir .byte DIRECTION_N ; north exit_dir
.byte $ff ; south exit_dir .byte $ff ; south exit_dir
.byte DIRECTION_E ; east exit_dir .byte DIRECTION_E ; east exit_dir
@ -711,12 +600,12 @@ location37:
.byte 0,48 ; special y .byte 0,48 ; special y
.word pad_special-1 ; special function .word pad_special-1 ; special function
; rocket close in ; MIST_ROCKET_CLOSE -- rocket close in
location38: location32:
.byte 16 ; north exit .byte MIST_SPACESHIP_FAR ; north exit
.byte $ff ; south exit .byte $ff ; south exit
.byte $ff ; east exit .byte $ff ; east exit
.byte $ff ; west exit .byte $ff ; west exit
.byte DIRECTION_E ; north exit_dir .byte DIRECTION_E ; north exit_dir
.byte $ff ; south exit_dir .byte $ff ; south exit_dir
.byte $ff ; east exit_dir .byte $ff ; east exit_dir
@ -731,29 +620,13 @@ location38:
.byte 8,46 ; special y .byte 8,46 ; special y
.word open_ss_door-1 ; special function .word open_ss_door-1 ; special function
; ceiling of temple
location39:
.byte 12 ; 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 temple_center_up_lzsa ; north bg
.word $0000 ; south bg
.word $0000 ; east bg
.word $0000 ; west bg
.byte BG_NORTH
.byte $ff
; tower2 path ; MIST_TOWER2_PATH -- tower2 path
location40: location33:
.byte 41 ; north exit .byte MIST_TOWER2_BASE ; north exit
.byte $ff ; south exit .byte $ff ; south exit
.byte 37 ; east exit .byte MIST_ROCKET_PATH_PAD ; east exit
.byte $ff ; west exit .byte $ff ; west exit
.byte DIRECTION_W|DIRECTION_ONLY_POINT ; north exit_dir .byte DIRECTION_W|DIRECTION_ONLY_POINT ; north exit_dir
.byte $ff ; south exit_dir .byte $ff ; south exit_dir
.byte DIRECTION_E ; east exit_dir .byte DIRECTION_E ; east exit_dir
@ -765,12 +638,12 @@ location40:
.byte BG_NORTH|BG_EAST .byte BG_NORTH|BG_EAST
.byte $ff .byte $ff
; tower2 base ; MIST_TOWER2_BASE -- tower2 base
location41: location34:
.byte $ff ; north exit .byte $ff ; north exit
.byte $ff ; south exit .byte $ff ; south exit
.byte $ff ; east exit .byte $ff ; east exit
.byte 40 ; west exit .byte MIST_TOWER2_PATH ; west exit
.byte $ff ; north exit_dir .byte $ff ; north exit_dir
.byte $ff ; south exit_dir .byte $ff ; south exit_dir
.byte $ff ; east exit_dir .byte $ff ; east exit_dir
@ -785,12 +658,12 @@ location41:
.byte 0,46 ; special y .byte 0,46 ; special y
.word leave_tower2-1 ; special function .word leave_tower2-1 ; special function
; tower2 top ; MIST_TOWER2_TOP -- tower2 top
location42: location35:
.byte $ff ; north exit .byte $ff ; north exit
.byte $ff ; south exit .byte $ff ; south exit
.byte $ff ; east exit .byte $ff ; east exit
.byte 41 ; west exit .byte MIST_TOWER2_BASE ; west exit
.byte $ff ; north exit_dir .byte $ff ; north exit_dir
.byte $ff ; south exit_dir .byte $ff ; south exit_dir
.byte $ff ; east exit_dir .byte $ff ; east exit_dir
@ -805,12 +678,12 @@ location42:
.byte 10,18 ; special y .byte 10,18 ; special y
.word circuit_breaker-1 ; special function .word circuit_breaker-1 ; special function
; tower1 trail ; MIST_TOWER1_TRAIL -- tower1 trail
location43: location36:
.byte $ff ; north exit .byte $ff ; north exit
.byte $ff ; south exit .byte $ff ; south exit
.byte 23 ; east exit .byte MIST_TREE_CORRIDOR_4 ; east exit
.byte 44 ; west exit .byte MIST_TOWER1_TRAIL2 ; west exit
.byte $ff ; north exit_dir .byte $ff ; north exit_dir
.byte $ff ; south exit_dir .byte $ff ; south exit_dir
.byte DIRECTION_E ; east exit_dir .byte DIRECTION_E ; east exit_dir
@ -822,12 +695,12 @@ location43:
.byte BG_WEST|BG_EAST .byte BG_WEST|BG_EAST
.byte $ff .byte $ff
; tower1 trail2 ; MIST_TOWER1_TRAIL2 -- tower1 trail2
location44: location37:
.byte 45 ; north exit .byte MIST_TOWER1_BOTTOM ; north exit
.byte 43 ; south exit .byte MIST_TOWER1_TRAIL ; south exit
.byte $ff ; east exit .byte $ff ; east exit
.byte $ff ; west exit .byte $ff ; west exit
.byte DIRECTION_E|DIRECTION_ONLY_POINT ; north exit_dir .byte DIRECTION_E|DIRECTION_ONLY_POINT ; north exit_dir
.byte DIRECTION_E ; south exit_dir .byte DIRECTION_E ; south exit_dir
.byte $ff ; east exit_dir .byte $ff ; east exit_dir
@ -839,12 +712,12 @@ location44:
.byte BG_NORTH|BG_SOUTH|BG_WEST .byte BG_NORTH|BG_SOUTH|BG_WEST
.byte $ff .byte $ff
; tower1 bottom ; MIST_TOWER1_BOTTOM -- tower1 bottom
location45: location38:
.byte $ff ; north exit .byte $ff ; north exit
.byte $ff ; south exit .byte $ff ; south exit
.byte 44 ; east exit .byte MIST_TOWER1_TRAIL2 ; east exit
.byte $ff ; west exit .byte $ff ; west exit
.byte $ff ; north exit_dir .byte $ff ; north exit_dir
.byte $ff ; south exit_dir .byte $ff ; south exit_dir
.byte DIRECTION_N ; east exit_dir .byte DIRECTION_N ; east exit_dir
@ -860,12 +733,12 @@ location45:
.word leave_tower1-1 ; special function .word leave_tower1-1 ; special function
; tower1 top ; MIST_TOWER1_TOP -- tower1 top
location46: location39:
.byte $ff ; north exit .byte $ff ; north exit
.byte $ff ; south exit .byte $ff ; south exit
.byte 45 ; east exit .byte MIST_TOWER1_BOTTOM ; east exit
.byte $ff ; west exit .byte $ff ; west exit
.byte $ff ; north exit_dir .byte $ff ; north exit_dir
.byte $ff ; south exit_dir .byte $ff ; south exit_dir
.byte DIRECTION_E|DIRECTION_ONLY_POINT ; east exit_dir .byte DIRECTION_E|DIRECTION_ONLY_POINT ; east exit_dir
@ -880,4 +753,3 @@ location46:
.byte 10,18 ; special y .byte 10,18 ; special y
.word circuit_breaker-1 ; special function .word circuit_breaker-1 ; special function

115
mist/leveldata_octagon.inc Normal file
View File

@ -0,0 +1,115 @@
;===============================================
; level data for the Octagon Temple on Mist
;===============================================
locations:
.word location0, location1, location2, location3
.word location4, location5
; OCTAGON_TEMPLE_DOORWAY -- temple doorway
location0:
.byte OCTAGON_TEMPLE_CENTER ; north exit
; .byte 9 ; south 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 temple_door_n_lzsa ; north bg
.word temple_door_s_lzsa ; south bg
.word $0000 ; east bg
.word $0000 ; west bg
.byte BG_NORTH|BG_SOUTH ; north and south
.byte $ff ; special exit
; OCTAGON_TEMPLE_CENTER -- temple inside
location1:
.byte $ff ; north exit
.byte OCTAGON_TEMPLE_DOORWAY ; south exit
.byte OCTAGON_FIREPLACE ; east exit
.byte OCTAGON_RED_BOOKSHELF ; west exit
.byte $ff ; north exit_dir
.byte DIRECTION_S ; south exit_dir
.byte DIRECTION_E ; east exit_dir
.byte DIRECTION_W ; west exit_dir
.word temple_center_n_lzsa ; north bg
.word temple_center_s_lzsa ; south bg
.word temple_center_e_lzsa ; east bg
.word temple_center_w_lzsa ; west bg
.byte BG_NORTH|BG_WEST|BG_SOUTH|BG_EAST ; all directions
.byte $ff ; special exit
; OCTAGON_RED_BOOK_SHELF -- red book shelf
location2:
.byte $ff ; north exit
.byte $ff ; south exit
.byte $ff ; east exit
.byte OCTAGON_TEMPLE_CENTER ; 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 red_book_shelf_lzsa ; west bg
.byte BG_WEST ; west
.byte DIRECTION_N ; special exit
.byte 16,25 ; special x
.byte 16,32 ; special y
.word red_book-1 ; special function
; OCTAGON_FIREPLACE -- fireplace
location3:
.byte $ff ; north exit
.byte $ff ; south exit
.byte OCTAGON_IN_FIREPLACE ; east exit
.byte $ff ; west exit
.byte $ff ; north exit_dir
.byte $ff ; south exit_dir
.byte DIRECTION_W ; east exit_dir
.byte $ff ; west exit_dir
.word $0000 ; north bg
.word $0000 ; south bg
.word fireplace_e_lzsa ; east bg
.word $0000 ; west bg
.byte BG_EAST
.byte $ff ; special exit
; OCTAGON_IN_FIREPLACE -- in fireplace
location4:
.byte $ff ; north exit
.byte $ff ; south exit
.byte $ff ; east exit
.byte OCTAGON_TEMPLE_CENTER ; 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 in_fireplace_w_lzsa ; west bg
.byte BG_WEST ; west
.byte $ff ; special exit
; OCTAGON_CEILING -- ceiling of temple
location5:
.byte OCTAGON_TEMPLE_CENTER ; 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 temple_center_up_lzsa ; north bg
.word $0000 ; south bg
.word $0000 ; east bg
.word $0000 ; west bg
.byte BG_NORTH
.byte $ff

View File

@ -8,12 +8,12 @@ locations:
.word location4, location5, location6, location7 .word location4, location5, location6, location7
.word location8, location9, location10 .word location8, location9, location10
; Inside Ship ; SELENA_INSIDE_SHIP -- Inside Ship
location0: location0:
.byte $ff ; north exit .byte $ff ; north exit
.byte $ff ; south exit .byte $ff ; south exit
.byte 1 ; east exit .byte SELENA_CONTROLS ; east exit
.byte 2 ; west exit .byte SELENA_ELECTRIC_ORGAN ; west exit
.byte $ff ; north exit_dir .byte $ff ; north exit_dir
.byte $ff ; south exit_dir .byte $ff ; south exit_dir
.byte (DIRECTION_E|DIRECTION_ONLY_POINT) ; east exit_dir .byte (DIRECTION_E|DIRECTION_ONLY_POINT) ; east exit_dir
@ -28,12 +28,12 @@ location0:
.byte 2,46 ; special y .byte 2,46 ; special y
.word back_to_mist-1 ; special function .word back_to_mist-1 ; special function
; controls ; SELENA_CONTROLS -- controls
location1: location1:
.byte $ff ; north exit .byte $ff ; north exit
.byte $ff ; south exit .byte $ff ; south exit
.byte 0 ; east exit .byte SELENA_INSIDE_SHIP ; east exit
.byte $ff ; west exit .byte $ff ; west exit
.byte $ff ; north exit_dir .byte $ff ; north exit_dir
.byte $ff ; south exit_dir .byte $ff ; south exit_dir
.byte DIRECTION_E ; east exit_dir .byte DIRECTION_E ; east exit_dir
@ -49,12 +49,12 @@ location1:
.word controls_pressed-1 ; special function .word controls_pressed-1 ; special function
; electric organ ; SELENA_ELECTRIC_ORGAN -- electric organ
location2: location2:
.byte $ff ; north exit .byte $ff ; north exit
.byte $ff ; south exit .byte $ff ; south exit
.byte $ff ; east exit .byte $ff ; east exit
.byte 0 ; west exit .byte SELENA_INSIDE_SHIP ; west exit
.byte $ff ; north exit_dir .byte $ff ; north exit_dir
.byte $ff ; south exit_dir .byte $ff ; south exit_dir
.byte $ff ; east exit_dir .byte $ff ; east exit_dir
@ -70,12 +70,12 @@ location2:
.word organ_pressed-1 ; special function .word organ_pressed-1 ; special function
; walkway1 ; SELENA_WALKWAY1 -- walkway1
location3: location3:
.byte 5 ; north exit .byte SELENA_WALKWAY4 ; north exit
.byte 4 ; south exit .byte SELENA_SPACESHIP_DOOR ; south exit
.byte $ff ; east exit .byte $ff ; east exit
.byte $ff ; west exit .byte $ff ; west exit
.byte DIRECTION_N ; north exit_dir .byte DIRECTION_N ; north exit_dir
.byte DIRECTION_S ; south exit_dir .byte DIRECTION_S ; south exit_dir
.byte $ff ; east exit_dir .byte $ff ; east exit_dir
@ -87,12 +87,12 @@ location3:
.byte BG_NORTH .byte BG_NORTH
.byte $ff .byte $ff
; spaceship door ; SELENA_SPACESHIP_DOOR -- spaceship door
location4: location4:
.byte $ff ; north exit .byte $ff ; north exit
.byte 3 ; south exit .byte SELENA_WALKWAY1 ; south exit
.byte $ff ; east exit .byte $ff ; east exit
.byte $ff ; west exit .byte $ff ; west exit
.byte $ff ; north exit_dir .byte $ff ; north exit_dir
.byte DIRECTION_N ; south exit_dir .byte DIRECTION_N ; south exit_dir
.byte $ff ; east exit_dir .byte $ff ; east exit_dir
@ -104,12 +104,12 @@ location4:
.byte BG_SOUTH .byte BG_SOUTH
.byte $ff .byte $ff
; walkway4 ; SELENA_WALKWAY4 -- walkway4
location5: location5:
.byte 6 ; north exit .byte SELENA_BUNKER ; north exit
.byte 3 ; south exit .byte SELENA_WALKWAY1 ; south exit
.byte $ff ; east exit .byte $ff ; east exit
.byte $ff ; west exit .byte $ff ; west exit
.byte DIRECTION_N ; north exit_dir .byte DIRECTION_N ; north exit_dir
.byte DIRECTION_S ; south exit_dir .byte DIRECTION_S ; south exit_dir
.byte $ff ; east exit_dir .byte $ff ; east exit_dir
@ -121,12 +121,12 @@ location5:
.byte BG_NORTH|BG_SOUTH .byte BG_NORTH|BG_SOUTH
.byte $ff .byte $ff
; bunker ; SELENA_BUNKER -- bunker
location6: location6:
.byte $ff ; north exit .byte $ff ; north exit
.byte 5 ; south exit .byte SELENA_WALKWAY4 ; south exit
.byte 7 ; east exit .byte SELENA_SUB_ROOM ; east exit
.byte $ff ; west exit .byte $ff ; west exit
.byte $ff ; north exit_dir .byte $ff ; north exit_dir
.byte DIRECTION_S ; south exit_dir .byte DIRECTION_S ; south exit_dir
.byte DIRECTION_S ; east exit_dir .byte DIRECTION_S ; east exit_dir
@ -138,12 +138,12 @@ location6:
.byte BG_NORTH|BG_SOUTH|BG_EAST .byte BG_NORTH|BG_SOUTH|BG_EAST
.byte $ff .byte $ff
; sub room ; SELENA_SUB_ROOM -- sub room
location7: location7:
.byte $ff ; north exit .byte $ff ; north exit
.byte 8 ; south exit .byte SELENA_BOOK_ROOM ; south exit
.byte $ff ; east exit .byte $ff ; east exit
.byte $ff ; west exit .byte $ff ; west exit
.byte $ff ; north exit_dir .byte $ff ; north exit_dir
.byte DIRECTION_S ; south exit_dir .byte DIRECTION_S ; south exit_dir
.byte $ff ; east exit_dir .byte $ff ; east exit_dir
@ -155,12 +155,12 @@ location7:
.byte BG_SOUTH .byte BG_SOUTH
.byte $ff .byte $ff
; book room ; SELENA_BOOK_ROOM -- book room
location8: location8:
.byte $ff ; north exit .byte $ff ; north exit
.byte 9 ; south exit .byte SELENA_BOOK_CLOSED ; south exit
.byte $ff ; east exit .byte $ff ; east exit
.byte $ff ; west exit .byte $ff ; west exit
.byte $ff ; north exit_dir .byte $ff ; north exit_dir
.byte DIRECTION_S ; south exit_dir .byte DIRECTION_S ; south exit_dir
.byte $ff ; east exit_dir .byte $ff ; east exit_dir
@ -172,12 +172,12 @@ location8:
.byte BG_SOUTH .byte BG_SOUTH
.byte $ff .byte $ff
; book ; SELENA_BOOK_CLOSED -- book
location9: location9:
.byte $ff ; north exit .byte $ff ; north exit
.byte 10 ; south exit .byte SELENA_BOOK_OPEN ; south exit
.byte $ff ; east exit .byte $ff ; east exit
.byte $ff ; west exit .byte $ff ; west exit
.byte $ff ; north exit_dir .byte $ff ; north exit_dir
.byte DIRECTION_S ; south exit_dir .byte DIRECTION_S ; south exit_dir
.byte $ff ; east exit_dir .byte $ff ; east exit_dir
@ -189,12 +189,12 @@ location9:
.byte BG_SOUTH .byte BG_SOUTH
.byte $ff .byte $ff
; mist book open ; SELENA_BOOK_OPEN -- mist book open
location10: location10:
.byte $ff ; north exit .byte $ff ; north exit
.byte 8 ; south exit .byte SELENA_BOOK_ROOM ; south exit
.byte $ff ; east exit .byte $ff ; east exit
.byte $ff ; west exit .byte $ff ; west exit
.byte $ff ; north exit_dir .byte $ff ; north exit_dir
.byte DIRECTION_S ; south exit_dir .byte DIRECTION_S ; south exit_dir
.byte $ff ; east exit_dir .byte $ff ; east exit_dir

View File

@ -33,7 +33,7 @@ meche_link_book:
ldx #LINKING_NOISE_LENGTH ; 45 pages long??? ldx #LINKING_NOISE_LENGTH ; 45 pages long???
jsr play_audio jsr play_audio
lda #3 lda #MECHE_ARRIVAL
sta LOCATION sta LOCATION
lda #DIRECTION_W lda #DIRECTION_W
sta DIRECTION sta DIRECTION

View File

@ -22,12 +22,12 @@ mist_link_book:
ldx #LINKING_NOISE_LENGTH ; 45 pages long??? ldx #LINKING_NOISE_LENGTH ; 45 pages long???
jsr play_audio jsr play_audio
lda #39 lda #OCTAGON_CEILING
sta LOCATION sta LOCATION
lda #DIRECTION_N lda #DIRECTION_N
sta DIRECTION sta DIRECTION
lda #LOAD_MIST ; return to MIST lda #LOAD_OCTAGON ; return to OCTAGON on MIST
sta WHICH_LOAD sta WHICH_LOAD
lda #$ff lda #$ff

View File

@ -23,7 +23,7 @@ mist_link_book:
ldx #LINKING_NOISE_LENGTH ; 45 pages long??? ldx #LINKING_NOISE_LENGTH ; 45 pages long???
jsr play_audio jsr play_audio
lda #1 lda #MIST_ARRIVAL_DOCK
sta LOCATION sta LOCATION
lda #LOAD_MIST ; start at Mist lda #LOAD_MIST ; start at Mist

View File

@ -145,7 +145,7 @@ copy_filename_done:
filenames: filenames:
.word intro_filename .word intro_filename
.word mist_filename,meche_filename,selena_filename .word mist_filename,meche_filename,selena_filename,octagon_filename
.word ending_filename .word ending_filename
intro_filename: intro_filename:
@ -156,6 +156,8 @@ meche_filename:
.byte "MECHE",0 .byte "MECHE",0
selena_filename: selena_filename:
.byte "SELENA",0 .byte "SELENA",0
octagon_filename:
.byte "OCTAGON",0
ending_filename: ending_filename:
.byte "ENDING",0 .byte "ENDING",0

View File

@ -29,23 +29,6 @@ meche_start:
sta CURSOR_X sta CURSOR_X
sta CURSOR_Y sta CURSOR_Y
;=================
; init vars
; FIXME: we could be re-called from other books
; so don't set location here
lda #0
sta LOCATION
lda #DIRECTION_E
sta DIRECTION
lda LOCATION
bne not_first_time
not_first_time:
; set up initial location ; set up initial location
jsr change_location jsr change_location
@ -78,7 +61,7 @@ game_loop:
;==================================== ;====================================
lda LOCATION lda LOCATION
cmp #2 cmp #MECHE_OPEN_BOOK
bne nothing_special bne nothing_special
; handle animated linking book ; handle animated linking book

View File

@ -33,7 +33,7 @@ mist_start:
sta CURSOR_Y sta CURSOR_Y
lda LOCATION lda LOCATION
cmp #1 ; FIXME cmp #MIST_ARRIVAL_DOCK
bne not_first_time bne not_first_time
; first time init ; first time init
@ -111,9 +111,9 @@ not_gear_related:
; handle clock puzzles ; handle clock puzzles
lda LOCATION lda LOCATION
cmp #25 ; clock puzzle cmp #MIST_CLOCK_PUZZLE ; clock puzzle
beq location_clock beq location_clock
cmp #27 cmp #MIST_CLOCK_INSIDE
beq location_inside_clock beq location_inside_clock
bne location_generator bne location_generator
@ -126,7 +126,7 @@ location_inside_clock:
; handle generator puzzle ; handle generator puzzle
location_generator: location_generator:
cmp #36 cmp #MIST_GENERATOR_ROOM
bne nothing_special bne nothing_special
lda DIRECTION lda DIRECTION
and #$f and #$f
@ -192,14 +192,14 @@ go_to_meche:
pad_special: pad_special:
lda #40 lda #MIST_TOWER2_PATH
sta LOCATION sta LOCATION
jsr change_location jsr change_location
rts rts
leave_tower2: leave_tower2:
lda #42 lda #MIST_TOWER2_TOP
sta LOCATION sta LOCATION
lda #DIRECTION_W lda #DIRECTION_W
@ -210,7 +210,7 @@ leave_tower2:
rts rts
leave_tower1: leave_tower1:
lda #46 lda #MIST_TOWER1_TOP
sta LOCATION sta LOCATION
lda #DIRECTION_E lda #DIRECTION_E
@ -225,7 +225,7 @@ green_house:
; FIXME: handle switch separately ; FIXME: handle switch separately
lda #32 lda #MIST_GREEN_SHACK
sta LOCATION sta LOCATION
jsr change_location jsr change_location
@ -258,7 +258,6 @@ green_house:
.include "clock_bridge_puzzle.s" .include "clock_bridge_puzzle.s"
.include "marker_switch.s" .include "marker_switch.s"
.include "brother_books.s"
.include "generator_puzzle.s" .include "generator_puzzle.s"
; linking books ; linking books

View File

@ -70,10 +70,6 @@ done_keyloop:
bit KEYRESET bit KEYRESET
lda #0
sta LOCATION ; start at first room
lda #LOAD_MIST ; load mist
sta WHICH_LOAD
;=================== ;===================
@ -97,12 +93,19 @@ done_keyloop:
sta CURSOR_Y sta CURSOR_Y
lda #0 lda #0
sta LOCATION
sta LEVEL_OVER sta LEVEL_OVER
; set up initial location
lda #TITLE_MIST_LINKING_DOCK
sta LOCATION ; start at first room
lda #DIRECTION_N lda #DIRECTION_N
sta DIRECTION sta DIRECTION
; set up initial location lda #LOAD_MIST ; load mist
sta WHICH_LOAD
jsr change_location jsr change_location
@ -133,39 +136,9 @@ game_loop:
; handle special-case forground logic ; handle special-case forground logic
;==================================== ;====================================
lda LOCATION
cmp #2
bne nothing_special
; handle animated linking book ; handle animated linking book
; lda ANIMATE_FRAME ; note: the linking book to the dock doesn't have much action
; asl
; tay
; lda meche_movie,Y
; sta INL
; lda meche_movie+1,Y
; sta INH
; lda #22
; sta XPOS
; lda #12
; sta YPOS
; jsr put_sprite_crop
; lda FRAMEL
; and #$f
; bne done_animate_book
; inc ANIMATE_FRAME
; lda ANIMATE_FRAME
; cmp #11
; bne done_animate_book
; lda #0
; sta ANIMATE_FRAME
;done_animate_book:
nothing_special: nothing_special:

142
mist/octagon.s Normal file
View File

@ -0,0 +1,142 @@
; Octagon -- inside the Octagon Temple
; by deater (Vince Weaver) <vince@deater.net>
; Zero Page
.include "zp.inc"
.include "hardware.inc"
.include "common_defines.inc"
octagon_start:
;===================
; init screen
jsr TEXT
jsr HOME
bit KEYRESET
bit SET_GR
bit PAGE0
bit LORES
bit FULLGR
lda #0
sta DRAW_PAGE
sta LEVEL_OVER
; init cursor
lda #20
sta CURSOR_X
sta CURSOR_Y
; set up initial location
jsr change_location
lda #1
sta CURSOR_VISIBLE ; visible at first
game_loop:
;=================
; reset things
;=================
lda #0
sta IN_SPECIAL
sta IN_RIGHT
sta IN_LEFT
;====================================
; copy background to current page
;====================================
jsr gr_copy_to_current
;====================================
; handle special-case forground logic
;====================================
nothing_special:
;====================================
; draw pointer
;====================================
jsr draw_pointer
;====================================
; page flip
;====================================
jsr page_flip
;====================================
; handle keypress/joystick
;====================================
jsr handle_keypress
;====================================
; inc frame count
;====================================
inc FRAMEL
bne room_frame_no_oflo
inc FRAMEH
room_frame_no_oflo:
;====================================
; check level over
;====================================
lda LEVEL_OVER
bne really_exit
jmp game_loop
really_exit:
jmp end_level
;==========================
; includes
;==========================
.include "gr_copy.s"
.include "gr_offsets.s"
.include "gr_pageflip.s"
.include "gr_putsprite_crop.s"
.include "text_print.s"
.include "gr_fast_clear.s"
.include "decompress_fast_v2.s"
.include "keyboard.s"
.include "draw_pointer.s"
.include "audio.s"
.include "graphics_octagon/octagon_graphics.inc"
.include "end_level.s"
; puzzles
.include "brother_books.s"
; linking books
; letters
.include "common_sprites.inc"
.include "leveldata_octagon.inc"
;.align $100
;audio_red_page:
;.incbin "audio/red_page.btc"

View File

@ -33,7 +33,7 @@ dome_press_second:
; re-route door to selena ; re-route door to selena
ldy #LOCATION_NORTH_EXIT ldy #LOCATION_NORTH_EXIT
lda #3 lda #SELENA_WALKWAY1
sta location0,Y sta location0,Y
ldy #LOCATION_NORTH_EXIT_DIR ldy #LOCATION_NORTH_EXIT_DIR
lda #DIRECTION_N lda #DIRECTION_N

View File

@ -53,20 +53,15 @@ selena_start:
lda #DIRECTION_N lda #DIRECTION_N
sta location0,Y ; enable mist exit sta location0,Y ; enable mist exit
lda #0 lda #SELENA_INSIDE_SHIP
sta LOCATION sta LOCATION
lda #0
sta LEVEL_OVER sta LEVEL_OVER
lda #DIRECTION_E lda #DIRECTION_E
sta DIRECTION sta DIRECTION
lda LOCATION
bne not_first_time
not_first_time:
; set up initial location ; set up initial location
jsr change_location jsr change_location
@ -99,9 +94,9 @@ game_loop:
;==================================== ;====================================
lda LOCATION lda LOCATION
cmp #1 cmp #SELENA_CONTROLS
beq controls_animation beq controls_animation
cmp #10 cmp #SELENA_BOOK_OPEN
beq mist_book_animation beq mist_book_animation
jmp nothing_special jmp nothing_special
@ -241,7 +236,7 @@ back_to_mist:
lda #$ff lda #$ff
sta LEVEL_OVER sta LEVEL_OVER
lda #16 ; pathway outside rocket lda #MIST_SPACESHIP_FAR ; pathway outside rocket
sta LOCATION sta LOCATION
lda #DIRECTION_E lda #DIRECTION_E
sta DIRECTION sta DIRECTION

View File

@ -4,11 +4,6 @@
NIBCOUNT = $00 NIBCOUNT = $00
WHICH_LOAD = $05 WHICH_LOAD = $05
LOAD_TITLE = $0
LOAD_MIST = $1
LOAD_MECHE = $2
LOAD_SELENA = $3
;; Zero page monitor routines addresses ;; Zero page monitor routines addresses
WNDLFT = $20 WNDLFT = $20