Professional Documents
Culture Documents
The cent values have been calculated with rounded frequencies. Therefore
they are not as acurate as they might look, especially the ones for the
lower frequencies.
==============================================================================
The Atari 2600 VCS produces it's sound with some shift registers of various
lengths. The speed at which it shifts the registers can be set to either the
pixelclock/114 or to the CPUclock/114, which means two shifts per scanline
or a third of this. Since a NTSC VCS produces 262 scanlines per frame and 60
frames per second this results in output rates of 31440 Hz and 10480 Hz.
PAL TVs produce only 312 scanlines and 50 frames, so the output rates are
only 31200 Hz and 10400 Hz.
The distortion values stored in the AUDCx registers select the clock to use.
They also select two shift registers of various lengths. One of these is the
source pattern. Every time a 1 is shifted out of the source pattern, the
output is set high. If a 0 is shifted out, the output is set low.
The other shift register is a clock modifier. Every time a 1 is shifted out,
the effect of the source pattern can take place. If a 0 is shiftet out, the
bit, that is shifted out of the source pattern, has no effect on the output.
Since the source pattern and the clock modifier registers match up perfectly
except for distortion 2 & 3, my tables only list the resulting output
bitstream.
More information on the patterns can be found in the documentation for Ron
Fries' TIASOUND emulation package.
However, since the output switches so fast between high and low, the resulting
waveforms are not perfect squarewaves. For example distortion 4 with a pitch
value of 0 would flip the output at a rate of 15720 Hz. This is so fast,
that the membrane of the speaker couldn't swing very far before it has to
change it's direction. Therefore no audible sound is produced.
==============================================================================
How to read the tables:
Lines marked as below have such a low frequency, that it really doesn't
matter if it is C or C# rumble.
==============================================================================
Distortion: 0 & 11
Waveform : always high
(used to output 4-bit samples by changing the volume very fast)
Clockspeed: pixelclock/114
Distortion: 1
Waveform : 001010000111011
Clockspeed: pixelclock/114
Distortion: 2 & 3
Waveform : 001010000111011->0100000000000000000100000000000 (465 bits long)
001010000111011->0010110011111000110111010100001 (465 bits long)
Clockspeed: pixelclock/114
Distortion: 4 & 5
Waveform : 01
Clockspeed: pixelclock/114
Distortion: 12 & 13
Waveform : 10
Clockspeed: CPUclock/114
Distortion: 14 15
Waveform : 1111111111111000000000000000000 0010110011111000110111010100001
Clockspeed: CPUclock/114