diff --git a/src/emu/sound/sn76496.c b/src/emu/sound/sn76496.c index 0fc02021db7..d92e50973c4 100644 --- a/src/emu/sound/sn76496.c +++ b/src/emu/sound/sn76496.c @@ -152,6 +152,7 @@ INLINE sn76496_state *get_safe_token(device_t *device) assert(device != NULL); assert(device->type() == SN76496 || device->type() == U8106 || + device->type() == Y2404 || device->type() == SN76489 || device->type() == SN76489A || device->type() == SN76494 || @@ -440,14 +441,19 @@ static DEVICE_START( sn76489 ) generic_start(device, 0x4000, 0x01, 0x02, TRUE, FALSE, 8, TRUE); // SN76489 not verified yet. todo: verify; } +static DEVICE_START( u8106 ) +{ + generic_start(device, 0x4000, 0x01, 0x02, TRUE, FALSE, 8, TRUE); // U8106 not verified yet. todo: verify; (a custom marked sn76489? only used on mr. do and maybe other universal games) +} + static DEVICE_START( sn76489a ) { generic_start(device, 0x10000, 0x04, 0x08, FALSE, FALSE, 8, TRUE); // SN76489A: whitenoise verified, phase verified, periodic verified (by plgdavid) } -static DEVICE_START( u8106 ) // a custom marked sn76489? only used on mr. do and maybe other universal games +static DEVICE_START( y2404 ) { - generic_start(device, 0x4000, 0x01, 0x02, TRUE, FALSE, 8, TRUE); // SN76489 not verified yet. todo: verify; + generic_start(device, 0x10000, 0x04, 0x08, FALSE, FALSE, 8, TRUE); // Y2404 not verified yet. todo: verify; (don't be fooled by the Y, it's a TI chip, not Yamaha) } static DEVICE_START( sn76494 ) @@ -499,10 +505,10 @@ DEVICE_GET_INFO( sn76496 ) /* --- the following bits of info are returned as NULL-terminated strings --- */ case DEVINFO_STR_NAME: strcpy(info->s, "SN76496"); break; - case DEVINFO_STR_FAMILY: strcpy(info->s, "TI PSG"); break; - case DEVINFO_STR_VERSION: strcpy(info->s, "1.1"); break; - case DEVINFO_STR_SOURCE_FILE: strcpy(info->s, __FILE__); break; - case DEVINFO_STR_CREDITS: strcpy(info->s, "Copyright Nicola Salmoria and the MAME Team"); break; + case DEVINFO_STR_FAMILY: strcpy(info->s, "TI PSG"); break; + case DEVINFO_STR_VERSION: strcpy(info->s, "1.1"); break; + case DEVINFO_STR_SOURCE_FILE: strcpy(info->s, __FILE__); break; + case DEVINFO_STR_CREDITS: strcpy(info->s, "Copyright Nicola Salmoria and the MAME Team"); break; } } @@ -512,7 +518,7 @@ DEVICE_GET_INFO( sn76489 ) { case DEVINFO_FCT_START: info->start = DEVICE_START_NAME( sn76489 ); break; case DEVINFO_STR_NAME: strcpy(info->s, "SN76489"); break; - default: DEVICE_GET_INFO_CALL(sn76496); break; + default: DEVICE_GET_INFO_CALL(sn76496); break; } } @@ -520,9 +526,9 @@ DEVICE_GET_INFO( sn76489a ) { switch (state) { - case DEVINFO_FCT_START: info->start = DEVICE_START_NAME( sn76489a ); break; + case DEVINFO_FCT_START: info->start = DEVICE_START_NAME( sn76489a ); break; case DEVINFO_STR_NAME: strcpy(info->s, "SN76489A"); break; - default: DEVICE_GET_INFO_CALL(sn76496); break; + default: DEVICE_GET_INFO_CALL(sn76496); break; } } @@ -531,8 +537,18 @@ DEVICE_GET_INFO( u8106 ) switch (state) { case DEVINFO_FCT_START: info->start = DEVICE_START_NAME( u8106 ); break; - case DEVINFO_STR_NAME: strcpy(info->s, "U8106 (SN76489)"); break; - default: DEVICE_GET_INFO_CALL(sn76496); break; + case DEVINFO_STR_NAME: strcpy(info->s, "U8106"); break; + default: DEVICE_GET_INFO_CALL(sn76496); break; + } +} + +DEVICE_GET_INFO( y2404 ) +{ + switch (state) + { + case DEVINFO_FCT_START: info->start = DEVICE_START_NAME( y2404 ); break; + case DEVINFO_STR_NAME: strcpy(info->s, "Y2404"); break; + default: DEVICE_GET_INFO_CALL(sn76496); break; } } @@ -542,7 +558,7 @@ DEVICE_GET_INFO( sn76494 ) { case DEVINFO_FCT_START: info->start = DEVICE_START_NAME( sn76494 ); break; case DEVINFO_STR_NAME: strcpy(info->s, "SN76494"); break; - default: DEVICE_GET_INFO_CALL(sn76496); break; + default: DEVICE_GET_INFO_CALL(sn76496); break; } } @@ -552,7 +568,7 @@ DEVICE_GET_INFO( sn94624 ) { case DEVINFO_FCT_START: info->start = DEVICE_START_NAME( sn94624 ); break; case DEVINFO_STR_NAME: strcpy(info->s, "SN94624"); break; - default: DEVICE_GET_INFO_CALL(sn76496); break; + default: DEVICE_GET_INFO_CALL(sn76496); break; } } @@ -562,7 +578,7 @@ DEVICE_GET_INFO( ncr7496 ) { case DEVINFO_FCT_START: info->start = DEVICE_START_NAME( ncr7496 ); break; case DEVINFO_STR_NAME: strcpy(info->s, "NCR7496"); break; - default: DEVICE_GET_INFO_CALL(sn76496); break; + default: DEVICE_GET_INFO_CALL(sn76496); break; } } @@ -570,9 +586,9 @@ DEVICE_GET_INFO( gamegear ) { switch (state) { - case DEVINFO_FCT_START: info->start = DEVICE_START_NAME( gamegear ); break; + case DEVINFO_FCT_START: info->start = DEVICE_START_NAME( gamegear ); break; case DEVINFO_STR_NAME: strcpy(info->s, "Game Gear PSG"); break; - default: DEVICE_GET_INFO_CALL(sn76496); break; + default: DEVICE_GET_INFO_CALL(sn76496); break; } } @@ -580,15 +596,16 @@ DEVICE_GET_INFO( segapsg ) { switch (state) { - case DEVINFO_FCT_START: info->start = DEVICE_START_NAME( segapsg ); break; - case DEVINFO_STR_NAME: strcpy(info->s, "SEGA VDP PSG"); break; - default: DEVICE_GET_INFO_CALL(sn76496); break; + case DEVINFO_FCT_START: info->start = DEVICE_START_NAME( segapsg ); break; + case DEVINFO_STR_NAME: strcpy(info->s, "SEGA VDP PSG"); break; + default: DEVICE_GET_INFO_CALL(sn76496); break; } } DEFINE_LEGACY_SOUND_DEVICE(SN76496, sn76496); DEFINE_LEGACY_SOUND_DEVICE(U8106, u8106); +DEFINE_LEGACY_SOUND_DEVICE(Y2404, y2404); DEFINE_LEGACY_SOUND_DEVICE(SN76489, sn76489); DEFINE_LEGACY_SOUND_DEVICE(SN76489A, sn76489a); DEFINE_LEGACY_SOUND_DEVICE(SN76494, sn76494); diff --git a/src/emu/sound/sn76496.h b/src/emu/sound/sn76496.h index 319c7b33249..90bd4df3d8c 100644 --- a/src/emu/sound/sn76496.h +++ b/src/emu/sound/sn76496.h @@ -11,6 +11,7 @@ WRITE8_DEVICE_HANDLER( sn76496_stereo_w ); DECLARE_LEGACY_SOUND_DEVICE(SN76496, sn76496); DECLARE_LEGACY_SOUND_DEVICE(U8106, u8106); +DECLARE_LEGACY_SOUND_DEVICE(Y2404, y2404); DECLARE_LEGACY_SOUND_DEVICE(SN76489, sn76489); DECLARE_LEGACY_SOUND_DEVICE(SN76489A, sn76489a); DECLARE_LEGACY_SOUND_DEVICE(SN76494, sn76494); diff --git a/src/mame/drivers/pachifev.c b/src/mame/drivers/pachifev.c index 1e367ec8666..353b312c032 100644 --- a/src/mame/drivers/pachifev.c +++ b/src/mame/drivers/pachifev.c @@ -385,9 +385,9 @@ static MACHINE_CONFIG_START( pachifev, pachifev_state ) MCFG_SOUND_CONFIG(msm5205_config) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.00) #endif - MCFG_SOUND_ADD("sn76_1", SN76489A, XTAL_10_738635MHz/3) /* guess */ + MCFG_SOUND_ADD("sn76_1", Y2404, XTAL_10_738635MHz/3) /* guess */ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.30) - MCFG_SOUND_ADD("sn76_2", SN76489A, XTAL_10_738635MHz/3) /* guess */ + MCFG_SOUND_ADD("sn76_2", Y2404, XTAL_10_738635MHz/3) /* guess */ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.30) MACHINE_CONFIG_END diff --git a/src/mame/drivers/tp84.c b/src/mame/drivers/tp84.c index 545368791f4..d21e3c93225 100644 --- a/src/mame/drivers/tp84.c +++ b/src/mame/drivers/tp84.c @@ -327,13 +327,13 @@ static MACHINE_CONFIG_START( tp84, tp84_state ) /* audio hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") - MCFG_SOUND_ADD("sn1", SN76489A, XTAL_14_31818MHz/8) /* verified on pcb */ + MCFG_SOUND_ADD("sn1", Y2404, XTAL_14_31818MHz/8) /* verified on pcb */ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "filter1", 0.75) - MCFG_SOUND_ADD("sn2", SN76489A, XTAL_14_31818MHz/8) /* verified on pcb */ + MCFG_SOUND_ADD("sn2", Y2404, XTAL_14_31818MHz/8) /* verified on pcb */ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "filter2", 0.75) - MCFG_SOUND_ADD("sn3", SN76489A, XTAL_14_31818MHz/8) /* verified on pcb */ + MCFG_SOUND_ADD("sn3", Y2404, XTAL_14_31818MHz/8) /* verified on pcb */ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "filter3", 0.75) MCFG_SOUND_ADD("filter1", FILTER_RC, 0)