Compare commits

...

2 Commits

Author SHA1 Message Date
blondie7575 d52225a5d8 Fixed some minor header rendering bugs 2023-07-25 14:45:29 -07:00
blondie7575 2927cb0c68 Game/menu transitions working
- Also cleaned up key mapping
- Fixed a bug in VRAM pointer calculation
2023-07-25 14:33:23 -07:00
5 changed files with 72 additions and 52 deletions

View File

@ -25,6 +25,7 @@ renderAnimation:
phx ; Calculate VRAM position phx ; Calculate VRAM position
jsr vramPtr jsr vramPtr
BREAK
cpx #$ffff cpx #$ffff
beq renderAnimationSkip beq renderAnimationSkip
stx SCRATCHL2 stx SCRATCHL2

View File

@ -41,8 +41,12 @@ beginGameplay:
jsr compileTerrain jsr compileTerrain
jsr clipTerrain jsr clipTerrain
jsr renderTerrain
; Set up palette for terrain and players jsr renderInventory
jsr renderPlayers
; Fade in from menu
lda #basePalette lda #basePalette
sta PARAML2 sta PARAML2
jsr paletteFade jsr paletteFade
@ -191,7 +195,14 @@ gameplayLoopEndFrame:
gameplayLoopEndFrameCont: gameplayLoopEndFrameCont:
lda quitRequested lda quitRequested
beq gameplayLoopContinue beq gameplayLoopContinue
jmp quitGame
; Transition back to menu
stz quitRequested
lda #skyPalette
sta PARAML2
jsr paletteFade
jmp titleScreen
gameplayLoopContinue: gameplayLoopContinue:
jmp gameplayLoop jmp gameplayLoop
@ -349,8 +360,8 @@ changeAngle:
tax tax
jsr playerDeltaAngle jsr playerDeltaAngle
ldy currentPlayer ; ldy currentPlayer
jsr renderPlayerHeader ; jsr renderPlayerHeader
stz angleDeltaRequested stz angleDeltaRequested
rts rts
@ -366,8 +377,8 @@ changePower:
tax tax
jsr playerDeltaPower jsr playerDeltaPower
ldy currentPlayer ; ldy currentPlayer
jsr renderPlayerHeader ; jsr renderPlayerHeader
stz powerDeltaRequested stz powerDeltaRequested
rts rts

41
input.s
View File

@ -28,6 +28,7 @@ kbdScanTitle:
beq kbdScanEnterTitle beq kbdScanEnterTitle
cmp #(32 + $80) cmp #(32 + $80)
beq kbdScanSpaceTitle beq kbdScanSpaceTitle
bra kbdScanDebugPiggyback
kbdScanTitleDone: kbdScanTitleDone:
BITS16 BITS16
@ -80,16 +81,16 @@ kbdScanGameplay:
beq kbdScanLeftArrow beq kbdScanLeftArrow
cmp #(21 + $80) cmp #(21 + $80)
beq kbdScanRightArrow beq kbdScanRightArrow
cmp #('q' + $80) cmp #(11 + $80)
beq kbdScanQ beq kbdScanUpArrow
cmp #('a' + $80) cmp #(10 + $80)
beq kbdScanA beq kbdScanDownArrow
cmp #('z' + $80) cmp #(27 + $80)
beq kbdScanZ beq kbdScanESC
cmp #('s' + $80) cmp #(',' + $80)
beq kbdScanS beq kbdScanComma
cmp #('x' + $80) cmp #('.' + $80)
beq kbdScanX beq kbdScanPeriod
cmp #(' ' + $80) cmp #(' ' + $80)
beq kbdScanSpace beq kbdScanSpace
cmp #(9 + $80) cmp #(9 + $80)
@ -107,8 +108,8 @@ kbdScanDebug:
sta KBDSTROBE sta KBDSTROBE
kbdScanDebugPiggyback: kbdScanDebugPiggyback:
cmp #(27 + $80) cmp #('`' + $80)
beq kbdScanESC beq kbdScanBackQuote
cmp #(127 + $80) cmp #(127 + $80)
beq kbdScanDEL beq kbdScanDEL
cmp #('=' + $80) cmp #('=' + $80)
@ -120,7 +121,7 @@ kbdScanDebugPiggyback:
; Gameplay Key Handlers ; Gameplay Key Handlers
; ;
kbdScanRightArrow: kbdScanPeriod:
BITS16 BITS16
lda mapScrollPos lda mapScrollPos
cmp #VISIBLETERRAINWIDTH-VISIBLETERRAINWINDOW cmp #VISIBLETERRAINWIDTH-VISIBLETERRAINWINDOW
@ -132,7 +133,7 @@ kbdScanRightArrow:
sta mapScrollRequested sta mapScrollRequested
rts rts
kbdScanLeftArrow: kbdScanComma:
BITS16 BITS16
lda mapScrollPos lda mapScrollPos
@ -144,32 +145,32 @@ kbdScanLeftArrow:
sta mapScrollRequested sta mapScrollRequested
rts rts
kbdScanQ: kbdScanESC:
BITS16 BITS16
lda #1 lda #1
sta quitRequested sta quitRequested
rts rts
kbdScanA: kbdScanLeftArrow:
BITS16 BITS16
lda #2 lda #2
sta angleDeltaRequested sta angleDeltaRequested
rts rts
kbdScanZ: kbdScanRightArrow:
BITS16 BITS16
lda #-2 lda #-2
sta angleDeltaRequested sta angleDeltaRequested
rts rts
kbdScanS: kbdScanUpArrow:
BITS16 BITS16
lda #1 lda #1
sta powerDeltaRequested sta powerDeltaRequested
rts rts
kbdScanX: kbdScanDownArrow:
BITS16 BITS16
lda #-1 lda #-1
sta powerDeltaRequested sta powerDeltaRequested
@ -181,7 +182,7 @@ kbdScanSpace:
sta fireRequested sta fireRequested
rts rts
kbdScanESC: kbdScanBackQuote:
BITS16 BITS16
lda #1 lda #1
sta breakpoint sta breakpoint

