diff --git a/demos/lovebyte2024/d2v/dont2.s b/demos/lovebyte2024/d2v/dont2.s index e8bda73a..394c1bd0 100644 --- a/demos/lovebyte2024/d2v/dont2.s +++ b/demos/lovebyte2024/d2v/dont2.s @@ -25,11 +25,13 @@ INH = $FF ; ROM locations HGR2 = $F3D8 HGR = $F3E2 +BKGND0 = $F3F4 HPOSN = $F411 XDRAW0 = $F65D XDRAW1 = $F661 HPLOT0 = $F457 + hposn_low = $6000 hposn_high = $6100 @@ -38,6 +40,15 @@ dont: jsr HGR ; Hi-res, full screen ; 3 ; Y=0, A=0 after this call + lda #$1 + sta HGR_SCALE + lda #$0 + sta HGR_ROTATION + + lda #$80 ; clear so we get blue/orange when xdraw + jsr BKGND0 + + ;========================== ; make table @@ -87,6 +98,7 @@ draw_loop: sta INH jsr draw_sprite +; jsr do_xdraw ending: jmp ending @@ -184,7 +196,7 @@ exit_sign: .byte $1F,$7F ; @@@@@.. @@@@@@@ .byte $7F,$7F ; @@@@@@@@@@@@@@@ - +; note: these can't cross a page boundary or you'll get corruption ;========================== ; draw sprite @@ -228,3 +240,88 @@ draw_sprite_y_end_smc: bne draw_sprite_outer ; 2 rts ; 1 + + + + ;==================================== + +do_xdraw: + + ; A and Y are 0 here. + ; X is left behind by the boot process? + + ; set GBASL/GBASH + ; we really have to call this, otherwise it won't run + ; on some real hardware depending on setup of zero page at boot + + + ldy #0 + ldx #139 + lda #96 + jsr HPOSN ; set screen position to X= (y,x) Y=(a) + ; saves X,Y,A to zero page + ; after Y= orig X/7 + ; A and X are ?? + + ldx #our_shape ; our shape table is in ROM at $E2E2 + lda #0 + + jsr XDRAW0 ; XDRAW 1 AT X,Y + ; Both A and X are 0 at exit + ; Z flag set on exit + ; Y varies + + rts + + + + +;.byte $07,$00 +;.byte $10,$00, $1b,$00, $2e,$00 +;.byte $42,$00, $61,$00, $80,$00 +;.byte $8a,$00 + +; crosshair + +.byte $1b,$6d,$39,$97,$12,$24,$24,$24 +.byte $24,$04,$00 + +; portal + +.byte $1b,$24,$0c,$24,$0c +.byte $15,$36,$0e,$36,$36,$1e,$36,$1e +.byte $1c,$24,$1c,$24,$04,$00 + +; sideways portal + +.byte $52,$0d +.byte $0d,$0d,$6c,$24,$1f,$fc,$1f,$1f +.byte $1f,$1f,$1f,$fe,$36,$0d,$6e,$0d +.byte $05,$00 + +; chell right +our_shape: +.byte $1b,$36,$36,$36,$0d,$df +.byte $1b,$24,$0c,$24,$24,$1c,$24,$64 +.byte $69,$1e,$37,$2d,$1e,$77,$6e,$25 +.byte $2d,$2d,$f5,$ff,$13,$2d,$2d,$2d +.byte $00 + +; chell left + +.byte $09,$36,$36,$36,$1f,$4d,$09 +.byte $24,$1c,$24,$24,$0c,$24,$e4,$fb +.byte $0e,$35,$3f,$0e,$f5,$fe,$27,$3f +.byte $3f,$77,$6d,$11,$3f,$3f,$3f,$00 + +; fireball + +.byte $12,$0c,$0c,$1c,$1c,$1e,$1e,$0e +.byte $0e,$00 + +; blue core +.byte $fa,$24,$0d,$0d,$36,$9f +.byte $3a,$3f,$3c,$3c,$2c,$3c,$0c,$25 +.byte $2d,$2d,$2d,$2e,$2e,$3e,$2e,$1e +.byte $37,$3f,$07,$00 diff --git a/demos/lovebyte2024/rainbow_squares_128/rainbow_squares.s b/demos/lovebyte2024/rainbow_squares_128/rainbow_squares.s index 3f5a2c66..e7a98977 100644 --- a/demos/lovebyte2024/rainbow_squares_128/rainbow_squares.s +++ b/demos/lovebyte2024/rainbow_squares_128/rainbow_squares.s @@ -1,30 +1,12 @@ -; this was a weird effect that turns out to be because we're linking -; at the wrong address so it's just the effect when -; TL/TH holds the values $A0 $A0 - +; this is a pretty effect during sierpinski zoom +; accidentally discovered when loading at the wrong address +; so TL/TH was on text page1 and full of $a0 (space characters) in TL/TH ; sierpinski-like demo ; based on the code from Hellmood's Memories demo ; by Vince `deater` Weaver -; the simple sierpinski you more or less just plot -; X AND Y - -; Hellmood's you plot something more or less like -; COLOR = ( (Y-(X*T)) & (X+(Y*T) ) & 0xf0 -; where T is an incrementing frame value - -; to get speed on 6502/Apple II we change the multiplies to -; a series of 16-bit 8.8 fixed point adds - -; TODO: -; HPLOT timing -; MOVERIGHT timing -; MOVERIGHT MOVEDOWN timing -; LOOKUP TABLE timing - - ; zero page HGR_BITS = $1C @@ -59,22 +41,12 @@ PLOT1 = $F80E ;; PLOT at (GBASL),Y (need MASK to be $0f or $f0) GBASCALC= $F847 ;; take Y-coord/2 in A, put address in GBASL/H ( a trashed, C clear) SETGR = $FB40 - -;.zeropage -;h.globalzp T_L,T_H - ;================================ ; Clear screen and setup graphics ;================================ sier: jsr HGR2 ; set FULLGR, sets A=0 - -; lda #$5b ; start with multiplier 0 -; sta T_L -; lda #$41 ; start with multiplier 0 -; sta T_H - sier_outer: ldy #0 ; YY starts at 0 diff --git a/music/tiny_tracker6/NOTES b/music/tiny_tracker6/NOTES new file mode 100644 index 00000000..eede7ec8 --- /dev/null +++ b/music/tiny_tracker6/NOTES @@ -0,0 +1,22 @@ +This was used for the blueflame music for demosplash2023 + +mockingboard_init.s + assume slot #4 + only one channel + sets up interrupt handler +tracker_init.s + clear mirror registers in ZP to 0 + ($70-$83?) + if any register always same, set it ($38 to mixer?) + + +play_frame.s + has amplitudes to rotate through on A/B channel + + ; NNNNNEEC -- c=channel, e=end, n=note + ; 32 notes, 4 lengths, 2 channels + + +Original tiny tracker6: + 2 channels +