This commit is contained in:
Peter Ferrie 2019-10-14 21:34:44 -07:00
commit c3703247c5
3 changed files with 155 additions and 1 deletions

View File

@ -1 +1 @@
RIPPLE DIAGONAL STAGGERWHITE.UD STAR RADIAL FIZZLE CRYSTAL SUNRISE SUNSET CORNER.CIRCLE RIPPLE2 RADIAL2 RADIAL3 RADIAL4 RADIAL5 FOURSPIRAL IRIS SPLIT.UD.INTRO CHECKERBOARD HALF.FIZZLE BAR.DISSOLVE STAGGERWHITE.LR DIAMOND ONESQUARE TWOPASS.LR HALF.MOSAIC STAGGER.LR FOURSQUARE STAGGER.UD INTERLOCK.LR BLOCK.MOSAIC INTERLOCK.UD BLOCK.FIZZLE SPIRAL STARWHITE [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 LR.BY.PIXEL DIAGONAL STAGGERWHITE.UD STAR RADIAL FIZZLE CRYSTAL SUNRISE SUNSET CORNER.CIRCLE RIPPLE2 RADIAL2 RADIAL3 RADIAL4 RADIAL5 FOURSPIRAL IRIS AND SPLIT.UD.INTRO CHECKERBOARD HALF.FIZZLE BAR.DISSOLVE STAGGERWHITE.LR DIAMOND ONESQUARE TWOPASS.LR HALF.MOSAIC STAGGER.LR FOURSQUARE STAGGER.UD INTERLOCK.LR BLOCK.MOSAIC INTERLOCK.UD BLOCK.FIZZLE SPIRAL STARWHITE [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. #

44
src/fx/fx.hgr.and.a Normal file
View File

@ -0,0 +1,44 @@
;license:MIT
;(c) 2018 by 4am
;
!cpu 6502
!to "build/FX/AND",plain
*=$6000
i = $ff
lda #$06
sta i
@outerloop
dec i
bpl +
@exit rts
+ ldx i
lda masks,x
sta @mask
ldx #$40
stx @src
ldx #$20
stx @dest
ldy #0
@innerloop
@src=*+2
lda $FD00,y ; SMC
@mask=*+1
and #$FD ; SMC
@dest=*+2
sta $FD00,y ; SMC
iny
bne @innerloop
inc @src
inc @dest
dex
bne @innerloop
lda #$30
jsr WaitForKeyWithTimeout
bmi @exit
bpl @outerloop ; always branches
masks
!byte $FF,$BF,$9F,$8F,$87,$83,$81
!source "src/wait.a"
!source "src/fx/fx.hgr.common.a"

110
src/fx/fx.hgr.lr.by.pixel.a Normal file
View File

@ -0,0 +1,110 @@
;license:MIT
;(c) 2018 by 4am
;
!cpu 6502
!to "build/FX/LR.BY.PIXEL",plain
*=$6000
maskindex = $fd
row = $fe
col = $ff
@jump
jmp @copy ; skip clear the first time
;clear
lda #$27
sta col
@clearcolloop
lda #$06
sta maskindex
@clearmaskloop
ldx maskindex
lda clearmasks,x
sta @clearmask
lda #$17
sta row
@clearrowloop
lda row
asl
asl
asl
jsr HGRCalc
clc
ldx #$08
ldy col
@clearblockloop
lda ($26),y
@clearmask=*+1
and #$FD ; SMC
sta ($26),y
lda $27
adc #4
sta $27
dex
bne @clearblockloop
dec row
bpl @clearrowloop
lda #8
jsr WaitForKeyWithTimeout
bmi @exit
dec maskindex
bpl @clearmaskloop
dec col
bpl @clearcolloop
@copy
lda #$2C ; BIT opcode
sta @jump ; don't skip clear after first time
; copy
lda #$00
sta col
@colloop
lda #$06
sta maskindex
@maskloop
ldx maskindex
lda copymasks,x
sta @mask
lda #$17
sta row
@rowloop
lda row
asl
asl
asl
jsr HGRCalc
clc
ldx #$08
ldy col
@blockloop
lda ($3c),y
@mask=*+1
and #$FD ; SMC
sta ($26),y
lda $27
adc #4
sta $27
eor #$60
sta $3d
dex
bne @blockloop
dec row
bpl @rowloop
lda #8
jsr WaitForKeyWithTimeout
bmi @exit
dec maskindex
bpl @maskloop
inc col
lda col
cmp #40
bne @colloop
@exit rts
clearmasks
!byte $80,$81,$83,$87,$8F,$9F,$BF
copymasks
!byte $FF,$BF,$9F,$8F,$87,$83,$81
!source "src/wait.a"
!source "src/fx/fx.hgr.common.a"