Level and Over screens

This commit is contained in:
Pecusx
2024-12-04 21:56:37 +01:00
parent 4dc88f53d4
commit 5446dfda7f
2 changed files with 94 additions and 5 deletions
+94 -5
View File
@@ -60,6 +60,21 @@ DLracquetAddr0
.by JVB .by JVB
.wo dl .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 racquetDisp
:42 .byte $0 :42 .byte $0
.byte $80, $80, $80, $80, $80 .byte $80, $80, $80, $80, $80
@@ -71,7 +86,11 @@ statusBuffer
score=statusBuffer+33 score=statusBuffer+33
HiScore=statusBuffer+17 HiScore=statusBuffer+17
Lives=statusBuffer+8 Lives=statusBuffer+8
LevelText
dta d" entering level 000 "
OverText
dta d" GAME OVER "
dta d" YOUR SCORE: 000000 "
;-------------------------------------------------- ;--------------------------------------------------
icl 'fileio.asm' icl 'fileio.asm'
;-------------------------------------------------- ;--------------------------------------------------
@@ -221,8 +240,10 @@ JNotFire
;-------------------------------------------------- ;--------------------------------------------------
main main
;-------------------------------------------------- ;--------------------------------------------------
jsr MakeDarkScreen
jsr initialize jsr initialize
jsr StartScreen jsr StartScreen
jsr MakeDarkScreen
mva #$0 AutoPlay mva #$0 AutoPlay
jsr ScoreClear jsr ScoreClear
@@ -231,12 +252,16 @@ main
mva #$0 LevelType mva #$0 LevelType
jsr initialize.ClearTables jsr initialize.ClearTables
jsr BuildLevelFromBuffer jsr BuildLevelFromBuffer
jsr LevelScreen
gameloop gameloop
jsr MainScreen
jsr PlayLevel jsr PlayLevel
bit EndLevelFlag ; reason for end level bit EndLevelFlag ; reason for end level
bmi EndOfLife ; end of life :) bmi EndOfLife ; end of life :)
; end of level (level up) ; end of level (level up)
jsr MakeDarkScreen
jsr NextLevel jsr NextLevel
jsr LevelScreen
jmp gameloop jmp gameloop
EndOfLife EndOfLife
dec Lives ; decrease Lives dec Lives ; decrease Lives
@@ -248,6 +273,7 @@ EndOfLife
gameOver gameOver
;game over ;game over
jsr HiScoreCheckWrite jsr HiScoreCheckWrite
jsr GameOverScreen
@ lda RANDOM @ lda RANDOM
and #$07 and #$07
sta COLPM0 sta COLPM0
@@ -259,6 +285,15 @@ gameOver
;-------------------------------------------------- ;--------------------------------------------------
.proc StartScreen .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 mva #$ff AutoPlay
sta LevelType ; Title sta LevelType ; Title
mva #"9" Lives mva #"9" Lives
@@ -314,7 +349,61 @@ level000
jmp loadNext jmp loadNext
.endp .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 .proc PlayLevel
;-------------------------------------------------- ;--------------------------------------------------
@@ -1172,10 +1261,10 @@ eXistenZstackFill
;VBI ;VBI
mva #screenWidth/2 racquetPos mva #screenWidth/2 racquetPos
vmain vint,7 vmain vint,7
lda #$0 ;+GTIACTLBITS ;lda #$0 ;+GTIACTLBITS
; sta PRIOR ; sta PRIOR
sta GPRIOR ;sta GPRIOR
sta COLBAKS ;sta COLBAKS
mva #1 color mva #1 color
BIN
View File
Binary file not shown.