diff --git a/mist/Makefile b/mist/Makefile index c9a0e808..75f8e746 100644 --- a/mist/Makefile +++ b/mist/Makefile @@ -180,6 +180,7 @@ channel.o: channel.s zp.inc hardware.inc common_defines.inc \ leveldata_channel.inc \ keyboard.s \ draw_pointer.s \ + link_book_channel.s \ gr_copy.s audio.s text_print.s decompress_fast_v2.s ca65 -o channel.o channel.s -l channel.lst diff --git a/mist/channel.s b/mist/channel.s index c26376ce..740c22c3 100644 --- a/mist/channel.s +++ b/mist/channel.s @@ -196,6 +196,8 @@ exit_to_mist: .include "draw_pointer.s" .include "end_level.s" + .include "audio.s" + .include "graphics_channel/channel_graphics.inc" @@ -206,3 +208,7 @@ exit_to_mist: .include "page_sprites.inc" .include "leveldata_channel.inc" + + ; linking books + + .include "link_book_channel.s" diff --git a/mist/draw_pointer.s b/mist/draw_pointer.s index 25efbf1c..66b65457 100644 --- a/mist/draw_pointer.s +++ b/mist/draw_pointer.s @@ -28,7 +28,7 @@ draw_pointer: and (LOCATION_STRUCT_L),Y beq finger_not_special ; only special if facing right way -was_any: +;was_any: ; see if X1 < X < X2 lda CURSOR_X diff --git a/mist/graphics_channel/Makefile b/mist/graphics_channel/Makefile index deb355e6..9c91f70c 100644 --- a/mist/graphics_channel/Makefile +++ b/mist/graphics_channel/Makefile @@ -20,6 +20,8 @@ channel_graphics.inc: \ tree_base_n.lzsa tree_base_s.lzsa \ tree_basement_n.lzsa tree_basement_s.lzsa \ tree_basement_book_s.lzsa \ + tree_basement_book_open_s.lzsa \ + tree_basement_book_closed_s.lzsa \ tree_elevator_basement_s.lzsa echo "arrival_n_lzsa: .incbin \"arrival_n.lzsa\"" > channel_graphics.inc echo "arrival_s_lzsa: .incbin \"arrival_s.lzsa\"" >> channel_graphics.inc @@ -41,6 +43,8 @@ channel_graphics.inc: \ echo "tree_basement_s_lzsa: .incbin \"tree_basement_s.lzsa\"" >> channel_graphics.inc echo "tree_basement_n_lzsa: .incbin \"tree_basement_n.lzsa\"" >> channel_graphics.inc echo "tree_basement_book_s_lzsa: .incbin \"tree_basement_book_s.lzsa\"" >> channel_graphics.inc + echo "tree_basement_book_open_s_lzsa: .incbin \"tree_basement_book_open_s.lzsa\"" >> channel_graphics.inc + echo "tree_basement_book_closed_s_lzsa: .incbin \"tree_basement_book_closed_s.lzsa\"" >> channel_graphics.inc echo "tree_elevator_basement_s_lzsa: .incbin \"tree_elevator_basement_s.lzsa\"" >> channel_graphics.inc %.gr: %.png diff --git a/mist/graphics_channel/tree_basement_book_closed_s.png b/mist/graphics_channel/tree_basement_book_closed_s.png new file mode 100644 index 00000000..4fcdf982 Binary files /dev/null and b/mist/graphics_channel/tree_basement_book_closed_s.png differ diff --git a/mist/graphics_channel/tree_basement_book_open_s.png b/mist/graphics_channel/tree_basement_book_open_s.png new file mode 100644 index 00000000..25911e95 Binary files /dev/null and b/mist/graphics_channel/tree_basement_book_open_s.png differ diff --git a/mist/leveldata_channel.inc b/mist/leveldata_channel.inc index bc462534..4bcbacb8 100644 --- a/mist/leveldata_channel.inc +++ b/mist/leveldata_channel.inc @@ -219,7 +219,7 @@ location11: .byte $ff ; east exit_dir .byte $ff ; west exit_dir .word $0000 ; north bg - .word tree_basement_book_s_lzsa ; south bg + .word tree_basement_book_closed_s_lzsa ; south bg .word $0000 ; east bg .word $0000 ; west bg .byte BG_SOUTH @@ -236,11 +236,15 @@ location12: .byte $ff ; east exit_dir .byte $ff ; west exit_dir .word $0000 ; north bg - .word tree_basement_book_s_lzsa ; south bg + .word tree_basement_book_open_s_lzsa ; south bg .word $0000 ; east bg .word $0000 ; west bg .byte BG_SOUTH - .byte $ff + .byte DIRECTION_S ; special exit + .byte 21,31 ; special x + .byte 10,24 ; special y + .word channel_link_book-1 + ; CHANNEL_ARRIVAL -- arrival in channelwood location13: diff --git a/mist/link_book_channel.s b/mist/link_book_channel.s new file mode 100644 index 00000000..4da382c3 --- /dev/null +++ b/mist/link_book_channel.s @@ -0,0 +1,154 @@ + ;============================= + ; channel_link_book + ;============================= +channel_link_book: + + ; clear screen + lda #0 + sta clear_all_color+1 + + jsr clear_all + jsr page_flip + + jsr clear_all + jsr page_flip + + ;==================================== + ; load linking audio (12k) to $9000 + + lda #linking_filename + sta OUTH + + jsr opendir_filename + + + ; play sound effect? + + lda #linking_noise + sta BTC_H + ldx #LINKING_NOISE_LENGTH ; 45 pages long??? + jsr play_audio + + lda #CHANNEL_ARRIVAL + sta LOCATION + lda #DIRECTION_N + sta DIRECTION + + jsr change_location + rts + + +meche_movie: + .word meche_sprite0,meche_sprite1,meche_sprite2 + .word meche_sprite3,meche_sprite4,meche_sprite5 + .word meche_sprite6,meche_sprite7,meche_sprite8 + .word meche_sprite9,meche_sprite10 + +meche_sprite0: + .byte 9,6 + .byte $77,$77,$77,$77,$77,$77,$55,$77,$77 + .byte $77,$77,$77,$77,$77,$47,$49,$49,$47 + .byte $57,$77,$77,$77,$77,$ff,$55,$88,$88 + .byte $05,$67,$00,$60,$60,$00,$67,$86,$60 + .byte $00,$00,$06,$06,$68,$66,$66,$68,$66 + .byte $00,$00,$00,$00,$00,$06,$66,$66,$66 + +meche_sprite1: + .byte 9,6 + .byte $77,$77,$77,$47,$45,$45,$45,$74,$77 + .byte $77,$77,$74,$ff,$8f,$ff,$ff,$77,$77 + .byte $07,$07,$07,$ff,$08,$0f,$0f,$07,$07 + .byte $77,$77,$00,$67,$67,$60,$66,$66,$66 + .byte $66,$66,$86,$66,$66,$88,$66,$66,$66 + .byte $88,$66,$68,$66,$66,$66,$66,$66,$66 + +meche_sprite2: + .byte 9,6 + .byte $77,$47,$45,$45,$47,$47,$77,$77,$77 + .byte $74,$ff,$8f,$5f,$55,$77,$77,$77,$77 + .byte $70,$0f,$08,$f5,$08,$77,$77,$67,$67 + .byte $77,$77,$00,$67,$67,$66,$66,$66,$66 + .byte $77,$66,$66,$66,$66,$88,$66,$66,$66 + .byte $66,$66,$66,$66,$66,$88,$66,$66,$66 + +meche_sprite3: + .byte 9,6 + .byte $55,$55,$55,$57,$77,$77,$77,$77,$77 + .byte $f5,$ff,$5f,$5f,$77,$77,$77,$77,$77 + .byte $88,$0f,$05,$f5,$77,$77,$77,$57,$57 + .byte $08,$70,$00,$57,$57,$55,$55,$65,$65 + .byte $57,$55,$55,$65,$65,$88,$66,$66,$66 + .byte $65,$66,$66,$66,$88,$88,$00,$66,$66 + +meche_sprite4: + .byte 9,6 + .byte $00,$70,$77,$77,$77,$77,$77,$77,$77 + .byte $00,$77,$77,$77,$77,$77,$77,$77,$dd + .byte $00,$77,$77,$77,$77,$77,$77,$55,$dd + .byte $57,$57,$57,$57,$57,$76,$57,$66,$6d + .byte $66,$60,$66,$60,$66,$66,$88,$55,$55 + .byte $66,$66,$66,$66,$66,$66,$88,$66,$66 + +meche_sprite5: + .byte 9,6 + .byte $77,$77,$77,$77,$77,$77,$77,$77,$77 + .byte $77,$77,$77,$77,$77,$d7,$dd,$dd,$77 + .byte $77,$77,$77,$55,$57,$dd,$dd,$dd,$d7 + .byte $77,$67,$67,$55,$67,$dd,$dd,$dd,$dd + .byte $66,$66,$66,$65,$66,$6d,$6d,$6d,$66 + .byte $56,$56,$56,$56,$56,$56,$66,$66,$66 + +meche_sprite6: + .byte 9,6 + .byte $77,$77,$77,$77,$77,$77,$77,$77,$77 + .byte $77,$77,$77,$77,$d7,$77,$77,$77,$77 + .byte $77,$77,$77,$77,$dd,$dd,$77,$77,$77 + .byte $77,$77,$88,$dd,$dd,$dd,$67,$66,$66 + .byte $77,$67,$88,$dd,$dd,$dd,$66,$66,$66 + .byte $56,$65,$88,$dd,$dd,$dd,$66,$66,$66 + +meche_sprite7: + .byte 9,6 + .byte $77,$77,$77,$77,$77,$87,$87,$88,$78 + .byte $77,$77,$77,$77,$88,$d8,$77,$77,$77 + .byte $77,$77,$77,$77,$88,$dd,$77,$88,$87 + .byte $77,$77,$77,$67,$88,$dd,$dd,$88,$88 + .byte $67,$67,$66,$66,$88,$dd,$dd,$dd,$dd + .byte $66,$62,$22,$22,$88,$dd,$dd,$dd,$dd + +meche_sprite8: + .byte 9,6 + .byte $77,$77,$77,$77,$77,$77,$77,$77,$87 + .byte $77,$77,$77,$77,$77,$88,$77,$88,$77 + .byte $77,$77,$77,$77,$87,$88,$87,$88,$87 + .byte $77,$77,$77,$77,$88,$88,$88,$88,$88 + .byte $67,$67,$26,$26,$88,$88,$88,$88,$88 + .byte $62,$62,$62,$62,$68,$88,$88,$88,$88 + +meche_sprite9: + .byte 9,6 + .byte $77,$77,$77,$77,$77,$77,$88,$88,$88 + .byte $77,$77,$77,$77,$77,$88,$88,$88,$88 + .byte $77,$77,$77,$77,$87,$88,$88,$88,$88 + .byte $77,$77,$77,$87,$88,$88,$88,$88,$88 + .byte $26,$26,$26,$88,$88,$88,$88,$88,$88 + .byte $62,$62,$62,$88,$88,$88,$88,$88,$88 + +meche_sprite10: + .byte 9,6 + .byte $77,$77,$77,$77,$77,$77,$77,$47,$77 + .byte $77,$77,$77,$77,$77,$74,$f4,$f4,$88 + .byte $77,$77,$77,$77,$57,$57,$ff,$ff,$88 + .byte $77,$77,$55,$55,$77,$77,$77,$87,$88 + .byte $62,$62,$62,$62,$62,$62,$62,$88,$88 + .byte $66,$66,$66,$66,$66,$66,$66,$88,$88 + + + + +linking_filename: + .byte "LINK_NOISE.BTC",0