From 5ae04508655011e1202abe56297691bca607f61d Mon Sep 17 00:00:00 2001 From: Dagen Brock Date: Fri, 14 Dec 2012 18:25:11 -0600 Subject: [PATCH] add rocket... fixes --- festro.s | 23 +++++++++++---------- festrodata.s | 25 +++++++++++----------- soundengine.s | 57 +++++++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 82 insertions(+), 23 deletions(-) diff --git a/festro.s b/festro.s index 5840da8..c86b6ee 100644 --- a/festro.s +++ b/festro.s @@ -80,7 +80,6 @@ DemoSubroutineTable dw SetFireRatio01 dw HandleFireState1 dw HandleKfestLogo - dw HandleMedWait dw HandleShortWait dw HandleSplitSlide @@ -381,7 +380,7 @@ StarScrollAuto jsr GenStarRight ldy _starScrollSound beq :noSong - ldx #$0F + ldx #$10 jsr PlaySong01Note bra :skipWait :noSong @@ -512,8 +511,8 @@ FirePassSpriteBig pha phx phy - ldy #6 - jsr SErandStaticBit + ldy #8 ; different static for big sprit + jsr SErandStaticBit2 jsr MakeHeat jsr Scroll8 jsr RandPop @@ -588,7 +587,8 @@ HandleKfestLogo cpx #KfestLogoWidth beq :done jmp :loop -:done jmp DemoNext +:done jsr PlaySong02 + jmp DemoNext HandleSplitSlide @@ -1183,20 +1183,21 @@ HandleProdrop * This is the animation loop :prodropUpdate - lda #0 ; finished = false - stz _prodropAnimDone + stz _prodropAnimDone ; finished = false :prodropUpdateLoop lda _prodropSound bne :noSound - lda #4 + lda #3 ; repeat interval... / jsr soundDown + stz _prodropSound + bra :skipDelay :noSound stz _prodropSound ; if this flag gets set we call our sound routine lda #16 tax tay jsr SimpleWait - jsr VBlank +:skipDelay jsr VBlank lda _prodropAnimDone @@ -1324,9 +1325,9 @@ soundDownReset lda #_soundDownTopFreq _sndFreq db #_soundDownTopFreq _sndInt db 0 soundDown pha ;interval - ldx #3 + ldx #10 lda _sndFreq - jsr SENoteAX + jsr SEToneAX pla cmp _sndInt beq :intMatch diff --git a/festrodata.s b/festrodata.s index 81b15d4..b7bc391 100644 --- a/festrodata.s +++ b/festrodata.s @@ -263,26 +263,27 @@ _sprData_YEAR db $00,$00,$01,$01,$01,$01,$00,$00,$00,$00,$00,$00,$00,$01,$01,$01 db $0F,$0F,$01,$00,$00,$00,$00,$01,$0F,$0F,$0F,$0F,$01,$00,$00,$00,$01,$0F db $0F,$0F,$0F,$01,$00,$00,$01,$0F,$0F,$0F,$0F,$0F,$0F,$01,$00,$00,$00,$01 db $0F,$0F,$0F,$0F,$0F,$0F,$01,$00,$00,$01,$0F,$0F,$0F,$0F,$0F,$01,$00,$00 - db $01,$0F,$0F,$0F,$0F,$0F,$0F,$01,$00,$00,$00,$00,$00,$00,$01,$0F,$0F,$01 + db $01,$0F,$0F,$0F,$0F,$0F,$0F,$01,$00,$0F,$0F,$00,$00,$00,$0F,$0F,$0F,$01 db $00,$00,$01,$0F,$0F,$00,$00,$0F,$0F,$01,$00,$00,$01,$0F,$01,$01,$0F,$0F - db $01,$00,$00,$00,$00,$00,$00,$00,$01,$0F,$0F,$01,$00,$00,$00,$00,$00,$01 + db $01,$00,$00,$0F,$0F,$00,$00,$00,$01,$0F,$0F,$01,$00,$00,$00,$00,$00,$0F db $0F,$0F,$01,$00,$01,$0F,$0F,$00,$00,$00,$00,$0F,$0F,$01,$00,$00,$00,$00 db $01,$0F,$0F,$01,$00,$00,$00,$00,$00,$00,$00,$01,$0F,$0F,$01,$00,$00,$00 - db $00,$00,$01,$0F,$0F,$01,$00,$01,$0F,$0F,$00,$00,$00,$00,$0F,$0F,$01,$00 + db $00,$01,$0F,$0F,$0F,$01,$00,$01,$0F,$0F,$00,$00,$00,$00,$0F,$0F,$01,$00 db $00,$00,$00,$01,$0F,$0F,$01,$00,$00,$00,$00,$00,$01,$01,$0F,$0F,$01,$00 - db $00,$00,$00,$00,$01,$0F,$0F,$00,$00,$00,$01,$0F,$0F,$00,$00,$00,$00,$0F + db $00,$00,$00,$01,$0F,$0F,$0F,$00,$00,$00,$01,$0F,$0F,$00,$00,$00,$00,$0F db $0F,$01,$00,$00,$00,$00,$01,$0F,$0F,$01,$00,$00,$00,$00,$01,$0F,$0F,$0F - db $01,$01,$00,$00,$00,$00,$01,$0F,$0F,$00,$00,$00,$00,$01,$0F,$0F,$01,$00 + db $01,$01,$00,$00,$00,$01,$0F,$0F,$0F,$00,$00,$00,$00,$01,$0F,$0F,$01,$00 db $00,$01,$0F,$0F,$01,$00,$00,$00,$00,$01,$0F,$0F,$01,$00,$00,$00,$00,$00 - db $00,$01,$0F,$0F,$0F,$01,$00,$00,$01,$0F,$0F,$00,$00,$00,$00,$00,$00,$01 - db $0F,$0F,$00,$00,$0F,$0F,$01,$00,$00,$00,$00,$00,$01,$0F,$0F,$01,$00,$00 - db $00,$00,$00,$00,$00,$01,$0F,$0F,$01,$00,$01,$0F,$0F,$01,$01,$01,$01,$00 - db $00,$00,$01,$0F,$0F,$01,$01,$0F,$0F,$01,$00,$00,$00,$00,$00,$01,$0F,$0F + db $00,$01,$0F,$0F,$0F,$01,$00,$01,$0F,$0F,$0F,$00,$00,$00,$00,$00,$00,$0F + db $0F,$0F,$00,$00,$0F,$0F,$0F,$00,$00,$00,$00,$00,$01,$0F,$0F,$01,$00,$00 + db $00,$00,$00,$00,$00,$01,$0F,$0F,$01,$01,$0F,$0F,$0F,$01,$01,$01,$01,$00 + db $00,$00,$0F,$0F,$0F,$01,$01,$0F,$0F,$0F,$00,$00,$00,$00,$00,$01,$0F,$0F db $01,$00,$00,$00,$01,$01,$01,$01,$01,$0F,$0F,$01,$01,$0F,$0F,$0F,$0F,$0F - db $0F,$0F,$01,$00,$00,$00,$01,$0F,$0F,$0F,$0F,$01,$00,$00,$00,$00,$00,$01 + db $0F,$0F,$01,$00,$00,$00,$0F,$0F,$0F,$0F,$0F,$0F,$00,$00,$00,$00,$00,$01 db $0F,$0F,$0F,$0F,$01,$00,$01,$0F,$0F,$0F,$0F,$0F,$0F,$0F,$01,$01,$0F,$0F - db $0F,$0F,$0F,$0F,$0F,$0F,$01,$00,$00,$00,$01,$0F,$0F,$01,$00,$00,$00,$00 - db $00,$01,$0F,$0F,$0F,$0F,$0F,$0F,$01,$00,$01,$0F,$0F,$0F,$0F,$0F,$01,$00 + db $0F,$0F,$0F,$0F,$0F,$0F,$01,$00,$00,$00,$0F,$0F,$0F,$0F,$00,$00,$00,$00 + db $00,$01,$0F,$0F,$0F,$0F,$0F,$0F,$01,$00,$0F,$0F,$0F,$0F,$0F,$0F,$01,$00 + KfestLogoWidth equ #40 KfestLogoHeight equ #24 diff --git a/soundengine.s b/soundengine.s index 2e5da39..c6de976 100644 --- a/soundengine.s +++ b/soundengine.s @@ -36,6 +36,40 @@ Song01 hex 66,99,a3,66,99,a3,66,99,66,99,a3,66,99,a3,66,99 hex 66,99,a3,66,99,a3,66,99,66,99,a3,66,99,a3,66,99 hex 02 ;end +************************************************** +* Logo Theme +************************************************** +PlaySong02 + ldy #0 +:loop lda Song02,y + cmp #NoteEnd + beq :done + cmp #NoteRest + bne :notRest + lda Song02+1,y + jsr SimplerWait + bra :nextNote +:notRest ldx Song02+1,y + pha + phx + phy + jsr SENoteAX + lda #5 + jsr SimplerWait + jsr VBlank + ply + plx + pla +:nextNote iny + iny + bra :loop +:done rts +Song02 hex 00,30,00,30,00,30,00,30,00,30,F0,30,AC,50,01,30 + hex 00,30,00,30,00,30,00,30,00,30,F0,30,AC,50,01,30 + hex 00,30,00,30,00,30,00,30,00,30,F0,30,AC,50,01,30 + hex F0,40,90,50,CB,60,C0,80,02 + + ************************************************** * play random short note ************************************************** @@ -74,6 +108,18 @@ SEplayNote _SECURRNOTE db 0,0 ; current note being played (frequency/duration) +SEToneAX +:clickLoop + pha + ldy SPEAKER +:waitLoop dec + bne :waitLoop + pla + dex + bne :clickLoop + rts + + ************************************************** * This is essentially the scale ************************************************** @@ -135,4 +181,15 @@ SErandStaticBit bne :loop rts +* y = length - no shift so wider range +SErandStaticBit2 +:loop lda SPEAKER + jsr GetRand + beq :next +:wait dec + bne :wait +:next dey + bne :loop + rts +