wipes: add a few more

This commit is contained in:
Vince Weaver
2024-11-12 01:39:10 -05:00
parent 37d0256cb3
commit b609d26440
8 changed files with 404 additions and 3 deletions

View File

@@ -10,12 +10,14 @@ all: wipes.dsk
wipes.dsk: HELLO \
bubbles/WIPE_BUBBLES \
cascade/WIPE_CASCADE \
center/WIPE_CENTER \
diamond/WIPE_DIAMOND \
diamond_stripes/WIPE_DIAMOND_STRIPE \
crystal/WIPE_CRYSTAL \
fizzle/WIPE_FIZZLE \
lr/WIPE_LR \
cascade/WIPE_CASCADE
thin_bar/WIPE_THIN_BAR
cp $(EMPTY_DISK)/empty.dsk wipes.dsk
$(DOS33) -y wipes.dsk SAVE A HELLO
$(DOS33) -y wipes.dsk BSAVE -a 0x5700 bubbles/WIPE_BUBBLES
@@ -25,7 +27,8 @@ wipes.dsk: HELLO \
$(DOS33) -y wipes.dsk BSAVE -a 0x6000 fizzle/WIPE_FIZZLE
$(DOS33) -y wipes.dsk BSAVE -a 0x6000 lr/WIPE_LR
$(DOS33) -y wipes.dsk BSAVE -a 0x6000 cascade/WIPE_CASCADE
$(DOS33) -y wipes.dsk BSAVE -a 0x6000 thin_bar/WIPE_THIN_BAR
$(DOS33) -y wipes.dsk BSAVE -a 0x6000 center/WIPE_CENTER
###
HELLO: hello.bas
@@ -39,6 +42,9 @@ bubbles/WIPE_BUBBLES:
cascade/WIPE_CASCADE:
cd cascade && make
center/WIPE_CENTER:
cd center && make
crystal/WIPE_CRYSTAL:
cd crystal && make
@@ -54,14 +60,19 @@ fizzle/WIPE_FIZZLE:
lr/WIPE_LR:
cd lr && make
thin_bar/WIPE_THIN_BAR:
cd thin_bar && make
###
clean:
rm -f *~ *.o *.lst *.zx02 HELLO
cd bubbles && make clean
cd cascade && make clean
cd center && make clean
cd crystal && make clean
cd diamond && make clean
cd diamond_stripes && make clean
cd crystal && make clean
cd fizzle && make clean
cd lr && make clean
cd thin_bar && make clean

View File

@@ -0,0 +1,24 @@
include ../../../../Makefile.inc
LINKER_SCRIPTS = ../../../../linker_scripts
all: WIPE_CENTER
###
WIPE_CENTER: wipe_center.o
ld65 -o WIPE_CENTER wipe_center.o -C $(LINKER_SCRIPTS)/apple2_6000.inc
wipe_center.o: wipe_center.s \
../zp.inc ../hardware.inc ../wait_keypress.s ../zx02_optim.s \
../main_macros.s \
fx.hgr.center.by.pixel.s \
../fx.lib.s \
../macros.s
ca65 -o wipe_center.o wipe_center.s -l wipe_center.lst
###
clean:
rm -f *~ *.o *.lst *.zx02 HELLO WIPE_CENTER

View File

@@ -0,0 +1,126 @@
;license:MIT
;(c) 2019 by 4am
;
;!cpu 6502
;!to "build/FX.INDEXED/CENTER.BY.PIXEL",plain
;*=$6000
copymask1 = $f2
copymask2 = $f3
skipcounter = $f7
top = $f9
bottom = $fa
counter = $fb
maskindex = $fc
row = $fd
col1 = $fe
col2 = $ff
; !source "src/fx/macros.a"
.include "../macros.s"
; !source "src/constants.a"
.include "../constants.s"
do_wipe_center:
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 wait_vblank
MaskLoop:
ldx maskindex
lda copymasks1,x
sta copymask1
lda copymasks2,x
sta copymask2
lda #23
sta row
RowLoop:
lda row
HGR_ROW_CALC
ldx #8
BlockLoop:
ldy col1
lda ($26),y
eor ($3c),y
and copymask1
eor ($26),y
sta ($26),y
ldy col2
lda ($26),y
eor ($3c),y
and copymask2
eor ($26),y
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
cbpm: lda ($3c),y
sta ($26),y
dey
bpl cbpm
inc top
lda bottom
HGR_CALC
ldy #39
cbpm2: lda ($3c),y
sta ($26),y
dey
bpl cbpm2
dec bottom
dec counter
bmi cExit
SkipTopAndBottom:
lda $c000
bmi cExit
dec maskindex
LBPL MaskLoop
inc col1
dec col2
LBNE ColLoop
cExit: ; jmp UnwaitForVBL
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

View File

