From 7c779806694d4f5b5f76023c9048e3d9223d4b6f Mon Sep 17 00:00:00 2001 From: Vince Weaver Date: Tue, 1 Sep 2020 20:47:16 -0400 Subject: [PATCH] mist: update save files --- mist/Makefile | 70 ++++++++++++----- mist/common_defines.inc | 6 ++ mist/common_routines.inc | 48 ++++++------ mist/qload.s | 27 +++++-- mist/{default_save.s => save1.s} | 71 +---------------- mist/save2.s | 99 ++++++++++++++++++++++++ mist/save3.s | 100 ++++++++++++++++++++++++ mist/save4.s | 102 +++++++++++++++++++++++++ mist/{playthrough_save.inc => save5.s} | 4 + 9 files changed, 411 insertions(+), 116 deletions(-) rename mist/{default_save.s => save1.s} (71%) create mode 100644 mist/save2.s create mode 100644 mist/save3.s create mode 100644 mist/save4.s rename mist/{playthrough_save.inc => save5.s} (97%) diff --git a/mist/Makefile b/mist/Makefile index 08d0c2ab..13be552f 100644 --- a/mist/Makefile +++ b/mist/Makefile @@ -45,20 +45,25 @@ zip: mist.dsk mist_side2.dsk mist_side3.dsk mist.dsk: QBOOT QLOAD MIST_TITLE MIST OCTAGON VIEWER \ - DENTIST D\'NI SAVE0 SHIP GENERATOR + DENTIST D\'NI SHIP GENERATOR \ + SAVE1 SAVE2 SAVE3 SAVE4 SAVE5 cp extra_empty.dsk mist.dsk - $(DOS33_RAW) mist.dsk 0 0 QBOOT 0 1 - $(DOS33_RAW) mist.dsk 0 2 QBOOT 1 1 - $(DOS33_RAW) mist.dsk 0 4 QBOOT 2 1 - $(DOS33_RAW) mist.dsk 0 6 SAVE0 0 1 - $(DOS33_RAW) mist.dsk 1 0 QLOAD 0 12 - $(DOS33_RAW) mist.dsk 2 0 MIST_TITLE 0 83 - $(DOS33_RAW) mist.dsk 8 0 MIST 0 159 - $(DOS33_RAW) mist.dsk 18 0 OCTAGON 0 128 - $(DOS33_RAW) mist.dsk 26 0 DENTIST 0 31 - $(DOS33_RAW) mist.dsk 28 0 D\'NI 0 27 - $(DOS33_RAW) mist.dsk 30 0 SHIP 0 20 - $(DOS33_RAW) mist.dsk 31 8 VIEWER 0 19 + $(DOS33_RAW) mist.dsk 0 0 QBOOT 0 1 + $(DOS33_RAW) mist.dsk 0 2 QBOOT 1 1 + $(DOS33_RAW) mist.dsk 0 4 QBOOT 2 1 + $(DOS33_RAW) mist.dsk 0 11 SAVE1 0 1 + $(DOS33_RAW) mist.dsk 0 12 SAVE2 0 1 + $(DOS33_RAW) mist.dsk 0 13 SAVE3 0 1 + $(DOS33_RAW) mist.dsk 0 14 SAVE4 0 1 + $(DOS33_RAW) mist.dsk 0 15 SAVE5 0 1 + $(DOS33_RAW) mist.dsk 1 0 QLOAD 0 13 + $(DOS33_RAW) mist.dsk 2 0 MIST_TITLE 0 83 + $(DOS33_RAW) mist.dsk 8 0 MIST 0 159 + $(DOS33_RAW) mist.dsk 18 0 OCTAGON 0 128 + $(DOS33_RAW) mist.dsk 26 0 DENTIST 0 31 + $(DOS33_RAW) mist.dsk 28 0 D\'NI 0 27 + $(DOS33_RAW) mist.dsk 30 0 SHIP 0 20 + $(DOS33_RAW) mist.dsk 31 8 VIEWER 0 19 $(DOS33_RAW) mist.dsk 32 12 GENERATOR 0 33 @@ -112,12 +117,43 @@ loader.o: loader.s \ ### -SAVE0: default_save.o - ld65 -o SAVE0 default_save.o -C ../linker_scripts/apple2_e00.inc +SAVE1: save1.o + ld65 -o SAVE1 save1.o -C ../linker_scripts/apple2_e00.inc -default_save.o: default_save.s playthrough_save.inc - ca65 -o default_save.o default_save.s -l default_save.lst +save1.o: save1.s + ca65 -o save1.o save1.s -l save1.lst +### + +SAVE2: save2.o + ld65 -o SAVE2 save2.o -C ../linker_scripts/apple2_e00.inc + +save2.o: save2.s + ca65 -o save2.o save2.s -l save2.lst + +### + +SAVE3: save3.o + ld65 -o SAVE3 save3.o -C ../linker_scripts/apple2_e00.inc + +save3.o: save3.s + ca65 -o save3.o save3.s -l save3.lst + +### + +SAVE4: save4.o + ld65 -o SAVE4 save4.o -C ../linker_scripts/apple2_e00.inc + +save4.o: save4.s + ca65 -o save4.o save4.s -l save4.lst + +### + +SAVE5: save5.o + ld65 -o SAVE5 save5.o -C ../linker_scripts/apple2_e00.inc + +save5.o: save5.s + ca65 -o save5.o save5.s -l save5.lst ### diff --git a/mist/common_defines.inc b/mist/common_defines.inc index e7471b2b..24f1c3a7 100644 --- a/mist/common_defines.inc +++ b/mist/common_defines.inc @@ -52,6 +52,12 @@ LOAD_SHIP = 12 LOAD_GENERATOR = 13 LOAD_DNI = 14 LOAD_SUB = 15 +LOAD_TEXT_TITLE = 16 +LOAD_SAVE1 = 17 +LOAD_SAVE2 = 18 +LOAD_SAVE3 = 19 +LOAD_SAVE4 = 20 +LOAD_SAVE5 = 21 ;================================ ; Level definitions diff --git a/mist/common_routines.inc b/mist/common_routines.inc index ac74f493..180e35af 100644 --- a/mist/common_routines.inc +++ b/mist/common_routines.inc @@ -5,50 +5,50 @@ opendir_filename =$120e ; linking_noise.s -play_link_noise =$13e7 +play_link_noise =$140e ; decompress_fast_v2.s -decompress_lzsa2_fast =$1403 -getsrc_smc =$14f9 +decompress_lzsa2_fast =$142a +getsrc_smc =$1520 ; draw_pointer.s -draw_pointer =$1506 +draw_pointer =$152d ; end_level.s -end_level =$1674 +end_level =$169b ; gr_copy.s -gr_copy_to_current =$1696 +gr_copy_to_current =$16bd ; gr_fast_clear.s -clear_bottom =$17bc -clear_all =$17fa -clear_all_color =$181f +clear_bottom =$17e3 +clear_all =$1821 +clear_all_color =$1846 ; gr_offsets.s -gr_offsets =$183d +gr_offsets =$1864 ; gr_page_flip.s -page_flip =$186d +page_flip =$1894 ; gr_putsprite_crop.s -put_sprite_crop =$1887 -psc_smc1 =$18aa -psc_smc2 =$1942 +put_sprite_crop =$18ae +psc_smc1 =$18d1 +psc_smc2 =$1969 ; keyboard.s -handle_keypress =$19c3 -change_direction =$1a87 -change_location =$1ac0 +handle_keypress =$19ea +change_direction =$1aae +change_location =$1ae7 ; text_print.s -move_and_print =$1b58 -ps_smc1 =$1b85 +move_and_print =$1b7f +ps_smc1 =$1bac ; page_sprites.inc -blue_page_sprite =$1c6d -red_page_sprite =$1c83 -white_page_sprite =$1c99 -blue_page_small_sprite =$1caf -red_page_small_sprite =$1cb7 +blue_page_sprite =$1c94 +red_page_sprite =$1caa +white_page_sprite =$1cc0 +blue_page_small_sprite =$1cd6 +red_page_small_sprite =$1cde diff --git a/mist/qload.s b/mist/qload.s index b0724b35..3f2cedac 100644 --- a/mist/qload.s +++ b/mist/qload.s @@ -21,9 +21,6 @@ main_game_loop: jmp main_game_loop - - - opendir_filename: rts @@ -79,13 +76,18 @@ change_disk: jsr TEXT jsr HOME - ldy #0 - lda #error_string sta OUTH + ldx WHICH_LOAD + lda which_disk_array,X + ldy #19 + sta (OUTL),Y + + ldy #0 + quick_print: lda (OUTL),Y beq quick_print_done @@ -100,7 +102,7 @@ fnf_keypress: bpl fnf_keypress bit KEYRESET - ; FIXME: actually verify proper file + ; FIXME: actually verify proper disk is there ldx WHICH_LOAD lda which_disk_array,X @@ -118,30 +120,41 @@ which_disk_array: .byte 1,1,3,2 ; OCTAGON,VIEWER,STONEY,CHANNEL .byte 2,1,2,2 ; CABIN,DENTIST,ARBOR,NIBEL .byte 1,1,1,3 ; SHIP,GENERATOR,D'NI,SUB + .byte 1 ; TEXT_TITLE + .byte 1,1,1,1,1 ; SAVE1,SAVE2,SAVE3,SAVE4,SAVE5 load_address_array: .byte $40,$20,$20,$20 ; MIST_TITLE,MIST,MECHE,SELENA .byte $20,$20,$20,$20 ; OCTAGON,VIEWER,STONEY,CHANNEL .byte $20,$20,$20,$20 ; CABIN,DENTIST,ARBOR,NIBEL .byte $20,$20,$20,$20 ; SHIP,GENERATOR,D'NI,SUB + .byte $08 ; TEXT_TITLE + .byte $0E,$0E,$0E,$0E + .byte $0E ; SAVE1,SAVE2,SAVE3,SAVE4,SAVE5 track_array: .byte 2, 8, 1,11 ; MIST_TITLE,MIST,MECHE,SELENA .byte 18,31,21, 1 ; OCTAGON,VIEWER,STONEY,CHANNEL .byte 27,26,10,20 ; CABIN,DENTIST,ARBOR,NIBEL .byte 30,32,28,31 ; SHIP,GENERATOR,D'NI,SUB + .byte 0 ; TEXT_TITLE + .byte 0, 0, 0, 0, 0 ; SAVE1,SAVE2,SAVE3,SAVE4,SAVE5 sector_array: .byte 0, 0, 0, 0 ; MIST_TITLE,MIST,MECHE,SELENA .byte 0, 8, 0, 0 ; OCTAGON,VIEWER,STONEY,CHANNEL .byte 0, 0, 0, 0 ; CABIN,DENTIST,ARBOR,NIBEL .byte 0,12, 0, 0 ; SHIP,GENERATOR,D'NI,SUB + .byte 1 ; TEXT_TITLE + .byte 1, 1, 1, 1, 1 ; SAVE1,SAVE2,SAVE3,SAVE4,SAVE5 length_array: .byte 83,159,157,145 ; MIST_TITLE,MIST,MECHE,SELENA .byte 128, 19,158,135 ; OCTAGON,VIEWER,STONEY,CHANNEL .byte 61, 31,159,109 ; CABIN,DENTIST,ARBOR,NIBEL .byte 20, 33, 27, 54 ; SHIP,GENERATOR,D'NI,SUB + .byte 1 ; TEXT_TITLE + .byte 1,1,1,1,1 ; SAVE1,SAVE2,SAVE3,SAVE4,SAVE5 ; .include "qkumba_popwr.s" @@ -164,4 +177,4 @@ length_array: qload_end: -.assert ( 14, error, "loader too big" +.assert (>qload_end - >qload_start) < $e , error, "loader too big" diff --git a/mist/default_save.s b/mist/save1.s similarity index 71% rename from mist/default_save.s rename to mist/save1.s index cf2f70f8..0f94d8b1 100644 --- a/mist/default_save.s +++ b/mist/save1.s @@ -1,80 +1,15 @@ +; SAVE1 -- Mechanical Age + .include "zp.inc" .include "common_defines.inc" - -.if 0 -; if doing playthrough -.include "playthrough_save.inc" -.endif - ; want to load this to address $80 -.if 0 -; ARBOR -.byte LOAD_ARBOR ; WHICH_LOAD = $80 -.byte DIRECTION_W ; DIRECTION = $81 -.byte ARBOR_ARRIVAL_CLOSED ; LOCATION = $82 -.endif - -.if 0 ; MECHE .byte LOAD_MECHE ; WHICH_LOAD = $80 .byte DIRECTION_W ; DIRECTION = $81 .byte MECHE_ARRIVAL ; LOCATION = $82 -.endif -.if 1 -; MECHE -.byte LOAD_MECHE ; WHICH_LOAD = $80 -.byte DIRECTION_N ; DIRECTION = $81 -.byte MECHE_EAST_PLATFORM ; LOCATION = $82 -.endif - - -.if 0 -; CHANNEL -.byte LOAD_CHANNEL ; WHICH_LOAD = $80 -.byte DIRECTION_S ; DIRECTION = $81 -.byte CHANNEL_ARRIVAL ; LOCATION = $82 -.endif - -.if 0 -; Octagon (for playthrough) -.byte LOAD_OCTAGON ; WHICH_LOAD = $80 -.byte DIRECTION_S ; DIRECTION = $81 -.byte OCTAGON_CENTER ; LOCATION = $82 -.endif - -.if 0 -; Selena -.byte LOAD_SELENA ; WHICH_LOAD = $80 -.byte DIRECTION_N ; DIRECTION = $81 -.byte SELENA_WALKWAY1 ; LOCATION = $82 -.endif - -.if 0 -; Sub -.byte LOAD_SUB ; WHICH_LOAD = $80 -.byte DIRECTION_E ; DIRECTION = $81 -.byte SUB_BUNKER_ENTRY ; LOCATION = $82 -.endif - -.if 0 -; Stoneship -.byte LOAD_STONEY ; WHICH_LOAD = $80 -.byte DIRECTION_E ; DIRECTION = $81 -.byte STONEY_ARRIVAL ; LOCATION = $82 -.endif - -.if 0 -; NIBEL -.byte LOAD_NIBEL ; WHICH_LOAD = $80 -.byte DIRECTION_E ; DIRECTION = $81 -.byte NIBEL_OUTSIDE_ELEV2_OPEN ; LOCATION = $82 -.endif - - -.if 1 .byte $00 ; RED_PAGES_TAKEN = $83 .byte $00 ; BLUE_PAGES_TAKEN = $84 .byte $00 ; CLOCK_BRIDGE = $85 @@ -165,5 +100,5 @@ .byte $00 ; SUB_DIRECTION = $D6 .byte $00 ; SUB_LOCATION = $D7 .byte $00 ; NIBEL_PROJECTOR = $D8 -.endif + diff --git a/mist/save2.s b/mist/save2.s new file mode 100644 index 00000000..ded937d1 --- /dev/null +++ b/mist/save2.s @@ -0,0 +1,99 @@ +.include "zp.inc" +.include "common_defines.inc" + +; CHANNEL +.byte LOAD_CHANNEL ; WHICH_LOAD = $80 +.byte DIRECTION_S ; DIRECTION = $81 +.byte CHANNEL_ARRIVAL ; LOCATION = $82 + +.byte $00 ; RED_PAGES_TAKEN = $83 +.byte $00 ; BLUE_PAGES_TAKEN = $84 +.byte $00 ; CLOCK_BRIDGE = $85 +.byte $00 ; GEAR_OPEN = $86 +.byte $ff ; MARKER_SWITCHES = $87 +.byte $00 ; CLOCK_HOUR = $88 +.byte $00 ; CLOCK_MINUTE = $89 +.byte $00 ; TREE_FURNACE_ON = $8A +.byte $00 ; FIREPLACE_GRID0 = $8B +.byte $00 ; FIREPLACE_GRID1 = $8C +.byte $00 ; FIREPLACE_GRID2 = $8D +.byte $00 ; FIREPLACE_GRID3 = $8E +.byte $00 ; FIREPLACE_GRID4 = $8F +.byte $00 ; FIREPLACE_GRID5 = $90 +.byte $00 ; CLOCK_COUNT = $91 +.byte $00 ; CLOCK_TOP = $92 +.byte $00 ; CLOCK_MIDDLE = $93 +.byte $00 ; CLOCK_BOTTOM = $94 +.byte $00 ; CLOCK_LAST = $95 + +.byte $00 ; BREAKER_TRIPPED = $96 +.byte $00 ; GENERATOR_VOLTS = $97 +.byte $00 ; ROCKET_VOLTS = $98 +.byte $00 ; SWITCH_TOP_ROW = $99 +.byte $00 ; SWITCH_BOTTOM_ROW = $9A +.byte $00 ; GENERATOR_VOLTS_DISP = $9B +.byte $00 ; ROCKET_VOLTS_DISP = $9C +.byte $00 ; ROCKET_HANDLE_STEP = $9D +.byte $00 ; ROCKET_NOTE1 = $9E +.byte $00 ; ROCKET_NOTE2 = $9F +.byte $00 ; ROCKET_NOTE3 = $A0 +.byte $00 ; ROCKET_NOTE4 = $A1 +.byte $00 ; MECHE_ELEVATOR = $A2 +.byte $00 ; MECHE_ROTATION = $A3 +.byte $00 ; MECHE_LEVERS = $A4 +.byte $00 ; MECHE_LOCK1 = $A5 +.byte $00 ; MECHE_LOCK2 = $A6 +.byte $00 ; MECHE_LOCK3 = $A7 +.byte $00 ; MECHE_LOCK4 = $A8 +.byte $00 ; HOLDING_PAGE = $A9 +.byte $00 ; RED_PAGE_COUNT = $AA +.byte $00 ; BLUE_PAGE_COUNT = $AB +.byte $00 ; VIEWER_CHANNEL = $AC +.byte $00 ; VIEWER_LATCHED = $AD +.byte $00 ; TOWER_ROTATION = $AE +.byte $00 ; SHIP_RAISED = $AF + ; stoneship +.byte $00 ; PUMP_STATE = $B0 +.byte $00 ; BATTERY_CHARGE = $B1 +.byte $00 ; COMPASS_STATE = $B2 +.byte $00 ; CRANK_ANGLE = $B3 +.byte $00 ; WHITE_PAGE_TAKEN = $B4 +.byte $00 ; CHANNEL_SWITCHES = $B5 +.byte $00 ; CHANNEL_VALVES = $B6 + +.byte $00 ; DENTIST_LIGHT = $B7 +.byte $00 ; DENTIST_MONTH = $B8 +.byte $00 ; DENTIST_DAY = $B9 +.byte $00 ; DENTIST_CENTURY = $BA +.byte $00 ; DENTIST_YEAR = $BB +.byte $00 ; DENTIST_HOURS = $BC +.byte $00 ; DENTIST_MINUTES = $BD +.byte $00 ; PILLAR_ON = $BE +.byte $00 ; GREEN_BOOK_PROGRESS = $BF +.byte $00 ; DNI_PROGRESS = $C0 +.byte $00 ; COMPARTMENT_OPEN = $C1 +.byte $00 ; GAME_COMPLETED = $C2 + +.byte $00 ; SAFE_HUNDREDS = $C3 +.byte $00 ; SAFE_TENS = $C4 +.byte $00 ; SAFE_ONES = $C5 +.byte $00 ; TREE_LEVEL = $C6 +.byte $00 ; HOLDING_ITEM = $C7 +.byte $00 ; BOILER_VALVE = $C8 +.byte $00 ; TRUNK_STATE = $C9 +.byte $00 ; SELENA_BUTTON_STATUS = $CA +.byte $00 ; SELENA_ANTENNA1 = $CB +.byte $00 ; SELENA_ANTENNA2 = $CC +.byte $00 ; SELENA_ANTENNA3 = $CD +.byte $00 ; SELENA_ANTENNA4 = $CE +.byte $00 ; SELENA_ANTENNA5 = $CF +.byte $00 ; SELENA_LOCK1 = $D0 +.byte $00 ; SELENA_LOCK2 = $D1 +.byte $00 ; SELENA_LOCK3 = $D2 +.byte $00 ; SELENA_LOCK4 = $D3 +.byte $00 ; SELENA_LOCK5 = $D4 +.byte $00 ; SELENA_ANTENNA_ACTIVE = $D5 +.byte $00 ; SUB_DIRECTION = $D6 +.byte $00 ; SUB_LOCATION = $D7 +.byte $00 ; NIBEL_PROJECTOR = $D8 + diff --git a/mist/save3.s b/mist/save3.s new file mode 100644 index 00000000..66ad7e8f --- /dev/null +++ b/mist/save3.s @@ -0,0 +1,100 @@ +.include "zp.inc" +.include "common_defines.inc" + +; Selena +.byte LOAD_SELENA ; WHICH_LOAD = $80 +.byte DIRECTION_N ; DIRECTION = $81 +.byte SELENA_WALKWAY1 ; LOCATION = $82 + +.byte $00 ; RED_PAGES_TAKEN = $83 +.byte $00 ; BLUE_PAGES_TAKEN = $84 +.byte $00 ; CLOCK_BRIDGE = $85 +.byte $00 ; GEAR_OPEN = $86 +.byte $ff ; MARKER_SWITCHES = $87 +.byte $00 ; CLOCK_HOUR = $88 +.byte $00 ; CLOCK_MINUTE = $89 +.byte $00 ; TREE_FURNACE_ON = $8A +.byte $00 ; FIREPLACE_GRID0 = $8B +.byte $00 ; FIREPLACE_GRID1 = $8C +.byte $00 ; FIREPLACE_GRID2 = $8D +.byte $00 ; FIREPLACE_GRID3 = $8E +.byte $00 ; FIREPLACE_GRID4 = $8F +.byte $00 ; FIREPLACE_GRID5 = $90 +.byte $00 ; CLOCK_COUNT = $91 +.byte $00 ; CLOCK_TOP = $92 +.byte $00 ; CLOCK_MIDDLE = $93 +.byte $00 ; CLOCK_BOTTOM = $94 +.byte $00 ; CLOCK_LAST = $95 + +.byte $00 ; BREAKER_TRIPPED = $96 +.byte $00 ; GENERATOR_VOLTS = $97 +.byte $00 ; ROCKET_VOLTS = $98 +.byte $00 ; SWITCH_TOP_ROW = $99 +.byte $00 ; SWITCH_BOTTOM_ROW = $9A +.byte $00 ; GENERATOR_VOLTS_DISP = $9B +.byte $00 ; ROCKET_VOLTS_DISP = $9C +.byte $00 ; ROCKET_HANDLE_STEP = $9D +.byte $00 ; ROCKET_NOTE1 = $9E +.byte $00 ; ROCKET_NOTE2 = $9F +.byte $00 ; ROCKET_NOTE3 = $A0 +.byte $00 ; ROCKET_NOTE4 = $A1 +.byte $00 ; MECHE_ELEVATOR = $A2 +.byte $00 ; MECHE_ROTATION = $A3 +.byte $00 ; MECHE_LEVERS = $A4 +.byte $00 ; MECHE_LOCK1 = $A5 +.byte $00 ; MECHE_LOCK2 = $A6 +.byte $00 ; MECHE_LOCK3 = $A7 +.byte $00 ; MECHE_LOCK4 = $A8 +.byte $00 ; HOLDING_PAGE = $A9 +.byte $00 ; RED_PAGE_COUNT = $AA +.byte $00 ; BLUE_PAGE_COUNT = $AB +.byte $00 ; VIEWER_CHANNEL = $AC +.byte $00 ; VIEWER_LATCHED = $AD +.byte $00 ; TOWER_ROTATION = $AE +.byte $00 ; SHIP_RAISED = $AF + ; stoneship +.byte $00 ; PUMP_STATE = $B0 +.byte $00 ; BATTERY_CHARGE = $B1 +.byte $00 ; COMPASS_STATE = $B2 +.byte $00 ; CRANK_ANGLE = $B3 +.byte $00 ; WHITE_PAGE_TAKEN = $B4 +.byte $00 ; CHANNEL_SWITCHES = $B5 +.byte $00 ; CHANNEL_VALVES = $B6 + +.byte $00 ; DENTIST_LIGHT = $B7 +.byte $00 ; DENTIST_MONTH = $B8 +.byte $00 ; DENTIST_DAY = $B9 +.byte $00 ; DENTIST_CENTURY = $BA +.byte $00 ; DENTIST_YEAR = $BB +.byte $00 ; DENTIST_HOURS = $BC +.byte $00 ; DENTIST_MINUTES = $BD +.byte $00 ; PILLAR_ON = $BE +.byte $00 ; GREEN_BOOK_PROGRESS = $BF +.byte $00 ; DNI_PROGRESS = $C0 +.byte $00 ; COMPARTMENT_OPEN = $C1 +.byte $00 ; GAME_COMPLETED = $C2 + +.byte $00 ; SAFE_HUNDREDS = $C3 +.byte $00 ; SAFE_TENS = $C4 +.byte $00 ; SAFE_ONES = $C5 +.byte $00 ; TREE_LEVEL = $C6 +.byte $00 ; HOLDING_ITEM = $C7 +.byte $00 ; BOILER_VALVE = $C8 +.byte $00 ; TRUNK_STATE = $C9 +.byte $00 ; SELENA_BUTTON_STATUS = $CA +.byte $00 ; SELENA_ANTENNA1 = $CB +.byte $00 ; SELENA_ANTENNA2 = $CC +.byte $00 ; SELENA_ANTENNA3 = $CD +.byte $00 ; SELENA_ANTENNA4 = $CE +.byte $00 ; SELENA_ANTENNA5 = $CF +.byte $00 ; SELENA_LOCK1 = $D0 +.byte $00 ; SELENA_LOCK2 = $D1 +.byte $00 ; SELENA_LOCK3 = $D2 +.byte $00 ; SELENA_LOCK4 = $D3 +.byte $00 ; SELENA_LOCK5 = $D4 +.byte $00 ; SELENA_ANTENNA_ACTIVE = $D5 +.byte $00 ; SUB_DIRECTION = $D6 +.byte $00 ; SUB_LOCATION = $D7 +.byte $00 ; NIBEL_PROJECTOR = $D8 + + diff --git a/mist/save4.s b/mist/save4.s new file mode 100644 index 00000000..0ea74d44 --- /dev/null +++ b/mist/save4.s @@ -0,0 +1,102 @@ +.include "zp.inc" +.include "common_defines.inc" + + +; Stoneship +.byte LOAD_STONEY ; WHICH_LOAD = $80 +.byte DIRECTION_E ; DIRECTION = $81 +.byte STONEY_ARRIVAL ; LOCATION = $82 + +.byte $00 ; RED_PAGES_TAKEN = $83 +.byte $00 ; BLUE_PAGES_TAKEN = $84 +.byte $00 ; CLOCK_BRIDGE = $85 +.byte $00 ; GEAR_OPEN = $86 +.byte $ff ; MARKER_SWITCHES = $87 +.byte $00 ; CLOCK_HOUR = $88 +.byte $00 ; CLOCK_MINUTE = $89 +.byte $00 ; TREE_FURNACE_ON = $8A +.byte $00 ; FIREPLACE_GRID0 = $8B +.byte $00 ; FIREPLACE_GRID1 = $8C +.byte $00 ; FIREPLACE_GRID2 = $8D +.byte $00 ; FIREPLACE_GRID3 = $8E +.byte $00 ; FIREPLACE_GRID4 = $8F +.byte $00 ; FIREPLACE_GRID5 = $90 +.byte $00 ; CLOCK_COUNT = $91 +.byte $00 ; CLOCK_TOP = $92 +.byte $00 ; CLOCK_MIDDLE = $93 +.byte $00 ; CLOCK_BOTTOM = $94 +.byte $00 ; CLOCK_LAST = $95 + +.byte $00 ; BREAKER_TRIPPED = $96 +.byte $00 ; GENERATOR_VOLTS = $97 +.byte $00 ; ROCKET_VOLTS = $98 +.byte $00 ; SWITCH_TOP_ROW = $99 +.byte $00 ; SWITCH_BOTTOM_ROW = $9A +.byte $00 ; GENERATOR_VOLTS_DISP = $9B +.byte $00 ; ROCKET_VOLTS_DISP = $9C +.byte $00 ; ROCKET_HANDLE_STEP = $9D +.byte $00 ; ROCKET_NOTE1 = $9E +.byte $00 ; ROCKET_NOTE2 = $9F +.byte $00 ; ROCKET_NOTE3 = $A0 +.byte $00 ; ROCKET_NOTE4 = $A1 +.byte $00 ; MECHE_ELEVATOR = $A2 +.byte $00 ; MECHE_ROTATION = $A3 +.byte $00 ; MECHE_LEVERS = $A4 +.byte $00 ; MECHE_LOCK1 = $A5 +.byte $00 ; MECHE_LOCK2 = $A6 +.byte $00 ; MECHE_LOCK3 = $A7 +.byte $00 ; MECHE_LOCK4 = $A8 +.byte $00 ; HOLDING_PAGE = $A9 +.byte $00 ; RED_PAGE_COUNT = $AA +.byte $00 ; BLUE_PAGE_COUNT = $AB +.byte $00 ; VIEWER_CHANNEL = $AC +.byte $00 ; VIEWER_LATCHED = $AD +.byte $00 ; TOWER_ROTATION = $AE +.byte $00 ; SHIP_RAISED = $AF + ; stoneship +.byte $00 ; PUMP_STATE = $B0 +.byte $00 ; BATTERY_CHARGE = $B1 +.byte $00 ; COMPASS_STATE = $B2 +.byte $00 ; CRANK_ANGLE = $B3 +.byte $00 ; WHITE_PAGE_TAKEN = $B4 +.byte $00 ; CHANNEL_SWITCHES = $B5 +.byte $00 ; CHANNEL_VALVES = $B6 + +.byte $00 ; DENTIST_LIGHT = $B7 +.byte $00 ; DENTIST_MONTH = $B8 +.byte $00 ; DENTIST_DAY = $B9 +.byte $00 ; DENTIST_CENTURY = $BA +.byte $00 ; DENTIST_YEAR = $BB +.byte $00 ; DENTIST_HOURS = $BC +.byte $00 ; DENTIST_MINUTES = $BD +.byte $00 ; PILLAR_ON = $BE +.byte $00 ; GREEN_BOOK_PROGRESS = $BF +.byte $00 ; DNI_PROGRESS = $C0 +.byte $00 ; COMPARTMENT_OPEN = $C1 +.byte $00 ; GAME_COMPLETED = $C2 + +.byte $00 ; SAFE_HUNDREDS = $C3 +.byte $00 ; SAFE_TENS = $C4 +.byte $00 ; SAFE_ONES = $C5 +.byte $00 ; TREE_LEVEL = $C6 +.byte $00 ; HOLDING_ITEM = $C7 +.byte $00 ; BOILER_VALVE = $C8 +.byte $00 ; TRUNK_STATE = $C9 +.byte $00 ; SELENA_BUTTON_STATUS = $CA +.byte $00 ; SELENA_ANTENNA1 = $CB +.byte $00 ; SELENA_ANTENNA2 = $CC +.byte $00 ; SELENA_ANTENNA3 = $CD +.byte $00 ; SELENA_ANTENNA4 = $CE +.byte $00 ; SELENA_ANTENNA5 = $CF +.byte $00 ; SELENA_LOCK1 = $D0 +.byte $00 ; SELENA_LOCK2 = $D1 +.byte $00 ; SELENA_LOCK3 = $D2 +.byte $00 ; SELENA_LOCK4 = $D3 +.byte $00 ; SELENA_LOCK5 = $D4 +.byte $00 ; SELENA_ANTENNA_ACTIVE = $D5 +.byte $00 ; SUB_DIRECTION = $D6 +.byte $00 ; SUB_LOCATION = $D7 +.byte $00 ; NIBEL_PROJECTOR = $D8 + + + diff --git a/mist/playthrough_save.inc b/mist/save5.s similarity index 97% rename from mist/playthrough_save.inc rename to mist/save5.s index 43bad1d0..dafc2d27 100644 --- a/mist/playthrough_save.inc +++ b/mist/save5.s @@ -1,3 +1,7 @@ +; SAVE5 -- near end of game + +.include "zp.inc" +.include "common_defines.inc" ; Octagon (for playthrough) .byte LOAD_OCTAGON ; WHICH_LOAD = $80