From 147854095e5c3aa1767540eefd1787116cbeb31c Mon Sep 17 00:00:00 2001 From: Dagen Brock Date: Fri, 7 Dec 2012 01:06:05 -0600 Subject: [PATCH] final effect is in! --- festro.s | 110 +++++++++++++++++++++++++++++++++++++++++++++++++-- festrodata.s | 16 ++++++++ 2 files changed, 122 insertions(+), 4 deletions(-) diff --git a/festro.s b/festro.s index 05c5053..e2bc147 100644 --- a/festro.s +++ b/festro.s @@ -40,6 +40,7 @@ DemoMain bra :mainLoop DemoSubroutineTable + dw HandleProdrop dw HandleScan01 dw HandleTextClear @@ -77,10 +78,14 @@ DemoSubroutineTable dw HandleMedWait dw HandleShortWait dw HandleSplitSlide -* dw SetProdropGr -* dw HandleProdrop + + dw HandleAppleDraw + dw SetProdropGr + dw HandleProdrop + dw SetProdropText dw HandleShortWait - dw HandleTextClear + dw HandleTextClear + dw HandleSwipeWrite dw HandleShortWait dw HandleGreetScroll @@ -90,6 +95,99 @@ DemoSubroutineTable dw HandleFinalScreen dw P8Quit +HandleAppleDraw +:mainLoop + lda #1 + sta _appleDone + + lda #AppleLogo + sta srcPtr + lda #>AppleLogo + sta srcPtr+1 + + + lda #_appleOffsetY + sta _currentY + +:lineStart asl + tax + lda LoLineTable,x + sta dstPtr + lda LoLineTable+1,x + sta dstPtr+1 + + lda dstPtr ; add offset + clc + adc #_appleOffsetX + sta dstPtr + bcc :noCarry2 + inc dstPtr+1 +:noCarry2 + ; src = buffer + ; dst = screen + + + ldy #$00 +:drawLoop lda (srcPtr),y +* bra :noMagic + cmp (dstPtr),y + beq :nextChar + stz _appleDone + jsr GetRand + cmp #$00 ; occasional black pixel @todo + beq :noMagic + cmp #$F8 ; 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) + +:nextChar iny + cpy #AppleLogoWidth + bne :drawLoop +:nextLine lda srcPtr + clc + adc #AppleLogoWidth + sta srcPtr + bcc :noCarry1 + inc srcPtr+1 +:noCarry1 + inc _currentY ; handle screen offset + lda _currentY + cmp #AppleLogoHeight+_appleOffsetY + bne :lineStart + +:donePass lda #$5 + jsr SimplerWait + lda _appleDone + beq :mainLoop + lda #$33 + jsr SimplerWait + inc GDemoState + jmp DemoMain + +_currentY db #$00 +_appleDone db #$00 +_appleOffsetX equ 10 +_appleOffsetY equ 8 + + + + + +* done = true +* while !done +* for x = 0 to width +* for y = 0 to height +* load buffer x,y +* cmp screen x,y (plus offsets) +* if (screen = buffer) continue +* done = false +* get rand +* store at screen x,y +* waitvbl + + + HandleFinalScreen lda #FinalText sta srcPtr @@ -299,7 +397,7 @@ _c12 asc "Gamebits/JuicedGS",00 _c13 asc "KFest Organizers",00 _c14 asc " Presenters",00 _c15 asc " Attendees",00 -_c16 asc " YOU!",00 +_c16 asc " AND YOU!",00 _c17 asc "THANKS",00 _c18 asc " FOR",00 _c19 asc " WATCHING",00 @@ -1328,6 +1426,10 @@ HandleMedWait SetProdropGr lda #$00 + bra SetProdropChar +SetProdropText + lda #" " +SetProdropChar sta ]dropCharCompare sta ]dropCharWrite inc GDemoState diff --git a/festrodata.s b/festrodata.s index 97c0bc4..c1bd7e4 100644 --- a/festrodata.s +++ b/festrodata.s @@ -297,3 +297,19 @@ KfestLogo db $aa,$a5,$aa,$a5,$aa,$a5,$aa,$a5,$aa,$a5,$aa,$a5,$aa,$a5,$aa,$a5,$aa,$a5,$aa,$a5 db $aa,$a5,$aa,$a5,$aa,$a5,$aa,$a5,$aa,$a5,$aa,$a5,$aa,$a5,$aa,$a5,$aa,$a5,$aa,$a5 +AppleLogoWidth equ #19 +AppleLogoHeight equ #13 +AppleLogo + db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$40,$c0,$00,$00,$00,$00,$00 + db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$c0,$cc,$cc,$cc,$00,$00,$00,$00,$00 + db $00,$00,$00,$00,$00,$00,$00,$00,$00,$c4,$cc,$cc,$0c,$00,$00,$00,$00,$00,$00 + db $00,$00,$00,$c0,$c4,$c4,$c4,$c0,$c0,$0c,$0c,$c0,$c0,$c4,$c4,$c0,$c0,$00,$00 + db $00,$c0,$cc,$cc,$cc,$cc,$cc,$cc,$cc,$cc,$cc,$cc,$cc,$cc,$cc,$cc,$cc,$cc,$40 + db $d0,$dd,$dd,$dd,$dd,$dd,$dd,$dd,$dd,$dd,$dd,$dd,$dd,$dd,$dd,$dd,$0d,$00,$00 + db $9d,$9d,$9d,$9d,$9d,$9d,$9d,$9d,$9d,$9d,$9d,$9d,$9d,$9d,$9d,$9d,$00,$00,$00 + db $99,$99,$99,$99,$99,$99,$99,$99,$99,$99,$99,$99,$99,$99,$99,$99,$00,$00,$00 + db $01,$11,$11,$11,$11,$11,$11,$11,$11,$11,$11,$11,$11,$11,$11,$11,$11,$10,$00 + db $00,$31,$31,$31,$31,$31,$31,$31,$31,$31,$31,$31,$31,$31,$31,$31,$31,$31,$31 + db $00,$00,$33,$33,$33,$33,$33,$33,$33,$33,$33,$33,$33,$33,$33,$33,$33,$33,$00 + db $00,$00,$00,$07,$77,$77,$77,$77,$77,$77,$77,$77,$77,$77,$77,$77,$07,$00,$00 + db $00,$00,$00,$00,$00,$07,$07,$07,$00,$00,$00,$00,$07,$07,$07,$00,$00,$00,$00