Re: CVSD

From: Zonn <zonn_at_zonn.com>
Date: Fri May 21 1999 - 18:58:07 EDT

On Fri, 21 May 1999 14:18:04 -0700 (PDT), aek@spies.com (Al Kossow) wrote:

>
>here are a few pointers. FWIW, the Exidy gun games have four of the MC3417's on
>them..
>
>How I got speech to work in Sinistar
>
>Several people have asked me how I got sinistar to speak. Instead of responding to each one individually, I figured it would be easier to
>post the code here. First, I want to thank Sean Riddle for helping me find the information I needed to simulate the operation of the speech
>compression chip. Sinistar has a Harris 55564 CVSD (Continuously Variable Slope Delta-Modulator) which uses a 1bit stream of data to
>simulate the ups and downs of an audio signal. The Harris data sheet doesn't say a whole lot, so I found a similar chip from Motorola
>(AN1544) which had a decently detailed data sheet. Like the DAC used to generate digitized sounds, the 55564 is hooked up to the PIA on
>the 6808 through two 1-bit ports (1 for clock, 1 for data). I examined the operation of the 6808 code and it places the data on the output bit
>when it changes, and toggles the clock bit at a rate of 16Khz. The basic way that it works is that the 1 bit data stream adds or subtracts the
>delta value from the current 10-bit DAC counter. A flat (silent) analog signal would produce a series of alternating ones and zeros. There
>is a 3-bit shift register which detects over or underflow conditions (when the step value is too small to keep up with the slope of the signal).
>When this condition occurs, the step value is incremented, otherwise it is decremented. So...the step value is constantly changing to meet
>the conditions of the compressed data. The step value changes based on an RC network which has a time constant of 4ms. I do not have
>good details about how the step value is chosen, but my approximation at least gives speech that you can understand. My Sinistar
>emulation still does not play perfectly because I am not simulating the operation of the 6821 properly and this game makes heavy use of
>proper 6821 behavior. This will have to be left for a future date...

I had no idea Al was working on this!

It so happens I wrote an program for Retrocade that emulated the 55564 CVSD
allowing me to read the Sinistar speech ROMs and convert them to a 44.1khz 16
bit mono PCM (RAW data) sound file.

Here's a pointer to the source code and an .EXE file that will convert the
Sinistar Speech roms into the file SINISTAR.PCM:

   http://www.zonn.com/misc/

"cvsd.zip" contains the source and .EXE, and a README.TXT file.

"sinistar.rar" contains the .PCM file converted to a .WAV file, if you just want
to listen to the results. "sinistar.rar" is a RAR'd .WAV file. RAR compresses
.WAV files much better than PKZIP.

If you're browser reads garbage when you click on "sinistar.rar", try holding
down the shift key while clicking on "sinistar.rar"

It'd be interesting to compare Al's and my results!

-Zonn
Received on Fri May 21 17:54:08 1999

This archive was generated by hypermail 2.1.8 : Fri Aug 01 2003 - 00:32:12 EDT