diff --git a/res/fx.conf b/res/fx.conf index 46869126e..a89e58247 100644 --- a/res/fx.conf +++ b/res/fx.conf @@ -1 +1 @@ -RIPPLE STARWHITE DIAGONAL STAGGERWHITE.UD RADIAL STAGGER.LR FIZZLE CRYSTAL R.BY.PIXEL SUNRISE SUNSET CORNER.CIRCLE RIPPLE2 RADIAL2 SPLIT.UD.INTRO HALF.FIZZLE RADIAL3 BAR.DISSOLVE FOURSPIRAL IRIS AND CHECKERBOARD LR.BY.PIXEL RADIAL4 STAGGERWHITE.LR ONESQUARE STAR DIAMOND TWOPASS.LR HALF.MOSAIC RADIAL5 FOURSQUARE STAGGER.UD INTERLOCK.LR BLOCK.MOSAIC INTERLOCK.UD BLOCK.FIZZLE SPIRAL [eof] # # transition effects for HGR slideshows # # Each Mega-Attract Module that is an HGR slideshow (see attract.conf) # will use a single transition effect for the length of the module. # Transition effects are loaded in the order listed in this file. Each line # of this file is a filename (not including comments, like this one). The # name of the next transition effect is stored in the global prefs, so this # file should not contain duplicates. # # Transition effects are binary files loaded at $6000 and called with # hi-res page 1 showing and the next HGR graphic already loaded at $4000. # A transition effect has full use of main memory, including zero page and # text page if needed. LC RAM banks 1 and 2 are reserved for the launcher. # # Important: LC RAM bank 1 will be read/write on entry and must be read/write # on exit. If you need ROM routines, you are responsible for switching to ROM # then switching back to RAM bank 1 (read/write) before returning. # \ No newline at end of file +RIPPLE STARWHITE DIAGONAL STAGGERWHITE.UD RADIAL STAGGER.LR BIT.FIZZLE MEETINTHEMIDDLE CRYSTAL R.BY.PIXEL SUNRISE SUNSET CORNER.CIRCLE RIPPLE2 RADIAL2 SPLIT.UD.INTRO HALF.FIZZLE RADIAL3 BAR.DISSOLVE FOURSPIRAL IRIS AND CHECKERBOARD LR.BY.PIXEL RADIAL4 STAGGERWHITE.LR ONESQUARE FIZZLE STAR DIAMOND TWOPASS.LR HALF.MOSAIC RADIAL5 FOURSQUARE STAGGER.UD INTERLOCK.LR BLOCK.MOSAIC INTERLOCK.UD BLOCK.FIZZLE SPIRAL [eof] # # transition effects for HGR slideshows # # Each Mega-Attract Module that is an HGR slideshow (see attract.conf) # will use a single transition effect for the length of the module. # Transition effects are loaded in the order listed in this file. Each line # of this file is a filename (not including comments, like this one). The # name of the next transition effect is stored in the global prefs, so this # file should not contain duplicates. # # Transition effects are binary files loaded at $6000 and called with # hi-res page 1 showing and the next HGR graphic already loaded at $4000. # A transition effect has full use of main memory, including zero page and # text page if needed. LC RAM banks 1 and 2 are reserved for the launcher. # # Important: LC RAM bank 1 will be read/write on entry and must be read/write # on exit. If you need ROM routines, you are responsible for switching to ROM # then switching back to RAM bank 1 (read/write) before returning. # \ No newline at end of file diff --git a/src/fx/fx.hgr.1bit.fizzle.a b/src/fx/fx.hgr.1bit.fizzle.a new file mode 100755 index 000000000..e4e5bccf8 --- /dev/null +++ b/src/fx/fx.hgr.1bit.fizzle.a @@ -0,0 +1,91 @@ +;license:MIT +;(c) 2017-2019 by qkumba + +!cpu 6502 +!to "build/FX/BIT.FIZZLE",plain +*=$6000 + +tmp=$fd +sourcemask=$fe +copymask=$ff + + ;init RNG + + ldx #1 + stx @rnd1+1 + dex + stx @rnd2+1 + + ;iterate + +@loop + ldy @rnd1+1 + ldx @rnd2+1 + lsr @rnd2+1 + ror @rnd1+1 + bcc + + + ;feedback polynomial forms #$8016 for period of 65535 + + lda @rnd1+1 + eor #$16 + sta @rnd1+1 + lda @rnd2+1 + eor #$80 + sta @rnd2+1 + + ;little hack to avoid missing offset zero + ;screen hole at $xxFF is missed instead + ++ tya + eor #$ff + sta $26 + sta $3c + + lda #%00000001 + sta copymask + txa + and #$e0 + beq + +- asl copymask + adc #$e0 + bne - + ++ txa + and #$1f + + ;target page 1 + + ora #$20 + sta $27 + eor #$60 + sta $3d + lda copymask + eor #%11111111 + sta sourcemask + + ;copy pixel from other page to this page + + ldy #0 + lda ($26),y + and sourcemask + sta tmp + lda ($3c),y + and copymask + ora tmp + sta ($26),y + + ;wait while checking for keypress + +@wait lda $c000 + bmi @exit + + ;and exit condition + +@rnd2 lda #0 + bne @loop +@rnd1 lda #0 + cmp #1 + bne @loop + +@exit rts diff --git a/src/fx/fx.hgr.meet.in.the.middle.a b/src/fx/fx.hgr.meet.in.the.middle.a new file mode 100644 index 000000000..988810a19 --- /dev/null +++ b/src/fx/fx.hgr.meet.in.the.middle.a @@ -0,0 +1,105 @@ +;license:MIT +;(c) 2019 by 4am +; +!cpu 6502 +!to "build/FX/MEETINTHEMIDDLE",plain +*=$6000 + +tmp = $fb +maskindex = $fc +row = $fd +col1 = $fe +col2 = $ff + + lda #0 + sta col1 + lda #39 + sta col2 +@colloop + lda #6 + sta maskindex +@maskloop + ldx maskindex + lda copymasks1,x + sta @copymask1 + eor #%11111111 + sta @sourcemask1 + lda copymasks2,x + sta @copymask2 + eor #%11111111 + sta @sourcemask2 + + lda #23 + sta row +@rowloop + lda row + asl + asl + asl + jsr HGRCalc + clc + ldx #8 +@blockloop + ldy col1 + lda ($26),y +@sourcemask1=*+1 + and #0 ; SMC + sta tmp + lda ($3c),y +@copymask1=*+1 + and #0 ; SMC + ora tmp + sta ($26),y + + ldy col2 + lda ($26),y +@sourcemask2=*+1 + and #0 ; SMC + sta tmp + lda ($3c),y +@copymask2=*+1 + and #0 ; SMC + ora tmp + sta ($26),y + + lda $27 + adc #4 + sta $27 + eor #$60 + sta $3d + dex + bne @blockloop + + dec row + bpl @rowloop + + lda #1 + jsr WaitForKeyWithTimeout + bmi @exit + dec maskindex + bpl @maskloop + inc col1 + dec col2 + lda col1 + cmp #20 + bne @colloop +@exit rts +copymasks1 + !byte %11111111 + !byte %10111111 + !byte %10011111 + !byte %10001111 + !byte %10000111 + !byte %10000011 + !byte %10000001 +copymasks2 + !byte %11111111 + !byte %11111110 + !byte %11111100 + !byte %11111000 + !byte %11110000 + !byte %11100000 + !byte %11000000 + + !source "src/wait.a" + !source "src/fx/fx.hgr.common.a"