some wipes

This commit is contained in:
4am 2019-10-19 10:47:34 -04:00
parent 91573efbd3
commit 2e6a75673b
2 changed files with 256 additions and 1 deletions

View File

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

255
src/fx/fx.hgr.soft.r.a Normal file
View File

@ -0,0 +1,255 @@
;license:MIT
;(c) 2019 by 4am
;
!cpu 6502
!to "build/FX/SOFT.R",plain
*=$6000
y = $fc
row = $fd
col = $fe
counter = $ff
!source "src/fx/macros.a"
; must LDY or INY or DEY or TYA or something immediately before this
!macro IS_Y_OFFSCREEN {
bpl +
sec
bcs ++
+ cpy #40
++
}
+INIT_MASKS sourcemasks1, copymasks1
+INIT_MASKS sourcemasks2, copymasks2
+INIT_MASKS sourcemasks3, copymasks3
+INIT_MASKS sourcemasks4, copymasks4
+INIT_MASKS sourcemasks5, copymasks5
+INIT_MASKS sourcemasks6, copymasks6
lda #(40+7-1) ; columns + blocks per row - 1
sta counter
lda #0
sta col
ColLoop
lda #23
sta row
RowLoop
; [speedopt] calculate HGR base addresses once per row
lda row
asl
asl
asl
+HGR_CALC
ldy col
+IS_Y_OFFSCREEN
bcs @block2
; [speedopt] HGRBlockCopyWithMask but hardcoded for this block's masks
ldx #7
- lda ($26),y
and sourcemasks1,x
sta $00
lda ($3c),y
and copymasks1,x
ora $00
sta ($26),y
clc
+HGR_INC_WITHIN_BLOCK
dex
bpl -
; [speedopt] reset HGR base addresses instead of recalculating them from scratch
+RESET_HGR_CALC
@block2
dey
+IS_Y_OFFSCREEN
bcs @block3
ldx #7
- lda ($26),y
and sourcemasks2,x
sta $00
lda ($3c),y
and copymasks2,x
ora $00
sta ($26),y
clc
+HGR_INC_WITHIN_BLOCK
dex
bpl -
+RESET_HGR_CALC
@block3
dey
+IS_Y_OFFSCREEN
bcs @block4
ldx #7
- lda ($26),y
and sourcemasks3,x
sta $00
lda ($3c),y
and copymasks3,x
ora $00
sta ($26),y
clc
+HGR_INC_WITHIN_BLOCK
dex
bpl -
+RESET_HGR_CALC
@block4
dey
+IS_Y_OFFSCREEN
bcs @block5
ldx #7
- lda ($26),y
and sourcemasks4,x
sta $00
lda ($3c),y
and copymasks4,x
ora $00
sta ($26),y
clc
+HGR_INC_WITHIN_BLOCK
dex
bpl -
+RESET_HGR_CALC
@block5
dey
+IS_Y_OFFSCREEN
bcs @block6
ldx #7
- lda ($26),y
and sourcemasks5,x
sta $00
lda ($3c),y
and copymasks5,x
ora $00
sta ($26),y
clc
+HGR_INC_WITHIN_BLOCK
dex
bpl -
+RESET_HGR_CALC
@block6
dey
+IS_Y_OFFSCREEN
bcs @block7
ldx #7
- lda ($26),y
and sourcemasks6,x
sta $00
lda ($3c),y
and copymasks6,x
ora $00
sta ($26),y
clc
+HGR_INC_WITHIN_BLOCK
dex
bpl -
+RESET_HGR_CALC
@block7
dey
+IS_Y_OFFSCREEN
bcs @nextrow
; [speedopt] HGRBlockCopy but inlined
ldx #7
- lda ($3c),y
sta ($26),y
clc
+HGR_INC_WITHIN_BLOCK
dex
bpl -
; don't need RESET_HGR_CALC here because we're done with this row
@nextrow
dec row
+LBPL RowLoop
lda $c000
bmi @exit
inc col
dec counter
+LBNE ColLoop
@exit rts
sourcemasks1
!byte 0,0,0,0,0,0,0,0 ; SMC
sourcemasks2
!byte 0,0,0,0,0,0,0,0 ; SMC
sourcemasks3
!byte 0,0,0,0,0,0,0,0 ; SMC
sourcemasks4
!byte 0,0,0,0,0,0,0,0 ; SMC
sourcemasks5
!byte 0,0,0,0,0,0,0,0 ; SMC
sourcemasks6
!byte 0,0,0,0,0,0,0,0 ; SMC
copymasks1
!byte %10000000
!byte %10000000
!byte %10000000
!byte %10001000
!byte %10001000
!byte %10000000
!byte %10000000
!byte %10000000
copymasks2
!byte %10000000
!byte %10000000
!byte %10010100
!byte %10001000
!byte %10001000
!byte %10010100
!byte %10000000
!byte %10000000
copymasks3
!byte %10000000
!byte %10000000
!byte %10011100
!byte %10011100
!byte %10011100
!byte %10011100
!byte %10000000
!byte %10000000
copymasks4
!byte %10000000
!byte %10101010
!byte %10011100
!byte %10111110
!byte %10011100
!byte %10011100
!byte %10101010
!byte %10000000
copymasks5
!byte %10000000
!byte %10111110
!byte %10111110
!byte %10111110
!byte %10111110
!byte %10111110
!byte %10111110
!byte %10000000
copymasks6
!byte %11010101
!byte %10111110
!byte %11111111
!byte %10111110
!byte %11111111
!byte %10111110
!byte %10111110
!byte %11010101
!source "src/wait.a"
!source "src/fx/fx.hgr.common.a"