diff --git a/src/emu/sndintrf.c b/src/emu/sndintrf.c index f841e3dec3d..33215436560 100644 --- a/src/emu/sndintrf.c +++ b/src/emu/sndintrf.c @@ -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 diff --git a/src/emu/sndintrf.h b/src/emu/sndintrf.h index d82728ebe02..3279075f954 100644 --- a/src/emu/sndintrf.h +++ b/src/emu/sndintrf.h @@ -73,6 +73,8 @@ enum _sound_type SOUND_TMS36XX, SOUND_TMS3615, SOUND_TMS5110, + SOUND_TMS0285, + SOUND_TMS5200, SOUND_TMS5220, SOUND_VLM5030, SOUND_OKIM6295, diff --git a/src/emu/sound/5220intf.c b/src/emu/sound/5220intf.c index 2f0c581f6f1..826febd6c6b 100644 --- a/src/emu/sound/5220intf.c +++ b/src/emu/sound/5220intf.c @@ -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; + } +} + diff --git a/src/emu/sound/sound.mak b/src/emu/sound/sound.mak index 0e64486038b..ad2211be567 100644 --- a/src/emu/sound/sound.mak +++ b/src/emu/sound/sound.mak @@ -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 diff --git a/src/mame/audio/mcr.c b/src/mame/audio/mcr.c index 60834cd280e..24785dc38e7 100644 --- a/src/mame/audio/mcr.c +++ b/src/mame/audio/mcr.c @@ -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) diff --git a/src/mame/drivers/mcr3.c b/src/mame/drivers/mcr3.c index e04eabb825c..a0834bad057 100644 --- a/src/mame/drivers/mcr3.c +++ b/src/mame/drivers/mcr3.c @@ -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) diff --git a/src/mame/drivers/mcr68.c b/src/mame/drivers/mcr68.c index 805c6e22c64..a528c4fc019 100644 --- a/src/mame/drivers/mcr68.c +++ b/src/mame/drivers/mcr68.c @@ -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) diff --git a/src/mame/includes/mcr.h b/src/mame/includes/mcr.h index 7bcf74a12dc..ad2171fd7f9 100644 --- a/src/mame/includes/mcr.h +++ b/src/mame/includes/mcr.h @@ -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 -----------*/ diff --git a/src/mame/machine/mcr.c b/src/mame/machine/mcr.c index 45e639f379f..e27b2c2bcb6 100644 --- a/src/mame/machine/mcr.c +++ b/src/mame/machine/mcr.c @@ -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) diff --git a/src/mame/mame.mak b/src/mame/mame.mak index cf2f7c2fb4a..35f30cca58e 100644 --- a/src/mame/mame.mak +++ b/src/mame/mame.mak @@ -244,6 +244,8 @@ SOUNDS += NAMCONA SOUNDS += TMS36XX SOUNDS += TMS3615 SOUNDS += TMS5110 +SOUNDS += TMS0285 +SOUNDS += TMS5200 SOUNDS += TMS5220 SOUNDS += VLM5030 SOUNDS += ADPCM