VCS music tracker!
Ta-da! This is something I've been wanting to do for a long while - a VCS music tracker format. Forgive the tacky Fuji logo, it's the first VCS program I did years ago. I re-used it so I didn't have to spend too much time putting together something which would generate a stable screen.Format details:Two layer list format: top layer is a a song which is a list of 16 bit pointers to seqences (note lists); bottom layer are sequences which are a list of 1-n byte lengths, volume, notes and escape codes.
Song (words):<$8000 $8000 OR word is pointer to next song entry>$7FFF word is pointer to next sequenceSequence (byte codes):byte # byte0 $00 end of sequence0 $nn note length in frames, followed by additional codes1 $00 rest (AUDVn=0) for note length, volume restored1 $0v volume control, followed by additional codes1 $1x escape code, TDB, may be followed by additional codes1+ %cccfffff note codenote code:ccc fffff AUDC AUDF001 0-31 1 fffff saw010 0-7 2 fffff010 8-31 12/13 fffff square (low)011 0-7 3 fffff engine011 8-31 14 fffff bass (low)100 0-7 8 fffff noise100 8-31 15 fffff pitfall (low)101 0-31 4/5 fffff square (high)110 0-31 6/10 fffff bass (high)111 0-31 7/9 fffff pitfall (high)
This covers off all the audible capabilities of the TIA.Depending on the game, songs may be either one channel (with the second channel used for SFX) or two voices. Two channel songs are stored multiplexed with the next note in the sequence being used whenever the note length counter reaches zero. De-multiplexed two channel songs could be handled, but would probably be coded similar to two independent one channel songs. SFX and two channel songs are possible, perhaps via some kind of break-in note/sequence handler. Hmmm...I'm actually impressed that "The Entertainer" came out so well. Only two sour notes. (Well, one out of tune, and one out of tone.)
4 Comments
Recommended Comments