From 5e3f1e1d3a08bb203817e6c7e8a3732f8dd971a1 Mon Sep 17 00:00:00 2001 From: Vince Weaver Date: Wed, 29 Jul 2020 13:11:53 -0400 Subject: [PATCH] mist: selena: some cleanups as we start working on this age again --- mist/Makefile | 2 +- mist/README | 38 +++++++++++++++++++ mist/TODO | 4 ++ mist/default_save.s | 12 +++++- mist/leveldata_selena.inc | 4 +- mist/mist_puzzles.s | 6 +++ mist/playthrough_save.inc | 12 +++--- mist/selena.s | 35 +++++------------ .../{organ_puzzle.s => selena_organ_puzzle.s} | 7 ++-- 9 files changed, 79 insertions(+), 41 deletions(-) rename mist/{organ_puzzle.s => selena_organ_puzzle.s} (99%) diff --git a/mist/Makefile b/mist/Makefile index 516e95cd..607cbc8c 100644 --- a/mist/Makefile +++ b/mist/Makefile @@ -203,7 +203,7 @@ selena.o: selena.s zp.inc hardware.inc common_defines.inc \ keyboard.s \ draw_pointer.s \ speaker_beeps.s \ - organ_puzzle.s \ + selena_organ_puzzle.s \ gr_copy.s audio.s text_print.s decompress_fast_v2.s ca65 -o selena.o selena.s -l selena.lst diff --git a/mist/README b/mist/README index 4922e964..1fc1f88f 100644 --- a/mist/README +++ b/mist/README @@ -12,3 +12,41 @@ Compiling: utils to compile Then run "make" and hope for the best + + + +Sizes: + sectors on disk = 35*16 = 560 + three tracks for dos -48 + one track for VTOC -16 + ====== + 496 + + disk1: + HELLO 566 -> 768 -> 3 + LOADER 4006 -> 4096 -> 16 + MIST_TITLE 21008 -> 21248 -> 83 + MIST 39780 -> 39936 -> 156 + OCTAGON 32627 -> 32768 -> 128 + VIEWER 4834 -> 4864 -> 19 + DENTIST 7879 -> 7936 -> 31 + D'NI 6863 -> 6912 -> 27 + SAVE0 74 -> 256 -> 1 + SHIP 5047 -> 5120 -> 20 + ======== + 484+10 = 494 = 126k + + disk2: + CHANNEL 34418 -> 34560 -> 135 + ARBOR 31591 -> 31744 -> 124 + NIBEL 15467 -> 15616 -> 61 + CABIN 15398 -> 15616 -> 61 + ======== + 381+4= 385 = 98k + disk3: + MECHE 28857 -> 28928 -> 113 + SELENA 32902 -> 33024 -> 129 + STONEY 29984 -> 30208 -> 118 + GENERATOR 7456 -> 7680 -> 30 + ======== + 390+4=394 = 100k diff --git a/mist/TODO b/mist/TODO index ddc7fc24..93c19186 100644 --- a/mist/TODO +++ b/mist/TODO @@ -7,14 +7,18 @@ For release 1.0 + MIST -- open door to clock puzzle? -- only allow entering ship if it's up + -- maybe another location on dock to ship + OCTAGON -- load "red page" sound into LC and play it? + SELENA + -- maybe another location on dock to ship -- sounds/door puzzle -- load 1s clip of sounds (4k each) into language card? -- have sub background change + -- enable turning on lights + -- flame trench has left/right mixed, left view missing + STONEY -- hook up compass rose diff --git a/mist/default_save.s b/mist/default_save.s index 05692f28..def81b04 100644 --- a/mist/default_save.s +++ b/mist/default_save.s @@ -2,7 +2,7 @@ .include "common_defines.inc" -.if 1 +.if 0 ; if doing playthrough .include "playthrough_save.inc" .endif @@ -37,7 +37,15 @@ .byte OCTAGON_CENTER ; LOCATION = $82 .endif -.if 0 +.if 1 +; Selena +.byte LOAD_SELENA ; WHICH_LOAD = $80 +.byte DIRECTION_N ; DIRECTION = $81 +.byte SELENA_WALKWAY1 ; LOCATION = $82 +.endif + + +.if 1 .byte $00 ; RED_PAGES_TAKEN = $83 .byte $00 ; BLUE_PAGES_TAKEN = $84 .byte $00 ; CLOCK_BRIDGE = $85 diff --git a/mist/leveldata_selena.inc b/mist/leveldata_selena.inc index 875f7c17..2623d61c 100644 --- a/mist/leveldata_selena.inc +++ b/mist/leveldata_selena.inc @@ -527,8 +527,8 @@ location28: .byte DIRECTION_W ; west exit_dir .word $0000 ; north bg .word $0000 ; south bg - .word tunnel_steps_e_lzsa ; east bg - .word tunnel_steps_w_lzsa ; west bg + .word tunnel_steps_w_lzsa ; east bg + .word tunnel_steps_e_lzsa ; west bg .byte BG_EAST|BG_WEST .byte $ff diff --git a/mist/mist_puzzles.s b/mist/mist_puzzles.s index 80b1871f..9300dea3 100644 --- a/mist/mist_puzzles.s +++ b/mist/mist_puzzles.s @@ -551,6 +551,12 @@ 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 diff --git a/mist/playthrough_save.inc b/mist/playthrough_save.inc index eea78619..7746175d 100644 --- a/mist/playthrough_save.inc +++ b/mist/playthrough_save.inc @@ -4,15 +4,15 @@ .byte DIRECTION_S ; DIRECTION = $81 .byte OCTAGON_TEMPLE_CENTER ; LOCATION = $82 -.byte (OCTAGON_PAGE|MECHE_PAGE) +.byte (OCTAGON_PAGE|MECHE_PAGE|CHANNEL_PAGE) ; RED_PAGES_TAKEN = $83 -.byte (OCTAGON_PAGE|MECHE_PAGE) +.byte (OCTAGON_PAGE|MECHE_PAGE|CHANNEL_PAGE) ; BLUE_PAGES_TAKEN = $84 .byte $1 ; CLOCK_BRIDGE = $85 .byte $1 ; GEAR_OPEN = $86 -.byte (MARKER_DOCK|MARKER_GEARS|MARKER_SPACESHIP|MARKER_CLOCK|MARKER_POOL) +.byte (MARKER_DOCK|MARKER_GEARS|MARKER_SPACESHIP|MARKER_CLOCK|MARKER_POOL|MARKER_CABIN) ; MARKER_SWITCHES = $87 .byte $2 ; CLOCK_HOUR = $88 @@ -53,15 +53,15 @@ .byte $00 ; MECHE_LOCK4 = $A8 .byte $00 ; HOLDING_PAGE = $A9 -.byte $2 +.byte $3 ; RED_PAGE_COUNT = $AA -.byte $2 +.byte $3 ; BLUE_PAGE_COUNT = $AB .byte $00 ; VIEWER_CHANNEL = $AC .byte $00 ; VIEWER_LATCHED = $AD -.byte $2 +.byte $4 ; TOWER_ROTATION = $AE .byte $00 ; SHIP_RAISED = $AF ; stoneship diff --git a/mist/selena.s b/mist/selena.s index 9336b72f..b5e37398 100644 --- a/mist/selena.s +++ b/mist/selena.s @@ -32,6 +32,7 @@ selena_start: lda #0 sta DRAW_PAGE + sta LEVEL_OVER ; init cursor @@ -54,33 +55,15 @@ selena_start: ; hook up the special functions ; these might be disabled if we've been here before + ; FIXME: this means we cannot save game inside spaceship on selena ldy #LOCATION_SPECIAL_EXIT - lda #DIRECTION_E - sta location1,Y ; enable controls - lda #DIRECTION_W - sta location2,Y ; enable organ - lda #DIRECTION_N - sta location0,Y ; enable mist exit - - lda #0 - sta LEVEL_OVER - -.if 1 - lda #SELENA_INSIDE_SHIP - sta LOCATION - - lda #DIRECTION_E - sta DIRECTION -.else - - lda #SELENA_WALKWAY1 - sta LOCATION - - lda #DIRECTION_N - sta DIRECTION - -.endif + lda #DIRECTION_E ; enable controls + sta location1,Y ; SELENA_CONTROLS + lda #DIRECTION_W ; enable organ + sta location2,Y ; SELENA_ELECTRIC_ORGAN + lda #DIRECTION_N ; enable mist exit + sta location0,Y ; SELENA_INSIDE_SHIP ; set up initial location @@ -394,7 +377,7 @@ keypad_press: .include "graphics_selena/selena_graphics.inc" ; puzzles - .include "organ_puzzle.s" + .include "selena_organ_puzzle.s" ; linking books diff --git a/mist/organ_puzzle.s b/mist/selena_organ_puzzle.s similarity index 99% rename from mist/organ_puzzle.s rename to mist/selena_organ_puzzle.s index 9359bef0..146a3a62 100644 --- a/mist/organ_puzzle.s +++ b/mist/selena_organ_puzzle.s @@ -2,6 +2,9 @@ ; second time switches us to selenetic, plays sound ; disables organ and display + ; FIXME: cannot save game in ship on selena + ; as selena.s resets puzzle back to myst on entry + dome_pressed: lda ANIMATE_FRAME @@ -73,10 +76,6 @@ dome_press_second: rts -linking_filename: - .byte "LINK_NOISE.BTC",0 - - ;========================== ; o/` Standing in my yard ; where they tore down the garage