From 8fd497837aacd0ada5141402cd29df6684e5f861 Mon Sep 17 00:00:00 2001 From: Fabio Priuli Date: Thu, 26 Jun 2014 11:42:06 +0000 Subject: [PATCH] k054539: converted to use inline configs and delegates. nw. with this, I'm done for the moment with konami chips. --- src/emu/sound/k054539.c | 26 +++++++++----------------- src/emu/sound/k054539.h | 33 +++++++++++++++------------------ src/mame/drivers/djmain.c | 21 ++++----------------- src/mame/drivers/gijoe.c | 8 +------- src/mame/drivers/konamigq.c | 11 ++++------- src/mame/drivers/konamigx.c | 11 ++++------- src/mame/drivers/lethal.c | 10 +--------- src/mame/drivers/moo.c | 4 +--- src/mame/drivers/mystwarr.c | 11 ++++------- src/mame/drivers/plygonet.c | 9 ++------- src/mame/drivers/qdrmfgp.c | 11 ++--------- src/mame/drivers/rungun.c | 13 ++++--------- src/mame/drivers/tmnt.c | 8 +------- src/mame/drivers/ultrsprt.c | 5 +---- src/mame/drivers/xexex.c | 20 +++++++------------- src/mame/drivers/xmen.c | 6 ++---- src/mame/drivers/zr107.c | 18 ++++++++---------- src/mame/includes/xexex.h | 1 + 18 files changed, 71 insertions(+), 155 deletions(-) diff --git a/src/emu/sound/k054539.c b/src/emu/sound/k054539.c index e6a6c02ed98..ee4e20b6357 100644 --- a/src/emu/sound/k054539.c +++ b/src/emu/sound/k054539.c @@ -18,22 +18,12 @@ const device_type K054539 = &device_creator; k054539_device::k054539_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) : device_t(mconfig, K054539, "K054539 ADPCM", tag, owner, clock, "k054539", __FILE__), device_sound_interface(mconfig, *this), - m_timer_handler(*this) + m_timer_handler(*this), + m_rgnoverride(NULL) { } -//------------------------------------------------- -// static_set_interface - configuration helper -// to set the interface -//------------------------------------------------- - -void k054539_device::static_set_interface(device_t &device, const k054539_interface &interface) -{ - k054539_device &k = downcast(device); - static_cast(k) = interface; -} - /* Registers: 00..ff: 20 bytes/channel, 8 channels 00..02: pitch (lsb, mid, msb) @@ -318,7 +308,7 @@ void k054539_device::init_chip() cur_ptr = 0; memset(ram, 0, 0x4000); - memory_region *reg = (rgnoverride != NULL) ? machine().root_device().memregion(rgnoverride) : region(); + memory_region *reg = (m_rgnoverride != NULL) ? machine().root_device().memregion(m_rgnoverride) : region(); rom = *reg; rom_size = reg->bytes(); rom_mask = 0xffffffffU; @@ -376,8 +366,8 @@ WRITE8_MEMBER(k054539_device::write) switch(offset) { case 0x13f: { int pan = data >= 0x11 && data <= 0x1f ? data - 0x11 : 0x18 - 0x11; - if(apan) - apan(this, pantab[pan], pantab[0xe - pan]); + if (!m_apan_cb.isnull()) + m_apan_cb(pantab[pan], pantab[0xe - pan]); break; } @@ -501,9 +491,11 @@ READ8_MEMBER(k054539_device::read) void k054539_device::device_start() { m_timer = timer_alloc(0); - + + // resolve / bind callbacks m_timer_handler.resolve_safe(); - + m_apan_cb.bind_relative_to(*owner()); + for (int i = 0; i < 8; i++) gain[i] = 1.0; diff --git a/src/emu/sound/k054539.h b/src/emu/sound/k054539.h index 042af6833a0..3080c750f0c 100644 --- a/src/emu/sound/k054539.h +++ b/src/emu/sound/k054539.h @@ -9,19 +9,18 @@ #ifndef __K054539_H__ #define __K054539_H__ -#define MCFG_K054539_ADD(_tag, _clock, _interface) \ - MCFG_DEVICE_ADD(_tag, K054539, _clock) \ - k054539_device::static_set_interface(*device, _interface); +typedef device_delegate k054539_cb_delegate; +#define K054539_CB_MEMBER(_name) void _name(double left, double right) + +#define MCFG_K054539_APAN_CB(_class, _method) \ + k054539_device::set_analog_callback(*device, k054539_cb_delegate(&_class::_method, #_class "::" #_method, downcast<_class *>(owner))); + +#define MCFG_K054539_REGION_OVERRRIDE(_region) \ + k054539_device::set_override(*device, _region); #define MCFG_K054539_TIMER_HANDLER(_devcb) \ devcb = &k054539_device::set_timer_handler(*device, DEVCB_##_devcb); -struct k054539_interface -{ - const char *rgnoverride; - void (*apan)(device_t *, double, double); /* Callback for analog output mixing levels (0..1 for each channel) */ -}; - //* control flags, may be set at DRIVER_INIT(). #define K054539_RESET_FLAGS 0 @@ -29,13 +28,8 @@ struct k054539_interface #define K054539_DISABLE_REVERB 2 #define K054539_UPDATE_AT_KEYON 4 -void k054539_init_flags(device_t *device, int flags); - -void k054539_set_gain(device_t *device, int channel, double gain); - class k054539_device : public device_t, - public device_sound_interface, - public k054539_interface + public device_sound_interface { public: enum { @@ -49,7 +43,8 @@ public: k054539_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock); // static configuration helpers - static void static_set_interface(device_t &device, const k054539_interface &interface); + static void set_analog_callback(device_t &device, k054539_cb_delegate callback) { downcast(device).m_apan_cb = callback; } + static void set_override(device_t &device, const char *rgnoverride) { downcast(device).m_rgnoverride = rgnoverride; } template static devcb_base &set_timer_handler(device_t &device, _Object object) { return downcast(device).m_timer_handler.set_callback(object); } @@ -110,9 +105,11 @@ private: channel channels[8]; sound_stream *stream; - emu_timer *m_timer; - UINT32 m_timer_state; + emu_timer *m_timer; + UINT32 m_timer_state; devcb_write_line m_timer_handler; + const char *m_rgnoverride; + k054539_cb_delegate m_apan_cb; bool regupdate(); void keyon(int channel); diff --git a/src/mame/drivers/djmain.c b/src/mame/drivers/djmain.c index 5bcec67bb33..9e053370993 100644 --- a/src/mame/drivers/djmain.c +++ b/src/mame/drivers/djmain.c @@ -1333,19 +1333,6 @@ GFXDECODE_END -/************************************* - * - * Sound interfaces - * - *************************************/ - -static const k054539_interface k054539_config = -{ - "shared" -}; - - - /************************************* * * Machine-specific init @@ -1424,13 +1411,13 @@ static MACHINE_CONFIG_START( djmain, djmain_state ) /* sound hardware */ MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") - MCFG_K054539_ADD("k054539_1", XTAL_18_432MHz, k054539_config) - MCFG_SOUND_CONFIG(k054539_config) + MCFG_DEVICE_ADD("k054539_1", K054539, XTAL_18_432MHz) + MCFG_K054539_REGION_OVERRRIDE("shared") MCFG_SOUND_ROUTE(0, "lspeaker", 1.0) MCFG_SOUND_ROUTE(1, "rspeaker", 1.0) - MCFG_K054539_ADD("k054539_2", XTAL_18_432MHz, k054539_config) - MCFG_SOUND_CONFIG(k054539_config) + MCFG_DEVICE_ADD("k054539_2", K054539, XTAL_18_432MHz) + MCFG_K054539_REGION_OVERRRIDE("shared") MCFG_SOUND_ROUTE(0, "lspeaker", 1.0) MCFG_SOUND_ROUTE(1, "rspeaker", 1.0) MACHINE_CONFIG_END diff --git a/src/mame/drivers/gijoe.c b/src/mame/drivers/gijoe.c index dbd12652a6b..1b9808fbb9b 100644 --- a/src/mame/drivers/gijoe.c +++ b/src/mame/drivers/gijoe.c @@ -289,12 +289,6 @@ static INPUT_PORTS_START( gijoe ) PORT_DIPUNUSED_DIPLOC( 0x8000, 0x8000, "SW1:4" ) /* Listed as "Unused" */ INPUT_PORTS_END -static const k054539_interface k054539_config = -{ - NULL, - NULL, -}; - void gijoe_state::machine_start() { m_dmadelay_timer = machine().scheduler().timer_alloc(timer_expired_delegate(FUNC(gijoe_state::dmaend_callback),this)); @@ -352,7 +346,7 @@ static MACHINE_CONFIG_START( gijoe, gijoe_state ) /* sound hardware */ MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") - MCFG_K054539_ADD("k054539", XTAL_18_432MHz, k054539_config) + MCFG_DEVICE_ADD("k054539", K054539, XTAL_18_432MHz) MCFG_K054539_TIMER_HANDLER(INPUTLINE("audiocpu", INPUT_LINE_NMI)) MCFG_SOUND_ROUTE(0, "lspeaker", 1.0) MCFG_SOUND_ROUTE(1, "rspeaker", 1.0) diff --git a/src/mame/drivers/konamigq.c b/src/mame/drivers/konamigq.c index 89f57eb19fd..5b9cf34b757 100644 --- a/src/mame/drivers/konamigq.c +++ b/src/mame/drivers/konamigq.c @@ -228,11 +228,6 @@ WRITE_LINE_MEMBER(konamigq_state::k054539_irq_gen) m_sound_intck = state; } -static const k054539_interface k054539_config = -{ - "shared" -}; - /* SCSI */ void konamigq_state::scsi_dma_read( UINT32 *p_n_psxram, UINT32 n_address, INT32 n_size ) @@ -331,12 +326,14 @@ static MACHINE_CONFIG_START( konamigq, konamigq_state ) MCFG_K056800_ADD("k056800", XTAL_18_432MHz) MCFG_K056800_INT_HANDLER(INPUTLINE("soundcpu", M68K_IRQ_1)) - MCFG_K054539_ADD("k054539_1", XTAL_18_432MHz, k054539_config) + MCFG_DEVICE_ADD("k054539_1", K054539, XTAL_18_432MHz) + MCFG_K054539_REGION_OVERRRIDE("shared") MCFG_K054539_TIMER_HANDLER(WRITELINE(konamigq_state, k054539_irq_gen)) MCFG_SOUND_ROUTE(0, "lspeaker", 1.0) MCFG_SOUND_ROUTE(1, "rspeaker", 1.0) - MCFG_K054539_ADD("k054539_2", XTAL_18_432MHz, k054539_config) + MCFG_DEVICE_ADD("k054539_2", K054539, XTAL_18_432MHz) + MCFG_K054539_REGION_OVERRRIDE("shared") MCFG_SOUND_ROUTE(0, "lspeaker", 1.0) MCFG_SOUND_ROUTE(1, "rspeaker", 1.0) MACHINE_CONFIG_END diff --git a/src/mame/drivers/konamigx.c b/src/mame/drivers/konamigx.c index 201dedce2bf..1d5c9af3e35 100644 --- a/src/mame/drivers/konamigx.c +++ b/src/mame/drivers/konamigx.c @@ -1124,11 +1124,6 @@ static ADDRESS_MAP_START( gxtmsmap, AS_DATA, 8, konamigx_state ) AM_RANGE(0x00000, 0x3ffff) AM_RAM ADDRESS_MAP_END -static const k054539_interface k054539_config = -{ - "shared" -}; - WRITE_LINE_MEMBER(konamigx_state::k054539_irq_gen) { @@ -1666,14 +1661,16 @@ static MACHINE_CONFIG_START( konamigx, konamigx_state ) MCFG_K056800_ADD("k056800", XTAL_18_432MHz) MCFG_K056800_INT_HANDLER(INPUTLINE("soundcpu", M68K_IRQ_1)) - MCFG_K054539_ADD("k054539_1", XTAL_18_432MHz, k054539_config) + MCFG_DEVICE_ADD("k054539_1", K054539, XTAL_18_432MHz) + MCFG_K054539_REGION_OVERRRIDE("shared") MCFG_K054539_TIMER_HANDLER(WRITELINE(konamigx_state, k054539_irq_gen)) MCFG_SOUND_ROUTE_EX(0, "dasp", 0.5, 0) MCFG_SOUND_ROUTE_EX(1, "dasp", 0.5, 1) MCFG_SOUND_ROUTE(0, "lspeaker", 1.0) MCFG_SOUND_ROUTE(1, "rspeaker", 1.0) - MCFG_K054539_ADD("k054539_2", XTAL_18_432MHz, k054539_config) + MCFG_DEVICE_ADD("k054539_2", K054539, XTAL_18_432MHz) + MCFG_K054539_REGION_OVERRRIDE("shared") MCFG_SOUND_ROUTE_EX(0, "dasp", 0.5, 2) MCFG_SOUND_ROUTE_EX(1, "dasp", 0.5, 3) MCFG_SOUND_ROUTE(0, "lspeaker", 1.0) diff --git a/src/mame/drivers/lethal.c b/src/mame/drivers/lethal.c index 5a1540aa1aa..33fa87091a5 100644 --- a/src/mame/drivers/lethal.c +++ b/src/mame/drivers/lethal.c @@ -463,14 +463,6 @@ static INPUT_PORTS_START( lethalene ) /* European region does not have non-engli INPUT_PORTS_END -/* sound */ - -static const k054539_interface k054539_config = -{ - NULL, - NULL, -}; - void lethal_state::machine_start() { membank("bank1")->configure_entries(0, 0x20, memregion("maincpu")->base(), 0x2000); @@ -542,7 +534,7 @@ static MACHINE_CONFIG_START( lethalen, lethal_state ) /* sound hardware */ MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") - MCFG_K054539_ADD("k054539", XTAL_18_432MHz, k054539_config) + MCFG_DEVICE_ADD("k054539", K054539, XTAL_18_432MHz) MCFG_K054539_TIMER_HANDLER(INPUTLINE("soundcpu", INPUT_LINE_NMI)) MCFG_SOUND_ROUTE(0, "lspeaker", 1.0) MCFG_SOUND_ROUTE(1, "rspeaker", 1.0) diff --git a/src/mame/drivers/moo.c b/src/mame/drivers/moo.c index 5a0b4545769..54b09b0a793 100644 --- a/src/mame/drivers/moo.c +++ b/src/mame/drivers/moo.c @@ -514,8 +514,6 @@ MACHINE_RESET_MEMBER(moo_state,moo) m_sprite_colorbase = 0; } -static k054539_interface k054539_config; - static MACHINE_CONFIG_START( moo, moo_state ) /* basic machine hardware */ @@ -575,7 +573,7 @@ static MACHINE_CONFIG_START( moo, moo_state ) MCFG_SOUND_ROUTE(0, "lspeaker", 0.50) MCFG_SOUND_ROUTE(1, "rspeaker", 0.50) - MCFG_K054539_ADD("k054539", XTAL_18_432MHz, k054539_config) + MCFG_DEVICE_ADD("k054539", K054539, XTAL_18_432MHz) MCFG_SOUND_ROUTE(0, "lspeaker", 0.75) MCFG_SOUND_ROUTE(1, "rspeaker", 0.75) MACHINE_CONFIG_END diff --git a/src/mame/drivers/mystwarr.c b/src/mame/drivers/mystwarr.c index 2bb5d12e076..2d568b16f37 100644 --- a/src/mame/drivers/mystwarr.c +++ b/src/mame/drivers/mystwarr.c @@ -643,11 +643,6 @@ WRITE_LINE_MEMBER(mystwarr_state::k054539_nmi_gen) m_sound_nmi_clk = state; } -static const k054539_interface k054539_config = -{ - "shared" -}; - /**********************************************************************************/ static INPUT_PORTS_START( mystwarr ) @@ -1031,12 +1026,14 @@ static MACHINE_CONFIG_START( mystwarr, mystwarr_state ) /* sound hardware */ MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") - MCFG_K054539_ADD("k054539_1", XTAL_18_432MHz, k054539_config) + MCFG_DEVICE_ADD("k054539_1", K054539, XTAL_18_432MHz) + MCFG_K054539_REGION_OVERRRIDE("shared") MCFG_K054539_TIMER_HANDLER(WRITELINE(mystwarr_state, k054539_nmi_gen)) MCFG_SOUND_ROUTE(0, "rspeaker", 1.0) /* stereo channels are inverted */ MCFG_SOUND_ROUTE(1, "lspeaker", 1.0) - MCFG_K054539_ADD("k054539_2", XTAL_18_432MHz, k054539_config) + MCFG_DEVICE_ADD("k054539_2", K054539, XTAL_18_432MHz) + MCFG_K054539_REGION_OVERRRIDE("shared") MCFG_SOUND_ROUTE(0, "rspeaker", 1.0) /* stereo channels are inverted */ MCFG_SOUND_ROUTE(1, "lspeaker", 1.0) MACHINE_CONFIG_END diff --git a/src/mame/drivers/plygonet.c b/src/mame/drivers/plygonet.c index ffc28a7deb3..d5519ce2635 100644 --- a/src/mame/drivers/plygonet.c +++ b/src/mame/drivers/plygonet.c @@ -574,12 +574,6 @@ static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8, polygonet_state ) ADDRESS_MAP_END -static const k054539_interface k054539_config = -{ - "shared", - NULL, -}; - /**********************************************************************************/ static const gfx_layout bglayout = { @@ -678,7 +672,8 @@ static MACHINE_CONFIG_START( plygonet, polygonet_state ) /* sound hardware */ MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") - MCFG_K054539_ADD("k054539_1", XTAL_18_432MHz, k054539_config) + MCFG_DEVICE_ADD("k054539_1", K054539, XTAL_18_432MHz) + MCFG_K054539_REGION_OVERRRIDE("shared") MCFG_K054539_TIMER_HANDLER(WRITELINE(polygonet_state, k054539_nmi_gen)) MCFG_SOUND_ROUTE(0, "lspeaker", 0.75) MCFG_SOUND_ROUTE(1, "rspeaker", 0.75) diff --git a/src/mame/drivers/qdrmfgp.c b/src/mame/drivers/qdrmfgp.c index 3388c2ca4e8..f00857f070c 100644 --- a/src/mame/drivers/qdrmfgp.c +++ b/src/mame/drivers/qdrmfgp.c @@ -534,13 +534,6 @@ WRITE_LINE_MEMBER(qdrmfgp_state::k054539_irq1_gen) m_sound_intck = state; } -static const k054539_interface k054539_config = -{ - NULL, - NULL, -}; - - /************************************* * * Machine-specific init @@ -617,7 +610,7 @@ static MACHINE_CONFIG_START( qdrmfgp, qdrmfgp_state ) /* sound hardware */ MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") - MCFG_K054539_ADD("k054539", XTAL_18_432MHz, k054539_config) + MCFG_DEVICE_ADD("k054539", K054539, XTAL_18_432MHz) MCFG_K054539_TIMER_HANDLER(WRITELINE(qdrmfgp_state, k054539_irq1_gen)) MCFG_SOUND_ROUTE(0, "lspeaker", 1.0) MCFG_SOUND_ROUTE(1, "rspeaker", 1.0) @@ -664,7 +657,7 @@ static MACHINE_CONFIG_START( qdrmfgp2, qdrmfgp_state ) /* sound hardware */ MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") - MCFG_K054539_ADD("k054539", XTAL_18_432MHz, k054539_config) + MCFG_DEVICE_ADD("k054539", K054539, XTAL_18_432MHz) MCFG_SOUND_ROUTE(0, "lspeaker", 1.0) MCFG_SOUND_ROUTE(1, "rspeaker", 1.0) MACHINE_CONFIG_END diff --git a/src/mame/drivers/rungun.c b/src/mame/drivers/rungun.c index 7a820f62bf7..ea8a4dcbdc3 100644 --- a/src/mame/drivers/rungun.c +++ b/src/mame/drivers/rungun.c @@ -323,13 +323,6 @@ static GFXDECODE_START( rungun ) GFXDECODE_END - -static const k054539_interface k054539_config = -{ - "shared" -}; - - void rungun_state::machine_start() { UINT8 *ROM = memregion("soundcpu")->base(); @@ -399,12 +392,14 @@ static MACHINE_CONFIG_START( rng, rungun_state ) /* sound hardware */ MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") - MCFG_K054539_ADD("k054539_1", XTAL_18_432MHz, k054539_config) + MCFG_DEVICE_ADD("k054539_1", K054539, XTAL_18_432MHz) + MCFG_K054539_REGION_OVERRRIDE("shared") MCFG_K054539_TIMER_HANDLER(WRITELINE(rungun_state, k054539_nmi_gen)) MCFG_SOUND_ROUTE(0, "lspeaker", 1.0) MCFG_SOUND_ROUTE(1, "rspeaker", 1.0) - MCFG_K054539_ADD("k054539_2", XTAL_18_432MHz, k054539_config) + MCFG_DEVICE_ADD("k054539_2", K054539, XTAL_18_432MHz) + MCFG_K054539_REGION_OVERRRIDE("shared") MCFG_SOUND_ROUTE(0, "lspeaker", 1.0) MCFG_SOUND_ROUTE(1, "rspeaker", 1.0) MACHINE_CONFIG_END diff --git a/src/mame/drivers/tmnt.c b/src/mame/drivers/tmnt.c index 2f0a10a73ef..0f3f7c4ffa6 100644 --- a/src/mame/drivers/tmnt.c +++ b/src/mame/drivers/tmnt.c @@ -2384,12 +2384,6 @@ static MACHINE_CONFIG_START( glfgreat, tmnt_state ) MACHINE_CONFIG_END -static const k054539_interface k054539_config = -{ - NULL, - NULL, -}; - MACHINE_START_MEMBER(tmnt_state,prmrsocr) { MACHINE_START_CALL_MEMBER(common); @@ -2449,7 +2443,7 @@ static MACHINE_CONFIG_START( prmrsocr, tmnt_state ) /* sound hardware */ MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") - MCFG_K054539_ADD("k054539", XTAL_18_432MHz, k054539_config) + MCFG_DEVICE_ADD("k054539", K054539, XTAL_18_432MHz) MCFG_K054539_TIMER_HANDLER(INPUTLINE("audiocpu", INPUT_LINE_NMI)) MCFG_SOUND_ROUTE(0, "lspeaker", 1.0) MCFG_SOUND_ROUTE(1, "rspeaker", 1.0) diff --git a/src/mame/drivers/ultrsprt.c b/src/mame/drivers/ultrsprt.c index e17f0a58f20..7cedda92f93 100644 --- a/src/mame/drivers/ultrsprt.c +++ b/src/mame/drivers/ultrsprt.c @@ -208,9 +208,6 @@ void ultrsprt_state::machine_reset() /*****************************************************************************/ -static k054539_interface k054539_config; - - static MACHINE_CONFIG_START( ultrsprt, ultrsprt_state ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", PPC403GA, 25000000) @@ -239,7 +236,7 @@ static MACHINE_CONFIG_START( ultrsprt, ultrsprt_state ) MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") - MCFG_K054539_ADD("k054539", XTAL_18_432MHz, k054539_config) + MCFG_DEVICE_ADD("k054539", K054539, XTAL_18_432MHz) MCFG_K054539_TIMER_HANDLER(INPUTLINE("audiocpu", M68K_IRQ_5)) MCFG_SOUND_ROUTE(0, "lspeaker", 1.0) MCFG_SOUND_ROUTE(1, "rspeaker", 1.0) diff --git a/src/mame/drivers/xexex.c b/src/mame/drivers/xexex.c index 639e112b7b8..042c6466c59 100644 --- a/src/mame/drivers/xexex.c +++ b/src/mame/drivers/xexex.c @@ -292,13 +292,12 @@ WRITE8_MEMBER(xexex_state::sound_bankswitch_w) membank("z80bank")->set_entry(data & 0x07); } -static void ym_set_mixing(device_t *device, double left, double right) +K054539_CB_MEMBER(xexex_state::ym_set_mixing) { - xexex_state *state = device->machine().driver_data(); - state->m_filter1l->flt_volume_set_volume((71.0 * left) / 55.0); - state->m_filter1r->flt_volume_set_volume((71.0 * right) / 55.0); - state->m_filter2l->flt_volume_set_volume((71.0 * left) / 55.0); - state->m_filter2r->flt_volume_set_volume((71.0 * right) / 55.0); + m_filter1l->flt_volume_set_volume((71.0 * left) / 55.0); + m_filter1r->flt_volume_set_volume((71.0 * right) / 55.0); + m_filter2l->flt_volume_set_volume((71.0 * left) / 55.0); + m_filter2r->flt_volume_set_volume((71.0 * right) / 55.0); } TIMER_CALLBACK_MEMBER(xexex_state::dmaend_callback) @@ -448,12 +447,6 @@ INPUT_PORTS_END -static const k054539_interface k054539_config = -{ - NULL, - ym_set_mixing -}; - void xexex_state::xexex_postload() { parse_control2(); @@ -557,7 +550,8 @@ static MACHINE_CONFIG_START( xexex, xexex_state ) MCFG_SOUND_ROUTE(1, "filter2l", 0.50) MCFG_SOUND_ROUTE(1, "filter2r", 0.50) - MCFG_K054539_ADD("k054539", XTAL_18_432MHz, k054539_config) + MCFG_DEVICE_ADD("k054539", K054539, XTAL_18_432MHz) + MCFG_K054539_APAN_CB(xexex_state, ym_set_mixing) MCFG_SOUND_ROUTE(0, "lspeaker", 1.0) MCFG_SOUND_ROUTE(0, "rspeaker", 1.0) MCFG_SOUND_ROUTE(1, "lspeaker", 1.0) diff --git a/src/mame/drivers/xmen.c b/src/mame/drivers/xmen.c index 93d03219b37..86047557ba3 100644 --- a/src/mame/drivers/xmen.c +++ b/src/mame/drivers/xmen.c @@ -320,8 +320,6 @@ TIMER_DEVICE_CALLBACK_MEMBER(xmen_state::xmen_scanline) } -static k054539_interface k054539_config; - static MACHINE_CONFIG_START( xmen, xmen_state ) /* basic machine hardware */ @@ -368,7 +366,7 @@ static MACHINE_CONFIG_START( xmen, xmen_state ) MCFG_SOUND_ROUTE(0, "lspeaker", 0.20) MCFG_SOUND_ROUTE(1, "rspeaker", 0.20) - MCFG_K054539_ADD("k054539", XTAL_18_432MHz, k054539_config) + MCFG_DEVICE_ADD("k054539", K054539, XTAL_18_432MHz) MCFG_SOUND_ROUTE(0, "lspeaker", 1.00) MCFG_SOUND_ROUTE(1, "rspeaker", 1.00) MACHINE_CONFIG_END @@ -432,7 +430,7 @@ static MACHINE_CONFIG_START( xmen6p, xmen_state ) MCFG_SOUND_ROUTE(0, "lspeaker", 0.20) MCFG_SOUND_ROUTE(1, "rspeaker", 0.20) - MCFG_K054539_ADD("k054539", XTAL_18_432MHz, k054539_config) + MCFG_DEVICE_ADD("k054539", K054539, XTAL_18_432MHz) MCFG_SOUND_ROUTE(0, "lspeaker", 1.00) MCFG_SOUND_ROUTE(1, "rspeaker", 1.00) MACHINE_CONFIG_END diff --git a/src/mame/drivers/zr107.c b/src/mame/drivers/zr107.c index 979f1c7ee99..70b9bfb0df6 100644 --- a/src/mame/drivers/zr107.c +++ b/src/mame/drivers/zr107.c @@ -535,11 +535,6 @@ static ADDRESS_MAP_START( sound_memmap, AS_PROGRAM, 16, zr107_state ) AM_RANGE(0x580000, 0x580001) AM_WRITENOP // 'NRES' - D2: K056602 /RESET ADDRESS_MAP_END -static const k054539_interface k054539_config = -{ - "shared" -}; - /*****************************************************************************/ @@ -807,12 +802,14 @@ static MACHINE_CONFIG_START( zr107, zr107_state ) MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") - MCFG_K054539_ADD("k054539_1", XTAL_18_432MHz, k054539_config) + MCFG_DEVICE_ADD("k054539_1", K054539, XTAL_18_432MHz) + MCFG_K054539_REGION_OVERRRIDE("shared") MCFG_K054539_TIMER_HANDLER(WRITELINE(zr107_state, k054539_irq_gen)) MCFG_SOUND_ROUTE(0, "lspeaker", 0.75) MCFG_SOUND_ROUTE(1, "rspeaker", 0.75) - MCFG_K054539_ADD("k054539_2", XTAL_18_432MHz, k054539_config) + MCFG_DEVICE_ADD("k054539_2", K054539, XTAL_18_432MHz) + MCFG_K054539_REGION_OVERRRIDE("shared") MCFG_SOUND_ROUTE(0, "lspeaker", 0.75) MCFG_SOUND_ROUTE(1, "rspeaker", 0.75) @@ -887,13 +884,14 @@ static MACHINE_CONFIG_START( jetwave, zr107_state ) MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") - MCFG_K054539_ADD("k054539_1", XTAL_18_432MHz, k054539_config) + MCFG_DEVICE_ADD("k054539_1", K054539, XTAL_18_432MHz) + MCFG_K054539_REGION_OVERRRIDE("shared") MCFG_K054539_TIMER_HANDLER(WRITELINE(zr107_state, k054539_irq_gen)) MCFG_SOUND_ROUTE(0, "lspeaker", 0.75) MCFG_SOUND_ROUTE(1, "rspeaker", 0.75) - MCFG_K054539_ADD("k054539_2", XTAL_18_432MHz, k054539_config) - MCFG_SOUND_CONFIG(k054539_config) + MCFG_DEVICE_ADD("k054539_2", K054539, XTAL_18_432MHz) + MCFG_K054539_REGION_OVERRRIDE("shared") MCFG_SOUND_ROUTE(0, "lspeaker", 0.75) MCFG_SOUND_ROUTE(1, "rspeaker", 0.75) diff --git a/src/mame/includes/xexex.h b/src/mame/includes/xexex.h index 016b54038a9..074f19ff3e8 100644 --- a/src/mame/includes/xexex.h +++ b/src/mame/includes/xexex.h @@ -96,4 +96,5 @@ public: void parse_control2( ); K056832_CB_MEMBER(tile_callback); K053246_CB_MEMBER(sprite_callback); + K054539_CB_MEMBER(ym_set_mixing); };