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
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
@ -349,8 +360,8 @@ changeAngle:
tax
jsr playerDeltaAngle
ldy currentPlayer
jsr renderPlayerHeader
; ldy currentPlayer
; jsr renderPlayerHeader
stz angleDeltaRequested
rts
@ -366,8 +377,8 @@ changePower:
tax
jsr playerDeltaPower
ldy currentPlayer
jsr renderPlayerHeader
; ldy currentPlayer
; jsr renderPlayerHeader
stz powerDeltaRequested
rts

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

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

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: