From 49452df156a0e747b6ba38714e956ea5feada084 Mon Sep 17 00:00:00 2001 From: 4am Date: Sat, 26 Oct 2019 10:10:42 -0400 Subject: [PATCH] lattice wipe --- res/fx.conf | 2 +- src/fx/fx.hgr.lattice.a | 221 ++++++++++++++++++++++++++++++++++++++++ 2 files changed, 222 insertions(+), 1 deletion(-) create mode 100644 src/fx/fx.hgr.lattice.a diff --git a/res/fx.conf b/res/fx.conf index a52657b9d..624de1beb 100644 --- a/res/fx.conf +++ b/res/fx.conf @@ -1 +1 @@ -RIPPLE STARWHITE SOFT.DIAGONAL STAGGERWHITE.UD RADIAL STAGGER.LR SOFT.UD CRYSTAL BIT.FIZZLE MEETINTHEMIDDLE DIAGONAL R.BY.PIXEL SUNRISE SOFT.L SUNSET IRIS.IN CORNER.CIRCLE CENTER.BY.PIXEL DIAGONAL2 RIPPLE2 PALETTE.FIZZLE RADIAL2 SPLIT.UD.INTRO R.BY.2 HALF.FIZZLE RADIAL3 DIAGONAL3 CORNER4.OUT BAR.DISSOLVE R.BY.PALETTE FOURSPIRAL SOFT.R IRIS CASCADE AND CHECKERBOARD LR.BY.PIXEL RADIAL4 CHECKER.FIZZLE STAGGERWHITE.LR SOFT.UD.OUT ONESQUARE FIZZLE STAR DIAMOND TWOPASS.LR HALF.MOSAIC RADIAL5 ARROW FOURSQUARE BLOCK.FIZZLE DIAGONAL4 STAGGER.UD INTERLOCK.LR SOFT.UD.IN BLOCK.MOSAIC CORNER4.IN INTERLOCK.UD LITTLE.BOXES SPIRAL ARROW.WHITE TRI.FIZZLE [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 can use $6000-$BFFF in main memory, zero page, and # text page if needed (but preserve the screen holes). $800-$1FFF is reserved # for the slideshow data. 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 SOFT.DIAGONAL STAGGERWHITE.UD RADIAL STAGGER.LR SOFT.UD CRYSTAL BIT.FIZZLE MEETINTHEMIDDLE DIAGONAL R.BY.PIXEL SUNRISE SOFT.L SUNSET IRIS.IN CORNER.CIRCLE CENTER.BY.PIXEL DIAGONAL2 RIPPLE2 PALETTE.FIZZLE RADIAL2 SPLIT.UD.INTRO R.BY.2 HALF.FIZZLE RADIAL3 DIAGONAL3 CORNER4.OUT LATTICE BAR.DISSOLVE R.BY.PALETTE FOURSPIRAL SOFT.R IRIS CASCADE AND CHECKERBOARD LR.BY.PIXEL RADIAL4 CHECKER.FIZZLE STAGGERWHITE.LR SOFT.UD.OUT ONESQUARE FIZZLE STAR DIAMOND TWOPASS.LR HALF.MOSAIC RADIAL5 ARROW FOURSQUARE BLOCK.FIZZLE DIAGONAL4 STAGGER.UD INTERLOCK.LR SOFT.UD.IN BLOCK.MOSAIC CORNER4.IN INTERLOCK.UD LITTLE.BOXES SPIRAL ARROW.WHITE TRI.FIZZLE [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 can use $6000-$BFFF in main memory, zero page, and # text page if needed (but preserve the screen holes). $800-$1FFF is reserved # for the slideshow data. 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.lattice.a b/src/fx/fx.hgr.lattice.a new file mode 100644 index 000000000..5af2320c3 --- /dev/null +++ b/src/fx/fx.hgr.lattice.a @@ -0,0 +1,221 @@ +;license:MIT +;(c) 2019 by 4am +; +!cpu 6502 +!to "build/FX/LATTICE",plain +*=$6000 + +maskindex = $fc +rowcount = $fd +row = $fe +col = $ff + + !source "src/fx/macros.a" + + lda #5 + sta maskindex +MaskLoop + ldx maskindex + lda even_maskslo,x + sta EvenMask + lda even_maskshi,x + sta EvenMask+1 + lda odd_maskslo,x + sta OddMask + lda odd_maskshi,x + sta OddMask+1 + lda #0 + sta row + lda #23 + sta rowcount + jsr WaitForVBL +RowLoop + lda row + +HGR_ROW_CALC + lda #39 + sta col +ColLoop + ldy col + tya + eor row + and #1 + bne Odd + clc + ldx #7 +- lda ($3c),y + eor ($26),y +EvenMask=*+1 + and $FDFD,x + eor ($26),y + sta ($26),y + +HGR_INC_WITHIN_BLOCK + dex + bpl - + bmi NextCol +Odd + clc + ldx #7 +- lda ($3c),y + eor ($26),y +OddMask=*+1 + and $FDFD,x + eor ($26),y + sta ($26),y + +HGR_INC_WITHIN_BLOCK + dex + bpl - +NextCol + +RESET_HGR_CALC + dec col + +LBPL ColLoop + inc row + dec rowcount + +LBPL RowLoop + bit $c000 + bmi Exit + dec maskindex + +LBPL MaskLoop +Exit rts + +even_maskslo + !byte copymask_even6 + !byte >copymask_even5 + !byte >copymask_even4 + !byte >copymask_even3 + !byte >copymask_even2 + !byte >copymask_even1 + +odd_maskslo + !byte copymask_odd6 + !byte >copymask_odd5 + !byte >copymask_odd4 + !byte >copymask_odd3 + !byte >copymask_odd2 + !byte >copymask_odd1 + +copymask_even1 + !byte %11100000 + !byte %10110000 + !byte %10011000 + !byte %10011000 + !byte %10001100 + !byte %10000110 + !byte %10000011 + !byte %10000001 +copymask_odd1 + !byte %10000001 + !byte %10000011 + !byte %10000110 + !byte %10001100 + !byte %10011000 + !byte %10011000 + !byte %10110000 + !byte %11100000 +copymask_even2 + !byte %11110000 + !byte %10111000 + !byte %10011100 + !byte %10011100 + !byte %10001110 + !byte %10000111 + !byte %11000011 + !byte %11100001 +copymask_odd2 + !byte %11100001 + !byte %11000011 + !byte %10000111 + !byte %10001110 + !byte %10011100 + !byte %10011100 + !byte %10111000 + !byte %11110000 +copymask_even3 + !byte %11110001 + !byte %11111000 + !byte %10111100 + !byte %10111100 + !byte %10011110 + !byte %10001111 + !byte %11000111 + !byte %11100011 +copymask_odd3 + !byte %11100011 + !byte %11000111 + !byte %10001111 + !byte %10011110 + !byte %10111100 + !byte %10111100 + !byte %11111000 + !byte %11110001 +copymask_even4 + !byte %11111001 + !byte %11111100 + !byte %10111110 + !byte %10111110 + !byte %10011111 + !byte %11001111 + !byte %11100111 + !byte %11110011 +copymask_odd4 + !byte %11110011 + !byte %11100111 + !byte %11001111 + !byte %10011111 + !byte %10111110 + !byte %10111110 + !byte %11111100 + !byte %11111001 +copymask_even5 + !byte %11111011 + !byte %11111101 + !byte %11111110 + !byte %11111110 + !byte %10111111 + !byte %11011111 + !byte %11101111 + !byte %11110111 +copymask_odd5 + !byte %11110111 + !byte %11101111 + !byte %11011111 + !byte %10111111 + !byte %11111110 + !byte %11111110 + !byte %11111101 + !byte %11111011 +copymask_even6 + !byte %11111111 + !byte %11111111 + !byte %11111111 + !byte %11111111 + !byte %11111111 + !byte %11111111 + !byte %11111111 + !byte %11111111 +copymask_odd6 + !byte %11111111 + !byte %11111111 + !byte %11111111 + !byte %11111111 + !byte %11111111 + !byte %11111111 + !byte %11111111 + !byte %11111111 + + !source "src/wait.a" + !source "src/fx/fx.hgr.common.a" + !source "src/fx/hw.vbl.a"