some wipes

This commit is contained in:
4am 2019-10-19 23:44:08 -04:00
parent b39e9264d8
commit 1b78361fd5
4 changed files with 147 additions and 13 deletions

View File

@ -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 CORNER.CIRCLE DIAGONAL2 RIPPLE2 RADIAL2 SPLIT.UD.INTRO HALF.FIZZLE RADIAL3 DIAGONAL3 BAR.DISSOLVE FOURSPIRAL SOFT.R IRIS CASCADE AND CHECKERBOARD LR.BY.PIXEL RADIAL4 STAGGERWHITE.LR SOFT.UD.OUT ONESQUARE FIZZLE STAR DIAMOND TWOPASS.LR HALF.MOSAIC RADIAL5 ARROW FOURSQUARE DIAGONAL4 STAGGER.UD INTERLOCK.LR SOFT.UD.IN BLOCK.MOSAIC INTERLOCK.UD BLOCK.FIZZLE SPIRAL ARROW.WHITE [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. $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. # RIPPLE STARWHITE SOFT.DIAGONAL STAGGERWHITE.UD RADIAL STAGGER.LR SOFT.UD CRYSTAL BIT.FIZZLE MEETINTHEMIDDLE DIAGONAL R.BY.PIXEL SUNRISE SOFT.L SUNSET CORNER.CIRCLE CENTER.BY.PIXEL DIAGONAL2 RIPPLE2 RADIAL2 SPLIT.UD.INTRO HALF.FIZZLE RADIAL3 DIAGONAL3 BAR.DISSOLVE FOURSPIRAL SOFT.R IRIS CASCADE AND CHECKERBOARD LR.BY.PIXEL RADIAL4 STAGGERWHITE.LR SOFT.UD.OUT ONESQUARE FIZZLE STAR DIAMOND TWOPASS.LR HALF.MOSAIC RADIAL5 ARROW FOURSQUARE DIAGONAL4 STAGGER.UD INTERLOCK.LR SOFT.UD.IN BLOCK.MOSAIC INTERLOCK.UD BLOCK.FIZZLE SPIRAL ARROW.WHITE [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. $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. #

View File

@ -0,0 +1,136 @@
;license:MIT
;(c) 2019 by 4am
;
!cpu 6502
!to "build/FX/CENTER.BY.PIXEL",plain
*=$6000
sourcemask1 = $f0
sourcemask2 = $f1
copymask1 = $f2
copymask2 = $f3
skipcounter = $f7
counter = $f8
top = $f9
bottom = $fa
tmp = $fb
maskindex = $fc
row = $fd
col1 = $fe
col2 = $ff
!source "src/fx/macros.a"
lda #44
sta skipcounter
lda #$5F
sta counter
lda #0
sta top
lda #$BF
sta bottom
lda #0
sta col1
lda #39
sta col2
ColLoop
lda #6
sta maskindex
jsr WaitForVBL
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
+HGR_ROW_CALC
ldx #8
BlockLoop
ldy col1
lda ($26),y
and sourcemask1
sta tmp
lda ($3c),y
and copymask1
ora tmp
sta ($26),y
ldy col2
lda ($26),y
and sourcemask2
sta tmp
lda ($3c),y
and copymask2
ora tmp
sta ($26),y
clc
+HGR_INC_WITHIN_BLOCK
dex
bne BlockLoop
dec row
bpl RowLoop
dec skipcounter
+LBPL SkipTopAndBottom
lda top
+HGR_CALC
ldy #39
- lda ($3c),y
sta ($26),y
dey
bpl -
inc top
lda bottom
+HGR_CALC
ldy #39
- lda ($3c),y
sta ($26),y
dey
bpl -
dec bottom
dec counter
bmi Exit
SkipTopAndBottom
lda $c000
bmi Exit
dec maskindex
+LBPL MaskLoop
inc col1
dec col2
+LBNE 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"
!source "src/fx/hw.vbl.a"

View File

@ -23,10 +23,7 @@ HGRBlockCopy
; Z set ; Z set
; C clear ; C clear
; all other flags and registers clobbered ; all other flags and registers clobbered
asl +HGR_ROW_CALC
asl
asl
+HGR_CALC
HGRBlockCopyNoRecalc HGRBlockCopyNoRecalc
clc clc
ldx #$08 ldx #$08
@ -46,10 +43,7 @@ HGRBlockToWhite
; Z set ; Z set
; C clear ; C clear
; all other flags and registers clobbered ; all other flags and registers clobbered
asl +HGR_ROW_CALC
asl
asl
+HGR_CALC
clc clc
ldx #$08 ldx #$08
@loop @loop
@ -141,10 +135,7 @@ HGRBlockCopyWithMask
; out: Y preserved ; out: Y preserved
; A/X clobbered ; A/X clobbered
; $00 clobbered ; $00 clobbered
asl +HGR_ROW_CALC
asl
asl
+HGR_CALC
HGRBlockCopyWithMaskNoRecalc HGRBlockCopyWithMaskNoRecalc
ldx #7 ldx #7
HGRBlockCopyWithMasksLoop HGRBlockCopyWithMasksLoop

View File

@ -55,6 +55,13 @@
sta $3c sta $3c
} }
!macro HGR_ROW_CALC {
asl
asl
asl
+HGR_CALC
}
; /!\ C must be clear before using this macro ; /!\ C must be clear before using this macro
!macro HGR_INC_WITHIN_BLOCK { !macro HGR_INC_WITHIN_BLOCK {
lda $27 lda $27