[Coco] Including an SSC (was: CocoSDC)
jmlaw at iprimus.com.au
jmlaw at iprimus.com.au
Fri Oct 10 21:12:47 EDT 2014
Hi Nick,
(I won't quote stuff as if you've been following the discussion you know
what I'm referring to, and to keep it short)
Not a bad idea, like have a gunshot or explosion PCM data stored and just
send a command to which bank to play the PCM data from and the device
handles the playback freeing the CPU. That would be cool.
I also agree with Tim Linder on the Programmable Sound Generator (PSG).
Completely Ignoring the speech side of the SSC (different chip requiring a
separate ROM control), the SSC has two modes, indirect access to the AY chip
or direct access. Indirect requires the software in the included ROM, direct
only needs the ROM to check for a ready/busy state and to handle when the
data is sent to the AY (been a few months since I played with it so the
details might be a bit sketchy). If an AY chip (or emulated equivalent)
could be included in the SDC then those games that generate tones through
direct access would still be supported. It would only have to interpret and
handle the direct access command functions correctly.
The AY is basically just a tone generator with amplitude (volume control).
If you've ever played around with a 555 timer IC to generate tones, same
kinda thing, pretty simple. There’s a few more features obviously but that’s
the basics of it. Using software (at vsync) the tone can be ‘shaped’ to
adjust the amplitude while the tone plays giving it a much more realistic
instrumental effect. Like when you strike the key on a piano; the sound is
loud initially and slowly fades as the string loses its momentum and the
vibration lessens with time (increasingly lower volume).
So all you do is set the coarse and fine values to select the music note
frequency and set the amplitude. The tone plays continuously and unchanged
until the coarse/fine values change (different tone) or the amplitude does
(volume adjust). There are other envelope features but a lot more can be
done using a vsync handler routine than what’s included in the AY. Though
those features would probably have to be included for completeness and for
those games that might use it if the AY was emulated. Or not :)
Interesting discussion :)
Jason
More information about the Coco
mailing list