From 9dbf2320c17090a46faeaf55c860b64bdd9ad14b Mon Sep 17 00:00:00 2001 From: smf- Date: Fri, 10 May 2013 18:21:22 +0000 Subject: [PATCH] modernised the YM2610 interface [smf] --- src/emu/sound/2610intf.c | 264 +++++++++++++++--------------------- src/emu/sound/2610intf.h | 47 +++---- src/mame/drivers/2mindril.c | 9 +- src/mame/drivers/aerofgt.c | 21 ++- src/mame/drivers/asuka.c | 9 +- src/mame/drivers/bbusters.c | 9 +- src/mame/drivers/crshrace.c | 9 +- src/mame/drivers/f1gp.c | 9 +- src/mame/drivers/fromanc2.c | 13 +- src/mame/drivers/gstriker.c | 11 +- src/mame/drivers/inufuku.c | 9 +- src/mame/drivers/mcatadv.c | 13 +- src/mame/drivers/metro.c | 11 +- src/mame/drivers/neogeo.c | 17 +-- src/mame/drivers/neoprint.c | 11 +- src/mame/drivers/ninjaw.c | 11 +- src/mame/drivers/othunder.c | 9 +- src/mame/drivers/pipedrm.c | 10 +- src/mame/drivers/psikyo.c | 18 +-- src/mame/drivers/slapshot.c | 11 +- src/mame/drivers/suprslam.c | 9 +- src/mame/drivers/taito_b.c | 37 +++-- src/mame/drivers/taito_f2.c | 9 +- src/mame/drivers/taito_h.c | 13 +- src/mame/drivers/taito_l.c | 9 +- src/mame/drivers/taito_x.c | 13 +- src/mame/drivers/taito_z.c | 36 ++--- src/mame/drivers/taitoair.c | 9 +- src/mame/drivers/taotaido.c | 9 +- src/mame/drivers/warriorb.c | 11 +- src/mame/drivers/welltris.c | 9 +- src/mame/drivers/wgp.c | 9 +- src/mame/drivers/zn.c | 9 +- 33 files changed, 241 insertions(+), 462 deletions(-) diff --git a/src/emu/sound/2610intf.c b/src/emu/sound/2610intf.c index b5c30257979..c1ec454b103 100644 --- a/src/emu/sound/2610intf.c +++ b/src/emu/sound/2610intf.c @@ -16,48 +16,28 @@ #include "2610intf.h" #include "fm.h" -struct ym2610_state -{ - sound_stream * stream; - emu_timer * timer[2]; - void * chip; - void * psg; - const ym2610_interface *intf; - device_t *device; - devcb_resolved_write_line irqhandler; -}; - - -INLINE ym2610_state *get_safe_token(device_t *device) -{ - assert(device != NULL); - assert(device->type() == YM2610 || device->type() == YM2610B); - return (ym2610_state *)downcast(device)->token(); -} - - static void psg_set_clock(void *param, int clock) { - ym2610_state *info = (ym2610_state *)param; - ay8910_set_clock_ym(info->psg, clock); + ym2610_device *ym2610 = downcast(param); + ay8910_set_clock_ym(ym2610->_psg(), clock); } static void psg_write(void *param, int address, int data) { - ym2610_state *info = (ym2610_state *)param; - ay8910_write_ym(info->psg, address, data); + ym2610_device *ym2610 = downcast(param); + ay8910_write_ym(ym2610->_psg(), address, data); } static int psg_read(void *param) { - ym2610_state *info = (ym2610_state *)param; - return ay8910_read_ym(info->psg); + ym2610_device *ym2610 = downcast(param); + return ay8910_read_ym(ym2610->_psg()); } static void psg_reset(void *param) { - ym2610_state *info = (ym2610_state *)param; - ay8910_reset_ym(info->psg); + ym2610_device *ym2610 = downcast(param); + ay8910_reset_ym(ym2610->_psg()); } static const ssg_callbacks psgintf = @@ -68,106 +48,132 @@ static const ssg_callbacks psgintf = psg_reset }; +void *ym2610_device::_psg() +{ + return m_psg; +} + /*------------------------- TM2610 -------------------------------*/ /* IRQ Handler */ static void IRQHandler(void *param,int irq) { - ym2610_state *info = (ym2610_state *)param; - if (!info->irqhandler.isnull()) - info->irqhandler(irq); + ym2610_device *ym2610 = downcast(param); + ym2610->_IRQHandler(irq); +} + +void ym2610_device::_IRQHandler(int irq) +{ + if (!m_irq_handler.isnull()) + m_irq_handler(irq); } /* Timer overflow callback from timer.c */ -static TIMER_CALLBACK( timer_callback_0 ) +void ym2610_device::device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) { - ym2610_state *info = (ym2610_state *)ptr; - ym2610_timer_over(info->chip,0); -} + switch(id) + { + case 0: + ym2610_timer_over(m_chip,0); + break; -static TIMER_CALLBACK( timer_callback_1 ) -{ - ym2610_state *info = (ym2610_state *)ptr; - ym2610_timer_over(info->chip,1); + case 1: + ym2610_timer_over(m_chip,1); + break; + } } static void timer_handler(void *param,int c,int count,int clock) { - ym2610_state *info = (ym2610_state *)param; + ym2610_device *ym2610 = downcast(param); + ym2610->_timer_handler(c, count, clock); +} + +void ym2610_device::_timer_handler(int c,int count,int clock) +{ if( count == 0 ) { /* Reset FM Timer */ - info->timer[c]->enable(false); + m_timer[c]->enable(false); } else { /* Start FM Timer */ attotime period = attotime::from_hz(clock) * count; - if (!info->timer[c]->enable(true)) - info->timer[c]->adjust(period); + if (!m_timer[c]->enable(true)) + m_timer[c]->adjust(period); } } /* update request from fm.c */ void ym2610_update_request(void *param) { - ym2610_state *info = (ym2610_state *)param; - info->stream->update(); + ym2610_device *ym2610 = downcast(param); + ym2610->_ym2610_update_request(); +} + +void ym2610_device::_ym2610_update_request() +{ + m_stream->update(); +} + +//------------------------------------------------- +// sound_stream_update - handle a stream update +//------------------------------------------------- + +void ym2610_device::sound_stream_update(sound_stream &stream, stream_sample_t **inputs, stream_sample_t **outputs, int samples) +{ + ym2610_update_one(m_chip, outputs, samples); +} + +//------------------------------------------------- +// sound_stream_update - handle a stream update +//------------------------------------------------- + +void ym2610b_device::sound_stream_update(sound_stream &stream, stream_sample_t **inputs, stream_sample_t **outputs, int samples) +{ + ym2610b_update_one(m_chip, outputs, samples); } -static STREAM_UPDATE( ym2610_stream_update ) +void ym2610_device::device_post_load() { - ym2610_state *info = (ym2610_state *)param; - ym2610_update_one(info->chip, outputs, samples); -} - -static STREAM_UPDATE( ym2610b_stream_update ) -{ - ym2610_state *info = (ym2610_state *)param; - ym2610b_update_one(info->chip, outputs, samples); + ym2610_postload(m_chip); } -static void ym2610_intf_postload(ym2610_state *info) -{ - ym2610_postload(info->chip); -} +//------------------------------------------------- +// device_start - device-specific startup +//------------------------------------------------- - -static DEVICE_START( ym2610 ) +void ym2610_device::device_start() { - static const ym2610_interface generic_2610 = { DEVCB_NULL }; static const ay8910_interface generic_ay8910 = { AY8910_LEGACY_OUTPUT | AY8910_SINGLE_OUTPUT, AY8910_DEFAULT_LOADS, DEVCB_NULL, DEVCB_NULL, DEVCB_NULL, DEVCB_NULL }; - const ym2610_interface *intf = device->static_config() ? (const ym2610_interface *)device->static_config() : &generic_2610; - int rate = device->clock()/72; + + int rate = clock()/72; void *pcmbufa,*pcmbufb; int pcmsizea,pcmsizeb; - ym2610_state *info = get_safe_token(device); astring name; - device_type type = device->type(); - info->intf = intf; - info->device = device; - info->irqhandler.resolve(intf->irqhandler, *device); - info->psg = ay8910_start_ym(NULL, device->type(), device, device->clock(), &generic_ay8910); - assert_always(info->psg != NULL, "Error creating YM2610/AY8910 chip"); + m_irq_handler.resolve(); + m_psg = ay8910_start_ym(NULL, type(), this, clock(), &generic_ay8910); + assert_always(m_psg != NULL, "Error creating YM2610/AY8910 chip"); /* Timer Handler set */ - info->timer[0] = device->machine().scheduler().timer_alloc(FUNC(timer_callback_0), info); - info->timer[1] = device->machine().scheduler().timer_alloc(FUNC(timer_callback_1), info); + m_timer[0] = timer_alloc(0); + m_timer[1] = timer_alloc(1); /* stream system initialize */ - info->stream = device->machine().sound().stream_alloc(*device,0,2,rate,info,(type == YM2610) ? ym2610_stream_update : ym2610b_stream_update); + m_stream = machine().sound().stream_alloc(*this,0,2,rate); /* setup adpcm buffers */ - pcmbufa = *device->region(); - pcmsizea = device->region()->bytes(); - name.printf("%s.deltat", device->tag()); - pcmbufb = (void *)(device->machine().root_device().memregion(name)->base()); - pcmsizeb = device->machine().root_device().memregion(name)->bytes(); + pcmbufa = *region(); + pcmsizea = region()->bytes(); + name.printf("%s.deltat", tag()); + pcmbufb = (void *)(machine().root_device().memregion(name)->base()); + pcmsizeb = machine().root_device().memregion(name)->bytes(); if (pcmbufb == NULL || pcmsizeb == 0) { pcmbufb = pcmbufa; @@ -175,63 +181,57 @@ static DEVICE_START( ym2610 ) } /**** initialize YM2610 ****/ - info->chip = ym2610_init(info,device,device->clock(),rate, + m_chip = ym2610_init(this,this,clock(),rate, pcmbufa,pcmsizea,pcmbufb,pcmsizeb, timer_handler,IRQHandler,&psgintf); - assert_always(info->chip != NULL, "Error creating YM2610 chip"); - - device->machine().save().register_postload(save_prepost_delegate(FUNC(ym2610_intf_postload), info)); + assert_always(m_chip != NULL, "Error creating YM2610 chip"); } -static DEVICE_STOP( ym2610 ) +//------------------------------------------------- +// device_stop - device-specific stop +//------------------------------------------------- + +void ym2610_device::device_stop() { - ym2610_state *info = get_safe_token(device); - ym2610_shutdown(info->chip); - ay8910_stop_ym(info->psg); + ym2610_shutdown(m_chip); + ay8910_stop_ym(m_psg); } -static DEVICE_RESET( ym2610 ) +//------------------------------------------------- +// device_reset - device-specific reset +//------------------------------------------------- + +void ym2610_device::device_reset() { - ym2610_state *info = get_safe_token(device); - ym2610_reset_chip(info->chip); + ym2610_reset_chip(m_chip); } -READ8_DEVICE_HANDLER( ym2610_r ) +READ8_MEMBER( ym2610_device::read ) { - ym2610_state *info = get_safe_token(device); - return ym2610_read(info->chip, offset & 3); + return ym2610_read(m_chip, offset & 3); } -WRITE8_DEVICE_HANDLER( ym2610_w ) +WRITE8_MEMBER( ym2610_device::write ) { - ym2610_state *info = get_safe_token(device); - ym2610_write(info->chip, offset & 3, data); + ym2610_write(m_chip, offset & 3, data); } -READ8_DEVICE_HANDLER( ym2610_status_port_a_r ) { return ym2610_r(device, space, 0); } -READ8_DEVICE_HANDLER( ym2610_status_port_b_r ) { return ym2610_r(device, space, 2); } -READ8_DEVICE_HANDLER( ym2610_read_port_r ) { return ym2610_r(device, space, 1); } - -WRITE8_DEVICE_HANDLER( ym2610_control_port_a_w ) { ym2610_w(device, space, 0, data); } -WRITE8_DEVICE_HANDLER( ym2610_control_port_b_w ) { ym2610_w(device, space, 2, data); } -WRITE8_DEVICE_HANDLER( ym2610_data_port_a_w ) { ym2610_w(device, space, 1, data); } -WRITE8_DEVICE_HANDLER( ym2610_data_port_b_w ) { ym2610_w(device, space, 3, data); } - const device_type YM2610 = &device_creator; ym2610_device::ym2610_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) : device_t(mconfig, YM2610, "YM2610", tag, owner, clock), - device_sound_interface(mconfig, *this) + device_sound_interface(mconfig, *this), + m_irq_handler(*this) { - m_token = global_alloc_clear(ym2610_state); } + ym2610_device::ym2610_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, UINT32 clock) : device_t(mconfig, type, name, tag, owner, clock), - device_sound_interface(mconfig, *this) + device_sound_interface(mconfig, *this), + m_irq_handler(*this) { - m_token = global_alloc_clear(ym2610_state); } //------------------------------------------------- @@ -244,57 +244,9 @@ void ym2610_device::device_config_complete() { } -//------------------------------------------------- -// device_start - device-specific startup -//------------------------------------------------- - -void ym2610_device::device_start() -{ - DEVICE_START_NAME( ym2610 )(this); -} - -//------------------------------------------------- -// device_reset - device-specific reset -//------------------------------------------------- - -void ym2610_device::device_reset() -{ - DEVICE_RESET_NAME( ym2610 )(this); -} - -//------------------------------------------------- -// device_stop - device-specific stop -//------------------------------------------------- - -void ym2610_device::device_stop() -{ - DEVICE_STOP_NAME( ym2610 )(this); -} - -//------------------------------------------------- -// sound_stream_update - handle a stream update -//------------------------------------------------- - -void ym2610_device::sound_stream_update(sound_stream &stream, stream_sample_t **inputs, stream_sample_t **outputs, int samples) -{ - // should never get here - fatalerror("sound_stream_update called; not applicable to legacy sound devices\n"); -} - - const device_type YM2610B = &device_creator; ym2610b_device::ym2610b_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) : ym2610_device(mconfig, YM2610B, "YM2610B", tag, owner, clock) { } - -//------------------------------------------------- -// sound_stream_update - handle a stream update -//------------------------------------------------- - -void ym2610b_device::sound_stream_update(sound_stream &stream, stream_sample_t **inputs, stream_sample_t **outputs, int samples) -{ - // should never get here - fatalerror("sound_stream_update called; not applicable to legacy sound devices\n"); -} diff --git a/src/emu/sound/2610intf.h b/src/emu/sound/2610intf.h index 655586ebd40..1d2d53c82a7 100644 --- a/src/emu/sound/2610intf.h +++ b/src/emu/sound/2610intf.h @@ -3,29 +3,13 @@ #ifndef __2610INTF_H__ #define __2610INTF_H__ -#include "devlegcy.h" +#include "emu.h" #include "fm.h" - void ym2610_update_request(void *param); -struct ym2610_interface -{ - devcb_write_line irqhandler; /* IRQ handler for the YM2610 */ -}; - -DECLARE_READ8_DEVICE_HANDLER( ym2610_r ); -DECLARE_WRITE8_DEVICE_HANDLER( ym2610_w ); - -DECLARE_READ8_DEVICE_HANDLER( ym2610_status_port_a_r ); -DECLARE_READ8_DEVICE_HANDLER( ym2610_status_port_b_r ); -DECLARE_READ8_DEVICE_HANDLER( ym2610_read_port_r ); - -DECLARE_WRITE8_DEVICE_HANDLER( ym2610_control_port_a_w ); -DECLARE_WRITE8_DEVICE_HANDLER( ym2610_control_port_b_w ); -DECLARE_WRITE8_DEVICE_HANDLER( ym2610_data_port_a_w ); -DECLARE_WRITE8_DEVICE_HANDLER( ym2610_data_port_b_w ); - +#define MCFG_YM2610_IRQ_HANDLER(_devcb) \ + devcb = &ym2610_device::set_irq_handler(*device, DEVCB2_##_devcb); class ym2610_device : public device_t, public device_sound_interface @@ -33,22 +17,39 @@ class ym2610_device : public device_t, public: ym2610_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock); ym2610_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, UINT32 clock); - ~ym2610_device() { global_free(m_token); } - // access to legacy token - void *token() const { assert(m_token != NULL); return m_token; } + // static configuration helpers + template static devcb2_base &set_irq_handler(device_t &device, _Object object) { return downcast(device).m_irq_handler.set_callback(object); } + + DECLARE_READ8_MEMBER( read ); + DECLARE_WRITE8_MEMBER( write ); + + void *_psg(); + void _IRQHandler(int irq); + void _timer_handler(int c,int count,int clock); + void _ym2610_update_request(); + protected: // device-level overrides virtual void device_config_complete(); virtual void device_start(); + virtual void device_post_load(); virtual void device_stop(); virtual void device_reset(); + virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr); + // sound stream update overrides virtual void sound_stream_update(sound_stream &stream, stream_sample_t **inputs, stream_sample_t **outputs, int samples); + + void * m_chip; + private: // internal state - void *m_token; + sound_stream * m_stream; + emu_timer * m_timer[2]; + void * m_psg; + devcb2_write_line m_irq_handler; }; extern const device_type YM2610; diff --git a/src/mame/drivers/2mindril.c b/src/mame/drivers/2mindril.c index b997e5705d5..56b151afa2d 100644 --- a/src/mame/drivers/2mindril.c +++ b/src/mame/drivers/2mindril.c @@ -211,7 +211,7 @@ static ADDRESS_MAP_START( drill_map, AS_PROGRAM, 16, _2mindril_state ) AM_RANGE(0x460010, 0x46001f) AM_WRITE(f3_control_1_w) AM_RANGE(0x500000, 0x501fff) AM_RAM_WRITE(paletteram_RRRRGGGGBBBBRGBx_word_w) AM_SHARE("paletteram") AM_RANGE(0x502022, 0x502023) AM_WRITENOP //countinously switches between 0 and 2 - AM_RANGE(0x600000, 0x600007) AM_DEVREADWRITE8_LEGACY("ymsnd", ym2610_r, ym2610_w, 0x00ff) + AM_RANGE(0x600000, 0x600007) AM_DEVREADWRITE8("ymsnd", ym2610_device, read, write, 0x00ff) AM_RANGE(0x60000c, 0x60000d) AM_READWRITE(drill_irq_r,drill_irq_w) AM_RANGE(0x60000e, 0x60000f) AM_RAM // unknown purpose, zeroed at start-up and nothing else AM_RANGE(0x700000, 0x70000f) AM_READWRITE(drill_io_r,drill_io_w) AM_SHARE("iodata") // i/o @@ -415,11 +415,6 @@ WRITE_LINE_MEMBER(_2mindril_state::irqhandler) // m_maincpu->set_input_line(5, state ? ASSERT_LINE : CLEAR_LINE); } -static const ym2610_interface ym2610_config = -{ - DEVCB_DRIVER_LINE_MEMBER(_2mindril_state,irqhandler) -}; - MACHINE_START_MEMBER(_2mindril_state,drill) { @@ -460,7 +455,7 @@ static MACHINE_CONFIG_START( drill, _2mindril_state ) MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") MCFG_SOUND_ADD("ymsnd", YM2610B, 16000000/2) - MCFG_SOUND_CONFIG(ym2610_config) + MCFG_YM2610_IRQ_HANDLER(WRITELINE(_2mindril_state, irqhandler)) MCFG_SOUND_ROUTE(0, "lspeaker", 0.25) MCFG_SOUND_ROUTE(0, "rspeaker", 0.25) MCFG_SOUND_ROUTE(1, "lspeaker", 1.0) diff --git a/src/mame/drivers/aerofgt.c b/src/mame/drivers/aerofgt.c index 80375d171e1..b277d2e7073 100644 --- a/src/mame/drivers/aerofgt.c +++ b/src/mame/drivers/aerofgt.c @@ -383,12 +383,12 @@ static ADDRESS_MAP_START( turbofrc_sound_portmap, AS_IO, 8, aerofgt_state ) ADDRESS_MAP_GLOBAL_MASK(0xff) AM_RANGE(0x00, 0x00) AM_WRITE(aerofgt_sh_bankswitch_w) AM_RANGE(0x14, 0x14) AM_READ(soundlatch_byte_r) AM_WRITE(pending_command_clear_w) - AM_RANGE(0x18, 0x1b) AM_DEVREADWRITE_LEGACY("ymsnd", ym2610_r, ym2610_w) + AM_RANGE(0x18, 0x1b) AM_DEVREADWRITE("ymsnd", ym2610_device, read, write) ADDRESS_MAP_END static ADDRESS_MAP_START( aerofgt_sound_portmap, AS_IO, 8, aerofgt_state ) ADDRESS_MAP_GLOBAL_MASK(0xff) - AM_RANGE(0x00, 0x03) AM_DEVREADWRITE_LEGACY("ymsnd", ym2610_r, ym2610_w) + AM_RANGE(0x00, 0x03) AM_DEVREADWRITE("ymsnd", ym2610_device, read, write) AM_RANGE(0x04, 0x04) AM_WRITE(aerofgt_sh_bankswitch_w) AM_RANGE(0x08, 0x08) AM_WRITE(pending_command_clear_w) AM_RANGE(0x0c, 0x0c) AM_READ(soundlatch_byte_r) @@ -1276,11 +1276,6 @@ WRITE_LINE_MEMBER(aerofgt_state::irqhandler) m_audiocpu->set_input_line(0, state ? ASSERT_LINE : CLEAR_LINE); } -static const ym2610_interface ym2610_config = -{ - DEVCB_DRIVER_LINE_MEMBER(aerofgt_state,irqhandler) -}; - static const ym3812_interface ym3812_config = { DEVCB_DRIVER_LINE_MEMBER(aerofgt_state,irqhandler) /* IRQ Line */ @@ -1350,7 +1345,7 @@ static MACHINE_CONFIG_START( pspikes, aerofgt_state ) MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") MCFG_SOUND_ADD("ymsnd", YM2610, 8000000) - MCFG_SOUND_CONFIG(ym2610_config) + MCFG_YM2610_IRQ_HANDLER(WRITELINE(aerofgt_state, irqhandler)) MCFG_SOUND_ROUTE(0, "lspeaker", 0.25) MCFG_SOUND_ROUTE(0, "rspeaker", 0.25) MCFG_SOUND_ROUTE(1, "lspeaker", 1.0) @@ -1494,7 +1489,7 @@ static MACHINE_CONFIG_START( karatblz, aerofgt_state ) MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") MCFG_SOUND_ADD("ymsnd", YM2610, XTAL_8MHz ) /* verified on pcb */ - MCFG_SOUND_CONFIG(ym2610_config) + MCFG_YM2610_IRQ_HANDLER(WRITELINE(aerofgt_state, irqhandler)) MCFG_SOUND_ROUTE(0, "lspeaker", 0.25) MCFG_SOUND_ROUTE(0, "rspeaker", 0.25) MCFG_SOUND_ROUTE(1, "lspeaker", 1.0) @@ -1541,7 +1536,7 @@ static MACHINE_CONFIG_START( spinlbrk, aerofgt_state ) MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") MCFG_SOUND_ADD("ymsnd", YM2610, XTAL_8MHz) /* verified on pcb */ - MCFG_SOUND_CONFIG(ym2610_config) + MCFG_YM2610_IRQ_HANDLER(WRITELINE(aerofgt_state, irqhandler)) MCFG_SOUND_ROUTE(0, "lspeaker", 0.25) MCFG_SOUND_ROUTE(0, "rspeaker", 0.25) MCFG_SOUND_ROUTE(1, "lspeaker", 1.0) @@ -1587,7 +1582,7 @@ static MACHINE_CONFIG_START( turbofrc, aerofgt_state ) MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") MCFG_SOUND_ADD("ymsnd", YM2610, XTAL_8MHz) /* verified on pcb */ - MCFG_SOUND_CONFIG(ym2610_config) + MCFG_YM2610_IRQ_HANDLER(WRITELINE(aerofgt_state, irqhandler)) MCFG_SOUND_ROUTE(0, "lspeaker", 0.25) MCFG_SOUND_ROUTE(0, "rspeaker", 0.25) MCFG_SOUND_ROUTE(1, "lspeaker", 1.0) @@ -1634,7 +1629,7 @@ static MACHINE_CONFIG_START( aerofgtb, aerofgt_state ) MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") MCFG_SOUND_ADD("ymsnd", YM2610, 8000000) - MCFG_SOUND_CONFIG(ym2610_config) + MCFG_YM2610_IRQ_HANDLER(WRITELINE(aerofgt_state, irqhandler)) MCFG_SOUND_ROUTE(0, "lspeaker", 0.25) MCFG_SOUND_ROUTE(0, "rspeaker", 0.25) MCFG_SOUND_ROUTE(1, "lspeaker", 1.0) @@ -1678,7 +1673,7 @@ static MACHINE_CONFIG_START( aerofgt, aerofgt_state ) MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") MCFG_SOUND_ADD("ymsnd", YM2610, XTAL_8MHz) /* verified on pcb */ - MCFG_SOUND_CONFIG(ym2610_config) + MCFG_YM2610_IRQ_HANDLER(WRITELINE(aerofgt_state, irqhandler)) MCFG_SOUND_ROUTE(0, "lspeaker", 0.25) MCFG_SOUND_ROUTE(0, "rspeaker", 0.25) MCFG_SOUND_ROUTE(1, "lspeaker", 1.0) diff --git a/src/mame/drivers/asuka.c b/src/mame/drivers/asuka.c index c653e454f36..e5c5bb04b24 100644 --- a/src/mame/drivers/asuka.c +++ b/src/mame/drivers/asuka.c @@ -375,7 +375,7 @@ static ADDRESS_MAP_START( bonzeadv_z80_map, AS_PROGRAM, 8, asuka_state ) AM_RANGE(0x0000, 0x3fff) AM_ROM AM_RANGE(0x4000, 0x7fff) AM_ROMBANK("bank1") AM_RANGE(0xc000, 0xdfff) AM_RAM - AM_RANGE(0xe000, 0xe003) AM_DEVREADWRITE_LEGACY("ymsnd", ym2610_r, ym2610_w) + AM_RANGE(0xe000, 0xe003) AM_DEVREADWRITE("ymsnd", ym2610_device, read, write) AM_RANGE(0xe200, 0xe200) AM_DEVWRITE("tc0140syt", tc0140syt_device, tc0140syt_slave_port_w) AM_RANGE(0xe201, 0xe201) AM_DEVREADWRITE("tc0140syt", tc0140syt_device, tc0140syt_slave_comm_r, tc0140syt_slave_comm_w) AM_RANGE(0xe400, 0xe403) AM_WRITENOP /* pan */ @@ -767,11 +767,6 @@ WRITE_LINE_MEMBER(asuka_state::irqhandler) m_audiocpu->set_input_line(0, state ? ASSERT_LINE : CLEAR_LINE); } -static const ym2610_interface ym2610_config = -{ - DEVCB_DRIVER_LINE_MEMBER(asuka_state,irqhandler) -}; - static const msm5205_interface msm5205_config = { @@ -906,7 +901,7 @@ static MACHINE_CONFIG_START( bonzeadv, asuka_state ) MCFG_SPEAKER_STANDARD_MONO("mono") MCFG_SOUND_ADD("ymsnd", YM2610, 8000000) - MCFG_SOUND_CONFIG(ym2610_config) + MCFG_YM2610_IRQ_HANDLER(WRITELINE(asuka_state, irqhandler)) MCFG_SOUND_ROUTE(0, "mono", 0.25) MCFG_SOUND_ROUTE(1, "mono", 1.0) MCFG_SOUND_ROUTE(2, "mono", 1.0) diff --git a/src/mame/drivers/bbusters.c b/src/mame/drivers/bbusters.c index ef415fd0936..d417aa143af 100644 --- a/src/mame/drivers/bbusters.c +++ b/src/mame/drivers/bbusters.c @@ -377,7 +377,7 @@ ADDRESS_MAP_END static ADDRESS_MAP_START( sound_portmap, AS_IO, 8, bbusters_state ) ADDRESS_MAP_GLOBAL_MASK(0xff) - AM_RANGE(0x00, 0x03) AM_DEVREADWRITE_LEGACY("ymsnd", ym2610_r, ym2610_w) + AM_RANGE(0x00, 0x03) AM_DEVREADWRITE("ymsnd", ym2610_device, read, write) AM_RANGE(0xc0, 0xc1) AM_WRITENOP /* -> Main CPU */ ADDRESS_MAP_END @@ -648,11 +648,6 @@ static const ym2608_interface ym2608_config = DEVCB_DRIVER_LINE_MEMBER(bbusters_state,sound_irq) }; -static const ym2610_interface ym2610_config = -{ - DEVCB_DRIVER_LINE_MEMBER(bbusters_state,sound_irq) -}; - /******************************************************************************/ void bbusters_state::screen_eof_bbuster(screen_device &screen, bool state) @@ -694,7 +689,7 @@ static MACHINE_CONFIG_START( bbusters, bbusters_state ) MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") MCFG_SOUND_ADD("ymsnd", YM2610, 8000000) - MCFG_SOUND_CONFIG(ym2610_config) + MCFG_YM2610_IRQ_HANDLER(WRITELINE(bbusters_state, sound_irq)) 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/crshrace.c b/src/mame/drivers/crshrace.c index ab939552fb6..313f1ba3d21 100644 --- a/src/mame/drivers/crshrace.c +++ b/src/mame/drivers/crshrace.c @@ -214,7 +214,7 @@ static ADDRESS_MAP_START( sound_io_map, AS_IO, 8, crshrace_state ) ADDRESS_MAP_GLOBAL_MASK(0xff) AM_RANGE(0x00, 0x00) AM_WRITE(crshrace_sh_bankswitch_w) AM_RANGE(0x04, 0x04) AM_READ(soundlatch_byte_r) AM_WRITE(pending_command_clear_w) - AM_RANGE(0x08, 0x0b) AM_DEVREADWRITE_LEGACY("ymsnd", ym2610_r, ym2610_w) + AM_RANGE(0x08, 0x0b) AM_DEVREADWRITE("ymsnd", ym2610_device, read, write) ADDRESS_MAP_END @@ -425,11 +425,6 @@ WRITE_LINE_MEMBER(crshrace_state::irqhandler) m_audiocpu->set_input_line(0, state ? ASSERT_LINE : CLEAR_LINE); } -static const ym2610_interface ym2610_config = -{ - DEVCB_DRIVER_LINE_MEMBER(crshrace_state,irqhandler) -}; - static const k053936_interface crshrace_k053936_intf = { 1, -48, -21 /* wrap, xoff, yoff */ @@ -491,7 +486,7 @@ static MACHINE_CONFIG_START( crshrace, crshrace_state ) MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") MCFG_SOUND_ADD("ymsnd", YM2610, 8000000) - MCFG_SOUND_CONFIG(ym2610_config) + MCFG_YM2610_IRQ_HANDLER(WRITELINE(crshrace_state, irqhandler)) MCFG_SOUND_ROUTE(0, "lspeaker", 0.25) MCFG_SOUND_ROUTE(0, "rspeaker", 0.25) MCFG_SOUND_ROUTE(1, "lspeaker", 1.0) diff --git a/src/mame/drivers/f1gp.c b/src/mame/drivers/f1gp.c index 12169d01927..56adad19222 100644 --- a/src/mame/drivers/f1gp.c +++ b/src/mame/drivers/f1gp.c @@ -152,7 +152,7 @@ static ADDRESS_MAP_START( sound_io_map, AS_IO, 8, f1gp_state ) AM_RANGE(0x00, 0x00) AM_WRITE(f1gp_sh_bankswitch_w) // f1gp AM_RANGE(0x0c, 0x0c) AM_WRITE(f1gp_sh_bankswitch_w) // f1gp2 AM_RANGE(0x14, 0x14) AM_READ(soundlatch_byte_r) AM_WRITE(pending_command_clear_w) - AM_RANGE(0x18, 0x1b) AM_DEVREADWRITE_LEGACY("ymsnd", ym2610_r, ym2610_w) + AM_RANGE(0x18, 0x1b) AM_DEVREADWRITE("ymsnd", ym2610_device, read, write) ADDRESS_MAP_END WRITE16_MEMBER(f1gp_state::f1gpb_misc_w) @@ -395,11 +395,6 @@ WRITE_LINE_MEMBER(f1gp_state::irqhandler) m_audiocpu->set_input_line(0, state ? ASSERT_LINE : CLEAR_LINE); } -static const ym2610_interface ym2610_config = -{ - DEVCB_DRIVER_LINE_MEMBER(f1gp_state,irqhandler) -}; - static const k053936_interface f1gp_k053936_intf = { 1, -58, -2 /* wrap, xoff, yoff */ @@ -486,7 +481,7 @@ static MACHINE_CONFIG_START( f1gp, f1gp_state ) MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") MCFG_SOUND_ADD("ymsnd", YM2610, XTAL_8MHz) - MCFG_SOUND_CONFIG(ym2610_config) + MCFG_YM2610_IRQ_HANDLER(WRITELINE(f1gp_state, irqhandler)) MCFG_SOUND_ROUTE(0, "lspeaker", 0.25) MCFG_SOUND_ROUTE(0, "rspeaker", 0.25) MCFG_SOUND_ROUTE(1, "lspeaker", 1.0) diff --git a/src/mame/drivers/fromanc2.c b/src/mame/drivers/fromanc2.c index 23090e82ebd..ac8647b461e 100644 --- a/src/mame/drivers/fromanc2.c +++ b/src/mame/drivers/fromanc2.c @@ -293,7 +293,7 @@ static ADDRESS_MAP_START( fromanc2_sound_io_map, AS_IO, 8, fromanc2_state ) ADDRESS_MAP_GLOBAL_MASK(0xff) AM_RANGE(0x00, 0x00) AM_READ(soundlatch_byte_r) AM_WRITENOP // snd cmd (1P) / ? AM_RANGE(0x04, 0x04) AM_READ(soundlatch2_byte_r) // snd cmd (2P) - AM_RANGE(0x08, 0x0b) AM_DEVREADWRITE_LEGACY("ymsnd", ym2610_r, ym2610_w) + AM_RANGE(0x08, 0x0b) AM_DEVREADWRITE("ymsnd", ym2610_device, read, write) AM_RANGE(0x0c, 0x0c) AM_READ(fromanc2_sndcpu_nmi_clr) ADDRESS_MAP_END @@ -476,11 +476,6 @@ WRITE_LINE_MEMBER(fromanc2_state::irqhandler) m_audiocpu->set_input_line(0, state ? ASSERT_LINE : CLEAR_LINE); } -static const ym2610_interface ym2610_config = -{ - DEVCB_DRIVER_LINE_MEMBER(fromanc2_state,irqhandler) -}; - /************************************* * @@ -566,7 +561,7 @@ static MACHINE_CONFIG_START( fromanc2, fromanc2_state ) MCFG_SPEAKER_STANDARD_MONO("mono") MCFG_SOUND_ADD("ymsnd", YM2610, 8000000) - MCFG_SOUND_CONFIG(ym2610_config) + MCFG_YM2610_IRQ_HANDLER(WRITELINE(fromanc2_state, irqhandler)) MCFG_SOUND_ROUTE(0, "mono", 0.50) MCFG_SOUND_ROUTE(1, "mono", 0.75) MCFG_SOUND_ROUTE(2, "mono", 0.75) @@ -616,7 +611,7 @@ static MACHINE_CONFIG_START( fromancr, fromanc2_state ) MCFG_SPEAKER_STANDARD_MONO("mono") MCFG_SOUND_ADD("ymsnd", YM2610, 8000000) - MCFG_SOUND_CONFIG(ym2610_config) + MCFG_YM2610_IRQ_HANDLER(WRITELINE(fromanc2_state, irqhandler)) MCFG_SOUND_ROUTE(0, "mono", 0.50) MCFG_SOUND_ROUTE(1, "mono", 0.75) MCFG_SOUND_ROUTE(2, "mono", 0.75) @@ -663,7 +658,7 @@ static MACHINE_CONFIG_START( fromanc4, fromanc2_state ) MCFG_SPEAKER_STANDARD_MONO("mono") MCFG_SOUND_ADD("ymsnd", YM2610, 8000000) - MCFG_SOUND_CONFIG(ym2610_config) + MCFG_YM2610_IRQ_HANDLER(WRITELINE(fromanc2_state, irqhandler)) MCFG_SOUND_ROUTE(0, "mono", 0.50) MCFG_SOUND_ROUTE(1, "mono", 0.75) MCFG_SOUND_ROUTE(2, "mono", 0.75) diff --git a/src/mame/drivers/gstriker.c b/src/mame/drivers/gstriker.c index 38af62b394d..10ac2bf4ee1 100644 --- a/src/mame/drivers/gstriker.c +++ b/src/mame/drivers/gstriker.c @@ -267,11 +267,6 @@ WRITE_LINE_MEMBER(gstriker_state::gs_ym2610_irq) m_audiocpu->set_input_line(0, CLEAR_LINE); } -static const ym2610_interface ym2610_config = -{ - DEVCB_DRIVER_LINE_MEMBER(gstriker_state,gs_ym2610_irq) -}; - /*** MEMORY LAYOUTS **********************************************************/ @@ -306,7 +301,7 @@ ADDRESS_MAP_END static ADDRESS_MAP_START( sound_io_map, AS_IO, 8, gstriker_state ) ADDRESS_MAP_GLOBAL_MASK(0xff) - AM_RANGE(0x00, 0x03) AM_DEVREADWRITE_LEGACY("ymsnd", ym2610_r, ym2610_w) + AM_RANGE(0x00, 0x03) AM_DEVREADWRITE("ymsnd", ym2610_device, read, write) AM_RANGE(0x04, 0x04) AM_WRITE(gs_sh_bankswitch_w) AM_RANGE(0x08, 0x08) AM_WRITE(gs_sh_pending_command_clear_w) AM_RANGE(0x0c, 0x0c) AM_READ(soundlatch_byte_r) @@ -571,7 +566,7 @@ static MACHINE_CONFIG_START( gstriker, gstriker_state ) MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") MCFG_SOUND_ADD("ymsnd", YM2610, 8000000) - MCFG_SOUND_CONFIG(ym2610_config) + MCFG_YM2610_IRQ_HANDLER(WRITELINE(gstriker_state, gs_ym2610_irq)) MCFG_SOUND_ROUTE(0, "lspeaker", 0.25) MCFG_SOUND_ROUTE(0, "rspeaker", 0.25) MCFG_SOUND_ROUTE(1, "lspeaker", 1.0) @@ -617,7 +612,7 @@ static MACHINE_CONFIG_START( vgoal, gstriker_state ) MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") MCFG_SOUND_ADD("ymsnd", YM2610, 8000000) - MCFG_SOUND_CONFIG(ym2610_config) + MCFG_YM2610_IRQ_HANDLER(WRITELINE(gstriker_state, gs_ym2610_irq)) MCFG_SOUND_ROUTE(0, "lspeaker", 0.25) MCFG_SOUND_ROUTE(0, "rspeaker", 0.25) MCFG_SOUND_ROUTE(1, "lspeaker", 1.0) diff --git a/src/mame/drivers/inufuku.c b/src/mame/drivers/inufuku.c index 133dd87b3ef..96e90eb1012 100644 --- a/src/mame/drivers/inufuku.c +++ b/src/mame/drivers/inufuku.c @@ -176,7 +176,7 @@ static ADDRESS_MAP_START( inufuku_sound_io_map, AS_IO, 8, inufuku_state ) ADDRESS_MAP_GLOBAL_MASK(0xff) AM_RANGE(0x00, 0x00) AM_WRITE(inufuku_soundrombank_w) AM_RANGE(0x04, 0x04) AM_READ(soundlatch_byte_r) AM_WRITE(pending_command_clear_w) - AM_RANGE(0x08, 0x0b) AM_DEVREADWRITE_LEGACY("ymsnd", ym2610_r, ym2610_w) + AM_RANGE(0x08, 0x0b) AM_DEVREADWRITE("ymsnd", ym2610_device, read, write) ADDRESS_MAP_END /****************************************************************************** @@ -325,11 +325,6 @@ WRITE_LINE_MEMBER(inufuku_state::irqhandler) m_audiocpu->set_input_line(0, state ? ASSERT_LINE : CLEAR_LINE); } -static const ym2610_interface ym2610_config = -{ - DEVCB_DRIVER_LINE_MEMBER(inufuku_state,irqhandler) -}; - /****************************************************************************** @@ -405,7 +400,7 @@ static MACHINE_CONFIG_START( inufuku, inufuku_state ) MCFG_SPEAKER_STANDARD_MONO("mono") MCFG_SOUND_ADD("ymsnd", YM2610, 32000000/4) - MCFG_SOUND_CONFIG(ym2610_config) + MCFG_YM2610_IRQ_HANDLER(WRITELINE(inufuku_state, irqhandler)) MCFG_SOUND_ROUTE(0, "mono", 0.50) MCFG_SOUND_ROUTE(1, "mono", 0.75) MCFG_SOUND_ROUTE(2, "mono", 0.75) diff --git a/src/mame/drivers/mcatadv.c b/src/mame/drivers/mcatadv.c index 9d98d5875b6..91e20884536 100644 --- a/src/mame/drivers/mcatadv.c +++ b/src/mame/drivers/mcatadv.c @@ -213,7 +213,7 @@ static ADDRESS_MAP_START( mcatadv_sound_map, AS_PROGRAM, 8, mcatadv_state ) AM_RANGE(0x0000, 0x3fff) AM_ROM // ROM AM_RANGE(0x4000, 0xbfff) AM_ROMBANK("bank1") // ROM AM_RANGE(0xc000, 0xdfff) AM_RAM // RAM - AM_RANGE(0xe000, 0xe003) AM_DEVREADWRITE_LEGACY("ymsnd", ym2610_r,ym2610_w) + AM_RANGE(0xe000, 0xe003) AM_DEVREADWRITE("ymsnd", ym2610_device, read, write) AM_RANGE(0xf000, 0xf000) AM_WRITE(mcatadv_sound_bw_w) ADDRESS_MAP_END @@ -231,8 +231,8 @@ ADDRESS_MAP_END static ADDRESS_MAP_START( nost_sound_io_map, AS_IO, 8, mcatadv_state ) ADDRESS_MAP_GLOBAL_MASK(0xff) - AM_RANGE(0x00, 0x03) AM_DEVWRITE_LEGACY("ymsnd", ym2610_w) - AM_RANGE(0x04, 0x07) AM_DEVREAD_LEGACY("ymsnd", ym2610_r) + AM_RANGE(0x00, 0x03) AM_DEVWRITE("ymsnd", ym2610_device, write) + AM_RANGE(0x04, 0x07) AM_DEVREAD("ymsnd", ym2610_device, read) AM_RANGE(0x40, 0x40) AM_WRITE(mcatadv_sound_bw_w) AM_RANGE(0x80, 0x80) AM_READWRITE(soundlatch_byte_r, soundlatch2_byte_w) ADDRESS_MAP_END @@ -417,11 +417,6 @@ WRITE_LINE_MEMBER(mcatadv_state::sound_irq) m_soundcpu->set_input_line(0, state ? ASSERT_LINE : CLEAR_LINE); } -static const ym2610_interface mcatadv_ym2610_interface = -{ - DEVCB_DRIVER_LINE_MEMBER(mcatadv_state,sound_irq) /* irq */ -}; - void mcatadv_state::machine_start() { @@ -466,7 +461,7 @@ static MACHINE_CONFIG_START( mcatadv, mcatadv_state ) MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") MCFG_SOUND_ADD("ymsnd", YM2610, XTAL_16MHz/2) /* verified on pcb */ - MCFG_SOUND_CONFIG(mcatadv_ym2610_interface) + MCFG_YM2610_IRQ_HANDLER(WRITELINE(mcatadv_state, sound_irq)) MCFG_SOUND_ROUTE(0, "lspeaker", 0.32) MCFG_SOUND_ROUTE(0, "rspeaker", 0.32) MCFG_SOUND_ROUTE(1, "lspeaker", 0.5) diff --git a/src/mame/drivers/metro.c b/src/mame/drivers/metro.c index 69acec9071a..d6280e7c282 100644 --- a/src/mame/drivers/metro.c +++ b/src/mame/drivers/metro.c @@ -1609,11 +1609,6 @@ WRITE_LINE_MEMBER(metro_state::blzntrnd_irqhandler) m_audiocpu->set_input_line(0, state ? ASSERT_LINE : CLEAR_LINE); } -static const ym2610_interface blzntrnd_ym2610_interface = -{ - DEVCB_DRIVER_LINE_MEMBER(metro_state,blzntrnd_irqhandler) -}; - static ADDRESS_MAP_START( blzntrnd_sound_map, AS_PROGRAM, 8, metro_state ) AM_RANGE(0x0000, 0x7fff) AM_ROM AM_RANGE(0x8000, 0xbfff) AM_ROMBANK("bank1") @@ -1624,7 +1619,7 @@ static ADDRESS_MAP_START( blzntrnd_sound_io_map, AS_IO, 8, metro_state ) ADDRESS_MAP_GLOBAL_MASK(0xff) AM_RANGE(0x00, 0x00) AM_WRITE(blzntrnd_sh_bankswitch_w) AM_RANGE(0x40, 0x40) AM_READ(soundlatch_byte_r) AM_WRITENOP - AM_RANGE(0x80, 0x83) AM_DEVREADWRITE_LEGACY("ymsnd", ym2610_r,ym2610_w) + AM_RANGE(0x80, 0x83) AM_DEVREADWRITE("ymsnd", ym2610_device, read, write) ADDRESS_MAP_END static ADDRESS_MAP_START( blzntrnd_map, AS_PROGRAM, 16, metro_state ) @@ -4438,7 +4433,7 @@ static MACHINE_CONFIG_START( blzntrnd, metro_state ) MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") MCFG_SOUND_ADD("ymsnd", YM2610, XTAL_16MHz/2) - MCFG_SOUND_CONFIG(blzntrnd_ym2610_interface) + MCFG_YM2610_IRQ_HANDLER(WRITELINE(metro_state, blzntrnd_irqhandler)) MCFG_SOUND_ROUTE(0, "lspeaker", 0.25) MCFG_SOUND_ROUTE(0, "rspeaker", 0.25) MCFG_SOUND_ROUTE(1, "lspeaker", 1.0) @@ -4485,7 +4480,7 @@ static MACHINE_CONFIG_START( gstrik2, metro_state ) MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") MCFG_SOUND_ADD("ymsnd", YM2610, XTAL_16MHz/2) - MCFG_SOUND_CONFIG(blzntrnd_ym2610_interface) + MCFG_YM2610_IRQ_HANDLER(WRITELINE(metro_state, blzntrnd_irqhandler)) MCFG_SOUND_ROUTE(0, "lspeaker", 0.25) MCFG_SOUND_ROUTE(0, "rspeaker", 0.25) MCFG_SOUND_ROUTE(1, "lspeaker", 1.0) diff --git a/src/mame/drivers/neogeo.c b/src/mame/drivers/neogeo.c index 599e72f9a6f..009afec0341 100644 --- a/src/mame/drivers/neogeo.c +++ b/src/mame/drivers/neogeo.c @@ -1127,7 +1127,7 @@ ADDRESS_MAP_END static ADDRESS_MAP_START( audio_io_map, AS_IO, 8, neogeo_state ) /*AM_RANGE(0x00, 0x00) AM_MIRROR(0xff00) AM_READWRITE(audio_command_r, audio_cpu_clear_nmi_w);*/ /* may not and NMI clear */ AM_RANGE(0x00, 0x00) AM_MIRROR(0xff00) AM_READ(audio_command_r) - AM_RANGE(0x04, 0x07) AM_MIRROR(0xff00) AM_DEVREADWRITE_LEGACY("ymsnd", ym2610_r, ym2610_w) + AM_RANGE(0x04, 0x07) AM_MIRROR(0xff00) AM_DEVREADWRITE("ymsnd", ym2610_device, read, write) AM_RANGE(0x08, 0x08) AM_MIRROR(0xff00) /* write - NMI enable / acknowledge? (the data written doesn't matter) */ AM_RANGE(0x08, 0x08) AM_MIRROR(0xfff0) AM_MASK(0xfff0) AM_READ(audio_cpu_bank_select_f000_f7ff_r) AM_RANGE(0x09, 0x09) AM_MIRROR(0xfff0) AM_MASK(0xfff0) AM_READ(audio_cpu_bank_select_e000_efff_r) @@ -1139,19 +1139,6 @@ ADDRESS_MAP_END -/************************************* - * - * Audio interface - * - *************************************/ - -static const ym2610_interface ym2610_config = -{ - DEVCB_DRIVER_LINE_MEMBER(neogeo_state,audio_cpu_irq) -}; - - - /************************************* * * Standard Neo-Geo DIPs and @@ -1378,7 +1365,7 @@ MACHINE_CONFIG_START( neogeo_base, neogeo_state ) MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") MCFG_SOUND_ADD("ymsnd", YM2610, NEOGEO_YM2610_CLOCK) - MCFG_SOUND_CONFIG(ym2610_config) + MCFG_YM2610_IRQ_HANDLER(WRITELINE(neogeo_state, audio_cpu_irq)) MCFG_SOUND_ROUTE(0, "lspeaker", 0.60) MCFG_SOUND_ROUTE(0, "rspeaker", 0.60) MCFG_SOUND_ROUTE(1, "lspeaker", 1.0) diff --git a/src/mame/drivers/neoprint.c b/src/mame/drivers/neoprint.c index baeebf3d578..cf6062f1376 100644 --- a/src/mame/drivers/neoprint.c +++ b/src/mame/drivers/neoprint.c @@ -335,7 +335,7 @@ ADDRESS_MAP_END static ADDRESS_MAP_START( neoprint_audio_io_map, AS_IO, 8, neoprint_state ) /*AM_RANGE(0x00, 0x00) AM_MIRROR(0xff00) AM_READWRITE(audio_command_r, audio_cpu_clear_nmi_w);*/ /* may not and NMI clear */ AM_RANGE(0x00, 0x00) AM_MIRROR(0xff00) AM_READ(audio_command_r) AM_WRITENOP - AM_RANGE(0x04, 0x07) AM_MIRROR(0xff00) AM_DEVREADWRITE_LEGACY("ymsnd", ym2610_r, ym2610_w) + AM_RANGE(0x04, 0x07) AM_MIRROR(0xff00) AM_DEVREADWRITE("ymsnd", ym2610_device, read, write) // AM_RANGE(0x08, 0x08) AM_MIRROR(0xff00) /* write - NMI enable / acknowledge? (the data written doesn't matter) */ // AM_RANGE(0x08, 0x08) AM_MIRROR(0xfff0) AM_MASK(0xfff0) AM_READ(audio_cpu_bank_select_f000_f7ff_r) // AM_RANGE(0x09, 0x09) AM_MIRROR(0xfff0) AM_MASK(0xfff0) AM_READ(audio_cpu_bank_select_e000_efff_r) @@ -458,11 +458,6 @@ WRITE_LINE_MEMBER(neoprint_state::audio_cpu_irq) m_audiocpu->set_input_line(0, state ? ASSERT_LINE : CLEAR_LINE); } -static const ym2610_interface ym2610_config = -{ - DEVCB_DRIVER_LINE_MEMBER(neoprint_state,audio_cpu_irq) -}; - static MACHINE_CONFIG_START( neoprint, neoprint_state ) MCFG_CPU_ADD("maincpu", M68000, 12000000) @@ -492,7 +487,7 @@ static MACHINE_CONFIG_START( neoprint, neoprint_state ) MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") MCFG_SOUND_ADD("ymsnd", YM2610, 24000000 / 3) - MCFG_SOUND_CONFIG(ym2610_config) + MCFG_YM2610_IRQ_HANDLER(WRITELINE(neoprint_state, audio_cpu_irq)) MCFG_SOUND_ROUTE(0, "lspeaker", 0.60) MCFG_SOUND_ROUTE(0, "rspeaker", 0.60) MCFG_SOUND_ROUTE(1, "lspeaker", 1.0) @@ -534,7 +529,7 @@ static MACHINE_CONFIG_START( nprsp, neoprint_state ) MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") MCFG_SOUND_ADD("ymsnd", YM2610, 24000000 / 3) - MCFG_SOUND_CONFIG(ym2610_config) + MCFG_YM2610_IRQ_HANDLER(WRITELINE(neoprint_state, audio_cpu_irq)) MCFG_SOUND_ROUTE(0, "lspeaker", 0.60) MCFG_SOUND_ROUTE(0, "rspeaker", 0.60) MCFG_SOUND_ROUTE(1, "lspeaker", 1.0) diff --git a/src/mame/drivers/ninjaw.c b/src/mame/drivers/ninjaw.c index fec2bc381cb..28eb2896ea2 100644 --- a/src/mame/drivers/ninjaw.c +++ b/src/mame/drivers/ninjaw.c @@ -488,7 +488,7 @@ static ADDRESS_MAP_START( ninjaw_sound_map, AS_PROGRAM, 8, ninjaw_state ) AM_RANGE(0x0000, 0x3fff) AM_ROM AM_RANGE(0x4000, 0x7fff) AM_ROMBANK("bank10") AM_RANGE(0xc000, 0xdfff) AM_RAM - AM_RANGE(0xe000, 0xe003) AM_DEVREADWRITE_LEGACY("ymsnd", ym2610_r,ym2610_w) + AM_RANGE(0xe000, 0xe003) AM_DEVREADWRITE("ymsnd", ym2610_device, read, write) AM_RANGE(0xe200, 0xe200) AM_READNOP AM_DEVWRITE("tc0140syt", tc0140syt_device, tc0140syt_slave_port_w) AM_RANGE(0xe201, 0xe201) AM_DEVREADWRITE("tc0140syt", tc0140syt_device, tc0140syt_slave_comm_r,tc0140syt_slave_comm_w) AM_RANGE(0xe400, 0xe403) AM_WRITE(ninjaw_pancontrol) /* pan */ @@ -640,11 +640,6 @@ WRITE_LINE_MEMBER(ninjaw_state::irqhandler) m_audiocpu->set_input_line(0, state ? ASSERT_LINE : CLEAR_LINE); } -static const ym2610_interface ym2610_config = -{ - DEVCB_DRIVER_LINE_MEMBER(ninjaw_state,irqhandler) -}; - /************************************************************** SUBWOOFER (SOUND) @@ -869,7 +864,7 @@ static MACHINE_CONFIG_START( ninjaw, ninjaw_state ) MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") MCFG_SOUND_ADD("ymsnd", YM2610, 16000000/2) - MCFG_SOUND_CONFIG(ym2610_config) + MCFG_YM2610_IRQ_HANDLER(WRITELINE(ninjaw_state, irqhandler)) MCFG_SOUND_ROUTE(0, "lspeaker", 0.25) MCFG_SOUND_ROUTE(0, "rspeaker", 0.25) MCFG_SOUND_ROUTE(1, "2610.1.l", 1.0) @@ -949,7 +944,7 @@ static MACHINE_CONFIG_START( darius2, ninjaw_state ) MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") MCFG_SOUND_ADD("ymsnd", YM2610, 16000000/2) - MCFG_SOUND_CONFIG(ym2610_config) + MCFG_YM2610_IRQ_HANDLER(WRITELINE(ninjaw_state, irqhandler)) MCFG_SOUND_ROUTE(0, "lspeaker", 0.25) MCFG_SOUND_ROUTE(0, "rspeaker", 0.25) MCFG_SOUND_ROUTE(1, "2610.1.l", 1.0) diff --git a/src/mame/drivers/othunder.c b/src/mame/drivers/othunder.c index f3628918427..7643c7c2cee 100644 --- a/src/mame/drivers/othunder.c +++ b/src/mame/drivers/othunder.c @@ -465,7 +465,7 @@ static ADDRESS_MAP_START( z80_sound_map, AS_PROGRAM, 8, othunder_state ) AM_RANGE(0x0000, 0x3fff) AM_ROM AM_RANGE(0x4000, 0x7fff) AM_ROMBANK("bank10") AM_RANGE(0xc000, 0xdfff) AM_RAM - AM_RANGE(0xe000, 0xe003) AM_DEVREADWRITE_LEGACY("ymsnd", ym2610_r, ym2610_w) + AM_RANGE(0xe000, 0xe003) AM_DEVREADWRITE("ymsnd", ym2610_device, read, write) AM_RANGE(0xe200, 0xe200) AM_READNOP AM_DEVWRITE("tc0140syt", tc0140syt_device, tc0140syt_slave_port_w) AM_RANGE(0xe201, 0xe201) AM_DEVREADWRITE("tc0140syt", tc0140syt_device, tc0140syt_slave_comm_r, tc0140syt_slave_comm_w) AM_RANGE(0xe400, 0xe403) AM_WRITE(othunder_TC0310FAM_w) /* pan */ @@ -623,11 +623,6 @@ WRITE_LINE_MEMBER(othunder_state::irqhandler) m_audiocpu->set_input_line(0, state ? ASSERT_LINE : CLEAR_LINE); } -static const ym2610_interface ym2610_config = -{ - DEVCB_DRIVER_LINE_MEMBER(othunder_state,irqhandler) -}; - /*********************************************************** @@ -713,7 +708,7 @@ static MACHINE_CONFIG_START( othunder, othunder_state ) MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") MCFG_SOUND_ADD("ymsnd", YM2610, 16000000/2) - MCFG_SOUND_CONFIG(ym2610_config) + MCFG_YM2610_IRQ_HANDLER(WRITELINE(othunder_state, irqhandler)) MCFG_SOUND_ROUTE(0, "2610.0l", 0.25) MCFG_SOUND_ROUTE(0, "2610.0r", 0.25) MCFG_SOUND_ROUTE(1, "2610.1l", 1.0) diff --git a/src/mame/drivers/pipedrm.c b/src/mame/drivers/pipedrm.c index 4dd5e493258..3039d4b9631 100644 --- a/src/mame/drivers/pipedrm.c +++ b/src/mame/drivers/pipedrm.c @@ -324,7 +324,7 @@ static ADDRESS_MAP_START( sound_portmap, AS_IO, 8, pipedrm_state ) AM_RANGE(0x04, 0x04) AM_WRITE(sound_bankswitch_w) AM_RANGE(0x16, 0x16) AM_READ(sound_command_r) AM_RANGE(0x17, 0x17) AM_WRITE(pending_command_clear_w) - AM_RANGE(0x18, 0x1b) AM_DEVREADWRITE_LEGACY("ymsnd", ym2610_r, ym2610_w) + AM_RANGE(0x18, 0x1b) AM_DEVREADWRITE("ymsnd", ym2610_device, read, write) ADDRESS_MAP_END @@ -592,12 +592,6 @@ static const ym2608_interface ym2608_config = }; -static const ym2610_interface ym2610_config = -{ - DEVCB_DRIVER_LINE_MEMBER(pipedrm_state,irqhandler) -}; - - /************************************* * @@ -683,7 +677,7 @@ static MACHINE_CONFIG_START( pipedrm, pipedrm_state ) MCFG_SPEAKER_STANDARD_MONO("mono") MCFG_SOUND_ADD("ymsnd", YM2610, 8000000) - MCFG_SOUND_CONFIG(ym2610_config) + MCFG_YM2610_IRQ_HANDLER(WRITELINE(pipedrm_state, irqhandler)) MCFG_SOUND_ROUTE(0, "mono", 0.50) MCFG_SOUND_ROUTE(1, "mono", 1.0) MCFG_SOUND_ROUTE(2, "mono", 1.0) diff --git a/src/mame/drivers/psikyo.c b/src/mame/drivers/psikyo.c index 3c1cd6b8989..6fd82d02cb1 100644 --- a/src/mame/drivers/psikyo.c +++ b/src/mame/drivers/psikyo.c @@ -409,7 +409,7 @@ ADDRESS_MAP_END static ADDRESS_MAP_START( sngkace_sound_io_map, AS_IO, 8, psikyo_state ) ADDRESS_MAP_GLOBAL_MASK(0xff) - AM_RANGE(0x00, 0x03) AM_DEVREADWRITE_LEGACY("ymsnd", ym2610_r, ym2610_w) + AM_RANGE(0x00, 0x03) AM_DEVREADWRITE("ymsnd", ym2610_device, read, write) AM_RANGE(0x04, 0x04) AM_WRITE(sngkace_sound_bankswitch_w) AM_RANGE(0x08, 0x08) AM_READ(psikyo_soundlatch_r) AM_RANGE(0x0c, 0x0c) AM_WRITE(psikyo_clear_nmi_w) @@ -434,7 +434,7 @@ ADDRESS_MAP_END static ADDRESS_MAP_START( gunbird_sound_io_map, AS_IO, 8, psikyo_state ) ADDRESS_MAP_GLOBAL_MASK(0xff) AM_RANGE(0x00, 0x00) AM_WRITE(gunbird_sound_bankswitch_w) - AM_RANGE(0x04, 0x07) AM_DEVREADWRITE_LEGACY("ymsnd", ym2610_r, ym2610_w) + AM_RANGE(0x04, 0x07) AM_DEVREADWRITE("ymsnd", ym2610_device, read, write) AM_RANGE(0x08, 0x08) AM_READ(psikyo_soundlatch_r) AM_RANGE(0x0c, 0x0c) AM_WRITE(psikyo_clear_nmi_w) ADDRESS_MAP_END @@ -1030,11 +1030,6 @@ void psikyo_state::machine_reset() ***************************************************************************/ -static const ym2610_interface sngkace_ym2610_interface = -{ - DEVCB_DRIVER_LINE_MEMBER(psikyo_state,sound_irq) -}; - static MACHINE_CONFIG_START( sngkace, psikyo_state ) /* basic machine hardware */ @@ -1065,7 +1060,7 @@ static MACHINE_CONFIG_START( sngkace, psikyo_state ) MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") MCFG_SOUND_ADD("ymsnd", YM2610, XTAL_32MHz/4) /* verified on pcb */ - MCFG_SOUND_CONFIG(sngkace_ym2610_interface) + MCFG_YM2610_IRQ_HANDLER(WRITELINE(psikyo_state, sound_irq)) MCFG_SOUND_ROUTE(0, "lspeaker", 1.2) MCFG_SOUND_ROUTE(0, "rspeaker", 1.2) MCFG_SOUND_ROUTE(1, "lspeaker", 1.0) @@ -1079,11 +1074,6 @@ MACHINE_CONFIG_END ***************************************************************************/ -static const ym2610_interface gunbird_ym2610_interface = -{ - DEVCB_DRIVER_LINE_MEMBER(psikyo_state,sound_irq) /* irq */ -}; - static MACHINE_CONFIG_START( gunbird, psikyo_state ) /* basic machine hardware */ @@ -1114,7 +1104,7 @@ static MACHINE_CONFIG_START( gunbird, psikyo_state ) MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") MCFG_SOUND_ADD("ymsnd", YM2610, 8000000) - MCFG_SOUND_CONFIG(gunbird_ym2610_interface) + MCFG_YM2610_IRQ_HANDLER(WRITELINE(psikyo_state, sound_irq)) MCFG_SOUND_ROUTE(0, "lspeaker", 1.2) MCFG_SOUND_ROUTE(0, "rspeaker", 1.2) MCFG_SOUND_ROUTE(1, "lspeaker", 1.0) diff --git a/src/mame/drivers/slapshot.c b/src/mame/drivers/slapshot.c index 47a0ad232f0..464179f5ee6 100644 --- a/src/mame/drivers/slapshot.c +++ b/src/mame/drivers/slapshot.c @@ -313,7 +313,7 @@ static ADDRESS_MAP_START( opwolf3_z80_sound_map, AS_PROGRAM, 8, slapshot_state ) AM_RANGE(0x0000, 0x3fff) AM_ROM AM_RANGE(0x4000, 0x7fff) AM_ROMBANK("bank10") AM_RANGE(0xc000, 0xdfff) AM_RAM - AM_RANGE(0xe000, 0xe003) AM_DEVREADWRITE_LEGACY("ymsnd", ym2610_r,ym2610_w) + AM_RANGE(0xe000, 0xe003) AM_DEVREADWRITE("ymsnd", ym2610_device, read, write) AM_RANGE(0xe200, 0xe200) AM_READNOP AM_DEVWRITE("tc0140syt", tc0140syt_device, tc0140syt_slave_port_w) AM_RANGE(0xe201, 0xe201) AM_DEVREADWRITE("tc0140syt", tc0140syt_device, tc0140syt_slave_comm_r, tc0140syt_slave_comm_w) AM_RANGE(0xe400, 0xe403) AM_WRITENOP /* pan */ @@ -481,11 +481,6 @@ WRITE_LINE_MEMBER(slapshot_state::irqhandler) m_audiocpu->set_input_line(0, state ? ASSERT_LINE : CLEAR_LINE); } -static const ym2610_interface ym2610_config = -{ - DEVCB_DRIVER_LINE_MEMBER(slapshot_state,irqhandler) -}; - /*********************************************************** MACHINE DRIVERS @@ -557,7 +552,7 @@ static MACHINE_CONFIG_START( slapshot, slapshot_state ) MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") MCFG_SOUND_ADD("ymsnd", YM2610B, 16000000/2) - MCFG_SOUND_CONFIG(ym2610_config) + MCFG_YM2610_IRQ_HANDLER(WRITELINE(slapshot_state, irqhandler)) MCFG_SOUND_ROUTE(0, "lspeaker", 0.25) MCFG_SOUND_ROUTE(0, "rspeaker", 0.25) MCFG_SOUND_ROUTE(1, "lspeaker", 1.0) @@ -603,7 +598,7 @@ static MACHINE_CONFIG_START( opwolf3, slapshot_state ) MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") MCFG_SOUND_ADD("ymsnd", YM2610B, 16000000/2) - MCFG_SOUND_CONFIG(ym2610_config) + MCFG_YM2610_IRQ_HANDLER(WRITELINE(slapshot_state, irqhandler)) MCFG_SOUND_ROUTE(0, "lspeaker", 0.25) MCFG_SOUND_ROUTE(0, "rspeaker", 0.25) MCFG_SOUND_ROUTE(1, "lspeaker", 1.0) diff --git a/src/mame/drivers/suprslam.c b/src/mame/drivers/suprslam.c index 0a873d208c0..ebb7b096482 100644 --- a/src/mame/drivers/suprslam.c +++ b/src/mame/drivers/suprslam.c @@ -156,7 +156,7 @@ static ADDRESS_MAP_START( sound_io_map, AS_IO, 8, suprslam_state ) ADDRESS_MAP_GLOBAL_MASK(0xff) AM_RANGE(0x00, 0x00) AM_WRITE(suprslam_sh_bankswitch_w) AM_RANGE(0x04, 0x04) AM_READ(soundlatch_byte_r) AM_WRITE(pending_command_clear_w) - AM_RANGE(0x08, 0x0b) AM_DEVREADWRITE_LEGACY("ymsnd", ym2610_r, ym2610_w) + AM_RANGE(0x08, 0x0b) AM_DEVREADWRITE("ymsnd", ym2610_device, read, write) ADDRESS_MAP_END /*** INPUT PORTS *************************************************************/ @@ -281,11 +281,6 @@ WRITE_LINE_MEMBER(suprslam_state::irqhandler) m_audiocpu->set_input_line(0, state ? ASSERT_LINE : CLEAR_LINE); } -static const ym2610_interface ym2610_config = -{ - DEVCB_DRIVER_LINE_MEMBER(suprslam_state,irqhandler) -}; - /*** MACHINE DRIVER **********************************************************/ static const k053936_interface suprslam_k053936_intf = @@ -340,7 +335,7 @@ static MACHINE_CONFIG_START( suprslam, suprslam_state ) MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") MCFG_SOUND_ADD("ymsnd", YM2610, 8000000) - MCFG_SOUND_CONFIG(ym2610_config) + MCFG_YM2610_IRQ_HANDLER(WRITELINE(suprslam_state, irqhandler)) MCFG_SOUND_ROUTE(0, "lspeaker", 0.25) MCFG_SOUND_ROUTE(0, "rspeaker", 0.25) MCFG_SOUND_ROUTE(1, "lspeaker", 1.0) diff --git a/src/mame/drivers/taito_b.c b/src/mame/drivers/taito_b.c index 9fd15475a3b..219ecb9db13 100644 --- a/src/mame/drivers/taito_b.c +++ b/src/mame/drivers/taito_b.c @@ -734,7 +734,7 @@ static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8, taitob_state ) AM_RANGE(0x0000, 0x3fff) AM_ROM AM_RANGE(0x4000, 0x7fff) AM_ROMBANK("bank1") AM_RANGE(0xc000, 0xdfff) AM_RAM - AM_RANGE(0xe000, 0xe003) AM_DEVREADWRITE_LEGACY("ymsnd", ym2610_r, ym2610_w) + AM_RANGE(0xe000, 0xe003) AM_DEVREADWRITE("ymsnd", ym2610_device, read, write) AM_RANGE(0xe200, 0xe200) AM_READNOP AM_DEVWRITE("tc0140syt", tc0140syt_device, tc0140syt_slave_port_w) AM_RANGE(0xe201, 0xe201) AM_DEVREADWRITE("tc0140syt", tc0140syt_device, tc0140syt_slave_comm_r, tc0140syt_slave_comm_w) AM_RANGE(0xe400, 0xe403) AM_WRITENOP /* pan */ @@ -1895,11 +1895,6 @@ WRITE_LINE_MEMBER(taitob_state::irqhandler) m_audiocpu->set_input_line(0, state ? ASSERT_LINE : CLEAR_LINE); } -static const ym2610_interface ym2610_config = -{ - DEVCB_DRIVER_LINE_MEMBER(taitob_state,irqhandler) -}; - static const ym2203_interface ym2203_config = { { @@ -2049,7 +2044,7 @@ static MACHINE_CONFIG_START( rastsag2, taitob_state ) MCFG_SPEAKER_STANDARD_MONO("mono") MCFG_SOUND_ADD("ymsnd", YM2610, 8000000) - MCFG_SOUND_CONFIG(ym2610_config) + MCFG_YM2610_IRQ_HANDLER(WRITELINE(taitob_state, irqhandler)) MCFG_SOUND_ROUTE(0, "mono", 0.25) MCFG_SOUND_ROUTE(1, "mono", 1.0) MCFG_SOUND_ROUTE(2, "mono", 1.0) @@ -2093,7 +2088,7 @@ static MACHINE_CONFIG_START( ashura, taitob_state ) MCFG_SPEAKER_STANDARD_MONO("mono") MCFG_SOUND_ADD("ymsnd", YM2610, 8000000) - MCFG_SOUND_CONFIG(ym2610_config) + MCFG_YM2610_IRQ_HANDLER(WRITELINE(taitob_state, irqhandler)) MCFG_SOUND_ROUTE(0, "mono", 0.25) MCFG_SOUND_ROUTE(1, "mono", 1.0) MCFG_SOUND_ROUTE(2, "mono", 1.0) @@ -2137,7 +2132,7 @@ static MACHINE_CONFIG_START( crimec, taitob_state ) MCFG_SPEAKER_STANDARD_MONO("mono") MCFG_SOUND_ADD("ymsnd", YM2610, 8000000) - MCFG_SOUND_CONFIG(ym2610_config) + MCFG_YM2610_IRQ_HANDLER(WRITELINE(taitob_state, irqhandler)) MCFG_SOUND_ROUTE(0, "mono", 0.25) MCFG_SOUND_ROUTE(1, "mono", 1.0) MCFG_SOUND_ROUTE(2, "mono", 1.0) @@ -2181,7 +2176,7 @@ static MACHINE_CONFIG_START( tetrist, taitob_state ) MCFG_SPEAKER_STANDARD_MONO("mono") MCFG_SOUND_ADD("ymsnd", YM2610, 8000000) - MCFG_SOUND_CONFIG(ym2610_config) + MCFG_YM2610_IRQ_HANDLER(WRITELINE(taitob_state, irqhandler)) MCFG_SOUND_ROUTE(0, "mono", 0.25) MCFG_SOUND_ROUTE(1, "mono", 1.0) MCFG_SOUND_ROUTE(2, "mono", 1.0) @@ -2317,7 +2312,7 @@ static MACHINE_CONFIG_START( rambo3p, taitob_state ) MCFG_SPEAKER_STANDARD_MONO("mono") MCFG_SOUND_ADD("ymsnd", YM2610, XTAL_16MHz/2) /* verified on pcb */ - MCFG_SOUND_CONFIG(ym2610_config) + MCFG_YM2610_IRQ_HANDLER(WRITELINE(taitob_state, irqhandler)) MCFG_SOUND_ROUTE(0, "mono", 0.25) MCFG_SOUND_ROUTE(1, "mono", 1.0) MCFG_SOUND_ROUTE(2, "mono", 1.0) @@ -2361,7 +2356,7 @@ static MACHINE_CONFIG_START( rambo3, taitob_state ) MCFG_SPEAKER_STANDARD_MONO("mono") MCFG_SOUND_ADD("ymsnd", YM2610, XTAL_16MHz/2) /* verified on pcb */ - MCFG_SOUND_CONFIG(ym2610_config) + MCFG_YM2610_IRQ_HANDLER(WRITELINE(taitob_state, irqhandler)) MCFG_SOUND_ROUTE(0, "mono", 0.25) MCFG_SOUND_ROUTE(1, "mono", 1.0) MCFG_SOUND_ROUTE(2, "mono", 1.0) @@ -2408,7 +2403,7 @@ static MACHINE_CONFIG_START( pbobble, taitob_state ) MCFG_SPEAKER_STANDARD_MONO("mono") MCFG_SOUND_ADD("ymsnd", YM2610B, 8000000) - MCFG_SOUND_CONFIG(ym2610_config) + MCFG_YM2610_IRQ_HANDLER(WRITELINE(taitob_state, irqhandler)) MCFG_SOUND_ROUTE(0, "mono", 0.25) MCFG_SOUND_ROUTE(1, "mono", 1.0) MCFG_SOUND_ROUTE(2, "mono", 1.0) @@ -2456,7 +2451,7 @@ static MACHINE_CONFIG_START( spacedx, taitob_state ) MCFG_SPEAKER_STANDARD_MONO("mono") MCFG_SOUND_ADD("ymsnd", YM2610, 8000000) - MCFG_SOUND_CONFIG(ym2610_config) + MCFG_YM2610_IRQ_HANDLER(WRITELINE(taitob_state, irqhandler)) MCFG_SOUND_ROUTE(0, "mono", 0.25) MCFG_SOUND_ROUTE(1, "mono", 1.0) MCFG_SOUND_ROUTE(2, "mono", 1.0) @@ -2500,7 +2495,7 @@ static MACHINE_CONFIG_START( spacedxo, taitob_state ) MCFG_SPEAKER_STANDARD_MONO("mono") MCFG_SOUND_ADD("ymsnd", YM2610, 8000000) - MCFG_SOUND_CONFIG(ym2610_config) + MCFG_YM2610_IRQ_HANDLER(WRITELINE(taitob_state, irqhandler)) MCFG_SOUND_ROUTE(0, "mono", 0.25) MCFG_SOUND_ROUTE(1, "mono", 1.0) MCFG_SOUND_ROUTE(2, "mono", 1.0) @@ -2548,7 +2543,7 @@ static MACHINE_CONFIG_START( qzshowby, taitob_state ) MCFG_SPEAKER_STANDARD_MONO("mono") MCFG_SOUND_ADD("ymsnd", YM2610B, 8000000) - MCFG_SOUND_CONFIG(ym2610_config) + MCFG_YM2610_IRQ_HANDLER(WRITELINE(taitob_state, irqhandler)) MCFG_SOUND_ROUTE(0, "mono", 0.25) MCFG_SOUND_ROUTE(1, "mono", 1.0) MCFG_SOUND_ROUTE(2, "mono", 1.0) @@ -2684,7 +2679,7 @@ static MACHINE_CONFIG_START( silentd, taitob_state ) MCFG_SPEAKER_STANDARD_MONO("mono") MCFG_SOUND_ADD("ymsnd", YM2610, 8000000) - MCFG_SOUND_CONFIG(ym2610_config) + MCFG_YM2610_IRQ_HANDLER(WRITELINE(taitob_state, irqhandler)) MCFG_SOUND_ROUTE(0, "mono", 0.25) MCFG_SOUND_ROUTE(1, "mono", 1.0) MCFG_SOUND_ROUTE(2, "mono", 1.0) @@ -2728,7 +2723,7 @@ static MACHINE_CONFIG_START( selfeena, taitob_state ) MCFG_SPEAKER_STANDARD_MONO("mono") MCFG_SOUND_ADD("ymsnd", YM2610, 8000000) - MCFG_SOUND_CONFIG(ym2610_config) + MCFG_YM2610_IRQ_HANDLER(WRITELINE(taitob_state, irqhandler)) MCFG_SOUND_ROUTE(0, "mono", 0.25) MCFG_SOUND_ROUTE(1, "mono", 1.0) MCFG_SOUND_ROUTE(2, "mono", 1.0) @@ -2781,7 +2776,7 @@ static MACHINE_CONFIG_START( ryujin, taitob_state ) MCFG_SPEAKER_STANDARD_MONO("mono") MCFG_SOUND_ADD("ymsnd", YM2610, 8000000) - MCFG_SOUND_CONFIG(ym2610_config) + MCFG_YM2610_IRQ_HANDLER(WRITELINE(taitob_state, irqhandler)) MCFG_SOUND_ROUTE(0, "mono", 0.25) MCFG_SOUND_ROUTE(1, "mono", 1.0) MCFG_SOUND_ROUTE(2, "mono", 1.0) @@ -2832,7 +2827,7 @@ static MACHINE_CONFIG_START( sbm, taitob_state ) MCFG_SPEAKER_STANDARD_MONO("mono") MCFG_SOUND_ADD("ymsnd", YM2610B, 8000000) - MCFG_SOUND_CONFIG(ym2610_config) + MCFG_YM2610_IRQ_HANDLER(WRITELINE(taitob_state, irqhandler)) MCFG_SOUND_ROUTE(0, "mono", 0.25) MCFG_SOUND_ROUTE(1, "mono", 1.0) MCFG_SOUND_ROUTE(2, "mono", 1.0) @@ -2884,7 +2879,7 @@ static MACHINE_CONFIG_START( realpunc, taitob_state ) MCFG_SPEAKER_STANDARD_MONO("mono") MCFG_SOUND_ADD("ymsnd", YM2610B, 8000000) - MCFG_SOUND_CONFIG(ym2610_config) + MCFG_YM2610_IRQ_HANDLER(WRITELINE(taitob_state, irqhandler)) MCFG_SOUND_ROUTE(0, "mono", 0.25) MCFG_SOUND_ROUTE(1, "mono", 1.0) MCFG_SOUND_ROUTE(2, "mono", 1.0) diff --git a/src/mame/drivers/taito_f2.c b/src/mame/drivers/taito_f2.c index 131362dc6ac..af81236410b 100644 --- a/src/mame/drivers/taito_f2.c +++ b/src/mame/drivers/taito_f2.c @@ -1154,7 +1154,7 @@ static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8, taitof2_state ) AM_RANGE(0x0000, 0x3fff) AM_ROM AM_RANGE(0x4000, 0x7fff) AM_ROMBANK("bank2") AM_RANGE(0xc000, 0xdfff) AM_RAM - AM_RANGE(0xe000, 0xe003) AM_DEVREADWRITE_LEGACY("ymsnd", ym2610_r, ym2610_w) + AM_RANGE(0xe000, 0xe003) AM_DEVREADWRITE("ymsnd", ym2610_device, read, write) AM_RANGE(0xe200, 0xe200) AM_READNOP AM_DEVWRITE("tc0140syt", tc0140syt_device, tc0140syt_slave_port_w) AM_RANGE(0xe201, 0xe201) AM_DEVREADWRITE("tc0140syt", tc0140syt_device, tc0140syt_slave_comm_r, tc0140syt_slave_comm_w) AM_RANGE(0xe400, 0xe403) AM_WRITENOP /* pan */ @@ -2807,11 +2807,6 @@ WRITE_LINE_MEMBER(taitof2_state::irqhandler) m_audiocpu->set_input_line(0, state ? ASSERT_LINE : CLEAR_LINE); } -static const ym2610_interface ym2610_config = -{ - DEVCB_DRIVER_LINE_MEMBER(taitof2_state,irqhandler) -}; - WRITE8_MEMBER(taitof2_state::cameltrya_porta_w) { @@ -3048,7 +3043,7 @@ static MACHINE_CONFIG_START( taito_f2, taitof2_state ) MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") MCFG_SOUND_ADD("ymsnd", YM2610, 24000000/3) /* Was 16000000/2, but only a 24Mhz OSC */ - MCFG_SOUND_CONFIG(ym2610_config) + MCFG_YM2610_IRQ_HANDLER(WRITELINE(taitof2_state, irqhandler)) MCFG_SOUND_ROUTE(0, "lspeaker", 0.25) MCFG_SOUND_ROUTE(0, "rspeaker", 0.25) MCFG_SOUND_ROUTE(1, "lspeaker", 1.0) diff --git a/src/mame/drivers/taito_h.c b/src/mame/drivers/taito_h.c index 844db204c49..494feb32286 100644 --- a/src/mame/drivers/taito_h.c +++ b/src/mame/drivers/taito_h.c @@ -161,11 +161,6 @@ WRITE_LINE_MEMBER(taitoh_state::irqhandler) m_audiocpu->set_input_line(0, state ? ASSERT_LINE : CLEAR_LINE); } -static const ym2610_interface ym2610_config = -{ - DEVCB_DRIVER_LINE_MEMBER(taitoh_state,irqhandler) -}; - /*************************************************************************** @@ -283,7 +278,7 @@ static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8, taitoh_state ) AM_RANGE(0x0000, 0x3fff) AM_ROM AM_RANGE(0x4000, 0x7fff) AM_ROMBANK("bank1") AM_RANGE(0xc000, 0xdfff) AM_RAM - AM_RANGE(0xe000, 0xe003) AM_DEVREADWRITE_LEGACY("ymsnd", ym2610_r, ym2610_w) + AM_RANGE(0xe000, 0xe003) AM_DEVREADWRITE("ymsnd", ym2610_device, read, write) AM_RANGE(0xe200, 0xe200) AM_READNOP AM_DEVWRITE("tc0140syt", tc0140syt_device, tc0140syt_slave_port_w) AM_RANGE(0xe201, 0xe201) AM_DEVREADWRITE("tc0140syt", tc0140syt_device, tc0140syt_slave_comm_r, tc0140syt_slave_comm_w) AM_RANGE(0xe400, 0xe403) AM_WRITENOP /* pan control */ @@ -587,7 +582,7 @@ static MACHINE_CONFIG_START( syvalion, taitoh_state ) MCFG_SPEAKER_STANDARD_MONO("mono") MCFG_SOUND_ADD("ymsnd", YM2610, XTAL_8MHz) - MCFG_SOUND_CONFIG(ym2610_config) + MCFG_YM2610_IRQ_HANDLER(WRITELINE(taitoh_state, irqhandler)) MCFG_SOUND_ROUTE(0, "mono", 0.25) MCFG_SOUND_ROUTE(1, "mono", 1.0) MCFG_SOUND_ROUTE(2, "mono", 1.0) @@ -628,7 +623,7 @@ static MACHINE_CONFIG_START( recordbr, taitoh_state ) MCFG_SPEAKER_STANDARD_MONO("mono") MCFG_SOUND_ADD("ymsnd", YM2610, XTAL_8MHz) - MCFG_SOUND_CONFIG(ym2610_config) + MCFG_YM2610_IRQ_HANDLER(WRITELINE(taitoh_state, irqhandler)) MCFG_SOUND_ROUTE(0, "mono", 0.25) MCFG_SOUND_ROUTE(1, "mono", 1.0) MCFG_SOUND_ROUTE(2, "mono", 1.0) @@ -669,7 +664,7 @@ static MACHINE_CONFIG_START( dleague, taitoh_state ) MCFG_SPEAKER_STANDARD_MONO("mono") MCFG_SOUND_ADD("ymsnd", YM2610, XTAL_8MHz) - MCFG_SOUND_CONFIG(ym2610_config) + MCFG_YM2610_IRQ_HANDLER(WRITELINE(taitoh_state, irqhandler)) MCFG_SOUND_ROUTE(0, "mono", 0.25) MCFG_SOUND_ROUTE(1, "mono", 1.0) MCFG_SOUND_ROUTE(2, "mono", 1.0) diff --git a/src/mame/drivers/taito_l.c b/src/mame/drivers/taito_l.c index 8a3ebadecf9..1afa31f644a 100644 --- a/src/mame/drivers/taito_l.c +++ b/src/mame/drivers/taito_l.c @@ -711,7 +711,7 @@ static ADDRESS_MAP_START( raimais_3_map, AS_PROGRAM, 8, taitol_state ) AM_RANGE(0x0000, 0x3fff) AM_ROM AM_RANGE(0x4000, 0x7fff) AM_ROMBANK("bank7") AM_RANGE(0xc000, 0xdfff) AM_RAM - AM_RANGE(0xe000, 0xe003) AM_DEVREADWRITE_LEGACY("ymsnd", ym2610_r, ym2610_w) + AM_RANGE(0xe000, 0xe003) AM_DEVREADWRITE("ymsnd", ym2610_device, read, write) AM_RANGE(0xe200, 0xe200) AM_READNOP AM_DEVWRITE("tc0140syt", tc0140syt_device, tc0140syt_slave_port_w) AM_RANGE(0xe201, 0xe201) AM_DEVREADWRITE("tc0140syt", tc0140syt_device, tc0140syt_slave_comm_r, tc0140syt_slave_comm_w) AM_RANGE(0xe400, 0xe403) AM_WRITENOP /* pan */ @@ -1784,11 +1784,6 @@ static const msm5205_interface msm5205_config = MSM5205_S48_4B /* 8 kHz */ }; -static const ym2610_interface ym2610_config = -{ - DEVCB_DRIVER_LINE_MEMBER(taitol_state,irqhandler) -}; - static const ym2203_interface ym2203_interface_single = { { @@ -1897,7 +1892,7 @@ static MACHINE_CONFIG_DERIVED( raimais, fhawk ) /* sound hardware */ MCFG_SOUND_REPLACE("ymsnd", YM2610, XTAL_8MHz) /* verified on pcb (8Mhz OSC is also for the 2nd z80) */ - MCFG_SOUND_CONFIG(ym2610_config) + MCFG_YM2610_IRQ_HANDLER(WRITELINE(taitol_state, irqhandler)) MCFG_SOUND_ROUTE(0, "mono", 0.25) MCFG_SOUND_ROUTE(1, "mono", 1.0) MCFG_SOUND_ROUTE(2, "mono", 1.0) diff --git a/src/mame/drivers/taito_x.c b/src/mame/drivers/taito_x.c index 1d7d0d1882f..5ac0d522639 100644 --- a/src/mame/drivers/taito_x.c +++ b/src/mame/drivers/taito_x.c @@ -498,7 +498,7 @@ static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8, taitox_state ) AM_RANGE(0x0000, 0x3fff) AM_ROM AM_RANGE(0x4000, 0x7fff) AM_ROMBANK("bank2") AM_RANGE(0xc000, 0xdfff) AM_RAM - AM_RANGE(0xe000, 0xe003) AM_DEVREADWRITE_LEGACY("ymsnd", ym2610_r, ym2610_w) + AM_RANGE(0xe000, 0xe003) AM_DEVREADWRITE("ymsnd", ym2610_device, read, write) AM_RANGE(0xe200, 0xe200) AM_READNOP AM_DEVWRITE("tc0140syt", tc0140syt_device, tc0140syt_slave_port_w) AM_RANGE(0xe201, 0xe201) AM_DEVREADWRITE("tc0140syt", tc0140syt_device, tc0140syt_slave_comm_r, tc0140syt_slave_comm_w) AM_RANGE(0xe400, 0xe403) AM_WRITENOP /* pan */ @@ -797,11 +797,6 @@ WRITE_LINE_MEMBER(taitox_state::irqhandler) m_audiocpu->set_input_line(0, state ? ASSERT_LINE : CLEAR_LINE); } -static const ym2610_interface ym2610_config = -{ - DEVCB_DRIVER_LINE_MEMBER(taitox_state,irqhandler) -}; - MACHINE_START_MEMBER(taitox_state,taitox) { m_banknum = -1; @@ -851,7 +846,7 @@ static MACHINE_CONFIG_START( superman, taitox_state ) MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") MCFG_SOUND_ADD("ymsnd", YM2610, XTAL_16MHz/2) /* verified on pcb */ - MCFG_SOUND_CONFIG(ym2610_config) + MCFG_YM2610_IRQ_HANDLER(WRITELINE(taitox_state, irqhandler)) MCFG_SOUND_ROUTE(0, "lspeaker", 0.25) MCFG_SOUND_ROUTE(0, "rspeaker", 0.25) MCFG_SOUND_ROUTE(1, "lspeaker", 1.0) @@ -933,7 +928,7 @@ static MACHINE_CONFIG_START( gigandes, taitox_state ) MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") MCFG_SOUND_ADD("ymsnd", YM2610, 8000000) - MCFG_SOUND_CONFIG(ym2610_config) + MCFG_YM2610_IRQ_HANDLER(WRITELINE(taitox_state, irqhandler)) MCFG_SOUND_ROUTE(0, "lspeaker", 0.25) MCFG_SOUND_ROUTE(0, "rspeaker", 0.25) MCFG_SOUND_ROUTE(1, "lspeaker", 1.0) @@ -975,7 +970,7 @@ static MACHINE_CONFIG_START( ballbros, taitox_state ) MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") MCFG_SOUND_ADD("ymsnd", YM2610, 8000000) - MCFG_SOUND_CONFIG(ym2610_config) + MCFG_YM2610_IRQ_HANDLER(WRITELINE(taitox_state, irqhandler)) MCFG_SOUND_ROUTE(0, "lspeaker", 0.25) MCFG_SOUND_ROUTE(0, "rspeaker", 0.25) MCFG_SOUND_ROUTE(1, "lspeaker", 1.0) diff --git a/src/mame/drivers/taito_z.c b/src/mame/drivers/taito_z.c index a30e5386201..f7bb6c39ace 100644 --- a/src/mame/drivers/taito_z.c +++ b/src/mame/drivers/taito_z.c @@ -1588,7 +1588,7 @@ static ADDRESS_MAP_START( bshark_cpub_map, AS_PROGRAM, 16, taitoz_state ) AM_RANGE(0x110000, 0x113fff) AM_RAM AM_SHARE("share1") AM_RANGE(0x400000, 0x400007) AM_WRITE(spacegun_pancontrol) /* pan */ // AM_RANGE(0x40000a, 0x40000b) AM_READ(taitoz_unknown_r) // ??? - AM_RANGE(0x600000, 0x600007) AM_DEVREADWRITE8_LEGACY("ymsnd", ym2610_r, ym2610_w, 0x00ff) + AM_RANGE(0x600000, 0x600007) AM_DEVREADWRITE8("ymsnd", ym2610_device, read, write, 0x00ff) AM_RANGE(0x60000c, 0x60000d) AM_NOP // interrupt controller? AM_RANGE(0x60000e, 0x60000f) AM_NOP AM_RANGE(0x800000, 0x801fff) AM_DEVREADWRITE_LEGACY("tc0150rod", tc0150rod_word_r, tc0150rod_word_w) @@ -1681,7 +1681,7 @@ static ADDRESS_MAP_START( spacegun_cpub_map, AS_PROGRAM, 16, taitoz_state ) AM_RANGE(0x20c000, 0x20ffff) AM_RAM AM_RANGE(0x210000, 0x21ffff) AM_RAM AM_SHARE("share1") AM_RANGE(0x800000, 0x80000f) AM_READWRITE(spacegun_input_bypass_r, spacegun_output_bypass_w) - AM_RANGE(0xc00000, 0xc00007) AM_DEVREADWRITE8_LEGACY("ymsnd", ym2610_r, ym2610_w, 0x00ff) + AM_RANGE(0xc00000, 0xc00007) AM_DEVREADWRITE8("ymsnd", ym2610_device, read, write, 0x00ff) AM_RANGE(0xc0000c, 0xc0000d) AM_NOP // interrupt controller? AM_RANGE(0xc0000e, 0xc0000f) AM_NOP AM_RANGE(0xc20000, 0xc20007) AM_WRITE(spacegun_pancontrol) /* pan */ @@ -1745,7 +1745,7 @@ static ADDRESS_MAP_START( z80_sound_map, AS_PROGRAM, 8, taitoz_state ) AM_RANGE(0x0000, 0x3fff) AM_ROM AM_RANGE(0x4000, 0x7fff) AM_ROMBANK("bank10") AM_RANGE(0xc000, 0xdfff) AM_RAM - AM_RANGE(0xe000, 0xe003) AM_DEVREADWRITE_LEGACY("ymsnd", ym2610_r, ym2610_w) + AM_RANGE(0xe000, 0xe003) AM_DEVREADWRITE("ymsnd", ym2610_device, read, write) AM_RANGE(0xe200, 0xe200) AM_READNOP AM_DEVWRITE("tc0140syt", tc0140syt_device, tc0140syt_slave_port_w) AM_RANGE(0xe201, 0xe201) AM_DEVREADWRITE("tc0140syt", tc0140syt_device, tc0140syt_slave_comm_r, tc0140syt_slave_comm_w) AM_RANGE(0xe400, 0xe403) AM_WRITE(taitoz_pancontrol) /* pan */ @@ -2911,16 +2911,6 @@ WRITE_LINE_MEMBER(taitoz_state::irqhandlerb) // m_audiocpu->set_input_line(0, state ? ASSERT_LINE : CLEAR_LINE); } -static const ym2610_interface ym2610_config = -{ - DEVCB_DRIVER_LINE_MEMBER(taitoz_state,irqhandler) -}; - -static const ym2610_interface ym2610_interfaceb = -{ - DEVCB_DRIVER_LINE_MEMBER(taitoz_state,irqhandlerb) -}; - /*********************************************************** MACHINE DRIVERS @@ -3101,7 +3091,7 @@ static MACHINE_CONFIG_START( contcirc, taitoz_state ) MCFG_SPEAKER_ADD("subwoofer", 0.0, 0.0, 1.0) MCFG_SOUND_ADD("ymsnd", YM2610, 16000000/2) - MCFG_SOUND_CONFIG(ym2610_config) + MCFG_YM2610_IRQ_HANDLER(WRITELINE(taitoz_state, irqhandler)) MCFG_SOUND_ROUTE(0, "subwoofer", 0.20) MCFG_SOUND_ROUTE(1, "2610.1.l", 2.0) MCFG_SOUND_ROUTE(1, "2610.1.r", 2.0) @@ -3163,7 +3153,7 @@ static MACHINE_CONFIG_START( chasehq, taitoz_state ) MCFG_SPEAKER_ADD("subwoofer", 0.0, 0.0, 1.0) MCFG_SOUND_ADD("ymsnd", YM2610, 16000000/2) - MCFG_SOUND_CONFIG(ym2610_config) + MCFG_YM2610_IRQ_HANDLER(WRITELINE(taitoz_state, irqhandler)) MCFG_SOUND_ROUTE(0, "subwoofer", 0.20) MCFG_SOUND_ROUTE(1, "2610.1.l", 1.0) MCFG_SOUND_ROUTE(1, "2610.1.r", 1.0) @@ -3225,7 +3215,7 @@ static MACHINE_CONFIG_START( enforce, taitoz_state ) MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") MCFG_SOUND_ADD("ymsnd", YM2610, 16000000/2) - MCFG_SOUND_CONFIG(ym2610_config) + MCFG_YM2610_IRQ_HANDLER(WRITELINE(taitoz_state, irqhandler)) MCFG_SOUND_ROUTE(0, "lspeaker", 0.25) MCFG_SOUND_ROUTE(0, "rspeaker", 0.25) MCFG_SOUND_ROUTE(1, "2610.1.l", 20.0) @@ -3284,7 +3274,7 @@ static MACHINE_CONFIG_START( bshark, taitoz_state ) MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") MCFG_SOUND_ADD("ymsnd", YM2610, 16000000/2) - MCFG_SOUND_CONFIG(ym2610_interfaceb) + MCFG_YM2610_IRQ_HANDLER(WRITELINE(taitoz_state, irqhandlerb)) MCFG_SOUND_ROUTE(0, "lspeaker", 0.25) MCFG_SOUND_ROUTE(0, "rspeaker", 0.25) MCFG_SOUND_ROUTE(1, "2610.1.l", 28.0) @@ -3355,7 +3345,7 @@ static MACHINE_CONFIG_START( sci, taitoz_state ) MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") MCFG_SOUND_ADD("ymsnd", YM2610, 16000000/2) - MCFG_SOUND_CONFIG(ym2610_config) + MCFG_YM2610_IRQ_HANDLER(WRITELINE(taitoz_state, irqhandler)) MCFG_SOUND_ROUTE(0, "lspeaker", 0.25) MCFG_SOUND_ROUTE(0, "rspeaker", 0.25) MCFG_SOUND_ROUTE(1, "2610.1.l", 2.0) @@ -3420,7 +3410,7 @@ static MACHINE_CONFIG_START( nightstr, taitoz_state ) MCFG_SPEAKER_ADD("subwoofer", 0.0, 0.0, 1.0) MCFG_SOUND_ADD("ymsnd", YM2610, 16000000/2) - MCFG_SOUND_CONFIG(ym2610_config) + MCFG_YM2610_IRQ_HANDLER(WRITELINE(taitoz_state, irqhandler)) MCFG_SOUND_ROUTE(0, "subwoofer", 0.20) MCFG_SOUND_ROUTE(1, "2610.1.l", 2.0) MCFG_SOUND_ROUTE(1, "2610.1.r", 2.0) @@ -3482,7 +3472,7 @@ static MACHINE_CONFIG_START( aquajack, taitoz_state ) MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") MCFG_SOUND_ADD("ymsnd", YM2610, 16000000/2) - MCFG_SOUND_CONFIG(ym2610_config) + MCFG_YM2610_IRQ_HANDLER(WRITELINE(taitoz_state, irqhandler)) MCFG_SOUND_ROUTE(0, "lspeaker", 0.25) MCFG_SOUND_ROUTE(0, "rspeaker", 0.25) MCFG_SOUND_ROUTE(1, "2610.1.l", 2.0) @@ -3541,7 +3531,7 @@ static MACHINE_CONFIG_START( spacegun, taitoz_state ) MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") MCFG_SOUND_ADD("ymsnd", YM2610, 16000000/2) - MCFG_SOUND_CONFIG(ym2610_interfaceb) + MCFG_YM2610_IRQ_HANDLER(WRITELINE(taitoz_state, irqhandlerb)) MCFG_SOUND_ROUTE(0, "lspeaker", 0.25) MCFG_SOUND_ROUTE(0, "rspeaker", 0.25) MCFG_SOUND_ROUTE(1, "2610.1.l", 8.0) @@ -3603,7 +3593,7 @@ static MACHINE_CONFIG_START( dblaxle, taitoz_state ) MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") MCFG_SOUND_ADD("ymsnd", YM2610, XTAL_32MHz/4) - MCFG_SOUND_CONFIG(ym2610_config) + MCFG_YM2610_IRQ_HANDLER(WRITELINE(taitoz_state, irqhandler)) MCFG_SOUND_ROUTE(0, "lspeaker", 0.25) MCFG_SOUND_ROUTE(0, "rspeaker", 0.25) MCFG_SOUND_ROUTE(1, "2610.1.l", 8.0) @@ -3665,7 +3655,7 @@ static MACHINE_CONFIG_START( racingb, taitoz_state ) MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") MCFG_SOUND_ADD("ymsnd", YM2610, XTAL_32MHz/4) - MCFG_SOUND_CONFIG(ym2610_config) + MCFG_YM2610_IRQ_HANDLER(WRITELINE(taitoz_state, irqhandler)) MCFG_SOUND_ROUTE(0, "lspeaker", 0.25) MCFG_SOUND_ROUTE(0, "rspeaker", 0.25) MCFG_SOUND_ROUTE(1, "2610.1.l", 8.0) diff --git a/src/mame/drivers/taitoair.c b/src/mame/drivers/taitoair.c index e400f5122cd..e28012f831c 100644 --- a/src/mame/drivers/taitoair.c +++ b/src/mame/drivers/taitoair.c @@ -412,7 +412,7 @@ static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8, taitoair_state ) AM_RANGE(0x0000, 0x3fff) AM_ROM AM_RANGE(0x4000, 0x7fff) AM_ROMBANK("bank1") AM_RANGE(0xc000, 0xdfff) AM_RAM - AM_RANGE(0xe000, 0xe003) AM_DEVREADWRITE_LEGACY("ymsnd", ym2610_r, ym2610_w) + AM_RANGE(0xe000, 0xe003) AM_DEVREADWRITE("ymsnd", ym2610_device, read, write) AM_RANGE(0xe200, 0xe200) AM_READNOP AM_DEVWRITE("tc0140syt", tc0140syt_device, tc0140syt_slave_port_w) AM_RANGE(0xe201, 0xe201) AM_DEVREADWRITE("tc0140syt", tc0140syt_device, tc0140syt_slave_comm_r, tc0140syt_slave_comm_w) AM_RANGE(0xe400, 0xe403) AM_WRITENOP /* pan control */ @@ -631,11 +631,6 @@ WRITE_LINE_MEMBER(taitoair_state::irqhandler) m_audiocpu->set_input_line(0, state ? ASSERT_LINE : CLEAR_LINE); } -static const ym2610_interface airsys_ym2610_interface = -{ - DEVCB_DRIVER_LINE_MEMBER(taitoair_state,irqhandler) -}; - /************************************************************ MACHINE DRIVERS @@ -731,7 +726,7 @@ static MACHINE_CONFIG_START( airsys, taitoair_state ) MCFG_SPEAKER_STANDARD_MONO("mono") MCFG_SOUND_ADD("ymsnd", YM2610, 8000000) - MCFG_SOUND_CONFIG(airsys_ym2610_interface) + MCFG_YM2610_IRQ_HANDLER(WRITELINE(taitoair_state, irqhandler)) MCFG_SOUND_ROUTE(0, "mono", 0.30) MCFG_SOUND_ROUTE(1, "mono", 0.60) MCFG_SOUND_ROUTE(2, "mono", 0.60) diff --git a/src/mame/drivers/taotaido.c b/src/mame/drivers/taotaido.c index ba611fbb38b..8b363df282d 100644 --- a/src/mame/drivers/taotaido.c +++ b/src/mame/drivers/taotaido.c @@ -137,7 +137,7 @@ ADDRESS_MAP_END static ADDRESS_MAP_START( sound_port_map, AS_IO, 8, taotaido_state ) ADDRESS_MAP_GLOBAL_MASK(0xff) - AM_RANGE(0x00, 0x03) AM_DEVREADWRITE_LEGACY("ymsnd", ym2610_r, ym2610_w) + AM_RANGE(0x00, 0x03) AM_DEVREADWRITE("ymsnd", ym2610_device, read, write) AM_RANGE(0x04, 0x04) AM_WRITE(taotaido_sh_bankswitch_w) AM_RANGE(0x08, 0x08) AM_WRITE(pending_command_clear_w) AM_RANGE(0x0c, 0x0c) AM_READ(soundlatch_byte_r) @@ -325,11 +325,6 @@ WRITE_LINE_MEMBER(taotaido_state::irqhandler) m_audiocpu->set_input_line(0, state ? ASSERT_LINE : CLEAR_LINE); } -static const ym2610_interface ym2610_config = -{ - DEVCB_DRIVER_LINE_MEMBER(taotaido_state,irqhandler) -}; - static MACHINE_CONFIG_START( taotaido, taotaido_state ) @@ -362,7 +357,7 @@ static MACHINE_CONFIG_START( taotaido, taotaido_state ) MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") MCFG_SOUND_ADD("ymsnd", YM2610, 8000000) - MCFG_SOUND_CONFIG(ym2610_config) + MCFG_YM2610_IRQ_HANDLER(WRITELINE(taotaido_state, irqhandler)) MCFG_SOUND_ROUTE(0, "lspeaker", 0.25) MCFG_SOUND_ROUTE(0, "rspeaker", 0.25) MCFG_SOUND_ROUTE(1, "lspeaker", 1.0) diff --git a/src/mame/drivers/warriorb.c b/src/mame/drivers/warriorb.c index a2c23c2cb84..3942d26dadc 100644 --- a/src/mame/drivers/warriorb.c +++ b/src/mame/drivers/warriorb.c @@ -258,7 +258,7 @@ static ADDRESS_MAP_START( z80_sound_map, AS_PROGRAM, 8, warriorb_state ) AM_RANGE(0x0000, 0x3fff) AM_ROM AM_RANGE(0x4000, 0x7fff) AM_ROMBANK("bank10") AM_RANGE(0xc000, 0xdfff) AM_RAM - AM_RANGE(0xe000, 0xe003) AM_DEVREADWRITE_LEGACY("ymsnd", ym2610_r, ym2610_w) + AM_RANGE(0xe000, 0xe003) AM_DEVREADWRITE("ymsnd", ym2610_device, read, write) AM_RANGE(0xe200, 0xe200) AM_READNOP AM_DEVWRITE("tc0140syt", tc0140syt_device, tc0140syt_slave_port_w) AM_RANGE(0xe201, 0xe201) AM_DEVREADWRITE("tc0140syt", tc0140syt_device, tc0140syt_slave_comm_r, tc0140syt_slave_comm_w) AM_RANGE(0xe400, 0xe403) AM_WRITE(warriorb_pancontrol) /* pan */ @@ -424,11 +424,6 @@ WRITE_LINE_MEMBER(warriorb_state::irqhandler) m_audiocpu->set_input_line(0, state ? ASSERT_LINE : CLEAR_LINE); } -static const ym2610_interface ym2610_config = -{ - DEVCB_DRIVER_LINE_MEMBER(warriorb_state,irqhandler) -}; - /*********************************************************** MACHINE DRIVERS ***********************************************************/ @@ -561,7 +556,7 @@ static MACHINE_CONFIG_START( darius2d, warriorb_state ) MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") MCFG_SOUND_ADD("ymsnd", YM2610, 16000000/2) - MCFG_SOUND_CONFIG(ym2610_config) + MCFG_YM2610_IRQ_HANDLER(WRITELINE(warriorb_state, irqhandler)) MCFG_SOUND_ROUTE(0, "lspeaker", 0.25) MCFG_SOUND_ROUTE(0, "rspeaker", 0.25) MCFG_SOUND_ROUTE(1, "2610.1.l", 1.0) @@ -624,7 +619,7 @@ static MACHINE_CONFIG_START( warriorb, warriorb_state ) MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") MCFG_SOUND_ADD("ymsnd", YM2610, 16000000/2) - MCFG_SOUND_CONFIG(ym2610_config) + MCFG_YM2610_IRQ_HANDLER(WRITELINE(warriorb_state, irqhandler)) MCFG_SOUND_ROUTE(0, "lspeaker", 0.25) MCFG_SOUND_ROUTE(0, "rspeaker", 0.25) MCFG_SOUND_ROUTE(1, "2610.1.l", 1.0) diff --git a/src/mame/drivers/welltris.c b/src/mame/drivers/welltris.c index 0c6f2af3f3a..5f1f2cf095d 100644 --- a/src/mame/drivers/welltris.c +++ b/src/mame/drivers/welltris.c @@ -382,7 +382,7 @@ ADDRESS_MAP_END static ADDRESS_MAP_START( sound_port_map, AS_IO, 8, welltris_state ) ADDRESS_MAP_GLOBAL_MASK(0xff) AM_RANGE(0x00, 0x00) AM_WRITE(welltris_sh_bankswitch_w) - AM_RANGE(0x08, 0x0b) AM_DEVREADWRITE_LEGACY("ymsnd", ym2610_r, ym2610_w) + AM_RANGE(0x08, 0x0b) AM_DEVREADWRITE("ymsnd", ym2610_device, read, write) AM_RANGE(0x10, 0x10) AM_READ(soundlatch_byte_r) AM_RANGE(0x18, 0x18) AM_WRITE(pending_command_clear_w) ADDRESS_MAP_END @@ -676,11 +676,6 @@ WRITE_LINE_MEMBER(welltris_state::irqhandler) m_audiocpu->set_input_line(0, state ? ASSERT_LINE : CLEAR_LINE); } -static const ym2610_interface ym2610_config = -{ - DEVCB_DRIVER_LINE_MEMBER(welltris_state,irqhandler) -}; - DRIVER_INIT_MEMBER(welltris_state,welltris) @@ -729,7 +724,7 @@ static MACHINE_CONFIG_START( welltris, welltris_state ) MCFG_SPEAKER_STANDARD_MONO("mono") MCFG_SOUND_ADD("ymsnd", YM2610, 8000000) - MCFG_SOUND_CONFIG(ym2610_config) + MCFG_YM2610_IRQ_HANDLER(WRITELINE(welltris_state, irqhandler)) MCFG_SOUND_ROUTE(0, "mono", 0.25) MCFG_SOUND_ROUTE(1, "mono", 0.75) MCFG_SOUND_ROUTE(2, "mono", 0.75) diff --git a/src/mame/drivers/wgp.c b/src/mame/drivers/wgp.c index 8074ed4a09c..03def827980 100644 --- a/src/mame/drivers/wgp.c +++ b/src/mame/drivers/wgp.c @@ -670,7 +670,7 @@ static ADDRESS_MAP_START( z80_sound_map, AS_PROGRAM, 8, wgp_state ) AM_RANGE(0x4000, 0x7fff) AM_ROMBANK("bank10") /* Fallthrough */ AM_RANGE(0x0000, 0x7fff) AM_ROM AM_RANGE(0xc000, 0xdfff) AM_RAM - AM_RANGE(0xe000, 0xe003) AM_DEVREADWRITE_LEGACY("ymsnd", ym2610_r, ym2610_w) + AM_RANGE(0xe000, 0xe003) AM_DEVREADWRITE("ymsnd", ym2610_device, read, write) AM_RANGE(0xe200, 0xe200) AM_READNOP AM_DEVWRITE("tc0140syt", tc0140syt_device, tc0140syt_slave_port_w) AM_RANGE(0xe201, 0xe201) AM_DEVREADWRITE("tc0140syt", tc0140syt_device, tc0140syt_slave_comm_r, tc0140syt_slave_comm_w) AM_RANGE(0xe400, 0xe403) AM_WRITENOP /* pan */ @@ -893,11 +893,6 @@ WRITE_LINE_MEMBER(wgp_state::irqhandler) // assumes Z80 sandwiched between 68Ks m_audiocpu->set_input_line(0, state ? ASSERT_LINE : CLEAR_LINE); } -static const ym2610_interface ym2610_config = -{ - DEVCB_DRIVER_LINE_MEMBER(wgp_state,irqhandler) -}; - /*********************************************************** MACHINE DRIVERS @@ -1010,7 +1005,7 @@ static MACHINE_CONFIG_START( wgp, wgp_state ) MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") MCFG_SOUND_ADD("ymsnd", YM2610, 16000000/2) - MCFG_SOUND_CONFIG(ym2610_config) + MCFG_YM2610_IRQ_HANDLER(WRITELINE(wgp_state, irqhandler)) MCFG_SOUND_ROUTE(0, "lspeaker", 0.25) MCFG_SOUND_ROUTE(0, "rspeaker", 0.25) MCFG_SOUND_ROUTE(1, "lspeaker", 1.0) diff --git a/src/mame/drivers/zn.c b/src/mame/drivers/zn.c index 9355042b871..b5090234746 100644 --- a/src/mame/drivers/zn.c +++ b/src/mame/drivers/zn.c @@ -1166,7 +1166,7 @@ static ADDRESS_MAP_START( fx1a_sound_map, AS_PROGRAM, 8, zn_state ) AM_RANGE(0x4000, 0x7fff) AM_ROMBANK("bank10") /* Fallthrough */ AM_RANGE(0x0000, 0x7fff) AM_ROM AM_RANGE(0xc000, 0xdfff) AM_RAM - AM_RANGE(0xe000, 0xe003) AM_DEVREADWRITE_LEGACY("ymsnd", ym2610_r, ym2610_w) + AM_RANGE(0xe000, 0xe003) AM_DEVREADWRITE("ymsnd", ym2610_device, read, write) AM_RANGE(0xe200, 0xe200) AM_READNOP AM_DEVWRITE("tc0140syt", tc0140syt_device, tc0140syt_slave_port_w) AM_RANGE(0xe201, 0xe201) AM_DEVREADWRITE("tc0140syt", tc0140syt_device, tc0140syt_slave_comm_r, tc0140syt_slave_comm_w) AM_RANGE(0xe400, 0xe403) AM_WRITENOP /* pan */ @@ -1181,11 +1181,6 @@ WRITE_LINE_MEMBER(zn_state::irqhandler) m_audiocpu->set_input_line(0, state ? ASSERT_LINE : CLEAR_LINE); } -static const ym2610_interface ym2610_config = -{ - DEVCB_DRIVER_LINE_MEMBER(zn_state,irqhandler) -}; - static const tc0140syt_interface coh1000ta_tc0140syt_intf = { "maincpu", "audiocpu" @@ -1199,7 +1194,7 @@ static MACHINE_CONFIG_DERIVED( coh1000ta, zn1_1mb_vram ) MCFG_NVRAM_ADD_0FILL("eeprom1") MCFG_SOUND_ADD("ymsnd", YM2610B, 16000000/2) - MCFG_SOUND_CONFIG(ym2610_config) + MCFG_YM2610_IRQ_HANDLER(WRITELINE(zn_state, irqhandler)) MCFG_SOUND_ROUTE(0, "lspeaker", 0.25) MCFG_SOUND_ROUTE(0, "rspeaker", 0.25) MCFG_SOUND_ROUTE(1, "lspeaker", 1.0)