aboutsummaryrefslogtreecommitdiff
path: root/tms5220~/tms5220/tms5220.txt
diff options
context:
space:
mode:
authormescalinum <mescalinum@users.sourceforge.net>2010-08-19 20:03:23 +0000
committermescalinum <mescalinum@users.sourceforge.net>2010-08-19 20:03:23 +0000
commit78b7eb75ae6877bb67c7c3d2f99a9bd3332e4921 (patch)
treed51a36114b8c818d4c3efaf2cb5f73632633e511 /tms5220~/tms5220/tms5220.txt
parentfb0c2e4416d7a54f5318710b256dd794cc8317c8 (diff)
TMS5220 chip emulation
svn path=/trunk/externals/ffext/; revision=13845
Diffstat (limited to 'tms5220~/tms5220/tms5220.txt')
-rw-r--r--tms5220~/tms5220/tms5220.txt86
1 files changed, 86 insertions, 0 deletions
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