From 5446dfda7f09210e8cc96ddd8e8b7cbab015b1b3 Mon Sep 17 00:00:00 2001 From: Pecusx Date: Wed, 4 Dec 2024 21:56:37 +0100 Subject: [PATCH] Level and Over screens --- averybreakout.asm | 99 +++++++++++++++++++++++++++++++++++++++++++--- averybreakout.xex | Bin 6021 -> 6366 bytes 2 files changed, 94 insertions(+), 5 deletions(-) diff --git a/averybreakout.asm b/averybreakout.asm index b4d88c6..48448d3 100644 --- a/averybreakout.asm +++ b/averybreakout.asm @@ -60,6 +60,21 @@ DLracquetAddr0 .by JVB .wo dl ;--------------------------------------------------- +dl_level + .by SKIP8,SKIP8,SKIP8,SKIP8,SKIP8,SKIP8,SKIP8,SKIP8 + dta 6+LMS,a(LevelText) + .by JVB + .wo dl_level +;--------------------------------------------------- +;--------------------------------------------------- +dl_over + .by SKIP8,SKIP8,SKIP8,SKIP8,SKIP8,SKIP8,SKIP8,SKIP8 + dta 6+LMS,a(OverText) + .by SKIP8 + dta 6 + .by JVB + .wo dl_over +;--------------------------------------------------- racquetDisp :42 .byte $0 .byte $80, $80, $80, $80, $80 @@ -71,7 +86,11 @@ statusBuffer score=statusBuffer+33 HiScore=statusBuffer+17 Lives=statusBuffer+8 - +LevelText + dta d" entering level 000 " +OverText + dta d" GAME OVER " + dta d" YOUR SCORE: 000000 " ;-------------------------------------------------- icl 'fileio.asm' ;-------------------------------------------------- @@ -221,8 +240,10 @@ JNotFire ;-------------------------------------------------- main ;-------------------------------------------------- + jsr MakeDarkScreen jsr initialize jsr StartScreen + jsr MakeDarkScreen mva #$0 AutoPlay jsr ScoreClear @@ -231,12 +252,16 @@ main mva #$0 LevelType jsr initialize.ClearTables jsr BuildLevelFromBuffer + jsr LevelScreen gameloop + jsr MainScreen jsr PlayLevel bit EndLevelFlag ; reason for end level bmi EndOfLife ; end of life :) ; end of level (level up) + jsr MakeDarkScreen jsr NextLevel + jsr LevelScreen jmp gameloop EndOfLife dec Lives ; decrease Lives @@ -248,6 +273,7 @@ EndOfLife gameOver ;game over jsr HiScoreCheckWrite + jsr GameOverScreen @ lda RANDOM and #$07 sta COLPM0 @@ -259,6 +285,15 @@ gameOver ;-------------------------------------------------- .proc StartScreen ;-------------------------------------------------- + jsr MakeDarkScreen + mwa #dl dlptrs + lda #$0 ;+GTIACTLBITS +; sta PRIOR + sta GPRIOR + sta COLBAKS + lda #%00110010 ; normal screen width, DL on, P/M off + sta dmactls + pause 1 mva #$ff AutoPlay sta LevelType ; Title mva #"9" Lives @@ -314,7 +349,61 @@ level000 jmp loadNext .endp - +;-------------------------------------------------- +.proc LevelScreen +;-------------------------------------------------- + jsr MakeDarkScreen + ldx #2 +@ lda LevelNumber,x + sec + sbc #$20 + sta LevelText+16,x + dex + bpl @- + mwa #dl_level dlptrs + lda #%00110010 ; normal screen width, DL on, P/M off + sta dmactls + pause 40 + rts +.endp +;-------------------------------------------------- +.proc GameOverScreen +;-------------------------------------------------- + jsr MakeDarkScreen + ldx #5 +@ lda score,x + sta OverText+33,x + dex + bpl @- + mwa #dl_over dlptrs + lda #%00110010 ; normal screen width, DL on, P/M off + sta dmactls + pause 80 + + rts +.endp +;-------------------------------------------------- +.proc MainScreen +;-------------------------------------------------- + jsr MakeDarkScreen + mwa #dl dlptrs + lda #$0 ;+GTIACTLBITS +; sta PRIOR + sta GPRIOR + sta COLBAKS + lda #%00110010 ; normal screen width, DL on, P/M off + sta dmactls + pause 1 + rts +.endp +;-------------------------------------------------- +.proc MakeDarkScreen +;-------------------------------------------------- + mva #0 dmactls ; dark screen + ; and wait one frame :) + pause 1 + rts +.endp ;-------------------------------------------------- .proc PlayLevel ;-------------------------------------------------- @@ -1172,10 +1261,10 @@ eXistenZstackFill ;VBI mva #screenWidth/2 racquetPos vmain vint,7 - lda #$0 ;+GTIACTLBITS + ;lda #$0 ;+GTIACTLBITS ; sta PRIOR - sta GPRIOR - sta COLBAKS + ;sta GPRIOR + ;sta COLBAKS mva #1 color diff --git a/averybreakout.xex b/averybreakout.xex index ac1e9ddaf9805069d552eb9c7ec089776de49440..2718128478e21c64591465876387d78a6b7ceaee 100644 GIT binary patch literal 6366 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 delta 2280 zcmds1Z)j6j6i;5#Bu)PqJHgaVe7qN%yjX11*|c?j@S4@1RNHM2y5K9`!gC9P=*EMVO<4*pkFmj26vwnEvJj?X{YQ6_s#W)OFxdNW z-}&8p&!2nF@0@F!aD#PmQAhvfq0u~(wI--Ck=dc6#ndXd_&c??I%6XS2^q+C$!8!) z>@wI*cZ;G&{KBwPFN)U;wUtMBS>RUKJ3PYYyl5~o5kE(-b`Tww==WTtR>(8-4=$n; z_8|H!NB`!gJ00}_l998%>Q05?u zSOWd$#$GeRIl|+v*s=4M{qfkbNjlQv4l8?5p$1%h;HJCX;J&DFmJ1U-SjkXo3zEEO z#`Yi(bPy*Vr0=;V2Gy)zGX(ma>PkP3s?C1ftseB_9(BNvd(}=K?pMcrIId3n@PK;T zhZAauw|D4sW{n~`Da22zTX>vQTX^hFsXKT)tnxe-PYz~>C$mY6+fJ$b5l*Z7cj6Hl zbNb0_di!CYxX+Tl{6EV4)(`&WaG#=tsto_87 zO3OoBAr~ze;BMg0^`(Qt+5<}mD{_|7f!v#GOcrm52h3}{sk$bjyV;NXVU6Q>AXR7o zIBv7OzFEWrcmUP}PQWGcw0U*iKXos}lO@$xuHG@%M#^1E5NU?F5Sj}j5UWCf0!N*4 zET`96PaZ3vXLTZac&Z$gR{G^`so5|0NC*9LuQcF?^4rX0Q5y4UWpHWC2OCnS55(Ig zaoRUAcydtgP9^2u)bMK-=#mM!9~9&`=*k1qv`cv5iA@G?){JP98es6I{I)PO} z0EIKHGuqR@RwpnNkQ{A0HPN$ND@c75Qg6+spCvvF(o&|wGE{YNmjEcPng+CHn}dWm|5Wg1IC2~20RK683;po z#6WDqV+H~io-iV3t&42u#u~Y}?E&z<+Gm->M}*qH(jJl_z7AKf2A}~ z+>>%jXaFR5C_+bsP1N`|8J0{9>8PW6N~r#Y7=$f6X%$*{@}{tZC%Xim&*jt-af zHVi0rmiQfTTcCASloidi~aQmv&XS zmh!OV?6OPhp=X_L-=GwIT z^F4A;u132}&Iv&Tv4;?hDu{u&z%AJfUSDp6MTiLSv@e`*MoKe^6k z09pVxp}ZHBCgEOB2!@^)NxtIHBX@C{c<{)$ZZwsiPixfth&+-*no&;YyxJYQjiswu zPZeFydW-%|`?3(sSqp8M@~eAM!8BuA2w3W?gJ@%@I4*En2_ZbPgqK#koIVspkQjO7 zPzXV8?1?3uG~`1lP`06VsD0VPrh+xM8OEQbey$yfS1Nb4w6x)uDd+XDQ}#Uj zd$jLL+4pLv!SjU?tqh{LkWO0Vbjc<71M-DS2?*SGpE+FhhtcRo=Xmkm8V8k1iCs0` fNb0}++Wsx~JTG>=;f?VBlkd!tRUaCuAKAYFrcuE>