tms5220.c: minor comment updates, no whatsnew

This commit is contained in:
Jonathan Gevaryahu 2013-04-05 20:57:21 +00:00
parent a8c425d5ad
commit b622dd4d6f

View File

@ -17,7 +17,7 @@
Massive rewrite and reorganization by Lord Nightmare
Additional IP, PC, subcycle timing rewrite by Lord Nightmare
Much information regarding these lpc encoding comes from US patent 4,209,844
Much information regarding the lpc encoding used here comes from US patent 4,209,844
US patent 4,331,836 describes the complete 51xx chip
US patent 4,335,277 describes the complete 52xx chip
Special Thanks to Larry Brantingham for answering questions regarding the chip details
@ -181,9 +181,6 @@ Interpolation is inhibited (i.e. interpolation at IP frames will not happen
***MAME Driver specific notes:***
Looping has the tms5220 hooked up directly to the cpu. However currently the
tms9900 cpu core does not support a ready line.
Victory's initial audio selftest is pretty brutal to the FIFO: it sends a
sequence of bytes to the FIFO and checks the status bits after each one; if
even one bit is in the wrong state (i.e. speech starts one byte too early or
@ -400,8 +397,8 @@ struct tms5220_state
UINT8 subcycle; /* contains the current subcycle for a given PC: 0 is A' (only used on SPKSLOW mode on 51xx), 1 is A, 2 is B */
UINT8 subc_reload; /* contains 1 for normal speech, 0 when SPKSLOW is active */
UINT8 PC; /* current parameter counter (what param is being interpolated), ranges from 0 to 12 */
/* TODO/NOTE: the current interpolation period, counts 1,2,3,4,5,6,7,0 for divide by 8,8,8,4,4,4,2,1 */
UINT8 interp_period; /* the current interpolation period */
/* TODO/NOTE: the current interpolation period, counts 1,2,3,4,5,6,7,0 for divide by 8,8,8,4,4,2,2,1 */
UINT8 interp_period; /* the current interpolation period */
UINT8 inhibit; /* If 1, interpolation is inhibited until the DIV1 period */
UINT8 tms5220c_rate; /* only relevant for tms5220C's multi frame rate feature; is the actual 4 bit value written on a 0x2* or 0x0* command */
UINT16 pitch_count; /* pitch counter; provides chirp rom address */
@ -433,7 +430,7 @@ struct tms5220_state
/* The TMS52xx has two different ways of providing output data: the
analog speaker pin (which was usually used) and the Digital I/O pin.
The internal DAC used to feed the analog pin is only 8 bits, and has the
funny clipping/clamping logic, while the digital pin gives full 12? bit
funny clipping/clamping logic, while the digital pin gives full 10 bit
resolution of the output data.
TODO: add a way to set/reset this other than the FORCE_DIGITAL define
*/
@ -479,7 +476,6 @@ static void tms5220_set_variant(tms5220_state *tms, int variant)
break;
case TMS5220_IS_5200:
tms->coeff = &tms5200_coeff;
//tms->coeff = &pat4335277_coeff;
break;
case TMS5220_IS_5220:
tms->coeff = &tms5220_coeff;
@ -942,7 +938,7 @@ static void tms5220_process(tms5220_state *tms, INT16 *buffer, unsigned int size
Interpolation inhibit cases:
* Old frame was voiced, new is unvoiced
* Old frame was silence/zero energy, new has nonzero energy
* Old frame was unvoiced, new is voiced
* Old frame was unvoiced, new is voiced (note this is the case on the patent but may not be correct on the real final chip)
*/
if ( ((OLD_FRAME_UNVOICED_FLAG == 0) && (NEW_FRAME_UNVOICED_FLAG == 1))
|| ((OLD_FRAME_UNVOICED_FLAG == 1) && (NEW_FRAME_UNVOICED_FLAG == 0)) /* this line needs further investigation, starwars tie fighters may sound better without it */