Added clocks to the MCR sound boards and some of the MCR games.

Added TMS5220 variants TMS5200 and TMS0285 as proper chips.
Changed MCR squawk & talk to use the TMS5200 as documented.
This commit is contained in:
Aaron Giles 2008-01-15 09:31:57 +00:00
parent ddca20f72a
commit a3f186b44b
10 changed files with 62 additions and 16 deletions

View File

@ -108,6 +108,8 @@ void namcona_get_info(void *token, UINT32 state, sndinfo *info);
void tms36xx_get_info(void *token, UINT32 state, sndinfo *info);
void tms3615_get_info(void *token, UINT32 state, sndinfo *info);
void tms5110_get_info(void *token, UINT32 state, sndinfo *info);
void tms0285_get_info(void *token, UINT32 state, sndinfo *info);
void tms5200_get_info(void *token, UINT32 state, sndinfo *info);
void tms5220_get_info(void *token, UINT32 state, sndinfo *info);
void vlm5030_get_info(void *token, UINT32 state, sndinfo *info);
void adpcm_get_info(void *token, UINT32 state, sndinfo *info);
@ -287,6 +289,12 @@ static const struct
#if (HAS_TMS5110)
{ SOUND_TMS5110, tms5110_get_info },
#endif
#if (HAS_TMS0285)
{ SOUND_TMS0285, tms0285_get_info },
#endif
#if (HAS_TMS5200)
{ SOUND_TMS5200, tms5200_get_info },
#endif
#if (HAS_TMS5220)
{ SOUND_TMS5220, tms5220_get_info },
#endif

View File

@ -73,6 +73,8 @@ enum _sound_type
SOUND_TMS36XX,
SOUND_TMS3615,
SOUND_TMS5110,
SOUND_TMS0285,
SOUND_TMS5200,
SOUND_TMS5220,
SOUND_VLM5030,
SOUND_OKIM6295,

View File

@ -73,6 +73,14 @@ static void *tms5220_start(int sndindex, int clock, const void *config)
}
static void *tms5200_start(int sndindex, int clock, const void *config)
{
struct tms5220_info *info = tms5220_start(sndindex, clock, config);
tms5220_set_variant(info->chip, variant_tms0285);
return info;
}
/**********************************************************************************************
@ -244,6 +252,7 @@ void tms5220_get_info(void *token, UINT32 state, sndinfo *info)
switch (state)
{
/* --- the following bits of info are returned as 64-bit signed integers --- */
case SNDINFO_INT_ALIAS: info->i = SOUND_TMS5220; break;
/* --- the following bits of info are returned as pointers to data or functions --- */
case SNDINFO_PTR_SET_INFO: info->set_info = tms5220_set_info; break;
@ -260,3 +269,23 @@ void tms5220_get_info(void *token, UINT32 state, sndinfo *info)
}
}
void tms0285_get_info(void *token, UINT32 state, sndinfo *info)
{
switch (state)
{
case SNDINFO_PTR_START: info->start = tms5200_start; break;
case SNDINFO_STR_NAME: info->s = "TMS0285"; break;
default: tms5220_get_info(token, state, info); break;
}
}
void tms5200_get_info(void *token, UINT32 state, sndinfo *info)
{
switch (state)
{
case SNDINFO_PTR_START: info->start = tms5200_start; break;
case SNDINFO_STR_NAME: info->s = "TMS5200"; break;
default: tms5220_get_info(token, state, info); break;
}
}

View File

@ -581,13 +581,15 @@ endif
#-------------------------------------------------
SOUNDDEFS += -DHAS_TMS5110=$(if $(filter TMS5110,$(SOUNDS)),1,0)
SOUNDDEFS += -DHAS_TMS0285=$(if $(filter TMS0285,$(SOUNDS)),1,0)
SOUNDDEFS += -DHAS_TMS5200=$(if $(filter TMS5200,$(SOUNDS)),1,0)
SOUNDDEFS += -DHAS_TMS5220=$(if $(filter TMS5220,$(SOUNDS)),1,0)
ifneq ($(filter TMS5110,$(SOUNDS)),)
SOUNDOBJS += $(SOUNDOBJ)/tms5110.o $(SOUNDOBJ)/5110intf.o
endif
ifneq ($(filter TMS5220,$(SOUNDS)),)
ifneq ($(filter TMS0285 TMS5200 TMS5220,$(SOUNDS)),)
SOUNDOBJS += $(SOUNDOBJ)/tms5220.o $(SOUNDOBJ)/5220intf.o
endif

View File

