I was trying to improve my SN76489 emulator that's used in the Coleco and SG-1000 conversions to add noise emulation as, well, noise.
Apart from some bit precision on frequencies, the major difference they have is that the SN chip has 4 distinct channels (3 tones and 1 for noise) while the AY chip has only 3 distinct channels (3 tones) but with the option to mix noise on each one of those. So, in theory, you could have "6" channels on the AY being 3 tones and 3 noise (well, there's only one frequency for noise, but you can turn it on on any channel).
But there's one little catch: Volume.
While SN chip has 4 different volume controls (3 tones and 1 noise), AY chip has only 3. So, noise must share volume with a tone volume.
On my emulator (you guys can see a demo here): youtube video
I used a binary (1 bit) volume for noise using Register 7 for noise. So, any volume different from zero is noise on on channel 3.
But, the results we're still far from perfect. Maybe because volume itself is controlled by emulated channel 3 tone. So, everytime the program mutes channel 3, noise is also muted...
*PS* To understand my commands @ the video, this link explains the commands (SN chip uses only one port): LINK
- 1) set channel 3 (10) volume (1) to full volume (0000) - it's "attenuation" at the coleco
- 2) set channel 3 (10) tone to 1111 (lower part. Uses 10 bit for frequency instead of 12 on AY)
- 3) set channel 3 (channel is latched) higher part (rest) to 111111
- 4) change the frequency on same channel (still latched)
- 5) set channel 4 (11) volume (1) to full volume ---> You can start to hear the noise mixed with channel 3
- 6) change frequency of channel 4 (11) noise --> You can hear the difference on the noise
- 7) change frequency on channel 3
...
So, any suggestions for a better approach?
AY chip mixes tone with noise, so, have