View File

@ -67,19 +67,19 @@ renderProgressBar:
BITS8A BITS8A
lda #BORDER ; Left border lda #BORDER ; Left border
sta VRAMBANK,x sta SHADOWVRAMBANK,x
sta VRAMBANK+160,x sta SHADOWVRAMBANK+160,x
sta VRAMBANK+160*2,x sta SHADOWVRAMBANK+160*2,x
sta VRAMBANK+160*3,x sta SHADOWVRAMBANK+160*3,x
sta VRAMBANK+160*4,x sta SHADOWVRAMBANK+160*4,x
sta VRAMBANK+160*5,x sta SHADOWVRAMBANK+160*5,x
sta VRAMBANK+160*6,x sta SHADOWVRAMBANK+160*6,x
sta VRAMBANK+160*7,x sta SHADOWVRAMBANK+160*7,x
inx inx
renderProgressBarLoop: renderProgressBarLoop:
lda #BORDER lda #BORDER
sta VRAMBANK,x ; Top border sta SHADOWVRAMBANK,x ; Top border
sta VRAMBANK+160*7,x ; Bottom border sta SHADOWVRAMBANK+160*7,x ; Bottom border
cpy currentProgressBar+CBR_CURRENT cpy currentProgressBar+CBR_CURRENT
bcs renderProgressBarEmpty bcs renderProgressBarEmpty
@ -87,12 +87,12 @@ renderProgressBarLoop:
lda #FILL lda #FILL
renderProgressBarFill: renderProgressBarFill:
sta VRAMBANK+160*1,x ; Bar sta SHADOWVRAMBANK+160*1,x ; Bar
sta VRAMBANK+160*2,x sta SHADOWVRAMBANK+160*2,x
sta VRAMBANK+160*3,x sta SHADOWVRAMBANK+160*3,x
sta VRAMBANK+160*4,x sta SHADOWVRAMBANK+160*4,x
sta VRAMBANK+160*5,x sta SHADOWVRAMBANK+160*5,x
sta VRAMBANK+160*6,x sta SHADOWVRAMBANK+160*6,x
inx inx
iny iny
@ -100,14 +100,14 @@ renderProgressBarFill:
bne renderProgressBarLoop bne renderProgressBarLoop
lda #BORDER ; Right border lda #BORDER ; Right border
sta VRAMBANK,x sta SHADOWVRAMBANK,x
sta VRAMBANK+160,x sta SHADOWVRAMBANK+160,x
sta VRAMBANK+160*2,x sta SHADOWVRAMBANK+160*2,x
sta VRAMBANK+160*3,x sta SHADOWVRAMBANK+160*3,x
sta VRAMBANK+160*4,x sta SHADOWVRAMBANK+160*4,x
sta VRAMBANK+160*5,x sta SHADOWVRAMBANK+160*5,x
sta VRAMBANK+160*6,x sta SHADOWVRAMBANK+160*6,x
sta VRAMBANK+160*7,x sta SHADOWVRAMBANK+160*7,x
BITS16 BITS16
RESTORE_AXY RESTORE_AXY

View File

@ -26,6 +26,7 @@ titleScreen:
lda #%10000000 ; Set all SCBs to 320, no interrupts, palette 0 lda #%10000000 ; Set all SCBs to 320, no interrupts, palette 0
jsr initSCBs jsr initSCBs
stz leftScreenEdge
; Copy title screen art from where it was loaded in bank 6 ; Copy title screen art from where it was loaded in bank 6
; This isn't fast, but doesn't need to be ; This isn't fast, but doesn't need to be
@ -120,6 +121,7 @@ titleScreenStillCat2:
titleScreenKeyboard: titleScreenKeyboard:
; Check for selection ; Check for selection
jsr kbdScanTitle jsr kbdScanTitle
jsr kbdScanDebug
lda menuActionRequested lda menuActionRequested
beq titleScreenMainLoopEndFrame beq titleScreenMainLoopEndFrame
@ -163,6 +165,11 @@ titleScreenMainLoopEndFrame:
jmp titleScreenMainLoop jmp titleScreenMainLoop
titleScreenBeginGame: titleScreenBeginGame:
; Transition to gameplay
stz menuActionRequested
lda #skyPalette
sta PARAML2
jsr paletteFade
jmp beginGameplay jmp beginGameplay
titleScreenQuit: titleScreenQuit:
@ -171,9 +178,9 @@ titleScreenQuit:
titleAnimationCounter: titleAnimationCounter:
.word 0 .word 0
titleAnimationPos0: titleAnimationPos0:
.word 130,120 .word 114,120
titleAnimationPos1: titleAnimationPos1:
.word 208,120 .word 192,120
animationDelay0: animationDelay0:
.word CAT_DELAY/2 .word CAT_DELAY/2
animationDelay1: animationDelay1: