mirror of
https://github.com/deater/dos33fsprogs.git
synced 2024-12-29 00:31:52 +00:00
lovebyte: some more work
This commit is contained in:
parent
e35ca28dea
commit
7f98b47120
@ -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 ; load $E2 into A, X, and Y
|
||||
ldy #>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
|
||||
|
@ -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 <vince@deater.net>
|
||||
|
||||
; 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
|
||||
|
22
music/tiny_tracker6/NOTES
Normal file
22
music/tiny_tracker6/NOTES
Normal file
@ -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
|
||||
|
Loading…
Reference in New Issue
Block a user