As many times marked in this forum, SCC would be a nice piece of HW if it not were for all its damn bugs and strange behaviours.
It happens that we are developing a piece of SW for playing PT3 songs on SCC.
The idea is old: the PSG plays its piece, if the SCC is present its channels are used to enrich the PSG sound by directly converting AY8910 registers into SCC values.
The problem rises with volumes:
PSG has logarithmic volumes according to y = 2^-((15-n)/2)
SCC has linear volumes in 0-15
now the HW bug:
when we use this small look up table to convert volumes from psg to scc
VolConv:
and 15
ret z ; psg 0 -> scc 0
ld e,a
ld d,0
ld hl,VolumTab
add hl,de
ld a,(hl)
ret ; psg 1-15 -> scc 1-15
VolumTab: db 1, 1, 1, 1, 1, 1, 1, 2, 3, 4, 5, 7,10,14,15
; 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
the SCC music sounds NOISY as the HELL
if we use no mapping the SCC music seems to have no noise,
but naturally SCC channels are too high and cover the PSG
Has anyone already faced this NEW amazing feature of the SCC chip ?
Hints or workaround?
I cannot imagine why changing the volume while the SCC plays can disrupt the output,
anyway this happens.
My guesses are
1: some volume levels of scc are buggy and thy occurs in my table (eg. 1) more than in the original song
2: the noise is there also with linear volumes (i.e. no conversion) but covered by the music that is louder
3: no hint!



