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 tms36xx_get_info(void *token, UINT32 state, sndinfo *info);
void tms3615_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 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 tms5220_get_info(void *token, UINT32 state, sndinfo *info);
void vlm5030_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); void adpcm_get_info(void *token, UINT32 state, sndinfo *info);
@ -287,6 +289,12 @@ static const struct
#if (HAS_TMS5110) #if (HAS_TMS5110)
{ SOUND_TMS5110, tms5110_get_info }, { SOUND_TMS5110, tms5110_get_info },
#endif #endif
#if (HAS_TMS0285)
{ SOUND_TMS0285, tms0285_get_info },
#endif
#if (HAS_TMS5200)
{ SOUND_TMS5200, tms5200_get_info },
#endif
#if (HAS_TMS5220) #if (HAS_TMS5220)
{ SOUND_TMS5220, tms5220_get_info }, { SOUND_TMS5220, tms5220_get_info },
#endif #endif

View File

@ -73,6 +73,8 @@ enum _sound_type
SOUND_TMS36XX, SOUND_TMS36XX,
SOUND_TMS3615, SOUND_TMS3615,
SOUND_TMS5110, SOUND_TMS5110,
SOUND_TMS0285,
SOUND_TMS5200,
SOUND_TMS5220, SOUND_TMS5220,
SOUND_VLM5030, SOUND_VLM5030,
SOUND_OKIM6295, 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) switch (state)
{ {
/* --- the following bits of info are returned as 64-bit signed integers --- */ /* --- 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 --- */ /* --- 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; 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_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) SOUNDDEFS += -DHAS_TMS5220=$(if $(filter TMS5220,$(SOUNDS)),1,0)
ifneq ($(filter TMS5110,$(SOUNDS)),) ifneq ($(filter TMS5110,$(SOUNDS)),)
SOUNDOBJS += $(SOUNDOBJ)/tms5110.o $(SOUNDOBJ)/5110intf.o SOUNDOBJS += $(SOUNDOBJ)/tms5110.o $(SOUNDOBJ)/5110intf.o
endif endif
ifneq ($(filter TMS5220,$(SOUNDS)),) ifneq ($(filter TMS0285 TMS5200 TMS5220,$(SOUNDS)),)
SOUNDOBJS += $(SOUNDOBJ)/tms5220.o $(SOUNDOBJ)/5220intf.o SOUNDOBJS += $(SOUNDOBJ)/tms5220.o $(SOUNDOBJ)/5220intf.o
endif endif

View File

@ -25,11 +25,11 @@
* *
*************************************/ *************************************/
#define SSIO_CLOCK 16000000 #define SSIO_CLOCK XTAL_16MHz
#define CSDELUXE_CLOCK 15000000 #define CSDELUXE_CLOCK XTAL_16MHz
#define SOUNDSGOOD_CLOCK 16000000 #define SOUNDSGOOD_CLOCK XTAL_16MHz
#define TURBOCS_CLOCK 8000000 #define TURBOCS_CLOCK XTAL_8MHz
#define SQUAWKTALK_CLOCK 3580000 #define SQUAWKTALK_CLOCK XTAL_3_579545MHz
@ -791,7 +791,7 @@ static const pia6821_interface turbocs_pia_intf =
/********* machine driver ***********/ /********* machine driver ***********/
MACHINE_DRIVER_START(turbo_chip_squeak) 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_CPU_PROGRAM_MAP(turbocs_map,0)
MDRV_SPEAKER_STANDARD_MONO("mono") MDRV_SPEAKER_STANDARD_MONO("mono")
@ -818,7 +818,7 @@ MACHINE_DRIVER_END
* *
* MCR Squawk n Talk communications * 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 ) 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; 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)) if (((data ^ squawkntalk_tms_strobes) & 0x02) && !(data & 0x02))
{ {
tms5220_data_w(offset, squawkntalk_tms_command); tms5220_data_w(offset, squawkntalk_tms_command);
@ -853,7 +853,7 @@ static WRITE8_HANDLER( squawkntalk_portb2_w )
pia_1_ca2_w(0, 0); 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)) else if (((data ^ squawkntalk_tms_strobes) & 0x01) && !(data & 0x01))
{ {
pia_1_porta_w(0, tms5220_status_r(offset)); 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) MDRV_CPU_PROGRAM_MAP(squawkntalk_map,0)
/* only used on Discs of Tron, which is stereo */ /* 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, "left", 0.60)
MDRV_SOUND_ROUTE(ALL_OUTPUTS, "right", 0.60) MDRV_SOUND_ROUTE(ALL_OUTPUTS, "right", 0.60)

View File

@ -88,6 +88,9 @@
#include "mcr.h" #include "mcr.h"
#define MASTER_CLOCK XTAL_20MHz
/************************************* /*************************************
* *
@ -1049,7 +1052,7 @@ GFXDECODE_END
static MACHINE_DRIVER_START( mcr3_base ) static MACHINE_DRIVER_START( mcr3_base )
/* basic machine hardware */ /* 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_CONFIG(mcr_daisy_chain)
MDRV_CPU_VBLANK_INT(mcr_interrupt,2) MDRV_CPU_VBLANK_INT(mcr_interrupt,2)

View File

@ -878,7 +878,7 @@ GFXDECODE_END
static MACHINE_DRIVER_START( zwackery ) static MACHINE_DRIVER_START( zwackery )
/* basic machine hardware */ /* 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_PROGRAM_MAP(zwackery_map,0)
MDRV_CPU_VBLANK_INT(mcr68_interrupt,1) MDRV_CPU_VBLANK_INT(mcr68_interrupt,1)

View File

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

View File

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

View File

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