SAAsound SAA1099 support in Emulator
Posted: Thu Jan 14, 2021 8:39 pm
1 minute ago, SlithyMatt said:
Not really, it's more memory intensive. Samples take up a huge amount of memory, relatively speaking, compared to PSG or FM settings. But once you have a sample in memory, you don't have to service the PCM FIFO very often, and even then it doesn't take very long. It actually requires less CPU intervention than PSG or FM.
Oh right on! For some reason I thought the CPU had to babysit the FIFO. Actually, that could still be the case if you're wanting to change the PCM data in the buffer right? Looking through the VERA docs, it looks like there's a single buffer space so really only one sample loaded at any time and no way to sort of switch FIFOs? That does mean if one wanted to change the sample that might be somewhat CPU intensive? (Openly asking the question here - I don't know this answer ? ).
I did look a bit at the PSG implementation as well which helps answer some of my other questions. Namely if it has chiptune waveform "buffers" like the GB - it doesn't, although if the DPCM channels can loop then one could do some level of drawable waveforms up to MOD-like capabilities (albeit it with only one sample at a time). Reading the docs that seems like that may be the case given there is a "stop playback" value for the sample rate. So that's pretty cool and does enable some level of GB/FDS/TG16 programmable wave functions here.
Splitting hairs admittedly here, but it'd be great if more of the PSG channels had small wave buffers for chiptune waveforms like noted above. For chips they don't have to be big enough for complex PCM data - just big enough for a single duty cycle (e.g. in LSDJ it's 4-bit samples and uses, if I read the docs right, 16 bytes). Likewise envelope support would be nice (given the 1099 had this), though the implication is that this can be software controlled via the volume register and might not be so bad. I'm not sure how much overhead it would be to have software envelopes on all 16 PSGs though (again open question I don't know the answer to).
Looks like one can change the LR registers too which could be really fun for sound effects. It's a hard pan but even so, things like sword strikes and things could be really fun!