The DPC chip sound generators were such a fun circuit I will explain them here (remembering the good times as I relate the story) in case anyone is still interested. The 2600 had the ability to use the TIA sound chip as a 4-bit D to A (digital to analog converter). One turned OFF the TIA's square wave audio circuit - leaving it in a logic "1" state - and adjusted the 4-bit volume control. Set the volume to 0 and the DC level of the output of the sound chip is zero. Set the volume to $0f (1111) and the DC level output of the sound chip is at maximum. Modulate the audio output between the 16 values of $00 to $0f and you could generate a waveform. With this method one could create almost understandable speech - with the consequence of stopping the game and turning off the display since the CPU's entire processing time would be taken up by the process. For the DPC I designed 3 independent, free-running clock dividers similar to the two in the TIA itself. One sets a divide counter value and divides the system clock by n to create a square wave in the audible range. Once set, there are 3 asynchronously running square wave pulse streams being generated which, if you could hear them would be audible tones. So now the big question: How to get those tones from the cartridge and into the TIA chip (and ultimately to the TV's speaker)? This was accomplished first with combinational logic that simulated an adder circuit. The best way to understand this circuit is to imagine that the first of the bit streams has a value of 6; the second a value of 5; and the third a value of 4. So the first bit stream is outputting: 0,0,0,0,0,6,6,6,6,6,0,0,0,0,0,6,6,6,6,6... and so on. Now add the three numbers together. A1 A2 A3 Value 0 0 0 0 0 0 4 4 0 5 0 5 0 5 4 9 6 0 0 6 6 0 4 10 6 5 0 11 6 5 4 15 The result is a 4 bit number that represents the mixing of 3 independent tones. It even has the added benefit of providing different relative volumes between the tones. Channel one is slightly louder than the rest, so is used for melody. The other two channels have the right volume mix for harmony and base. Now, how do we get this 4 bit value into the TIA? The 4-bit value is presented to the CPU bus through an address on the DPC chip. In other words, if the code reads a specific address the value changes each time it is read as the data changes with the music. One could simply set up an infinite loop of "LOAD ADDRESS, STORE VOLUME" and three-part harmony music will play out of the TV speakers. But that is not very useful. If all the CPU is doing is reading and writing audio samples, there is no display and no game. So I had to introduce a sampling system. If that "LOAD/STORE" could be performed at least as often as every scan line of the TV signal the audio would be updated at a sampling rate of 15,750 Hz. This is sufficient to achieve reasonable fidelity. Using that fact, I inserted that "LOAD/STORE" into every line of the display kernel, every game play subroutine, every line of setup, vertical sync, overscan, etc. I often had to put multiple LOAD/STORES into long calculation routines to make sure that the sample rate was kept up. If not, the music would begin to get fuzzy or even introduce harmonics between the notes and the sample rate. With a little trial and error I was satisfied with the quality of the musical score in Pitfall II. I created the DPC chip because the poor old 2600 had lasted years past the lifespan anyone had ever hoped for it. And if we were going to keep making games for the system it needed a bit of a facelift. Sadly, after Pitfall II, sales of 2600 games finally fell below the point where a game could be made profitably. It would have been fun to see what else we could have done with the technology. David Crane, August 2013 P.S. The TIA has two audio channels, and among the built-in 'tones' available is a noise generator. While the first TIA audio channel was busy working as a D to A, I used the second audio channel in noise mode to create a snare drum track. But any time the game needed to produce a sound effect - like Harry's jump - I needed that sound channel. Has anyone ever noticed that the snare drum goes away whenever the game plays a sound effect?