2010/10/6 Robin Gareus <robin(a)gareus.org>rg>:
On 10/06/10 13:57, Andrew C wrote:
Actually, I could've sworn that the SID had 3
voices with independent
oscillators and a 4th sort of 'audio' channel due to some sort of
memory glitch or such? I'm not sure of the specifics.
Andrew.
The trick was/is to output noise through one of the voices and use the
master-output gain to 'fake' PCM. I guess that's how "Cubase64"
works.
From the white paper:
"The Commodore 64 has a sound chip that wasn't designed for
playing samples. Since there's not much available memory,
they did not intend the SID chip to play samples - 64kB with
8kHz sample rate will give you a some 8 seconds of sound to
play. There was no need for sample playback.
So, we have to fool the SID chip to play samples, even
though it only has the means of playing either a continuous
triangle waveform, sawtooth waveform, pulse-width waveform
or noise waveform. This is done by using the triangle
waveform, resetting the oscillator with an undocumented testbit
originally implemented for factory testing, setting the
accumulator frequency to change the increment speed of the
accumulator, and then after an exact number of clock cycles
enable the triangle waveform output just briefly, practically
emulating a sample-and-hold filter that will keep the analog
output fixed at a certain voltage."
Reminds me of the Amstrad CPC version of Codemasters "Super Robin
Hood" (an 8bit platform game whose aim was to rescue Maid Marrion from
Nottingham Castle) in which the sampled voice of Maid Marion could be
heard to say "Shave me Robin Hood!" Incidently, I used to love the
music to Codemaster's "Grand Prix Simulator".
--
_
: