From 88b67b2e6b333793211f0acef0daf82c41174870 Mon Sep 17 00:00:00 2001 From: Dagen Brock Date: Fri, 14 Dec 2012 01:03:01 -0600 Subject: [PATCH] tweak sound & cleanup & rocket --- festro.s | 98 ++++++++++++++++++++++++++++++++++++---------------- festrodata.s | 92 ++++++++++++++++++++++++++++-------------------- 2 files changed, 123 insertions(+), 67 deletions(-) diff --git a/festro.s b/festro.s index 04c249a..5840da8 100644 --- a/festro.s +++ b/festro.s @@ -114,28 +114,29 @@ HandleGreetScroll ldx #23 ldy #21 lda #$30 - jsr DrawStringXYWait + jsr DrawStringXYWait ; draw woz slowly lda #$30 - jsr SimplerWait + jsr SimplerWait ; extra delay -:loop jsr ScrollRightUp +:loop jsr VBlank + jsr ScrollRightUp ; scroll right side of screen inc _creditScrollCounter lda #26 jsr SimplerWait lda _creditScrollTick - cmp #01 + cmp #_creditSkipLines ; see if we've flipped line counter beq :next inc _creditScrollTick - lda #$13 - jsr SimplerWait + lda #$13 ; we skip a line + jsr SimplerWait ; with a shorter wait tho bra :loop -:next stz _creditScrollTick +:next stz _creditScrollTick ; reset lda _creditStringIdx - asl + asl tax - lda _creditStringsTable+1,x - beq :noStrings + lda _creditStringsTable+1,x ; we know if the high byte is 0, + beq :noStrings ; then we hit the terminator sta srcPtr+1 lda _creditStringsTable,x sta srcPtr @@ -152,14 +153,45 @@ HandleGreetScroll jsr SimplerWait :skipWait lda _creditScrollCounter cmp #80 - beq :done + beq :rocket bra :loop +:rocket stz _creditScrollCounter + stz _creditStringIdx +:rocketLoop inc _creditScrollCounter + jsr VBlank + jsr ScrollRightUp + + lda _creditStringIdx + asl + tax + lda _rocketStringsTable+1,x ; we know if the high byte is 0, + beq :noStrings2 ; then we hit the terminator + sta srcPtr+1 ; otherwise set screen pointer + lda _rocketStringsTable,x + sta srcPtr + + inc _creditStringIdx ; line++ + + ldx #23 + ldy #23 + jsr DrawStringXY : write line + +:noStrings2 lda #25 + jsr SimplerWait + lda _creditScrollCounter + cmp #40 + beq :done + bra :rocketLoop + + + :done jmp DemoNext _creditScrollTick db #$00 _creditScrollCounter db #$00 _creditStringIdx db #$00 +_creditSkipLines equ #$01 HandleMapScroll @@ -176,15 +208,15 @@ HandleMapScroll plx dex bne :scrollLoop - ldx #5 + ldx #9 :blinkenLoop phx - lda #NoteG0 + lda #10 ldx #$10 - jsr SEplayNote + jsr SENoteAX jsr VBlank lda #" " sta Lo07+16 - lda #$10 + lda #20 jsr SimplerWait jsr VBlank lda #"*" @@ -332,7 +364,7 @@ _defaultStarSpeed equ #$10 pla inc inc - cmp #$28 + cmp #$2c ; adjusting this shifts where song ends bne :slowDownAgain ; i take my varibls srs lda #$25 jsr SimplerWait @@ -387,7 +419,7 @@ HandleFireStateK lda #$20 :loop ldx #_sprData_K ldy #>_sprData_K - jsr FirePass2 ; preserves A,X,Y + jsr FirePassSprite ; preserves A,X,Y dec bne :loop jmp DemoNext @@ -396,7 +428,7 @@ HandleFireStateF lda #$20 :loop ldx #_sprData_F ldy #>_sprData_F - jsr FirePass2 ; preserves A,X,Y + jsr FirePassSprite ; preserves A,X,Y dec bne :loop jmp DemoNext @@ -405,7 +437,7 @@ HandleFireStateE lda #$20 :loop ldx #_sprData_E ldy #>_sprData_E - jsr FirePass2 ; preserves A,X,Y + jsr FirePassSprite ; preserves A,X,Y dec bne :loop jmp DemoNext @@ -415,7 +447,7 @@ HandleFireStateS lda #$20 :loop ldx #_sprData_S ldy #>_sprData_S - jsr FirePass2 ; preserves A,X,Y + jsr FirePassSprite ; preserves A,X,Y dec bne :loop jmp DemoNext @@ -424,7 +456,7 @@ HandleFireStateT lda #$20 :loop ldx #_sprData_T ldy #>_sprData_T - jsr FirePass2 ; preserves A,X,Y + jsr FirePassSprite ; preserves A,X,Y dec bne :loop jmp DemoNext @@ -445,7 +477,7 @@ HandleFireStateYear lda #$20 :loop ldx #_sprData_YEAR ldy #>_sprData_YEAR - jsr FirePass3 ; preserves A,X,Y + jsr FirePassSpriteBig ; preserves A,X,Y dec bne :loop jmp DemoNext @@ -457,10 +489,12 @@ RandPop jsr GetRandHot * A = count X=lowbyte Y=hibyte -FirePass2 +FirePassSprite pha phx phy + ldy #4 + jsr SErandStaticBit jsr MakeHeat jsr Scroll8 jsr RandPop @@ -474,10 +508,12 @@ FirePass2 rts * A = count X=lowbyte Y=hibyte -FirePass3 +FirePassSpriteBig pha phx phy + ldy #6 + jsr SErandStaticBit jsr MakeHeat jsr Scroll8 jsr RandPop @@ -1230,8 +1266,6 @@ HandleProdrop bra ]nextAnimChar ]charFinished - lda #1 ; SET SOUND ANY TIME NEW CHAR DROPS - sta _prodropSound lda #0 sta (srcPtr) bra ]nextAnimChar @@ -1242,6 +1276,9 @@ HandleProdrop and #%01111111 ; clear high bit sta (srcPtr),y + lda #1 ; SET SOUND ANY TIME NEW CHAR DROPS + sta _prodropSound + ]nextAnimChar lda srcPtr clc @@ -1279,14 +1316,15 @@ _prodropScanLine db 0 ; starts scanning at line 0 _prodropState db 0 ; starts with 0, which is scan mode _prodropSound db 0 ; determine if we should call sound engine -soundDownReset lda #10 +_soundDownTopFreq db 2 +soundDownReset lda #_soundDownTopFreq sta _sndFreq rts -_sndFreq db 10 +_sndFreq db #_soundDownTopFreq _sndInt db 0 soundDown pha ;interval - ldx #6 + ldx #3 lda _sndFreq jsr SENoteAX pla @@ -1458,7 +1496,7 @@ HandleAppleDraw bge :noBlack lda #0 bra :noMagic -:noBlack cmp #$FA ; had to add in a way to keep it from +:noBlack cmp #$F2 ; had to add in a way to keep it from blt :noMagic ; getting stuck so now it occasionally puts lda (srcPtr),y ; the right pixel even when it wasn't :noMagic sta (dstPtr),y ; found by getrand. (because it's only pseudorandom) diff --git a/festrodata.s b/festrodata.s index 0201ebb..81b15d4 100644 --- a/festrodata.s +++ b/festrodata.s @@ -20,52 +20,70 @@ _digawriteString asc " an intro by DiGAROK ",00 _cwoz asc "Woz",00 -_c2 asc "Brutal Deluxe",00 -_c3 asc "Belgo",00 -_c4 asc "BLuRry",00 -_c5 asc "krUe",00 -_c6 asc "Ninjaforce",00 -_c7 asc "FTA",00 -_c8 asc "RedHot ;)",00 -_c9 asc "ECC",00 -_c10 asc "antoine",00 -_c11 asc "MJM",00 +_c01 asc "Brutal Deluxe",00 +_c02 asc "Belgo",00 +_c03 asc "BLuRry",00 +_c04 asc "MJM",00 +_c05 asc "krUe",00 +_c06 asc "Ninjaforce",00 +_c07 asc "FTA",00 +_c08 asc "RedHot ;)",00 +_c09 asc "ECC",00 +_c10 asc "A2Central",00 +_c11 asc "R&D Automation",00 _c12 asc "Gamebits/JuicedGS",00 -_c13 asc "R&D Automation",00 -_c14 asc "KFest Organizers",00 -_c15 asc " Presenters",00 -_c16 asc " Attendees",00 -_c17 asc " AND YOU!",00 -_c18 asc "THANKS",00 -_c19 asc " FOR",00 -_c20 asc " WATCHING",00 -_cblank asc "",00 +_c13 asc "KFest Organizers",00 +_c14 asc " Presenters",00 +_c15 asc " Attendees",00 +_c16 asc " AND YOU!",00 +_c17 asc "THANKS",00 +_c18 asc " FOR",00 +_c19 asc " WATCHING",00 +_sblank asc "",00 +_r02 asc " /\",00 +_r03 asc " .' '.",00 +_r04 asc " /======\",00 +_r05 asc " ;:. _ ;",00 +_r06 asc " |:. (_) |",00 +_r07 asc " |:. _ |",00 +_r08 asc " |:. (_) |",00 +_r09 asc " ;:. ;",00 +_r10 asc " .' \:. / `.",00 +_r11 asc " / .-'':._.'`-. \",00 +_r12 asc " |/ /||\ \|",00 + _creditStringsTable - da _c2,_c3,_c4,_c5,_c6,_c7,_c8,_c9,_c10 - da _c11,_c12,_cblank,_c13,_c14,_c15,_c16,_cblank - da _c17,_cblank,_cblank,_c18,_c19,_c20 - da _cblank,_cblank,_cblank,_cblank,_cblank + da _c01,_c02,_c03,_c04,_c05,_c06,_c07,_c08 + da _c09,_c10,_c11,_c12,_sblank,_sblank,_c13 + da _c14,_c15,_sblank,_c16,_sblank,_sblank + da _c17,_sblank,_c18,_sblank,_c19 + da _sblank,_sblank,_sblank,_sblank,_sblank + da _sblank,_sblank,_sblank,_sblank,_sblank + dw 0000 +_rocketStringsTable + da _r02,_r03,_r04,_r05,_r06 + da _r07,_r06,_r07,_r06,_r07,_r08,_r09,_r10,_r11,_r12 dw 0000 -FinalText asc "",00 - asc " KFest is the world's only annual",00 - asc " convention dedicated to the Apple II",00 - asc " and it's the largest gathering of ",00 - asc " active Apple II users you'll ever see!",00 - asc "",00 - asc " The next KFest is July 23-28, 2013.",00 - asc "",00 - asc " You can get more info on their site *",00 - asc " www.kansasfest.org",00 - asc "",00 +FinalText asc " ______________________________________ ",00 + asc "| |",00 + asc "| KFest is the world's only annual |",00 + asc "| convention dedicated to the Apple II |",00 + asc "| and the largest gathering of active |",00 + asc "| Apple II users you'll ever see! |",00 + asc "| |",00 + asc "| The next KFest is July 23-28, 2013. |",00 + asc "| Get more info on their site * |",00 + asc "| www.kansasfest.org |",00 + asc "|______________________________________|",00 asc "",00 asc " * I'm not affiliated with KansasFest.",00 - asc " I was just looking for an excuse to",00 - asc " write and release some code.",00 + asc " I've just been wanting to put out",00 + asc " some assembly code for a while.",00 asc "",00 asc " Download the demo source online!",00 - asc " -> github.com/festro",00 + asc " -> https://github.com/digarok/festro",00 asc "",00 asc "",00 asc " The End?",00