@ -25,11 +25,11 @@
*
*************************************/
#define SSIO_CLOCK 16000000
#define CSDELUXE_CLOCK 15000000
#define SOUNDSGOOD_CLOCK 16000000
#define TURBOCS_CLOCK 8000000
#define SQUAWKTALK_CLOCK 3580000
#define SSIO_CLOCK XTAL_16MHz
#define CSDELUXE_CLOCK XTAL_16MHz
#define SOUNDSGOOD_CLOCK XTAL_16MHz
#define TURBOCS_CLOCK XTAL_8MHz
#define SQUAWKTALK_CLOCK XTAL_3_579545MHz
@ -791,7 +791,7 @@ static const pia6821_interface turbocs_pia_intf =
/********* machine driver ***********/
MACHINE_DRIVER_START(turbo_chip_squeak)
MDRV_CPU_ADD_TAG("tcs", M6809, TURBOCS_CLOCK/4)
MDRV_CPU_ADD_TAG("tcs", M6809E, TURBOCS_CLOCK)
MDRV_CPU_PROGRAM_MAP(turbocs_map,0)
MDRV_SPEAKER_STANDARD_MONO("mono")
@ -818,7 +818,7 @@ MACHINE_DRIVER_END
*
* MCR Squawk n Talk communications
*
* MC6802, 2 PIAs, TMS5220, AY8912 (not used), 8-bit DAC (not used)
* MC6802, 2 PIAs, TMS5200, AY8912 (not used), 8-bit DAC (not used)
*
*************************************/
@ -840,10 +840,10 @@ static WRITE8_HANDLER( squawkntalk_porta2_w )
static WRITE8_HANDLER( squawkntalk_portb2_w )
{
/* bits 0-1 select read/write strobes on the TMS5220 */
/* bits 0-1 select read/write strobes on the TMS5200 */
data &= 0x03;
/* write strobe -- pass the current command to the TMS5220 */
/* write strobe -- pass the current command to the TMS5200 */
if (((data ^ squawkntalk_tms_strobes) & 0x02) && !(data & 0x02))
{
tms5220_data_w(offset, squawkntalk_tms_command);
@ -853,7 +853,7 @@ static WRITE8_HANDLER( squawkntalk_portb2_w )
pia_1_ca2_w(0, 0);
}
/* read strobe -- read the current status from the TMS5220 */
/* read strobe -- read the current status from the TMS5200 */
else if (((data ^ squawkntalk_tms_strobes) & 0x01) && !(data & 0x01))
{
pia_1_porta_w(0, tms5220_status_r(offset));
@ -941,7 +941,7 @@ MACHINE_DRIVER_START(squawk_n_talk)
MDRV_CPU_PROGRAM_MAP(squawkntalk_map,0)
/* only used on Discs of Tron, which is stereo */
MDRV_SOUND_ADD_TAG("snt", TMS5220, 640000)
MDRV_SOUND_ADD_TAG("snt", TMS5200, 640000)
MDRV_SOUND_ROUTE(ALL_OUTPUTS, "left", 0.60)
MDRV_SOUND_ROUTE(ALL_OUTPUTS, "right", 0.60)

View File

@ -88,6 +88,9 @@
#include "mcr.h"
#define MASTER_CLOCK XTAL_20MHz
/*************************************
*
@ -1049,7 +1052,7 @@ GFXDECODE_END
static MACHINE_DRIVER_START( mcr3_base )
/* basic machine hardware */
MDRV_CPU_ADD_TAG("main", Z80, 5000000)
MDRV_CPU_ADD_TAG("main", Z80, MASTER_CLOCK/4)
MDRV_CPU_CONFIG(mcr_daisy_chain)
MDRV_CPU_VBLANK_INT(mcr_interrupt,2)

View File

@ -878,7 +878,7 @@ GFXDECODE_END
static MACHINE_DRIVER_START( zwackery )
/* basic machine hardware */
MDRV_CPU_ADD(M68000, 7652400)
MDRV_CPU_ADD(M68000, 7652400) /* should be XTAL_16MHz/2 */
MDRV_CPU_PROGRAM_MAP(zwackery_map,0)
MDRV_CPU_VBLANK_INT(mcr68_interrupt,1)

View File

@ -7,7 +7,7 @@
#include "cpu/z80/z80daisy.h"
/* constants */
#define MAIN_OSC_MCR_I 19968000
#define MAIN_OSC_MCR_I XTAL_19_968MHz
/*----------- defined in drivers/mcr.c -----------*/

View File

@ -15,7 +15,7 @@
#include "cpu/z80/z80daisy.h"
#include "mcr.h"
#define VERBOSE 1
#define VERBOSE 0
#define LOG(x) do { if (VERBOSE) logerror x; } while (0)

View File

@ -244,6 +244,8 @@ SOUNDS += NAMCONA
SOUNDS += TMS36XX
SOUNDS += TMS3615
SOUNDS += TMS5110
SOUNDS += TMS0285
SOUNDS += TMS5200
SOUNDS += TMS5220
SOUNDS += VLM5030
SOUNDS += ADPCM