From e5515e54dee8830a99a718bbed8e1f09d1a02c8c Mon Sep 17 00:00:00 2001 From: Ian Karlsson Date: Wed, 22 Jul 2015 16:06:00 +0200 Subject: [PATCH 1/3] C352: Add divider for System 23, change enum format --- src/emu/sound/c352.c | 18 ++---------------- src/emu/sound/c352.h | 7 ++++--- src/mame/drivers/namcofl.c | 2 +- src/mame/drivers/namconb1.c | 4 ++-- src/mame/drivers/namcond1.c | 2 +- src/mame/drivers/namcos11.c | 2 +- src/mame/drivers/namcos12.c | 2 +- src/mame/drivers/namcos22.c | 4 ++-- src/mame/drivers/namcos23.c | 8 ++++---- 9 files changed, 18 insertions(+), 31 deletions(-) diff --git a/src/emu/sound/c352.c b/src/emu/sound/c352.c index b4172e43aa0..a28f332a786 100644 --- a/src/emu/sound/c352.c +++ b/src/emu/sound/c352.c @@ -468,7 +468,7 @@ void c352_device::write_reg16(unsigned long address, unsigned short val) void c352_device::device_start() { - int i, divider; + int i; double x_max = 32752.0; double y_max = 127.0; double u = 10.0; @@ -476,21 +476,7 @@ void c352_device::device_start() // find our direct access m_direct = &space().direct(); - switch(m_divider) - { - case C352_DIVIDER_228: - divider=228; - break; - case C352_DIVIDER_288: - default: - divider=288; - break; - case C352_DIVIDER_332: - divider=332; - break; - } - - m_sample_rate_base = clock() / divider; + m_sample_rate_base = clock() / m_divider; m_stream = machine().sound().stream_alloc(*this, 0, 4, m_sample_rate_base); diff --git a/src/emu/sound/c352.h b/src/emu/sound/c352.h index 31eceffb366..2e653887450 100644 --- a/src/emu/sound/c352.h +++ b/src/emu/sound/c352.h @@ -11,9 +11,10 @@ enum { - C352_DIVIDER_228 = 0, - C352_DIVIDER_288 = 1, - C352_DIVIDER_332 = 2 + C352_DIVIDER_S11 = 228, // System 11 + C352_DIVIDER_S22 = 288, // System 22, Super 22, NB, ND, FL + C352_DIVIDER_S23 = 296, // System 23, Super 23 + C352_DIVIDER_S12 = 332 // System 12 }; //************************************************************************** diff --git a/src/mame/drivers/namcofl.c b/src/mame/drivers/namcofl.c index 7b0d437d82e..4db68e924d7 100644 --- a/src/mame/drivers/namcofl.c +++ b/src/mame/drivers/namcofl.c @@ -610,7 +610,7 @@ static MACHINE_CONFIG_START( namcofl, namcofl_state ) MCFG_VIDEO_START_OVERRIDE(namcofl_state,namcofl) MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") - MCFG_C352_ADD("c352", 48384000/2, C352_DIVIDER_288) + MCFG_C352_ADD("c352", 48384000/2, C352_DIVIDER_S22) MCFG_SOUND_ROUTE(0, "rspeaker", 1.00) MCFG_SOUND_ROUTE(1, "lspeaker", 1.00) MCFG_SOUND_ROUTE(2, "rspeaker", 1.00) diff --git a/src/mame/drivers/namconb1.c b/src/mame/drivers/namconb1.c index 0994ae17686..b3b498b8ffc 100644 --- a/src/mame/drivers/namconb1.c +++ b/src/mame/drivers/namconb1.c @@ -1126,7 +1126,7 @@ static MACHINE_CONFIG_START( namconb1, namconb1_state ) MCFG_VIDEO_START_OVERRIDE(namconb1_state,namconb1) MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") - MCFG_C352_ADD("c352", MASTER_CLOCK/2, C352_DIVIDER_288) + MCFG_C352_ADD("c352", MASTER_CLOCK/2, C352_DIVIDER_S22) MCFG_SOUND_ROUTE(0, "rspeaker", 1.00) MCFG_SOUND_ROUTE(1, "lspeaker", 1.00) MCFG_SOUND_ROUTE(2, "rspeaker", 1.00) @@ -1163,7 +1163,7 @@ static MACHINE_CONFIG_START( namconb2, namconb1_state ) MCFG_VIDEO_START_OVERRIDE(namconb1_state,namconb2) MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") - MCFG_C352_ADD("c352", MASTER_CLOCK/2, C352_DIVIDER_288) + MCFG_C352_ADD("c352", MASTER_CLOCK/2, C352_DIVIDER_S22) MCFG_SOUND_ROUTE(0, "rspeaker", 1.00) MCFG_SOUND_ROUTE(1, "lspeaker", 1.00) MCFG_SOUND_ROUTE(2, "rspeaker", 1.00) diff --git a/src/mame/drivers/namcond1.c b/src/mame/drivers/namcond1.c index bef6cecaaa7..8da4a1987ad 100644 --- a/src/mame/drivers/namcond1.c +++ b/src/mame/drivers/namcond1.c @@ -319,7 +319,7 @@ static MACHINE_CONFIG_START( namcond1, namcond1_state ) /* sound hardware */ MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") - MCFG_C352_ADD("c352", XTAL_49_152MHz/2, C352_DIVIDER_288) + MCFG_C352_ADD("c352", XTAL_49_152MHz/2, C352_DIVIDER_S22) MCFG_SOUND_ROUTE(0, "rspeaker", 1.00) MCFG_SOUND_ROUTE(1, "lspeaker", 1.00) MCFG_SOUND_ROUTE(2, "rspeaker", 1.00) diff --git a/src/mame/drivers/namcos11.c b/src/mame/drivers/namcos11.c index e6d53c00e6c..8bef7bff55d 100644 --- a/src/mame/drivers/namcos11.c +++ b/src/mame/drivers/namcos11.c @@ -571,7 +571,7 @@ static MACHINE_CONFIG_START( coh110, namcos11_state ) MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") - MCFG_C352_ADD("c352", 20013200, C352_DIVIDER_228) + MCFG_C352_ADD("c352", 20013200, C352_DIVIDER_S11) MCFG_SOUND_ROUTE(0, "rspeaker", 1.00) MCFG_SOUND_ROUTE(1, "lspeaker", 1.00) MCFG_SOUND_ROUTE(2, "rspeaker", 1.00) diff --git a/src/mame/drivers/namcos12.c b/src/mame/drivers/namcos12.c index d89c8a0c31c..e9e78d58c61 100644 --- a/src/mame/drivers/namcos12.c +++ b/src/mame/drivers/namcos12.c @@ -1591,7 +1591,7 @@ static MACHINE_CONFIG_START( coh700, namcos12_state ) /* sound hardware */ MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") - MCFG_C352_ADD("c352", 29168000, C352_DIVIDER_332) + MCFG_C352_ADD("c352", 29168000, C352_DIVIDER_S12) MCFG_SOUND_ROUTE(0, "rspeaker", 1.00) MCFG_SOUND_ROUTE(1, "lspeaker", 1.00) MCFG_SOUND_ROUTE(2, "rspeaker", 1.00) diff --git a/src/mame/drivers/namcos22.c b/src/mame/drivers/namcos22.c index af329845cdb..dab1ca4d7e4 100644 --- a/src/mame/drivers/namcos22.c +++ b/src/mame/drivers/namcos22.c @@ -3781,7 +3781,7 @@ static MACHINE_CONFIG_START( namcos22, namcos22_state ) /* sound hardware */ MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") - MCFG_C352_ADD("c352", SS22_MASTER_CLOCK/2, C352_DIVIDER_288) + MCFG_C352_ADD("c352", SS22_MASTER_CLOCK/2, C352_DIVIDER_S22) MCFG_SOUND_ROUTE(0, "rspeaker", 1.00) MCFG_SOUND_ROUTE(1, "lspeaker", 1.00) MCFG_SOUND_ROUTE(2, "rspeaker", 1.00) @@ -3830,7 +3830,7 @@ static MACHINE_CONFIG_START( namcos22s, namcos22_state ) /* sound hardware */ MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") - MCFG_C352_ADD("c352", SS22_MASTER_CLOCK/2, C352_DIVIDER_288) + MCFG_C352_ADD("c352", SS22_MASTER_CLOCK/2, C352_DIVIDER_S22) MCFG_SOUND_ROUTE(0, "rspeaker", 1.00) MCFG_SOUND_ROUTE(1, "lspeaker", 1.00) MCFG_SOUND_ROUTE(2, "rspeaker", 1.00) diff --git a/src/mame/drivers/namcos23.c b/src/mame/drivers/namcos23.c index fd92dc91d8f..789b7b93c16 100644 --- a/src/mame/drivers/namcos23.c +++ b/src/mame/drivers/namcos23.c @@ -1247,7 +1247,7 @@ Notes: #define JVSCLOCK (XTAL_14_7456MHz) #define H8CLOCK (16737350) /* from 2061 */ #define BUSCLOCK (16737350*2) /* 33MHz CPU bus clock / input */ -#define C352CLOCK (25992000) /* measured at 25.992MHz from 2061 pin 9 (System 12 uses a divider of 332) */ +#define C352CLOCK (25992000) /* measured at 25.992MHz from 2061 pin 9 (C352 divider is 296) */ #define VSYNC1 (59.8824) #define VSYNC2 (59.915) #define HSYNC (16666150) @@ -3320,7 +3320,7 @@ static MACHINE_CONFIG_START( gorgon, namcos23_state ) /* sound hardware */ MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") - MCFG_C352_ADD("c352", C352CLOCK, C352_DIVIDER_332) + MCFG_C352_ADD("c352", C352CLOCK, C352_DIVIDER_S23) MCFG_SOUND_ROUTE(0, "rspeaker", 1.00) MCFG_SOUND_ROUTE(1, "lspeaker", 1.00) MCFG_SOUND_ROUTE(2, "rspeaker", 1.00) @@ -3389,7 +3389,7 @@ static MACHINE_CONFIG_START( s23, namcos23_state ) /* sound hardware */ MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") - MCFG_C352_ADD("c352", C352CLOCK, C352_DIVIDER_332) + MCFG_C352_ADD("c352", C352CLOCK, C352_DIVIDER_S23) MCFG_SOUND_ROUTE(0, "rspeaker", 1.00) MCFG_SOUND_ROUTE(1, "lspeaker", 1.00) MCFG_SOUND_ROUTE(2, "rspeaker", 1.00) @@ -3469,7 +3469,7 @@ static MACHINE_CONFIG_START( ss23, namcos23_state ) /* sound hardware */ MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") - MCFG_C352_ADD("c352", C352CLOCK, C352_DIVIDER_332) + MCFG_C352_ADD("c352", C352CLOCK, C352_DIVIDER_S23) MCFG_SOUND_ROUTE(0, "rspeaker", 1.00) MCFG_SOUND_ROUTE(1, "lspeaker", 1.00) MCFG_SOUND_ROUTE(2, "rspeaker", 1.00) From 667a6a11dcd353403cf160adfc80e653300374e4 Mon Sep 17 00:00:00 2001 From: Ian Karlsson Date: Wed, 22 Jul 2015 22:05:47 +0200 Subject: [PATCH 2/3] c352: define divider constants in the drivers instead. Add a note explaining dividers in c352.c --- src/emu/sound/c352.h | 12 ------------ src/mame/drivers/namcofl.c | 2 +- src/mame/drivers/namconb1.c | 4 ++-- src/mame/drivers/namcond1.c | 2 +- src/mame/drivers/namcos11.c | 2 +- src/mame/drivers/namcos12.c | 2 +- src/mame/drivers/namcos22.c | 4 ++-- src/mame/drivers/namcos23.c | 9 +++++---- 8 files changed, 13 insertions(+), 24 deletions(-) diff --git a/src/emu/sound/c352.h b/src/emu/sound/c352.h index 2e653887450..24a2a1cbe74 100644 --- a/src/emu/sound/c352.h +++ b/src/emu/sound/c352.h @@ -5,18 +5,6 @@ #ifndef __C352_H__ #define __C352_H__ -//************************************************************************** -// CONSTANTS -//************************************************************************** - -enum -{ - C352_DIVIDER_S11 = 228, // System 11 - C352_DIVIDER_S22 = 288, // System 22, Super 22, NB, ND, FL - C352_DIVIDER_S23 = 296, // System 23, Super 23 - C352_DIVIDER_S12 = 332 // System 12 -}; - //************************************************************************** // INTERFACE CONFIGURATION MACROS //************************************************************************** diff --git a/src/mame/drivers/namcofl.c b/src/mame/drivers/namcofl.c index 4db68e924d7..edb418cbd4c 100644 --- a/src/mame/drivers/namcofl.c +++ b/src/mame/drivers/namcofl.c @@ -610,7 +610,7 @@ static MACHINE_CONFIG_START( namcofl, namcofl_state ) MCFG_VIDEO_START_OVERRIDE(namcofl_state,namcofl) MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") - MCFG_C352_ADD("c352", 48384000/2, C352_DIVIDER_S22) + MCFG_C352_ADD("c352", 48384000/2, 288) MCFG_SOUND_ROUTE(0, "rspeaker", 1.00) MCFG_SOUND_ROUTE(1, "lspeaker", 1.00) MCFG_SOUND_ROUTE(2, "rspeaker", 1.00) diff --git a/src/mame/drivers/namconb1.c b/src/mame/drivers/namconb1.c index b3b498b8ffc..e3709385ce6 100644 --- a/src/mame/drivers/namconb1.c +++ b/src/mame/drivers/namconb1.c @@ -1126,7 +1126,7 @@ static MACHINE_CONFIG_START( namconb1, namconb1_state ) MCFG_VIDEO_START_OVERRIDE(namconb1_state,namconb1) MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") - MCFG_C352_ADD("c352", MASTER_CLOCK/2, C352_DIVIDER_S22) + MCFG_C352_ADD("c352", MASTER_CLOCK/2, 288) MCFG_SOUND_ROUTE(0, "rspeaker", 1.00) MCFG_SOUND_ROUTE(1, "lspeaker", 1.00) MCFG_SOUND_ROUTE(2, "rspeaker", 1.00) @@ -1163,7 +1163,7 @@ static MACHINE_CONFIG_START( namconb2, namconb1_state ) MCFG_VIDEO_START_OVERRIDE(namconb1_state,namconb2) MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") - MCFG_C352_ADD("c352", MASTER_CLOCK/2, C352_DIVIDER_S22) + MCFG_C352_ADD("c352", MASTER_CLOCK/2, 288) MCFG_SOUND_ROUTE(0, "rspeaker", 1.00) MCFG_SOUND_ROUTE(1, "lspeaker", 1.00) MCFG_SOUND_ROUTE(2, "rspeaker", 1.00) diff --git a/src/mame/drivers/namcond1.c b/src/mame/drivers/namcond1.c index 8da4a1987ad..001dc56e65c 100644 --- a/src/mame/drivers/namcond1.c +++ b/src/mame/drivers/namcond1.c @@ -319,7 +319,7 @@ static MACHINE_CONFIG_START( namcond1, namcond1_state ) /* sound hardware */ MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") - MCFG_C352_ADD("c352", XTAL_49_152MHz/2, C352_DIVIDER_S22) + MCFG_C352_ADD("c352", XTAL_49_152MHz/2, 288) MCFG_SOUND_ROUTE(0, "rspeaker", 1.00) MCFG_SOUND_ROUTE(1, "lspeaker", 1.00) MCFG_SOUND_ROUTE(2, "rspeaker", 1.00) diff --git a/src/mame/drivers/namcos11.c b/src/mame/drivers/namcos11.c index 8bef7bff55d..3db5ea0863d 100644 --- a/src/mame/drivers/namcos11.c +++ b/src/mame/drivers/namcos11.c @@ -571,7 +571,7 @@ static MACHINE_CONFIG_START( coh110, namcos11_state ) MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") - MCFG_C352_ADD("c352", 20013200, C352_DIVIDER_S11) + MCFG_C352_ADD("c352", 20013200, 228) MCFG_SOUND_ROUTE(0, "rspeaker", 1.00) MCFG_SOUND_ROUTE(1, "lspeaker", 1.00) MCFG_SOUND_ROUTE(2, "rspeaker", 1.00) diff --git a/src/mame/drivers/namcos12.c b/src/mame/drivers/namcos12.c index e9e78d58c61..dbaab512aad 100644 --- a/src/mame/drivers/namcos12.c +++ b/src/mame/drivers/namcos12.c @@ -1591,7 +1591,7 @@ static MACHINE_CONFIG_START( coh700, namcos12_state ) /* sound hardware */ MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") - MCFG_C352_ADD("c352", 29168000, C352_DIVIDER_S12) + MCFG_C352_ADD("c352", 29168000, 332) MCFG_SOUND_ROUTE(0, "rspeaker", 1.00) MCFG_SOUND_ROUTE(1, "lspeaker", 1.00) MCFG_SOUND_ROUTE(2, "rspeaker", 1.00) diff --git a/src/mame/drivers/namcos22.c b/src/mame/drivers/namcos22.c index dab1ca4d7e4..7adcf81887b 100644 --- a/src/mame/drivers/namcos22.c +++ b/src/mame/drivers/namcos22.c @@ -3781,7 +3781,7 @@ static MACHINE_CONFIG_START( namcos22, namcos22_state ) /* sound hardware */ MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") - MCFG_C352_ADD("c352", SS22_MASTER_CLOCK/2, C352_DIVIDER_S22) + MCFG_C352_ADD("c352", SS22_MASTER_CLOCK/2, 288) MCFG_SOUND_ROUTE(0, "rspeaker", 1.00) MCFG_SOUND_ROUTE(1, "lspeaker", 1.00) MCFG_SOUND_ROUTE(2, "rspeaker", 1.00) @@ -3830,7 +3830,7 @@ static MACHINE_CONFIG_START( namcos22s, namcos22_state ) /* sound hardware */ MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") - MCFG_C352_ADD("c352", SS22_MASTER_CLOCK/2, C352_DIVIDER_S22) + MCFG_C352_ADD("c352", SS22_MASTER_CLOCK/2, 288) MCFG_SOUND_ROUTE(0, "rspeaker", 1.00) MCFG_SOUND_ROUTE(1, "lspeaker", 1.00) MCFG_SOUND_ROUTE(2, "rspeaker", 1.00) diff --git a/src/mame/drivers/namcos23.c b/src/mame/drivers/namcos23.c index 789b7b93c16..26394d2998e 100644 --- a/src/mame/drivers/namcos23.c +++ b/src/mame/drivers/namcos23.c @@ -1247,7 +1247,8 @@ Notes: #define JVSCLOCK (XTAL_14_7456MHz) #define H8CLOCK (16737350) /* from 2061 */ #define BUSCLOCK (16737350*2) /* 33MHz CPU bus clock / input */ -#define C352CLOCK (25992000) /* measured at 25.992MHz from 2061 pin 9 (C352 divider is 296) */ +#define C352CLOCK (25992000) /* measured at 25.992MHz from 2061 pin 9 */ +#define C352DIV (296) #define VSYNC1 (59.8824) #define VSYNC2 (59.915) #define HSYNC (16666150) @@ -3320,7 +3321,7 @@ static MACHINE_CONFIG_START( gorgon, namcos23_state ) /* sound hardware */ MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") - MCFG_C352_ADD("c352", C352CLOCK, C352_DIVIDER_S23) + MCFG_C352_ADD("c352", C352CLOCK, C352DIV) MCFG_SOUND_ROUTE(0, "rspeaker", 1.00) MCFG_SOUND_ROUTE(1, "lspeaker", 1.00) MCFG_SOUND_ROUTE(2, "rspeaker", 1.00) @@ -3389,7 +3390,7 @@ static MACHINE_CONFIG_START( s23, namcos23_state ) /* sound hardware */ MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") - MCFG_C352_ADD("c352", C352CLOCK, C352_DIVIDER_S23) + MCFG_C352_ADD("c352", C352CLOCK, C352DIV) MCFG_SOUND_ROUTE(0, "rspeaker", 1.00) MCFG_SOUND_ROUTE(1, "lspeaker", 1.00) MCFG_SOUND_ROUTE(2, "rspeaker", 1.00) @@ -3469,7 +3470,7 @@ static MACHINE_CONFIG_START( ss23, namcos23_state ) /* sound hardware */ MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") - MCFG_C352_ADD("c352", C352CLOCK, C352_DIVIDER_S23) + MCFG_C352_ADD("c352", C352CLOCK, C352DIV) MCFG_SOUND_ROUTE(0, "rspeaker", 1.00) MCFG_SOUND_ROUTE(1, "lspeaker", 1.00) MCFG_SOUND_ROUTE(2, "rspeaker", 1.00) From 96393f2fc16a76ac70ad39c6c7e6d52aa49dcf0a Mon Sep 17 00:00:00 2001 From: Ian Karlsson Date: Wed, 22 Jul 2015 22:07:16 +0200 Subject: [PATCH 3/3] c352: forgot the note/nw --- src/emu/sound/c352.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/emu/sound/c352.c b/src/emu/sound/c352.c index a28f332a786..98f8f3a9fed 100644 --- a/src/emu/sound/c352.c +++ b/src/emu/sound/c352.c @@ -13,6 +13,14 @@ Supports 8-bit linear and 8-bit muLaw samples Output: digital, 16 bit, 4 channels Output sample rate is the input clock / (288 * 2). + + superctr: The clock divider appears to be configurable for each system. + Below is a list of the divider values followed by the systems that use it. + + * 228: System 11. + * 288: System 22, Super 22, NB-1/2, ND-1, FL. + * 296: System 23, Super 23. + * 332: System 12. */ #include "emu.h"