diff --git a/res/DFX.CONF b/res/DFX.CONF index 62f52771e..fd0f2f169 100644 --- a/res/DFX.CONF +++ b/res/DFX.CONF @@ -9,6 +9,7 @@ DHGR.RADIAL3 DHGR.TWOPASS.LR DHGR.RADIAL2 DHGR.IRIS +DHGR.R.BY.PIXEL DHGR.RADIAL5 DHGR.FIZZLE DHGR.RIPPLEWH diff --git a/src/fx/fx.dhgr.r.by.pixel.a b/src/fx/fx.dhgr.r.by.pixel.a new file mode 100644 index 000000000..e10d58598 --- /dev/null +++ b/src/fx/fx.dhgr.r.by.pixel.a @@ -0,0 +1,101 @@ +;license:MIT +;(c) 2018 by 4am +; +!cpu 6502 +!to "build/FX/DHGR.R.BY.PIXEL",plain +*=$6000 + +hgrlo = $0201 ; [$C0 bytes, main memory only, offset by 1 because lookups will be based on $0200,x] +hgr1hi = $0301 ; [$C0 bytes, main memory only] +copymasks= $02C1 ; [$07 bytes, different values in main and auxmem] + + !source "src/fx/macros.a" + + ldx #(end-start) ; copy code to zero page +- lda start-1, x + sta $FF, x + dex + bne - + + +BUILD_HGR_LOOKUP_TABLES_X_IS_ALREADY_0 hgrlo, hgr1hi + + ldy #7 ; copy copymask arrays into place in main and auxmem +- lda copymasks_main-1, y + sta copymasks-1, y + lda copymasks_aux-1, y + sta $C005 + sta copymasks-1, y + sta $C004 + dey + bne - + + jmp loop + +;1GGFFEED (main) + +;1DCCBBAA (aux) +copymasks_aux ; used in reverse order + !byte %00000000 + !byte %00000000 + !byte %00000000 + !byte %11111111 + !byte %10111111 + !byte %10001111 + !byte %10000011 +copymasks_main ; used in reverse order + !byte %11111111 + !byte %10011111 + !byte %10000111 + !byte %10000001 + !byte %00000000 + !byte %00000000 + !byte %00000000 + +start +!pseudopc 0 { +;in: Y=0 (HGR column index) +loop + lda #6 ; copymask index, 6 -> 0 inclusive + sta