diff --git a/games/ootw/ending/ending.s b/games/ootw/ending/ending.s index 00b32109..2b5425f6 100644 --- a/games/ootw/ending/ending.s +++ b/games/ootw/ending/ending.s @@ -179,34 +179,61 @@ wait_until_keypressed: ; 128..254 wait TIME then overlay $C00 with next ; note: pauses *before* flipping to new graphic + + ; dragon moves its head a bit when we arrive + ; repeats twice pulling self + ; then again but slightly to right + ; two more times + ; friend pops up, pauses a while + pickup_sequence: .byte 255 ; load to bg - .word sky_bg_lzsa ; this - .byte 120 ; wait 1 - .word rooftop00_lzsa ; overlay this - .byte 120 ; wait 1 - .word rooftop00_lzsa ; overlay this - .byte 128+110 ; .word rootfop01_lzsa ; next - .byte 128+110 ; .word rootfop02_lzsa ; next - .byte 128+100 ; .word rootfop03_lzsa ; next - .byte 128+100 ; .word onboard_lzsa ; next + .word rooftop_bg_lzsa ; this + .byte 128+110 ; .word rooftop01_lzsa ; next + .byte 128+110 ; .word rooftop02_lzsa ; next + .byte 128+100 ; .word rooftop03_lzsa ; next + .byte 128+110 ; .word rooftop04_lzsa ; next + .byte 128+110 ; .word rooftop05_lzsa ; next + .byte 128+100 ; .word rooftop06_lzsa ; next + .byte 128+110 ; .word rooftop07_lzsa ; next + .byte 128+110 ; .word rooftop08_lzsa ; next + .byte 128+100 ; .word rooftop09_lzsa ; next + .byte 128+100 ; .word rooftop10_lzsa ; next + .byte 128+110 ; .word rooftop11_lzsa ; next + .byte 128+110 ; .word rooftop12_lzsa ; next + .byte 128+100 ; .word rooftop13_lzsa ; next + .byte 128+110 ; .word rooftop14_lzsa ; next + .byte 128+110 ; .word rooftop15_lzsa ; next + .byte 128+100 ; .word rooftop16_lzsa ; next + .byte 128+110 ; .word rooftop17_lzsa ; next + .byte 128+110 ; .word rooftop18_lzsa ; next + .byte 128+100 ; .word rooftop19_lzsa ; next + .byte 128+100 ; .word rooftop20_lzsa ; next + .byte 128+110 ; .word rooftop21_lzsa ; next + .byte 128+110 ; .word rooftop22_lzsa ; next + .byte 128+100 ; .word rooftop23_lzsa ; next + .byte 128+110 ; .word rooftop24_lzsa ; next + .byte 128+110 ; .word rooftop25_lzsa ; next + .byte 128+100 ; .word rooftop26_lzsa ; next + .byte 128+110 ; .word rooftop27_lzsa ; next + .byte 128+110 ; .word rooftop28_lzsa ; next + .byte 128+100 ; .word rooftop29_lzsa ; next .byte 0 ; finish wing_sequence: .byte 255 ; load to bg .word wing_bg_lzsa ; this - .byte 60 - .word left_unfurl1_lzsa + .byte 128+60 ; .word left_unfurl1_lzsa ; next .byte 128+40 ; .word left_unfurl2_lzsa ; next .byte 128+60 ; .word right_unfurl1_lzsa ; next .byte 128+40 ; .word right_unfurl2_lzsa ; next + .byte 128+40 ; .word onboard_lzsa ; next .byte 0 ; finish flying_sequence: .byte 255 ; load to bg .word sky_bg_lzsa ; this - .byte 50 - .word flying01_lzsa + .byte 128+50 ; .word flying01_lzsa ; next .byte 128+50 ; .word flying03_lzsa ; next .byte 128+50 ; .word flying05_lzsa ; next .byte 128+50 ; .word flying07_lzsa ; next @@ -222,7 +249,6 @@ flying_sequence: .byte 128+120 ; .word the_end08_lzsa ; next .byte 128+50 ; .word the_end09_lzsa ; next .byte 128+50 ; .word the_end10_lzsa ; next - .byte 128+50 ; .word blank_lzsa ; next .byte 0 ; finish @@ -236,7 +262,7 @@ flying_sequence: .include "../gr_copy.s" .include "../gr_offsets.s" .include "../gr_overlay.s" -.include "../gr_run_sequence.s" +.include "../gr_run_sequence2.s" .include "../pt3_player/pt3_lib_core.s" .include "../pt3_player/pt3_lib_init.s" diff --git a/games/ootw/ending/graphics/ending/Makefile b/games/ootw/ending/graphics/ending/Makefile index 50587d1f..34325c2e 100644 --- a/games/ootw/ending/graphics/ending/Makefile +++ b/games/ootw/ending/graphics/ending/Makefile @@ -12,22 +12,57 @@ ootw_c16_end.inc: \ left_unfurl1.lzsa left_unfurl2.lzsa \ right_unfurl1.lzsa right_unfurl2.lzsa \ sky_bg.lzsa \ - rooftop00.lzsa rooftop01.lzsa rooftop02.lzsa rooftop03.lzsa onboard.lzsa \ + rooftop_bg.lzsa \ + rooftop01.lzsa rooftop02.lzsa rooftop03.lzsa rooftop04.lzsa \ + rooftop05.lzsa rooftop06.lzsa rooftop07.lzsa rooftop08.lzsa \ + rooftop09.lzsa rooftop10.lzsa rooftop11.lzsa rooftop12.lzsa \ + rooftop13.lzsa rooftop14.lzsa rooftop15.lzsa rooftop16.lzsa \ + rooftop17.lzsa rooftop18.lzsa rooftop19.lzsa rooftop20.lzsa \ + rooftop21.lzsa rooftop22.lzsa rooftop23.lzsa rooftop24.lzsa \ + rooftop25.lzsa rooftop26.lzsa rooftop27.lzsa rooftop28.lzsa \ + rooftop29.lzsa \ + onboard.lzsa \ flying01.lzsa flying03.lzsa flying05.lzsa flying07.lzsa flying09.lzsa \ flying11.lzsa \ the_end01.lzsa the_end02.lzsa the_end03.lzsa the_end04.lzsa the_end05.lzsa \ the_end06.lzsa the_end07.lzsa the_end08.lzsa the_end09.lzsa the_end10.lzsa - echo "wing_bg_lzsa: .incbin \"wing_bg.lzsa\"" > ootw_c16_end.inc + echo "rooftop_bg_lzsa: .incbin \"rooftop_bg.lzsa\"" > ootw_c16_end.inc + echo "rooftop01_lzsa: .incbin \"rooftop01.lzsa\"" >> ootw_c16_end.inc + echo "rooftop02_lzsa: .incbin \"rooftop02.lzsa\"" >> ootw_c16_end.inc + echo "rooftop03_lzsa: .incbin \"rooftop03.lzsa\"" >> ootw_c16_end.inc + echo "rooftop04_lzsa: .incbin \"rooftop04.lzsa\"" >> ootw_c16_end.inc + echo "rooftop05_lzsa: .incbin \"rooftop05.lzsa\"" >> ootw_c16_end.inc + echo "rooftop06_lzsa: .incbin \"rooftop06.lzsa\"" >> ootw_c16_end.inc + echo "rooftop07_lzsa: .incbin \"rooftop07.lzsa\"" >> ootw_c16_end.inc + echo "rooftop08_lzsa: .incbin \"rooftop08.lzsa\"" >> ootw_c16_end.inc + echo "rooftop09_lzsa: .incbin \"rooftop09.lzsa\"" >> ootw_c16_end.inc + echo "rooftop10_lzsa: .incbin \"rooftop10.lzsa\"" >> ootw_c16_end.inc + echo "rooftop11_lzsa: .incbin \"rooftop11.lzsa\"" >> ootw_c16_end.inc + echo "rooftop12_lzsa: .incbin \"rooftop12.lzsa\"" >> ootw_c16_end.inc + echo "rooftop13_lzsa: .incbin \"rooftop13.lzsa\"" >> ootw_c16_end.inc + echo "rooftop14_lzsa: .incbin \"rooftop14.lzsa\"" >> ootw_c16_end.inc + echo "rooftop15_lzsa: .incbin \"rooftop15.lzsa\"" >> ootw_c16_end.inc + echo "rooftop16_lzsa: .incbin \"rooftop16.lzsa\"" >> ootw_c16_end.inc + echo "rooftop17_lzsa: .incbin \"rooftop17.lzsa\"" >> ootw_c16_end.inc + echo "rooftop18_lzsa: .incbin \"rooftop18.lzsa\"" >> ootw_c16_end.inc + echo "rooftop19_lzsa: .incbin \"rooftop19.lzsa\"" >> ootw_c16_end.inc + echo "rooftop20_lzsa: .incbin \"rooftop20.lzsa\"" >> ootw_c16_end.inc + echo "rooftop21_lzsa: .incbin \"rooftop21.lzsa\"" >> ootw_c16_end.inc + echo "rooftop22_lzsa: .incbin \"rooftop22.lzsa\"" >> ootw_c16_end.inc + echo "rooftop23_lzsa: .incbin \"rooftop23.lzsa\"" >> ootw_c16_end.inc + echo "rooftop24_lzsa: .incbin \"rooftop24.lzsa\"" >> ootw_c16_end.inc + echo "rooftop25_lzsa: .incbin \"rooftop25.lzsa\"" >> ootw_c16_end.inc + echo "rooftop26_lzsa: .incbin \"rooftop26.lzsa\"" >> ootw_c16_end.inc + echo "rooftop27_lzsa: .incbin \"rooftop27.lzsa\"" >> ootw_c16_end.inc + echo "rooftop28_lzsa: .incbin \"rooftop28.lzsa\"" >> ootw_c16_end.inc + echo "rooftop29_lzsa: .incbin \"rooftop29.lzsa\"" >> ootw_c16_end.inc + echo "wing_bg_lzsa: .incbin \"wing_bg.lzsa\"" >> ootw_c16_end.inc echo "left_unfurl1_lzsa: .incbin \"left_unfurl1.lzsa\"" >> ootw_c16_end.inc echo "left_unfurl2_lzsa: .incbin \"left_unfurl2.lzsa\"" >> ootw_c16_end.inc echo "right_unfurl1_lzsa: .incbin \"right_unfurl1.lzsa\"" >> ootw_c16_end.inc echo "right_unfurl2_lzsa: .incbin \"right_unfurl2.lzsa\"" >> ootw_c16_end.inc - echo "sky_bg_lzsa: .incbin \"sky_bg.lzsa\"" >> ootw_c16_end.inc - echo "rooftop00_lzsa: .incbin \"rooftop00.lzsa\"" >> ootw_c16_end.inc - echo "rooftop01_lzsa: .incbin \"rooftop01.lzsa\"" >> ootw_c16_end.inc - echo "rooftop02_lzsa: .incbin \"rooftop02.lzsa\"" >> ootw_c16_end.inc - echo "rooftop03_lzsa: .incbin \"rooftop03.lzsa\"" >> ootw_c16_end.inc echo "onboard_lzsa: .incbin \"onboard.lzsa\"" >> ootw_c16_end.inc + echo "sky_bg_lzsa: .incbin \"sky_bg.lzsa\"" >> ootw_c16_end.inc echo "flying01_lzsa: .incbin \"flying01.lzsa\"" >> ootw_c16_end.inc echo "flying03_lzsa: .incbin \"flying03.lzsa\"" >> ootw_c16_end.inc echo "flying05_lzsa: .incbin \"flying05.lzsa\"" >> ootw_c16_end.inc diff --git a/games/ootw/ending/graphics/ending/rooftop02.png b/games/ootw/ending/graphics/ending/rooftop02.png index 6e72b0b8..295ff3a2 100644 Binary files a/games/ootw/ending/graphics/ending/rooftop02.png and b/games/ootw/ending/graphics/ending/rooftop02.png differ diff --git a/games/ootw/ending/graphics/ending/rooftop03.png b/games/ootw/ending/graphics/ending/rooftop03.png index d77d5f26..406df688 100644 Binary files a/games/ootw/ending/graphics/ending/rooftop03.png and b/games/ootw/ending/graphics/ending/rooftop03.png differ diff --git a/games/ootw/ending/graphics/ending/rooftop04.png b/games/ootw/ending/graphics/ending/rooftop04.png index fc61dd51..bcba42a7 100644 Binary files a/games/ootw/ending/graphics/ending/rooftop04.png and b/games/ootw/ending/graphics/ending/rooftop04.png differ diff --git a/games/ootw/ending/graphics/ending/rooftop05.png b/games/ootw/ending/graphics/ending/rooftop05.png index ee7ec42a..83b94a34 100644 Binary files a/games/ootw/ending/graphics/ending/rooftop05.png and b/games/ootw/ending/graphics/ending/rooftop05.png differ diff --git a/games/ootw/ending/graphics/ending/rooftop06.png b/games/ootw/ending/graphics/ending/rooftop06.png index 61d3cbdb..cbb5e004 100644 Binary files a/games/ootw/ending/graphics/ending/rooftop06.png and b/games/ootw/ending/graphics/ending/rooftop06.png differ diff --git a/games/ootw/ending/graphics/ending/rooftop07.png b/games/ootw/ending/graphics/ending/rooftop07.png index fccfde55..e11ca4dc 100644 Binary files a/games/ootw/ending/graphics/ending/rooftop07.png and b/games/ootw/ending/graphics/ending/rooftop07.png differ diff --git a/games/ootw/ending/graphics/ending/rooftop08.png b/games/ootw/ending/graphics/ending/rooftop08.png index 81cdd6da..296bc841 100644 Binary files a/games/ootw/ending/graphics/ending/rooftop08.png and b/games/ootw/ending/graphics/ending/rooftop08.png differ diff --git a/games/ootw/ending/graphics/ending/rooftop09.png b/games/ootw/ending/graphics/ending/rooftop09.png index 5578f418..c96443df 100644 Binary files a/games/ootw/ending/graphics/ending/rooftop09.png and b/games/ootw/ending/graphics/ending/rooftop09.png differ diff --git a/games/ootw/ending/graphics/ending/rooftop10.png b/games/ootw/ending/graphics/ending/rooftop10.png index 8b2e0dfd..0b574fb5 100644 Binary files a/games/ootw/ending/graphics/ending/rooftop10.png and b/games/ootw/ending/graphics/ending/rooftop10.png differ diff --git a/games/ootw/ending/graphics/ending/rooftop11.png b/games/ootw/ending/graphics/ending/rooftop11.png index bc5b1334..b3415b85 100644 Binary files a/games/ootw/ending/graphics/ending/rooftop11.png and b/games/ootw/ending/graphics/ending/rooftop11.png differ diff --git a/games/ootw/ending/graphics/ending/rooftop12.png b/games/ootw/ending/graphics/ending/rooftop12.png index 3be7eb81..b90d1212 100644 Binary files a/games/ootw/ending/graphics/ending/rooftop12.png and b/games/ootw/ending/graphics/ending/rooftop12.png differ diff --git a/games/ootw/ending/graphics/ending/rooftop13.png b/games/ootw/ending/graphics/ending/rooftop13.png index e916e402..3842e4fc 100644 Binary files a/games/ootw/ending/graphics/ending/rooftop13.png and b/games/ootw/ending/graphics/ending/rooftop13.png differ diff --git a/games/ootw/ending/graphics/ending/rooftop14.png b/games/ootw/ending/graphics/ending/rooftop14.png index 6acf4e36..45a0be97 100644 Binary files a/games/ootw/ending/graphics/ending/rooftop14.png and b/games/ootw/ending/graphics/ending/rooftop14.png differ diff --git a/games/ootw/ending/graphics/ending/rooftop15.png b/games/ootw/ending/graphics/ending/rooftop15.png index 0c9463b9..604d7599 100644 Binary files a/games/ootw/ending/graphics/ending/rooftop15.png and b/games/ootw/ending/graphics/ending/rooftop15.png differ diff --git a/games/ootw/ending/graphics/ending/rooftop16.png b/games/ootw/ending/graphics/ending/rooftop16.png index 70f80fdc..3fd3639e 100644 Binary files a/games/ootw/ending/graphics/ending/rooftop16.png and b/games/ootw/ending/graphics/ending/rooftop16.png differ diff --git a/games/ootw/ending/graphics/ending/rooftop17.png b/games/ootw/ending/graphics/ending/rooftop17.png index a2c7950a..1571d0ff 100644 Binary files a/games/ootw/ending/graphics/ending/rooftop17.png and b/games/ootw/ending/graphics/ending/rooftop17.png differ diff --git a/games/ootw/ending/graphics/ending/rooftop18.png b/games/ootw/ending/graphics/ending/rooftop18.png index 5d2ad75e..0888fb0d 100644 Binary files a/games/ootw/ending/graphics/ending/rooftop18.png and b/games/ootw/ending/graphics/ending/rooftop18.png differ diff --git a/games/ootw/ending/graphics/ending/rooftop19.png b/games/ootw/ending/graphics/ending/rooftop19.png index 40d51b8a..345972a3 100644 Binary files a/games/ootw/ending/graphics/ending/rooftop19.png and b/games/ootw/ending/graphics/ending/rooftop19.png differ diff --git a/games/ootw/ending/graphics/ending/rooftop20.png b/games/ootw/ending/graphics/ending/rooftop20.png index 9e6b180c..67dc3bb8 100644 Binary files a/games/ootw/ending/graphics/ending/rooftop20.png and b/games/ootw/ending/graphics/ending/rooftop20.png differ diff --git a/games/ootw/ending/graphics/ending/rooftop21.png b/games/ootw/ending/graphics/ending/rooftop21.png index 0b030ff9..21046db1 100644 Binary files a/games/ootw/ending/graphics/ending/rooftop21.png and b/games/ootw/ending/graphics/ending/rooftop21.png differ diff --git a/games/ootw/ending/graphics/ending/rooftop22.png b/games/ootw/ending/graphics/ending/rooftop22.png index 310c2a7e..33362cd8 100644 Binary files a/games/ootw/ending/graphics/ending/rooftop22.png and b/games/ootw/ending/graphics/ending/rooftop22.png differ diff --git a/games/ootw/ending/graphics/ending/rooftop23.png b/games/ootw/ending/graphics/ending/rooftop23.png index 76cdabe8..ee1d9f5a 100644 Binary files a/games/ootw/ending/graphics/ending/rooftop23.png and b/games/ootw/ending/graphics/ending/rooftop23.png differ diff --git a/games/ootw/ending/graphics/ending/rooftop24.png b/games/ootw/ending/graphics/ending/rooftop24.png index 980f2bb1..ff830b78 100644 Binary files a/games/ootw/ending/graphics/ending/rooftop24.png and b/games/ootw/ending/graphics/ending/rooftop24.png differ diff --git a/games/ootw/ending/graphics/ending/rooftop25.png b/games/ootw/ending/graphics/ending/rooftop25.png index 8b394b41..7b10e629 100644 Binary files a/games/ootw/ending/graphics/ending/rooftop25.png and b/games/ootw/ending/graphics/ending/rooftop25.png differ diff --git a/games/ootw/ending/graphics/ending/rooftop26.png b/games/ootw/ending/graphics/ending/rooftop26.png index ffbb496e..a1c20d92 100644 Binary files a/games/ootw/ending/graphics/ending/rooftop26.png and b/games/ootw/ending/graphics/ending/rooftop26.png differ diff --git a/games/ootw/ending/graphics/ending/rooftop27.png b/games/ootw/ending/graphics/ending/rooftop27.png index 2c4c145c..faebce7a 100644 Binary files a/games/ootw/ending/graphics/ending/rooftop27.png and b/games/ootw/ending/graphics/ending/rooftop27.png differ diff --git a/games/ootw/ending/graphics/ending/rooftop28.png b/games/ootw/ending/graphics/ending/rooftop28.png index 8385ecdc..214dc581 100644 Binary files a/games/ootw/ending/graphics/ending/rooftop28.png and b/games/ootw/ending/graphics/ending/rooftop28.png differ diff --git a/games/ootw/ending/graphics/ending/rooftop29.png b/games/ootw/ending/graphics/ending/rooftop29.png index 9fcc3957..3d66cf86 100644 Binary files a/games/ootw/ending/graphics/ending/rooftop29.png and b/games/ootw/ending/graphics/ending/rooftop29.png differ diff --git a/games/ootw/ending/graphics/ending/rooftop_bg.png b/games/ootw/ending/graphics/ending/rooftop_bg.png index 5a9f8ea0..86d68918 100644 Binary files a/games/ootw/ending/graphics/ending/rooftop_bg.png and b/games/ootw/ending/graphics/ending/rooftop_bg.png differ diff --git a/games/ootw/gr_run_sequence.s b/games/ootw/gr_run_sequence.s index 02078f0c..faece956 100644 --- a/games/ootw/gr_run_sequence.s +++ b/games/ootw/gr_run_sequence.s @@ -36,10 +36,8 @@ reload_image: jmp seq_stuff not_reload: - ; load delay - tax ; if negative, no need to load pointer - bmi no_set_image_ptr ; - + tax ; load delay into X + bmi no_set_image_ptr ; if negative, no need to load pointer get_image_ptr: iny diff --git a/games/ootw/gr_run_sequence2.s b/games/ootw/gr_run_sequence2.s new file mode 100644 index 00000000..87edd801 --- /dev/null +++ b/games/ootw/gr_run_sequence2.s @@ -0,0 +1,144 @@ + ;================================= + ; Display a sequence of images + ;================================= + ; quit if escape pressed? + + ; this version (as opposed to original) the time delay is + ; *after* showing the image + + ; pattern is TIME, PTR + ; if time==0, then done + ; if time==255, reload background $C00 with PTR, no delay + ; if time==0..127 overlay PTR over $C00, then wait TIME + ; if time==128..254, overlay current over $C00, then wait TIME-128 + ; assumes LZSA pointer points to image + ; basically after decoding one, input points to next + + +run_sequence: + ldy #0 + +run_sequence_loop: + lda (INTRO_LOOPL),Y ; get time + beq run_sequence_done ; if zero, then done + + cmp #$ff ; if $ff, then load image to $c00 + bne not_reload + + ; reload background +reload_bg: + iny + lda (INTRO_LOOPL),Y + sta getsrc_smc+1 ; LZSA_SRC_LO + iny + lda (INTRO_LOOPL),Y + sta getsrc_smc+2 ; LZSA_SRC_HI + iny + sty INTRO_LOOPER ; save for later + lda #$0c ; load to $c00 + jsr decompress_lzsa2_fast + jmp seq_stuff + +not_reload: + tax ; load delay into X + bmi no_set_image_ptr ; if negative, no need to load pointer + + ; need to get image pointer from data stream +get_image_ptr: + iny + lda (INTRO_LOOPL),Y + sta getsrc_smc+1 ; LZSA_SRC_LO + iny + lda (INTRO_LOOPL),Y + sta getsrc_smc+2 ; LZSA_SRC_HI + +no_set_image_ptr: + + ; decompress image + + txa + pha ; save X on stack + + iny + sty INTRO_LOOPER ; save for later + lda #$10 ; load to $1000 + jsr decompress_lzsa2_fast + + ; display image and page flip + + jsr gr_overlay + jsr page_flip + + pla ; restore X from stack + + and #$7f + tax + cpx #1 + beq seq_no_wait + + jsr long_wait +seq_no_wait: + +seq_stuff: + ldy INTRO_LOOPER + + ; exit early if escape pressed + + lda KEYPRESS + cmp #27+$80 + beq run_sequence_done + bit KEYRESET + + jmp run_sequence_loop +run_sequence_done: + rts + + + ;==================================== + ; Display a sequence of images 40x40 + +run_sequence_40x40: + ldy #0 + +run_sequence_40x40_loop: + lda (INTRO_LOOPL),Y ; get time + beq run_sequence_40x40_done + tax + + jsr long_wait + + iny + + lda (INTRO_LOOPL),Y + sta getsrc_smc+1 ; LZSA_SRC_LO + + iny + lda (INTRO_LOOPL),Y + sta getsrc_smc+2 ; LZSA_SRC_HI + + iny + sty INTRO_LOOPER ; save for later + lda #$10 ; load to $1000 + jsr decompress_lzsa2_fast + + jsr gr_overlay_40x40 + jsr page_flip + ldy INTRO_LOOPER + + jmp run_sequence_40x40_loop +run_sequence_40x40_done: + rts + + + + + ;===================== + ; long(er) wait + ; waits approximately ?? ms + +long_wait: + lda #64 + jsr WAIT ; delay + dex + bne long_wait + rts