From 26e272ff42e6a7c7d30da84750d756b6dfd5df19 Mon Sep 17 00:00:00 2001 From: Vince Weaver Date: Mon, 15 May 2023 01:18:24 -0400 Subject: [PATCH] double: more effects --- vaporlock/doubledouble/Makefile | 5 +- vaporlock/doubledouble/double.s | 14 ++-- .../{effect_slide.s => effect_dhgr_dgr.s} | 0 vaporlock/doubledouble/effect_dhgr_hgr.s | 67 +++++++++++++++++++ vaporlock/doubledouble/effect_midline.s | 44 ++++++++++++ vaporlock/doubledouble/hardware.inc | 5 +- 6 files changed, 126 insertions(+), 9 deletions(-) rename vaporlock/doubledouble/{effect_slide.s => effect_dhgr_dgr.s} (100%) create mode 100644 vaporlock/doubledouble/effect_dhgr_hgr.s create mode 100644 vaporlock/doubledouble/effect_midline.s diff --git a/vaporlock/doubledouble/Makefile b/vaporlock/doubledouble/Makefile index c7ba9d47..17beda0d 100644 --- a/vaporlock/doubledouble/Makefile +++ b/vaporlock/doubledouble/Makefile @@ -31,7 +31,10 @@ double.o: double.s \ interrupt_handler.s pt3_lib_mockingboard_patch.s \ wait_a_bit.s wait.s pt3_lib_init.s \ music/fighting.zx02 \ - effect_static.s effect_slide.s \ + effect_static.s \ + effect_dhgr_dgr.s \ + effect_dhgr_hgr.s \ + effect_midline.s \ table/sin.table \ graphics/sworg_hgr.hgr.zx02 \ graphics/sworg_dhgr.aux.zx02 \ diff --git a/vaporlock/doubledouble/double.s b/vaporlock/doubledouble/double.s index c8216912..d993f4f6 100644 --- a/vaporlock/doubledouble/double.s +++ b/vaporlock/doubledouble/double.s @@ -435,17 +435,19 @@ vblank_smc: ; .include "effect_static.s" - .include "effect_slide.s" +; .include "effect_dhgr_dgr.s" +; .include "effect_dhgr_hgr.s" + .include "effect_midline.s" inc FRAME ldx FRAME - lda sin_table,X - sta effect_top_smc+1 +; lda sin_table,X +; sta effect_top_smc+1 - clc - adc #32 - sta effect_bottom_smc+1 +; clc +; adc #32 +; sta effect_bottom_smc+1 jmp double_loop ; 3 diff --git a/vaporlock/doubledouble/effect_slide.s b/vaporlock/doubledouble/effect_dhgr_dgr.s similarity index 100% rename from vaporlock/doubledouble/effect_slide.s rename to vaporlock/doubledouble/effect_dhgr_dgr.s diff --git a/vaporlock/doubledouble/effect_dhgr_hgr.s b/vaporlock/doubledouble/effect_dhgr_hgr.s new file mode 100644 index 00000000..90e201e3 --- /dev/null +++ b/vaporlock/doubledouble/effect_dhgr_hgr.s @@ -0,0 +1,67 @@ +; goal +; +; 192 lines +; window is 32 lines +; so 0...current +; current...current+32 +; current+32...192 +; double hi-res / double lo-res + +; test, 100 lines of double-hires +; 100*65 = 6500 + + ; 2+ X*(12+2+3) - 1 + +effect_top_smc: + ldx #100 ; 2 +aloop: + jsr delay_12 ; 12 + jsr delay_12 ; 12 + jsr delay_12 ; 12 + jsr delay_12 ; 12 + jsr delay_12 ; 12 + dex ; 2 + bne aloop ; 2/3 + + ; return to regular hi-res + + sta SETAN3 ; leave double mode + sta CLR80COL ; leave 80-col mode + bit PAGE2 + + ldx #32 ; 2 +bloop: + jsr delay_12 ; 12 + jsr delay_12 ; 12 + jsr delay_12 ; 12 + jsr delay_12 ; 12 + jsr delay_12 ; 12 + dex ; 2 + bne bloop ; 2/3 + + + bit SET_GR + bit HIRES + sta CLRAN3 ; enable double mode + sta SET80COL ; enable 80-column mode + bit PAGE1 +effect_bottom_smc: + ldx #60 ; 2 +cloop: + jsr delay_12 ; 12 + jsr delay_12 ; 12 + jsr delay_12 ; 12 + jsr delay_12 ; 12 + jsr delay_12 ; 12 + inx ; 2 + cpx #192 + bcs cloop ; 2/3 + + + + + + + + + diff --git a/vaporlock/doubledouble/effect_midline.s b/vaporlock/doubledouble/effect_midline.s new file mode 100644 index 00000000..bf5b55a4 --- /dev/null +++ b/vaporlock/doubledouble/effect_midline.s @@ -0,0 +1,44 @@ +; goal +; +; 192 lines +; window is 32 lines +; so 0...current +; current...current+32 +; current+32...192 +; double hi-res / double lo-res + +; test, 100 lines of double-hires +; 100*65 = 6500 + + ; 2+ X*(12+2+3) - 1 + +effect_top_smc: + + ldx #192 ; 2 +qloop: + bit HIRES ; 4 + bit PAGE1 ; 4 + bit PAGE1 ; 4 +; 12 + jsr delay_12 ; 12 + jsr delay_12 ; 12 +; 36 + bit LORES ; 4 + bit PAGE2 ; 4 + bit PAGE2 ; 4 +; 48 + jsr delay_12 ; 12 +; 60 + dex ; 2 +; 62 + bne qloop ; 2/3 + + + + + + + + + + diff --git a/vaporlock/doubledouble/hardware.inc b/vaporlock/doubledouble/hardware.inc index b9f434ca..6873a6d4 100644 --- a/vaporlock/doubledouble/hardware.inc +++ b/vaporlock/doubledouble/hardware.inc @@ -8,8 +8,9 @@ EIGHTYSTOREON = $C001 ; (write) page2 writes to AUX memory WRMAINRAM = $C004 ; (write) WRAUXRAM = $C005 ; (write) -CLR80COL = $C00C -SET80COL = $C00D +CLR80COL = $C00C ; (write) +SET80COL = $C00D ; (write) +CLRMOUSETET = $C00E ; (write) disable moust text SETMOUSETEXT = $C00F ; (write) enable mouse text KEYRESET = $C010