@@ -0,0 +1,67 @@
; test 4-cade center by pixel wipe
.include "../zp.inc"
.include "../hardware.inc"
wipe_center_by_pixel:
bit SET_GR
bit HIRES
bit FULLGR
bit PAGE1
;=================================
; intro
;=================================
lda #<test_graphic
sta zx_src_l+1
lda #>test_graphic
sta zx_src_h+1
lda #$20
jsr zx02_full_decomp
; ldy #0
;fake_hgr2:
; lda #$0
; sta $4000,Y
; dey
; bne fake_hgr2
;
; inc fake_hgr2+2
; lda fake_hgr2+2
; cmp #$60
; bne fake_hgr2
jsr HGR2
bit PAGE1
jsr wait_until_keypress
;=================================
; test wipe...
;=================================
test_loop:
jsr do_wipe_center
jsr wait_until_keypress
jmp test_loop
.include "../wait_keypress.s"
.include "../fx.lib.s"
.include "../main_macros.s"
.include "../macros.hgr.s"
.include "fx.hgr.center.by.pixel.s"
test_graphic:
.incbin "../graphics/a2_dating.hgr.zx02"
.include "../zx02_optim.s"
.include "../vblank.s"
;.include "../wait_for_key.s"

View File

@@ -191,9 +191,16 @@ end_pstring:
;}
;!macro LBPL .target {
.macro LBPL target
; bmi +
; jmp .target
;+
.local plus
bmi plus
jmp target
plus:
.endmacro
;}
;!macro LBMI .target {

View File

@@ -0,0 +1,24 @@
include ../../../../Makefile.inc
LINKER_SCRIPTS = ../../../../linker_scripts
all: WIPE_THIN_BAR
###
WIPE_THIN_BAR: wipe_thin_bar.o
ld65 -o WIPE_THIN_BAR wipe_thin_bar.o -C $(LINKER_SCRIPTS)/apple2_6000.inc
wipe_thin_bar.o: wipe_thin_bar.s \
../zp.inc ../hardware.inc ../wait_keypress.s ../zx02_optim.s \
../main_macros.s \
fx.hgr.thin.bar.dissolve.s \
../fx.lib.s \
../macros.s
ca65 -o wipe_thin_bar.o wipe_thin_bar.s -l wipe_thin_bar.lst
###
clean:
rm -f *~ *.o *.lst *.zx02 HELLO WIPE_THIN_BAR

View File

@@ -0,0 +1,75 @@
;license:MIT
;(c) 2022 by 4am
;
;!cpu 6502
;!to "build/FX.INDEXED/THIN.DISSOLVE",plain
;*=$6000
row1 = $fe
row2 = $ff
src = $3c
dst = $26
; !source "src/fx/macros.a"
.include "../macros.s"
do_wipe_thin_bar:
lda #$00
sta row1
lda #$BF
sta row2
loop: lda row1
jsr HGRCalc
ldy #$27
tbm: tya
and #$03
tax
lda (src),y
eor (dst),y ; merge source and destination bits
and mask1,x ; isolate the bits to replace, zero the rest
eor (dst),y ; unmerge source and destination bits, leaves 'to keep' destination bits intact
sta (dst),y ; write the result
dey
bpl tbm
lda row2
jsr HGRCalc
ldy #$27
tbm2: tya
and #$03
tax
lda (src),y
eor (dst),y
and mask3,x
eor (dst),y
sta (dst),y
dey
bpl tbm2
lda #$30
jsr WaitForKeyWithTimeout
bmi tb_exit
.if 0
ldx mask1
ldy mask3
stx mask3
sty mask1
ldx mask2
ldy mask4
stx mask4
sty mask2
.endif
inc row1
dec row2
lda row1
cmp #$C0
bne loop
tb_exit: rts
HGR_CALC_ROUTINES
mask1: .byte %10110011
mask2: .byte %11100110
mask3: .byte %11001100
mask4: .byte %10011001
.byte %10110011
.byte %11100110

View File

@@ -0,0 +1,67 @@
; test 4-cade thin bar dissolve wipe
.include "../zp.inc"
.include "../hardware.inc"
wipe_thin_bar_dissolve:
bit SET_GR
bit HIRES
bit FULLGR
bit PAGE1
;=================================
; intro
;=================================
lda #<test_graphic
sta zx_src_l+1
lda #>test_graphic
sta zx_src_h+1
lda #$20
jsr zx02_full_decomp
; ldy #0
;fake_hgr2:
; lda #$0
; sta $4000,Y
; dey
; bne fake_hgr2
;
; inc fake_hgr2+2
; lda fake_hgr2+2
; cmp #$60
; bne fake_hgr2
jsr HGR2
bit PAGE1
jsr wait_until_keypress
;=================================
; test wipe...
;=================================
test_loop:
jsr do_wipe_thin_bar
jsr wait_until_keypress
jmp test_loop
.include "../wait_keypress.s"
.include "../fx.lib.s"
.include "../main_macros.s"
.include "../macros.hgr.s"
.include "fx.hgr.thin.bar.dissolve.s"
test_graphic:
.incbin "../graphics/a2_dating.hgr.zx02"
.include "../zx02_optim.s"
.include "../vblank.s"
;.include "../wait_for_key.s"