From 78b7eb75ae6877bb67c7c3d2f99a9bd3332e4921 Mon Sep 17 00:00:00 2001 From: mescalinum Date: Thu, 19 Aug 2010 20:03:23 +0000 Subject: TMS5220 chip emulation svn path=/trunk/externals/ffext/; revision=13845 --- tms5220~/tms5220/tms5220.txt | 86 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 86 insertions(+) create mode 100644 tms5220~/tms5220/tms5220.txt (limited to 'tms5220~/tms5220/tms5220.txt') diff --git a/tms5220~/tms5220/tms5220.txt b/tms5220~/tms5220/tms5220.txt new file mode 100644 index 0000000..8af747c --- /dev/null +++ b/tms5220~/tms5220/tms5220.txt @@ -0,0 +1,86 @@ +***************************** + + TI TMS5220 Emulator + (c) Frank Palazzolo + +***************************** + +The TI TMS5220 Speech chip uses Linear-Predictive decoding scheme to produce +speech from very compact data. This scheme is very similar to the U.S. +Federal Standard LPC-10e coding system, which was developed soon after +this chip. + +It is virtually identical to the chip used in the landmark "Speak 'N Spell" +toy produced in the '70s. + +Acknowledgements: +----------------- + +I would like to thank Larry Brantingham, the original designer of the chip, +for his technical help. + +I would also like to thank Neill Cortlett, who first showed that this chip +could be emulated in real-time in his Multi-Gauntlet Emulator. + +Theory of operation: +-------------------- + +The TI speech chip contains a 128-bit parallel-in, serial-out FIFO, a +10-pole digital lattice filter which models the vocal tract, and a D/A +converter. It was originally design to operate either with a microcomputer +interface, or with a serial speech ROM. The Speech ROM functionality is +not emulated as no arcade games require it. + +The input data is writen a byte at a time into the chip, and it is +decoded bitwise into variable length frames. + +Possible Frame Types are as follows: + + Energy RF Pitch K1 K2 K3 K4 K5 K6 K7 K8 K9 K10 + ----------------------------------------------------------------- + +Silent 0000 +Stop 1111 +Repeat XXXX 1 XXXXXX +Unvoiced XXXX 0 000000 XXXXX XXXXX XXXX XXXX +Voiced XXXX 0 XXXXXX XXXXX XXXXX XXXX XXXX XXXX XXXX XXXX XXX XXX XXX + +Stop Frame: Stops the current speech +Repeat Frame: Uses the digital filter coefficients from the previous frame, + with new Energy and Pitch values +Unvoiced Frame: Uses Noise generator to feed 4 pole digital filter + (All other coefficients are set to zero) +Voiced Frame: Uses Pulse Generator to feed 10 pole digital filter + +All parameters (Energy, Pitch, K1-K10) are indexes into a lookup table for +actual values (see TMS5220R.c) + +K1-K10 are reflection coefficients for the lattice filter. + +Each frame is used to generate 200 samples, and 8 times during each frame, +(every 25 samples), these values are linearly interpolated to smooth out +frame transitions. + +The Noise generator is based on a shift-register type random-bit generator. +The Pulse generator is based on a lookup table. + +API: +---- + +TBD + +More: +----- + +For further technical info, the data sheet is floating around on the net. +(I believe the name is TMS.PDF) If you can't find a copy, email me and +I'll point you towards it. Feel free to contact me if you have a question. + +Frank Palazzolo + +palazzol@tir.com + + + + +Downloaded from: http://files.emuwiki.com/tms5220.7z -- cgit v1.2.1