[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