This commit is contained in:
tildearrow 2023-03-13 20:01:01 -05:00
parent 07ed76a63b
commit ced4fd8ee1
8 changed files with 247 additions and 21 deletions

View file

@ -0,0 +1,4 @@
all: player
player: player.s
vasmm68k_mot -Fhunkexe -kick1hunks -o player player.s

View file

@ -26,24 +26,23 @@ run a.out on Amiga. it should play the exported song.
# sequence format
## 00-0F: global
## 00-0F: per-channel (00, 10, 20, 30)
- 00: do nothing
- 01: next tick
- 02 xx: wait
- 03 xxxx: wait
- 06 xxxx: write to DMACON
- 0a xxxx: write to INTENA
- 0e xxxx: write to ADKCON
## 10-1F: per-channel (10, 20, 30, 40)
- 10 xxxxxx yyyy zzzzzz wwww: set loc/len
- 00 xxxxxx yyyy: set loc/len
- x: loc
- y: len
- z: loc after interrupt
- w: len after interrupt
- 12 xxxx yy: initialize wavetable (xxxx: pos; yy: length)
- 16 xxxx: set period
- 18 xx: set volume
- 1a xxxx: set data
- 01 xxxx yy: initialize wavetable (xxxx: pos; yy: length)
- 06 xxxx: set period
- 08 xx: set volume
- 0a xxxx: set data
## F0-FF: global
- f0: do nothing
- f1: next tick
- f2 xx: wait
- f3 xxxx: wait
- f6 xxxx: write to DMACON
- fa xxxx: write to INTENA
- fe xxxx: write to ADKCON
- ff: end of song

View file

@ -5,9 +5,34 @@
VPOSR = $dff004
COLOR00 = $dff180
DMACONR = $dff002
DMACON = $dff096
AUD0LCH = $dff0a0
AUD0LCL = $dff0a2
AUD0LEN = $dff0a4
AUD0PER = $dff0a6
AUD0VOL = $dff0a8
AUD0DAT = $dff0aa
cseg
move.l #0,d0
move.w #15,d0
move.w d0,DMACON
testDMACon:
move.w DMACON,d0
btst #0,d0
bne testDMACon
lea sampleData(pc),a0
move.l a0,AUD0LCH
move.w #$2000,d0
move.w d0,AUD0LEN
move.w #$a0,d0
move.w d0,AUD0PER
move.w #$40,d0
move.w d0,AUD0VOL
move.l #$8201,d0
move.w d0,DMACON
main:
jsr waitVBlank
@ -30,3 +55,14 @@ data_c
curColor:
dc.w 0
sampleData:
incbin "sample.bin"
data_f
sequence:
incbin "seq.bin"
wavetable:
incbin "wave.bin"