Game/menu transitions working

- Also cleaned up key mapping
- Fixed a bug in VRAM pointer calculation
This commit is contained in:
blondie7575 2023-07-25 14:33:23 -07:00
parent 5eb32268b9
commit 2927cb0c68
4 changed files with 44 additions and 24 deletions

View File

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

View File

@ -41,8 +41,12 @@ beginGameplay:
jsr compileTerrain
jsr clipTerrain
jsr renderTerrain
; Set up palette for terrain and players
jsr renderInventory
jsr renderPlayers
; Fade in from menu
lda #basePalette
sta PARAML2
jsr paletteFade
@ -191,7 +195,14 @@ gameplayLoopEndFrame:
gameplayLoopEndFrameCont:
lda quitRequested
beq gameplayLoopContinue
jmp quitGame
; Transition back to menu
stz quitRequested
lda #skyPalette
sta PARAML2
jsr paletteFade
jmp titleScreen
gameplayLoopContinue:
jmp gameplayLoop

41
input.s
View File

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

View File

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