From 9e4b89bfa4a276f907271203f3875bce4353cdf9 Mon Sep 17 00:00:00 2001 From: Pecusx Date: Fri, 4 Aug 2023 09:24:29 +0200 Subject: [PATCH] Fade In/Out and Get Key in menu --- artwork/CartMenu/menu.asm | 89 ++++++++++++++++++++++++++++++++++++-- artwork/CartMenu/menu.xex | Bin 2364 -> 2487 bytes 2 files changed, 86 insertions(+), 3 deletions(-) diff --git a/artwork/CartMenu/menu.asm b/artwork/CartMenu/menu.asm index 51dd0b6..e74f837 100644 --- a/artwork/CartMenu/menu.asm +++ b/artwork/CartMenu/menu.asm @@ -35,13 +35,27 @@ TnotVisible lda #@dmactl(narrow|dma) ; narrow screen width, DL on, P/M off sta dmactls jsr WaitOneFrame - jsr MakeColors + jsr FadeIn jsr WaitOneFrame + + jsr GetKey + + jsr WaitOneFrame + jsr FadeOut + VMAIN XITVBV,7 ; jsr SetVBL (off user proc) + LDA #%01000000 ; DLI off + STA NMIEN + lda #0 ; DL off, P/M off + sta dmactls + jsr WaitOneFrame + + jmp main + stop jmp stop ;-------------------------------------------------- -.proc MakeColors +.proc FadeIn ldy #15 FirstLoop ldx #3 @@ -58,6 +72,25 @@ ColorOK inc TetryxColorS TcolorOK jsr WaitOneFrame + dey + bpl FirstLoop + rts +.endp +;-------------------------------------------------- +.proc FadeOut + ldy #15 +FirstLoop + ldx #3 +@ lda COLOR0-1,x + beq ColorOK + dec COLOR0-1,x +ColorOK + dex + bpl @- + lda TetryxColorS + beq TcolorOK + dec TetryxColorS +TcolorOK jsr WaitOneFrame dey bpl FirstLoop @@ -96,7 +129,7 @@ DLIinterruptNone jsr _SetDLIproc .endm .proc _SetDLIproc - LDA #$C0 + LDA #%11000000 STY VDSLST STX VDSLST+1 STA NMIEN @@ -175,4 +208,54 @@ MenuOptions dta d" G - Start Game " dta d" T - Start Tetryx Game " +;-------------------------------------------------- +.proc GetKey +; waits for pressing a key and returns pressed value in A +; result: A=keycode +;-------------------------------------------------- + jsr WaitForKeyRelease +getKeyAfterWait + lda SKSTAT + cmp #$ff + beq checkJoyGetKey ; key not pressed, check Joy + lda kbcode + cmp #@kbcode._none + beq checkJoyGetKey + and #$3f ;CTRL and SHIFT ellimination + bne getkeyend ; allways +checkJoyGetKey + ;fire + lda STRIG0 + beq JoyButton +checkStarttKey + lda CONSOL + and #%00000001 ; Start + beq StartPressed + bne getKeyAfterWait +StartPressed +JoyButton + lda #@kbcode._space ; Start key +getkeyend + ldy #0 + sty ATRACT ; reset atract mode + rts +.endp +;-------------------------------------------------- +.proc WaitForKeyRelease +;-------------------------------------------------- +StillWait + lda STRIG0 + beq StillWait + lda SKSTAT + cmp #$ff + bne StillWait + lda CONSOL + and #%00000001 ; Start only + cmp #%00000001 + bne StillWait +KeyReleased + rts +.endp + + run main diff --git a/artwork/CartMenu/menu.xex b/artwork/CartMenu/menu.xex index 3feae55d9e5ec5820e2eb9bd3c092d740e81519b..9e76bb97df526c075094879ced46eec85d981bb0 100644 GIT binary patch delta 261 zcmdlZv|X6>|9=LBRU28^Sr~6j=4DZ+zu#-Xv{I$lkZHluMJg-V6=I$&*sw@N;f%^k z#a?|Tg&Qgg#VQ~&TN6Z1QCX0*=m}WaN{3#)D=QfwihLMUd1g8zre{q+y&VFN5}*n`Fy8~oeqGx1fs^SNMDqFMDi%{FG1bW%Srqth zYZw$bz19$55@4FZV5FsU(dt0-%bbB&i1=T;!m2q9h=Z zB&i{dF9IN)Bp^{FAe|&kP9&fYq659d0^OV_@B{wC0?H8brGmwQ@B-$7Ae|&2og|15 x-;=cjH3Hitlko%?k_814aPUW