diff --git a/mist/Makefile b/mist/Makefile index 4529f1f6..ec33d984 100644 --- a/mist/Makefile +++ b/mist/Makefile @@ -26,23 +26,23 @@ mist.dsk: HELLO LOADER MIST_TITLE MIST OCTAGON VIEWER \ $(DOS33) -y mist.dsk BSAVE -a 0x2000 SHIP # $(DOS33) -y mist.dsk BSAVE -a 0x9000 ./audio/link_noise.btc LINK_NOISE.BTC -mist_side2.dsk: HELLO_DISK2 CHANNEL ARBOR NIBEL CABIN +mist_side2.dsk: HELLO_DISK2 CHANNEL ARBOR NIBEL CABIN GENERATOR cp empty.dsk mist_side2.dsk $(DOS33) -y mist_side2.dsk SAVE A HELLO_DISK2 HELLO $(DOS33) -y mist_side2.dsk BSAVE -a 0x2000 CHANNEL $(DOS33) -y mist_side2.dsk BSAVE -a 0x2000 ARBOR $(DOS33) -y mist_side2.dsk BSAVE -a 0x2000 NIBEL $(DOS33) -y mist_side2.dsk BSAVE -a 0x2000 CABIN + $(DOS33) -y mist_side2.dsk BSAVE -a 0x2000 GENERATOR -mist_side3.dsk: HELLO_DISK2 MECHE SELENA STONEY GENERATOR SUB +mist_side3.dsk: HELLO_DISK2 MECHE SELENA STONEY SUB cp empty.dsk mist_side3.dsk $(DOS33) -y mist_side3.dsk SAVE A HELLO_DISK2 HELLO $(DOS33) -y mist_side3.dsk BSAVE -a 0x2000 MECHE $(DOS33) -y mist_side3.dsk BSAVE -a 0x2000 SELENA $(DOS33) -y mist_side3.dsk BSAVE -a 0x2000 STONEY - $(DOS33) -y mist_side3.dsk BSAVE -a 0x2000 GENERATOR $(DOS33) -y mist_side3.dsk BSAVE -a 0x2000 SUB diff --git a/mist/README b/mist/README index e9a41f26..63177755 100644 --- a/mist/README +++ b/mist/README @@ -47,13 +47,13 @@ Sizes: ARBOR 31591 -> 31744 -> 124 8 NIBEL 15467 -> 15616 -> 61 4 CABIN 15398 -> 15616 -> 61 4 + GENERATOR 8434 -> 8448 -> 33 3 ======== === - 381+4= 385 = 98k 25 + 414+5= 419 = 104k 28 disk3: MECHE 28857 -> 28928 -> 113 8 SELENA 36912 -> 37120 -> 145 10 STONEY 40195 -> 40448 -> 158 10 - GENERATOR 8434 -> 8448 -> 33 3 SUB 13786 -> 13824 -> 54 4 ======== ==== 503+5=508 = 127k 35 diff --git a/mist/graphics_meche/Makefile b/mist/graphics_meche/Makefile index 429c6df7..97ff4e82 100644 --- a/mist/graphics_meche/Makefile +++ b/mist/graphics_meche/Makefile @@ -55,7 +55,9 @@ meche_graphics.inc: \ book_stairs_n.lzsa book_stairs_s.lzsa \ book_room_n.lzsa \ book_open_n.lzsa book_closed_n.lzsa \ - blue_secret_door_w.lzsa blue_secret_room_w.lzsa \ + blue_secret_door_w.lzsa \ + blue_secret_room_n.lzsa blue_secret_room_s.lzsa blue_secret_room_e.lzsa blue_secret_room_w.lzsa \ + blue_secret_room_jolt_n.lzsa \ red_secret_door_s.lzsa red_secret_room_s.lzsa echo "departure_e_lzsa: .incbin \"departure_e.lzsa\"" > meche_graphics.inc echo "arrival_w_lzsa: .incbin \"arrival_w.lzsa\"" >> meche_graphics.inc @@ -148,12 +150,13 @@ meche_graphics.inc: \ echo "book_closed_n_lzsa: .incbin \"book_closed_n.lzsa\"" >> meche_graphics.inc echo "blue_secret_door_w_lzsa: .incbin \"blue_secret_door_w.lzsa\"" >> meche_graphics.inc echo "blue_secret_room_w_lzsa: .incbin \"blue_secret_room_w.lzsa\"" >> meche_graphics.inc + echo "blue_secret_room_jolt_n_lzsa: .incbin \"blue_secret_room_jolt_n.lzsa\"" >> meche_graphics.inc + echo "blue_secret_room_e_lzsa: .incbin \"blue_secret_room_e.lzsa\"" >> meche_graphics.inc + echo "blue_secret_room_n_lzsa: .incbin \"blue_secret_room_n.lzsa\"" >> meche_graphics.inc + echo "blue_secret_room_s_lzsa: .incbin \"blue_secret_room_s.lzsa\"" >> meche_graphics.inc echo "red_secret_door_s_lzsa: .incbin \"red_secret_door_s.lzsa\"" >> meche_graphics.inc echo "red_secret_room_s_lzsa: .incbin \"red_secret_room_s.lzsa\"" >> meche_graphics.inc - - - %.gr: %.png $(PNG2GR) $< $@ diff --git a/mist/graphics_meche/blue_secret_room_e.png b/mist/graphics_meche/blue_secret_room_e.png new file mode 100644 index 00000000..a2a478d4 Binary files /dev/null and b/mist/graphics_meche/blue_secret_room_e.png differ diff --git a/mist/graphics_meche/blue_secret_room_jolt_n.png b/mist/graphics_meche/blue_secret_room_jolt_n.png new file mode 100644 index 00000000..8805b2cc Binary files /dev/null and b/mist/graphics_meche/blue_secret_room_jolt_n.png differ diff --git a/mist/graphics_meche/blue_secret_room_n.png b/mist/graphics_meche/blue_secret_room_n.png new file mode 100644 index 00000000..8acccc60 Binary files /dev/null and b/mist/graphics_meche/blue_secret_room_n.png differ diff --git a/mist/graphics_meche/blue_secret_room_s.png b/mist/graphics_meche/blue_secret_room_s.png new file mode 100644 index 00000000..e18af6a6 Binary files /dev/null and b/mist/graphics_meche/blue_secret_room_s.png differ diff --git a/mist/leveldata_meche.inc b/mist/leveldata_meche.inc index eb31fa0e..9dcc9125 100644 --- a/mist/leveldata_meche.inc +++ b/mist/leveldata_meche.inc @@ -725,20 +725,20 @@ location38: location39: .byte $ff ; north exit .byte $ff ; south exit - .byte $ff ; east exit - .byte MECHE_BLUE_ROOM_CENTER ; west exit + .byte MECHE_BLUE_ROOM_CENTER ; east exit + .byte $ff ; 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 + .byte DIRECTION_E ; east exit_dir + .byte $ff ; west exit_dir + .word blue_secret_room_n_lzsa ; north bg + .word blue_secret_room_s_lzsa ; south bg + .word blue_secret_room_e_lzsa ; east bg .word blue_secret_room_w_lzsa ; west bg - .byte BG_WEST - .byte DIRECTION_W - .byte 14,18 ; special x - .byte 32,40 ; special y + .byte BG_NORTH | BG_SOUTH | BG_EAST | BG_WEST + .byte DIRECTION_W|DIRECTION_N + .byte 8,18 ; special x + .byte 22,40 ; special y .word meche_take_blue_page-1 ; special function ; MECHE_RED_SECRET_DOOR -- red room secret door diff --git a/mist/loader.s b/mist/loader.s index cd13d54f..74977aa4 100644 --- a/mist/loader.s +++ b/mist/loader.s @@ -169,7 +169,7 @@ which_disk: .byte '2' ; ARBOR .byte '2' ; NIBEL .byte '1' ; SHIP - .byte '3' ; GENERATOR + .byte '2' ; GENERATOR .byte '1' ; D'NI .byte '3' ; SUB diff --git a/mist/meche.s b/mist/meche.s index 856b35f7..0bfcd6db 100644 --- a/mist/meche.s +++ b/mist/meche.s @@ -239,7 +239,40 @@ draw_red_page: jmp put_sprite_crop ; tail call + ;======================== + ; draw blue page + ;======================== + ; also handle jolt + draw_blue_page: + lda DIRECTION + cmp #DIRECTION_W + beq actually_draw_blue_page + + ; else, jolting + lda ANIMATE_FRAME + beq not_done_jolt + + lda FRAMEL + and #$f + bne not_done_jolt + + lda #0 + sta ANIMATE_FRAME + + ldy #LOCATION_NORTH_BG + lda #blue_secret_room_n_lzsa + sta location39+1,Y ; MECHE_BLUE_SECRET_ROOM + + jsr change_direction + +not_done_jolt: + + rts + +actually_draw_blue_page: lda BLUE_PAGES_TAKEN and #MECHE_PAGE @@ -265,6 +298,27 @@ meche_take_red_page: jmp take_red_page meche_take_blue_page: + lda DIRECTION + cmp #DIRECTION_W + beq actually_take_blue_page + + ; if not, jolt time + lda #1 + sta ANIMATE_FRAME + lda #0 + sta FRAMEL + + ldy #LOCATION_NORTH_BG + lda #blue_secret_room_jolt_n_lzsa + sta location39+1,Y ; MECHE_BLUE_SECRET_ROOM + + jmp change_direction + + +actually_take_blue_page: + lda #MECHE_PAGE jmp take_blue_page diff --git a/mist/playthrough_save.inc b/mist/playthrough_save.inc index a78b0ba0..1c31afc5 100644 --- a/mist/playthrough_save.inc +++ b/mist/playthrough_save.inc @@ -53,9 +53,9 @@ .byte $00 ; MECHE_LOCK4 = $A8 .byte $00 ; HOLDING_PAGE = $A9 -.byte $3 +.byte $4 ; RED_PAGE_COUNT = $AA -.byte $3 +.byte $4 ; BLUE_PAGE_COUNT = $AB