From da55f12511d7f2da60149991c50f4b502c986ea3 Mon Sep 17 00:00:00 2001 From: Pecusx Date: Fri, 9 May 2025 10:34:39 +0200 Subject: [PATCH] Credits animation - first try --- art/difficulty_texts.asm | 4 +-- lumber.asm | 76 ++++++++++++++++++++++++++++++++++++++- lumber.xex | Bin 24679 -> 24816 bytes 3 files changed, 77 insertions(+), 3 deletions(-) diff --git a/art/difficulty_texts.asm b/art/difficulty_texts.asm index 1cbbac3..e10184a 100644 --- a/art/difficulty_texts.asm +++ b/art/difficulty_texts.asm @@ -1,10 +1,10 @@ dta $00,$00,$00,$00,$26,$27,$30,$2A dta $2B,$2A,$2B,$30,$24,$25,$48,$49 - dta $36,$37,$46,$47,$50,$51,$31,$00 + dta $36,$37,$46,$47,$50,$51,$08,$09 dta $3A,$3B,$3C,$3D,$42,$43,$38,$39 dta $20,$21,$36,$37,$58,$00,$00,$00 dta $00,$00,$00,$00,$26,$27,$30,$2A dta $2B,$2A,$2B,$30,$24,$25,$48,$49 - dta $36,$37,$46,$47,$50,$51,$31,$00 + dta $36,$37,$46,$47,$50,$51,$08,$09 dta $00,$00,$28,$29,$20,$21,$44,$45 dta $50,$51,$31,$00,$00,$00,$00,$00 \ No newline at end of file diff --git a/lumber.asm b/lumber.asm index c8b1ca4..2d822f5 100644 --- a/lumber.asm +++ b/lumber.asm @@ -24,6 +24,7 @@ display = $a000 .zpvar temp .word = $80 .zpvar temp2 .word + .zpvar VBItemp .word .zpvar tempbyte .byte .zpvar SyncByte .byte .zpvar NTSCCounter .byte @@ -134,10 +135,13 @@ dl_title .by $84 ; DLI7 - last clouds :4 .by $05 .by $85 ; DLI8 - horizon - :3 .by $85 ; DLI9 - fonts + .by $85 ; DLI9 - fonts .by $45+$80 difficulty_text_DL .wo difficulty_normal_text + .by $45+$80 + .wo credits_lines + .by $85 .by $41 .wo dl_title ;--------------------------------------------------- @@ -230,8 +234,14 @@ difficulty_normal_text difficulty_easy_text = difficulty_normal_text + 40 credits_texts icl 'art/credits.asm' ; 8 lines, mode 5 +number_of_credits = 4 credits_lines ; 2 lines for credits animations :80 .by 0 + .by 0 ; for second line animation +credit_nr ; number of credit to display (displayed) + .ds 1 +credits_anim_counter ; counter for credits animation/display + .ds 1 ;-------------------------------------------------- .proc vint ;-------------------------------------------------- @@ -292,6 +302,8 @@ titles_VBI sta PCOLR2 sta PCOLR3 ; + jsr CreditsAnimate + ; jmp common_VBI gameover_VBI ; game over screen (StateFlag=3) - set DLI @@ -1917,6 +1929,68 @@ ScoreReady rts .endp ;-------------------------------------------------- +.proc CreditsClear +;-------------------------------------------------- + ldx #80 + lda #0 +@ sta credits_lines,x + dex + bpl @- + sta credit_nr + sta credits_anim_counter + rts +.endp +;-------------------------------------------------- +.proc CreditsAnimate +;-------------------------------------------------- + lda credits_anim_counter + cmp #40 + bcs static_display + ; lets animate + ; first move existing characters + ldx #38 +@ lda credits_lines,x + sta credits_lines+1,x + lda credits_lines+40,x + sta credits_lines+41,x + dex + bpl @- + ; and now write new characters to screen + ; credit text addres calculate + mwa #credits_texts VBItemp + ldx credit_nr + beq write_chars +@ adw VBItemp #80 + dex + bne @- +write_chars + lda #39 + sec + sbc credits_anim_counter + tay + lda (VBItemp),y + sta credits_lines + adw VBItemp #40 + lda (VBItemp),y + sta credits_lines+40 + +static_display + inc credits_anim_counter + lda credits_anim_counter + cmp #200 + bne no_next_credit +next_credit + inc credit_nr + lda credit_nr + cmp #number_of_credits + bne no_credits_loop + mva #0 credit_nr +no_credits_loop + mva #0 credits_anim_counter +no_next_credit + rts +.endp +;-------------------------------------------------- .proc ScoreClear ;-------------------------------------------------- lda #"0" diff --git a/lumber.xex b/lumber.xex index 228377e3f2901bcd8ca7624e845071882f5790c5..0cb431c8101e237251f95560cdf907c783e35c33 100644 GIT binary patch delta 4432 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 efnc4>*x2L4yJ0ND{;L`Q delta 4308 zcmb7H4R93Y8Q$Bwj)qH{FN2HZ$ZyJQ%A=lH)l+x>*&qNm|G#ijGp(v##wN-(=(E z!I%91el2cK6h+sm8?vR*k}Qc9N{ouz60SI(a3EovT5viV;fx;lS3;mx=&AKTRhuE| zshzC9>ytm=@wIw zW$c_0WygH-FhfTi#T#XgXX|Afzh>Gj)+XBwT_=X}(cI!``bjduj%BE5?H)PTsBy@= zQR9;Bba9##bakA}vR7r!V0Lt-GbJ`>*qU!L*mC|Qa*MiX8J)k1{!lm1VCAIsBP$Hl zvVOW5XmV`Ek{n}*7}t^vj&?v1<_%Tm&&?Tr#3$cp=pAN`m_0h{^vS~wwntezw{+@3 zpIl;~8C^{dXncsqjk6f17Mn}y)|$>fU{^BiQyo22m2xF9*O7meW>_(;o!k!glI8|0 zdMlC#muHA>w~R!6H(5y1TQhVmy7aRQ5k{!(lJhRWCN)@Cp>u#uIz zR8{rEw?UVfOzWi!&yb{NI1S03YK>*NYAn+Mxj7-WBc9dnWJ zha`N_5-Pp(hf6a;@m%a0P9sm-QDuW2{!4WthJY!e<1w&HZ}G`pJYCVF<$bT|w~hQ# z<$uXzr2B=9AY2X!*MWH;%xu^tx&d#^xXEUC+2is|FS{(y_p)j70+x>90K&OI{q@;)*Av=Rw^}aifEb&nNHs-$&*+T zAsQ4u3kf&3TB4^&lrf)6^N+Js=8?!PWopg1)6h)I5R+2H$E1)$4@6`SVK6rao`vQ4 zSt2xKd0K4QNChX-JeH;M0*SJNS(0VQ^8cJ=$?~*_CRJuIJO%UrRpx2SL@JnPXr5h} zg(S)j#xId9yT)@YOZQTV?^=|U^Y76-yArENlfIW=JD& z`zHojUVeaHL~HmG4Ktwcr=is}L~4>$lSbCi5CfwK65}!6?2Uxx(lp8leMyu(t$2}| zTGmo0b$-ALJ&j~&)G0;m`3)ziaOOo(j6K{16>=>htV$eHGHWpyE5=z5m~S5Y)QU!Mdjy< zJ<=Z}wJ^3S5P6|2wmuN~tSkn2E$wmt75Cv!;eECO&glDma8}>%gAY_ktR)axJ{ohz zNb&9MgI}nw*e9hU+X9hKkaZn3`btM03Pk#7Mhaah>cF{4vcXTp>gvwU)W5QDiI-w< z$GQWNRY{%G`a5V?^hy2Me|Y4K4?l6U#tr*~TMc*|#UMI>>Fx9)l+W@QavMb9pr|^v zeV!UuM{L68*8I_}fzho$9v$v+C(^(p8Nf_JIF5U4lgH!YDm|XZHgO!DYw^@7;31WR zPB_A<;b`h?&dQ;kt%TbTyh`!tU%v~p!JPeW^2eIoWw#dZZOVe@@;u4ez2?J{1{{!d8)&K$PvJB1;CZE~ITRIuf8KC#v_wMg$`T zqhsGv{<(CDbR16L@;L?XF+b>R5uC*PyQ~+EiR=Inc-#b!BX}6WqXXbP6SSDU2v#H5 zi{Sj*nFJn6f+~So%!x^-&mwi{-Kgjkp*1f$k!q3xzJY<^++sReQtkgYL7V~QZ|)JqcwSI+;VuT zniCrYku9byY6~`ngKwSO4voS~AoewBP4RrgA+bDYG6ioPHbGI3(uuAwtcBwf3qW!_aVY%g(@suBh=P5-r7QRP>VG zQ5&2gy)&d2v3 zfAQ)xY}>pl46r95+h?*JcV~;&a>*@j7rT&82V`pWx!}b!rkn%19b^aSJjiy?Z6NcY zb0FIQzpA-JA$|SgcfEP*yxJ&pAkrsAwQ^)dSwVf+7^4UIM5(YZqQjUs`^DFEA13OQP AIRF3v