diff --git a/mist/brother_books.s b/mist/brother_books.s index 6fc91d45..63bbb1f4 100644 --- a/mist/brother_books.s +++ b/mist/brother_books.s @@ -58,19 +58,13 @@ not_blue_page: + ;=========================== + ; Red book animation + ;=========================== +red_book_animation: - -red_book_loop: - - lda #red_book_static_lzsa - sta LZSA_SRC_HI - lda #$c ; load to page $c00 - jsr decompress_lzsa2_fast - jsr gr_copy_to_current jsr page_flip @@ -78,14 +72,6 @@ red_book_loop: lda #120 jsr WAIT - lda #red_book_static2_lzsa - sta LZSA_SRC_HI - lda #$c ; load to page $c00 - jsr decompress_lzsa2_fast - - jsr gr_copy_to_current jsr page_flip @@ -100,14 +86,6 @@ red_book_loop: ;; annoying brother - - lda #red_book_open_lzsa - sta LZSA_SRC_HI - lda #$c ; load to page $c00 - jsr decompress_lzsa2_fast - jsr gr_copy_to_current jsr page_flip @@ -126,26 +104,59 @@ red_book_loop: done_sir: - lda KEYPRESS - bpl red_book_loop - red_book_done: - bit KEYRESET - - ; restore bg - - lda #red_book_shelf_lzsa - sta LZSA_SRC_HI - lda #$c ; load to page $c00 - jsr decompress_lzsa2_fast - rts +;========================== +; books sprites +;========================== + +red_book_sprite_sequence0: + .word red_book_static1_sprite + .word red_book_static2_sprite + .word red_book_static1_sprite + .word red_book_static2_sprite + +red_book_sprite_sequence1: + .word red_book_static1_sprite + .word red_book_static2_sprite + .word red_book_face_sprite + .word red_book_static2_sprite + + +red_book_face_sprite: + .byte 9,7 + .byte $31,$88,$bb,$bb,$bb,$bb,$bb,$88,$13 + .byte $31,$bb,$bb,$b0,$bb,$b0,$bb,$11,$13 + .byte $31,$bb,$bb,$bb,$33,$bb,$bb,$11,$13 + .byte $31,$11,$bb,$8b,$b8,$8b,$bb,$11,$13 + .byte $31,$11,$bb,$bb,$b3,$bb,$bb,$11,$13 + .byte $11,$01,$01,$8b,$88,$8b,$01,$01,$13 + .byte $A0,$A0,$A0,$Af,$Af,$Af,$A0,$A0,$A0 + +red_book_static1_sprite: + .byte 9,7 + .byte $11,$1b,$11,$1f,$1b,$11,$11,$13,$11 + .byte $b1,$13,$11,$1b,$11,$13,$11,$1b,$f1 + .byte $31,$11,$b1,$13,$11,$1f,$13,$b1,$31 + .byte $11,$1f,$11,$11,$13,$11,$1b,$f1,$11 + .byte $00,$00,$00,$00,$00,$00,$00,$00,$00 + .byte $31,$1b,$f1,$11,$f3,$11,$31,$1b,$11 + .byte $A1,$A1,$A3,$A1,$A1,$Ab,$A1,$A1,$A3 + +red_book_static2_sprite: + .byte 9,7 + .byte $01,$01,$01,$0b,$01,$01,$01,$0f,$01 + .byte $10,$b0,$10,$10,$30,$10,$10,$b0,$10 + .byte $13,$11,$3f,$11,$1f,$b1,$13,$11,$31 + .byte $1f,$11,$11,$11,$13,$11,$1b,$11,$f1 + .byte $11,$1b,$f1,$1f,$1b,$31,$f1,$1b,$11 + .byte $13,$11,$1b,$11,$11,$11,$b1,$13,$b1 + .byte $A1,$Af,$A1,$A3,$A1,$A1,$A1,$A1,$A1 + ;========================== @@ -158,9 +169,38 @@ red_book_done: ; red 0 ; only static +; 0123456789012345678901234567890123456789 ; red 1 ; who are you, bring me a red page, I can't see you -; I am sirrus +; I am Sirrus + +; red 2 +; You've returned. Thank you for the red page. +; I beg you to find the remaining red pages. +; Don't waste time on my brother, he is guilty. + +; red 3 +; Free me from my prison. I am called Sirrus. +; I need two more pages. Don't touch the blue +; Don not help my wicked brother Achenar. + +; red 4 +; With each page I can see you more clearly. +; Achenar is guilty of conquest. He took +; advantage of father. Free me and I will reward you + +; red 5 +; You've finally returned. You must think Achenar is guilty. +; Find page 158 in the pattern book and retrieve the last page. +; Do not touch the green book you find there. +; +; Achenar became disturbed, conquest. +; Father must be lost + +; ending +; I am free! Thank you! You've done the right thing. +; Stupid fool. Let me rip some pages out. +; I hope you're into books. Goodbye! ;========================== ; blue/Achenar @@ -177,5 +217,23 @@ red_book_done: ; egotistical fool and liar, bring the blue pages, not the red ones ; I've been wrongly imprisoned. I will have my retribution. +; blue 3 +; you've returned, good. bring blue pages. +; sirrus trapped me here. He is greedy. +; don't touch the red pages. +; blue 4 +; my friend, I see you think Sirrus is guilty. +; Have you observed his lust for riches. +; Please bring more blue pages. +; blue 5 +; Sirrus is guilty, lied to father and killed him +; Find pattern 158 and use it in the fireplace. +; Don't touch the green book! + +; after +; Haha I am free! I fel so alive! +; These pages you worked so hard to find +; what happens if I pull them out? +; Maybe someone will rescue you. diff --git a/mist/common_defines.inc b/mist/common_defines.inc index e6b0ff3f..c1d490ce 100644 --- a/mist/common_defines.inc +++ b/mist/common_defines.inc @@ -139,6 +139,10 @@ OCTAGON_TOWER_LEFT = 23 OCTAGON_TOWER_RIGHT = 24 OCTAGON_KEY_LADDER = 25 OCTAGON_KEY_VIEW = 26 +OCTAGON_RED_BOOK_CLOSED = 27 +OCTAGON_RED_BOOK_OPEN = 28 +OCTAGON_BLUE_BOOK_CLOSED= 29 +OCTAGON_BLUE_BOOK_OPEN = 30 ; Mechanical Engineering diff --git a/mist/graphics_octagon/Makefile b/mist/graphics_octagon/Makefile index 4f4b765f..ac631cde 100644 --- a/mist/graphics_octagon/Makefile +++ b/mist/graphics_octagon/Makefile @@ -18,7 +18,6 @@ octagon_graphics.inc: \ red_book_shelf.lzsa \ red_book_open.lzsa red_book_closed.lzsa \ blue_book_open.lzsa blue_book_closed.lzsa \ - red_book_static.lzsa red_book_static2.lzsa \ fireplace_e.lzsa \ in_fireplace_w.lzsa in_fireplace_door.lzsa \ frame_door_open.lzsa \ @@ -64,8 +63,6 @@ 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 diff --git a/mist/leveldata_octagon.inc b/mist/leveldata_octagon.inc index 0dd243a8..1b0106eb 100644 --- a/mist/leveldata_octagon.inc +++ b/mist/leveldata_octagon.inc @@ -513,7 +513,7 @@ location27: .byte $ff ; north exit_dir .byte $ff ; south exit_dir .byte $ff ; east exit_dir - .byte DIRECTION_W|DIRECTION_ONLY_POINT ; west exit_dir + .byte DIRECTION_W|DIRECTION_SPLIT ; west exit_dir .word $0000 ; north bg .word $0000 ; south bg .word $0000 ; east bg @@ -546,7 +546,7 @@ location29: .byte $ff ; west exit .byte $ff ; north exit_dir .byte $ff ; south exit_dir - .byte DIRECTION_E ; east exit_dir + .byte DIRECTION_E|DIRECTION_SPLIT ; east exit_dir .byte $ff ; west exit_dir .word $0000 ; north bg .word $0000 ; south bg