mirror of
https://github.com/blondie7575/GSCats.git
synced 2024-05-28 15:41:28 +00:00
130 lines
2.2 KiB
ArmAsm
130 lines
2.2 KiB
ArmAsm
|
;
|
||
|
; titleScreen
|
||
|
; A friendly place to start the game
|
||
|
;
|
||
|
; Created by Quinn Dunki on 7/23/23
|
||
|
;
|
||
|
|
||
|
.a16
|
||
|
.i16
|
||
|
|
||
|
titlePalette:
|
||
|
.word $06af,$0072,$0072,$0861,$0c93,$0eb4,$0d66,$0f9a,$0777,$0d00,$0bbb,$ddd,$007b,$0a5b,$0000,$0fff
|
||
|
|
||
|
TITLE_ANIMATION_FRAMES = 5
|
||
|
CAT_DELAY = 300
|
||
|
|
||
|
|
||
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||
|
; titleScreen
|
||
|
;
|
||
|
; Shows the title screen and main game menu
|
||
|
;
|
||
|
titleScreen:
|
||
|
|
||
|
lda #%10000000 ; Set all SCBs to 320, no interrupts, palette 0
|
||
|
jsr initSCBs
|
||
|
|
||
|
; Copy title screen art from where it was loaded in bank 6
|
||
|
; This isn't fast, but doesn't need to be
|
||
|
ldx #0
|
||
|
|
||
|
titleScreenCopyLoop:
|
||
|
lda $060000,x
|
||
|
sta VRAM,x
|
||
|
inx
|
||
|
inx
|
||
|
cpx #$7d00
|
||
|
bne titleScreenCopyLoop
|
||
|
|
||
|
; Set up sprite rendering
|
||
|
BITS8
|
||
|
lda #3
|
||
|
sta SpriteBankBank00+3 ; Tell compiled sprites what bank they are in
|
||
|
BITS16
|
||
|
|
||
|
; Set up audio
|
||
|
jsr initSoundSystem
|
||
|
|
||
|
; Fade in
|
||
|
lda #titlePalette
|
||
|
sta PARAML2
|
||
|
jsr paletteFade
|
||
|
|
||
|
titleScreenMainLoop:
|
||
|
|
||
|
; Track animations
|
||
|
jsr nextVBL
|
||
|
lda titleAnimationCounter
|
||
|
inc
|
||
|
cmp TITLE_ANIMATION_FRAMES
|
||
|
jsr titleScreenResetAnimation
|
||
|
|
||
|
; Time animations of cats
|
||
|
lda animationDelay0
|
||
|
dec
|
||
|
bne titleScreenStillCat
|
||
|
lda #CAT_DELAY
|
||
|
sta animationDelay0
|
||
|
|
||
|
; Render next frame of cats
|
||
|
lda #titleAnimationPos0
|
||
|
sta PARAML0
|
||
|
ldx #TITLE_ANIMATION_FRAMES
|
||
|
ldy #30
|
||
|
lda #ANIMATION_SIZE_16x32
|
||
|
jsr renderAnimation
|
||
|
bra titleScreenNextCat
|
||
|
|
||
|
titleScreenStillCat:
|
||
|
sta animationDelay0
|
||
|
ldy #$5d79
|
||
|
lda #29
|
||
|
jsr drawSpriteBankSafe
|
||
|
|
||
|
titleScreenNextCat:
|
||
|
lda animationDelay1
|
||
|
dec
|
||
|
bne titleScreenStillCat2
|
||
|
lda #CAT_DELAY
|
||
|
sta animationDelay1
|
||
|
|
||
|
lda #titleAnimationPos1
|
||
|
sta PARAML0
|
||
|
ldx #TITLE_ANIMATION_FRAMES
|
||
|
ldy #21
|
||
|
lda #ANIMATION_SIZE_16x32
|
||
|
jsr renderAnimation
|
||
|
bra titleScreenKeyboard
|
||
|
|
||
|
titleScreenStillCat2:
|
||
|
sta animationDelay1
|
||
|
ldy #$5da0
|
||
|
lda #20
|
||
|
jsr drawSpriteBankSafe
|
||
|
|
||
|
titleScreenKeyboard:
|
||
|
; Check for selection
|
||
|
jsr kbdScanTitle
|
||
|
lda menuActionRequested
|
||
|
beq titleScreenMainLoop
|
||
|
|
||
|
jmp beginGameplay
|
||
|
|
||
|
titleScreenResetAnimation:
|
||
|
stz titleAnimationCounter
|
||
|
rts
|
||
|
|
||
|
titleAnimationCounter:
|
||
|
.word 0
|
||
|
titleAnimationPos0:
|
||
|
.word 130,120
|
||
|
titleAnimationPos1:
|
||
|
.word 208,120
|
||
|
animationDelay0:
|
||
|
.word CAT_DELAY/2
|
||
|
animationDelay1:
|
||
|
.word CAT_DELAY
|
||
|
menuActionRequested:
|
||
|
.word 0
|