summaryrefslogtreecommitdiffstatshomepage
path: root/src/mame/drivers
diff options
context:
space:
mode:
Diffstat (limited to 'src/mame/drivers')
-rw-r--r--src/mame/drivers/1942.c16
-rw-r--r--src/mame/drivers/2mindril.c1
-rw-r--r--src/mame/drivers/40love.c16
-rw-r--r--src/mame/drivers/4enlinea.c25
-rw-r--r--src/mame/drivers/4roses.c16
-rw-r--r--src/mame/drivers/5clown.c16
-rw-r--r--src/mame/drivers/aces1.c16
-rw-r--r--src/mame/drivers/adp.c11
-rw-r--r--src/mame/drivers/aeroboto.c15
-rw-r--r--src/mame/drivers/aerofgt.c6
-rw-r--r--src/mame/drivers/airbustr.c14
-rw-r--r--src/mame/drivers/albazc.c14
-rw-r--r--src/mame/drivers/albazg.c14
-rw-r--r--src/mame/drivers/alpha68k.c31
-rw-r--r--src/mame/drivers/ambush.c31
-rw-r--r--src/mame/drivers/ampoker2.c14
-rw-r--r--src/mame/drivers/angelkds.c8
-rw-r--r--src/mame/drivers/arabian.c22
-rw-r--r--src/mame/drivers/argus.c11
-rw-r--r--src/mame/drivers/aristmk4.c26
-rw-r--r--src/mame/drivers/arkanoid.c35
-rw-r--r--src/mame/drivers/ashnojoe.c13
-rw-r--r--src/mame/drivers/astrocde.c13
-rw-r--r--src/mame/drivers/asuka.c1
-rw-r--r--src/mame/drivers/avt.c17
-rw-r--r--src/mame/drivers/bagman.c46
-rw-r--r--src/mame/drivers/battlex.c11
-rw-r--r--src/mame/drivers/bbusters.c10
-rw-r--r--src/mame/drivers/big10.c19
-rw-r--r--src/mame/drivers/bking.c13
-rw-r--r--src/mame/drivers/bladestl.c14
-rw-r--r--src/mame/drivers/blktiger.c8
-rw-r--r--src/mame/drivers/blueprnt.c33
-rw-r--r--src/mame/drivers/bmcbowl.c15
-rw-r--r--src/mame/drivers/bogeyman.c12
-rw-r--r--src/mame/drivers/btime.c25
-rw-r--r--src/mame/drivers/bublbobl.c11
-rw-r--r--src/mame/drivers/buggychl.c28
-rw-r--r--src/mame/drivers/calomega.c45
-rw-r--r--src/mame/drivers/capbowl.c20
-rw-r--r--src/mame/drivers/carrera.c15
-rw-r--r--src/mame/drivers/caswin.c13
-rw-r--r--src/mame/drivers/cave.c10
-rw-r--r--src/mame/drivers/cb2001.c13
-rw-r--r--src/mame/drivers/cchance.c13
-rw-r--r--src/mame/drivers/centiped.c12
-rw-r--r--src/mame/drivers/chaknpop.c27
-rw-r--r--src/mame/drivers/chanbara.c17
-rw-r--r--src/mame/drivers/changela.c28
-rw-r--r--src/mame/drivers/chinagat.c10
-rw-r--r--src/mame/drivers/chinsan.c16
-rw-r--r--src/mame/drivers/citycon.c17
-rw-r--r--src/mame/drivers/cntsteer.c12
-rw-r--r--src/mame/drivers/coinmstr.c14
-rw-r--r--src/mame/drivers/combatsc.c23
-rw-r--r--src/mame/drivers/compgolf.c14
-rw-r--r--src/mame/drivers/corona.c17
-rw-r--r--src/mame/drivers/crshrace.c1
-rw-r--r--src/mame/drivers/darius.c27
-rw-r--r--src/mame/drivers/ddayjlc.c12
-rw-r--r--src/mame/drivers/ddenlovr.c67
-rw-r--r--src/mame/drivers/ddribble.c14
-rw-r--r--src/mame/drivers/dfruit.c12
-rw-r--r--src/mame/drivers/dlair.c20
-rw-r--r--src/mame/drivers/dominob.c13
-rw-r--r--src/mame/drivers/dooyong.c22
-rw-r--r--src/mame/drivers/dunhuang.c14
-rw-r--r--src/mame/drivers/dwarfd.c14
-rw-r--r--src/mame/drivers/dynax.c61
-rw-r--r--src/mame/drivers/enigma2.c20
-rw-r--r--src/mame/drivers/equites.c14
-rw-r--r--src/mame/drivers/ettrivia.c25
-rw-r--r--src/mame/drivers/exerion.c22
-rw-r--r--src/mame/drivers/f1gp.c1
-rw-r--r--src/mame/drivers/fireball.c16
-rw-r--r--src/mame/drivers/flipjack.c24
-rw-r--r--src/mame/drivers/flstory.c22
-rw-r--r--src/mame/drivers/forte2.c14
-rw-r--r--src/mame/drivers/fortecar.c15
-rw-r--r--src/mame/drivers/fromanc2.c3
-rw-r--r--src/mame/drivers/funkybee.c13
-rw-r--r--src/mame/drivers/funworld.c35
-rw-r--r--src/mame/drivers/gaiden.c9
-rw-r--r--src/mame/drivers/galaxian.c106
-rw-r--r--src/mame/drivers/galaxold.c13
-rw-r--r--src/mame/drivers/gameplan.c13
-rw-r--r--src/mame/drivers/gladiatr.c27
-rw-r--r--src/mame/drivers/gluck2.c26
-rw-r--r--src/mame/drivers/goal92.c8
-rw-r--r--src/mame/drivers/goldngam.c11
-rw-r--r--src/mame/drivers/goldnpkr.c17
-rw-r--r--src/mame/drivers/goldstar.c131
-rw-r--r--src/mame/drivers/grchamp.c35
-rw-r--r--src/mame/drivers/gstriker.c2
-rw-r--r--src/mame/drivers/gsword.c15
-rw-r--r--src/mame/drivers/gundealr.c11
-rw-r--r--src/mame/drivers/gyruss.c69
-rw-r--r--src/mame/drivers/halleys.c13
-rw-r--r--src/mame/drivers/hanaawas.c14
-rw-r--r--src/mame/drivers/hitpoker.c14
-rw-r--r--src/mame/drivers/hnayayoi.c15
-rw-r--r--src/mame/drivers/holeland.c35
-rw-r--r--src/mame/drivers/homedata.c15
-rw-r--r--src/mame/drivers/homerun.c14
-rw-r--r--src/mame/drivers/hotblock.c14
-rw-r--r--src/mame/drivers/hyhoo.c15
-rw-r--r--src/mame/drivers/icecold.c27
-rw-r--r--src/mame/drivers/inufuku.c1
-rw-r--r--src/mame/drivers/ironhors.c28
-rw-r--r--src/mame/drivers/itech8.c22
-rw-r--r--src/mame/drivers/jack.c13
-rw-r--r--src/mame/drivers/jangou.c19
-rw-r--r--src/mame/drivers/jongkyo.c20
-rw-r--r--src/mame/drivers/jpms80.c13
-rw-r--r--src/mame/drivers/junofrst.c15
-rw-r--r--src/mame/drivers/kaneko16.c40
-rw-r--r--src/mame/drivers/kas89.c16
-rw-r--r--src/mame/drivers/kingdrby.c26
-rw-r--r--src/mame/drivers/kingobox.c11
-rw-r--r--src/mame/drivers/kingpin.c11
-rw-r--r--src/mame/drivers/kncljoe.c12
-rw-r--r--src/mame/drivers/koikoi.c18
-rw-r--r--src/mame/drivers/ksayakyu.c27
-rw-r--r--src/mame/drivers/kurukuru.c20
-rw-r--r--src/mame/drivers/kyugo.c20
-rw-r--r--src/mame/drivers/labyrunr.c27
-rw-r--r--src/mame/drivers/ladyfrog.c13
-rw-r--r--src/mame/drivers/laserbat.c13
-rw-r--r--src/mame/drivers/lastduel.c9
-rw-r--r--src/mame/drivers/leland.c21
-rw-r--r--src/mame/drivers/lkage.c9
-rw-r--r--src/mame/drivers/lockon.c14
-rw-r--r--src/mame/drivers/looping.c19
-rw-r--r--src/mame/drivers/lsasquad.c18
-rw-r--r--src/mame/drivers/lucky74.c20
-rw-r--r--src/mame/drivers/lvcards.c14
-rw-r--r--src/mame/drivers/madalien.c14
-rw-r--r--src/mame/drivers/magmax.c14
-rw-r--r--src/mame/drivers/maygay1b.c14
-rw-r--r--src/mame/drivers/mayumi.c19
-rw-r--r--src/mame/drivers/mazerbla.c25
-rw-r--r--src/mame/drivers/mcatadv.c1
-rw-r--r--src/mame/drivers/megasys1.c9
-rw-r--r--src/mame/drivers/megazone.c17
-rw-r--r--src/mame/drivers/meijinsn.c9
-rw-r--r--src/mame/drivers/merit.c10
-rw-r--r--src/mame/drivers/meritm.c13
-rw-r--r--src/mame/drivers/metro.c2
-rw-r--r--src/mame/drivers/mexico86.c21
-rw-r--r--src/mame/drivers/miniboy7.c17
-rw-r--r--src/mame/drivers/mjsister.c19
-rw-r--r--src/mame/drivers/momoko.c12
-rw-r--r--src/mame/drivers/mosaic.c16
-rw-r--r--src/mame/drivers/mpu12wbk.c17
-rw-r--r--src/mame/drivers/mpu4dealem.c3
-rw-r--r--src/mame/drivers/mpu4hw.c14
-rw-r--r--src/mame/drivers/mrflea.c28
-rw-r--r--src/mame/drivers/multfish.c12
-rw-r--r--src/mame/drivers/nbmj8688.c17
-rw-r--r--src/mame/drivers/nbmj8891.c21
-rw-r--r--src/mame/drivers/nbmj8991.c14
-rw-r--r--src/mame/drivers/nemesis.c50
-rw-r--r--src/mame/drivers/neogeo.c1
-rw-r--r--src/mame/drivers/neoprint.c2
-rw-r--r--src/mame/drivers/nightgal.c17
-rw-r--r--src/mame/drivers/ninjakd2.c9
-rw-r--r--src/mame/drivers/ninjaw.c2
-rw-r--r--src/mame/drivers/nmk16.c22
-rw-r--r--src/mame/drivers/nova2001.c73
-rw-r--r--src/mame/drivers/nycaptor.c28
-rw-r--r--src/mame/drivers/nyny.c30
-rw-r--r--src/mame/drivers/ojankohs.c38
-rw-r--r--src/mame/drivers/othunder.c1
-rw-r--r--src/mame/drivers/pacman.c11
-rw-r--r--src/mame/drivers/pandoras.c13
-rw-r--r--src/mame/drivers/pastelg.c16
-rw-r--r--src/mame/drivers/pengadvb.c13
-rw-r--r--src/mame/drivers/phoenix.c14
-rw-r--r--src/mame/drivers/pipedrm.c13
-rw-r--r--src/mame/drivers/pipeline.c8
-rw-r--r--src/mame/drivers/pitnrun.c16
-rw-r--r--src/mame/drivers/pkscram.c8
-rw-r--r--src/mame/drivers/poker72.c13
-rw-r--r--src/mame/drivers/popeye.c28
-rw-r--r--src/mame/drivers/powerins.c8
-rw-r--r--src/mame/drivers/proconn.c12
-rw-r--r--src/mame/drivers/psikyo.c2
-rw-r--r--src/mame/drivers/psychic5.c9
-rw-r--r--src/mame/drivers/pushman.c10
-rw-r--r--src/mame/drivers/quizdna.c14
-rw-r--r--src/mame/drivers/r2dtank.c28
-rw-r--r--src/mame/drivers/re900.c35
-rw-r--r--src/mame/drivers/rgum.c11
-rw-r--r--src/mame/drivers/rmhaihai.c12
-rw-r--r--src/mame/drivers/route16.c14
-rw-r--r--src/mame/drivers/royalmah.c11
-rw-r--r--src/mame/drivers/sandscrp.c14
-rw-r--r--src/mame/drivers/sanremo.c16
-rw-r--r--src/mame/drivers/scobra.c28
-rw-r--r--src/mame/drivers/scramble.c53
-rw-r--r--src/mame/drivers/segahang.c14
-rw-r--r--src/mame/drivers/seicross.c14
-rw-r--r--src/mame/drivers/seta.c14
-rw-r--r--src/mame/drivers/sfkick.c8
-rw-r--r--src/mame/drivers/shangha3.c14
-rw-r--r--src/mame/drivers/shanghai.c28
-rw-r--r--src/mame/drivers/shangkid.c28
-rw-r--r--src/mame/drivers/shootout.c21
-rw-r--r--src/mame/drivers/sidearms.c9
-rw-r--r--src/mame/drivers/skylncr.c18
-rw-r--r--src/mame/drivers/slapfght.c40
-rw-r--r--src/mame/drivers/slapshot.c2
-rw-r--r--src/mame/drivers/slotcarn.c18
-rw-r--r--src/mame/drivers/sothello.c13
-rw-r--r--src/mame/drivers/speedatk.c13
-rw-r--r--src/mame/drivers/splash.c9
-rw-r--r--src/mame/drivers/srmp2.c20
-rw-r--r--src/mame/drivers/sshangha.c8
-rw-r--r--src/mame/drivers/ssrj.c13
-rw-r--r--src/mame/drivers/stuntair.c26
-rw-r--r--src/mame/drivers/suna16.c10
-rw-r--r--src/mame/drivers/suna8.c42
-rw-r--r--src/mame/drivers/supdrapo.c14
-rw-r--r--src/mame/drivers/superqix.c79
-rw-r--r--src/mame/drivers/superwng.c23
-rw-r--r--src/mame/drivers/suprgolf.c15
-rw-r--r--src/mame/drivers/suprridr.c21
-rw-r--r--src/mame/drivers/suprslam.c1
-rw-r--r--src/mame/drivers/tail2nos.c14
-rw-r--r--src/mame/drivers/taito_b.c27
-rw-r--r--src/mame/drivers/taito_f2.c14
-rw-r--r--src/mame/drivers/taito_h.c3
-rw-r--r--src/mame/drivers/taito_l.c39
-rw-r--r--src/mame/drivers/taito_o.c11
-rw-r--r--src/mame/drivers/taito_x.c3
-rw-r--r--src/mame/drivers/taito_z.c10
-rw-r--r--src/mame/drivers/taitoair.c1
-rw-r--r--src/mame/drivers/taitosj.c53
-rw-r--r--src/mame/drivers/tankbust.c13
-rw-r--r--src/mame/drivers/taotaido.c1
-rw-r--r--src/mame/drivers/taxidriv.c27
-rw-r--r--src/mame/drivers/tehkanwc.c28
-rw-r--r--src/mame/drivers/thedeep.c8
-rw-r--r--src/mame/drivers/thepit.c12
-rw-r--r--src/mame/drivers/tickee.c39
-rw-r--r--src/mame/drivers/tigeroad.c9
-rw-r--r--src/mame/drivers/timelimt.c12
-rw-r--r--src/mame/drivers/timeplt.c14
-rw-r--r--src/mame/drivers/tnzs.c58
-rw-r--r--src/mame/drivers/tonton.c35
-rw-r--r--src/mame/drivers/tubep.c56
-rw-r--r--src/mame/drivers/twins.c14
-rw-r--r--src/mame/drivers/tx1.c80
-rw-r--r--src/mame/drivers/vastar.c14
-rw-r--r--src/mame/drivers/vectrex.c15
-rw-r--r--src/mame/drivers/vega.c16
-rw-r--r--src/mame/drivers/videopkr.c14
-rw-r--r--src/mame/drivers/vigilant.c10
-rw-r--r--src/mame/drivers/volfied.c14
-rw-r--r--src/mame/drivers/vroulet.c15
-rw-r--r--src/mame/drivers/warriorb.c2
-rw-r--r--src/mame/drivers/wc90.c9
-rw-r--r--src/mame/drivers/wc90b.c8
-rw-r--r--src/mame/drivers/welltris.c1
-rw-r--r--src/mame/drivers/wgp.c1
-rw-r--r--src/mame/drivers/wink.c12
-rw-r--r--src/mame/drivers/witch.c26
-rw-r--r--src/mame/drivers/wyvernf0.c22
-rw-r--r--src/mame/drivers/xain.c8
-rw-r--r--src/mame/drivers/xxmissio.c26
-rw-r--r--src/mame/drivers/zaccaria.c13
-rw-r--r--src/mame/drivers/zn.c1
272 files changed, 834 insertions, 4232 deletions
diff --git a/src/mame/drivers/1942.c b/src/mame/drivers/1942.c
index 97104b72950..5717e581386 100644
--- a/src/mame/drivers/1942.c
+++ b/src/mame/drivers/1942.c
@@ -517,16 +517,6 @@ void _1942_state::machine_reset()
m_scroll[1] = 0;
}
-static const ay8910_interface ay8910_config =
-{
- AY8910_RESISTOR_OUTPUT,
- AY8910_DEFAULT_LOADS,
- DEVCB_NULL,
- DEVCB_NULL,
- DEVCB_NULL,
- DEVCB_NULL
-};
-
static MACHINE_CONFIG_START( 1942, _1942_state )
/* basic machine hardware */
@@ -558,12 +548,14 @@ static MACHINE_CONFIG_START( 1942, _1942_state )
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_SOUND_ADD("ay1", AY8910, AUDIO_CLOCK) /* 1.5 MHz */
- MCFG_SOUND_CONFIG(ay8910_config)
+ MCFG_AY8910_OUTPUT_TYPE(AY8910_RESISTOR_OUTPUT)
+
MCFG_SOUND_ROUTE_EX(0, "snd_nl", 1.0, 0)
MCFG_SOUND_ROUTE_EX(1, "snd_nl", 1.0, 1)
MCFG_SOUND_ROUTE_EX(2, "snd_nl", 1.0, 2)
MCFG_SOUND_ADD("ay2", AY8910, AUDIO_CLOCK) /* 1.5 MHz */
- MCFG_SOUND_CONFIG(ay8910_config)
+ MCFG_AY8910_OUTPUT_TYPE(AY8910_RESISTOR_OUTPUT)
+
MCFG_SOUND_ROUTE_EX(0, "snd_nl", 1.0, 3)
MCFG_SOUND_ROUTE_EX(1, "snd_nl", 1.0, 4)
MCFG_SOUND_ROUTE_EX(2, "snd_nl", 1.0, 5)
diff --git a/src/mame/drivers/2mindril.c b/src/mame/drivers/2mindril.c
index b5b2dcf9869..41955a00268 100644
--- a/src/mame/drivers/2mindril.c
+++ b/src/mame/drivers/2mindril.c
@@ -470,6 +470,7 @@ static MACHINE_CONFIG_START( drill, _2mindril_state )
MCFG_SOUND_ADD("ymsnd", YM2610B, 16000000/2)
MCFG_YM2610_IRQ_HANDLER(WRITELINE(_2mindril_state, irqhandler))
+ MCFG_AY8910_OUTPUT_TYPE(AY8910_LEGACY_OUTPUT | AY8910_SINGLE_OUTPUT)
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/40love.c b/src/mame/drivers/40love.c
index 94145bb5fcf..d8ee762b8c9 100644
--- a/src/mame/drivers/40love.c
+++ b/src/mame/drivers/40love.c
@@ -953,16 +953,6 @@ static GFXDECODE_START( 40love )
GFXDECODE_ENTRY( "gfx1", 0, sprite_layout, 0, 64 )
GFXDECODE_END
-static const ay8910_interface ay8910_config =
-{
- AY8910_LEGACY_OUTPUT,
- AY8910_DEFAULT_LOADS,
- DEVCB_NULL,
- DEVCB_NULL,
- DEVCB_DRIVER_MEMBER(fortyl_state,sound_control_2_w),
- DEVCB_DRIVER_MEMBER(fortyl_state,sound_control_3_w)
-};
-
/*******************************************************************************/
MACHINE_START_MEMBER(fortyl_state,40love)
@@ -1077,7 +1067,8 @@ static MACHINE_CONFIG_START( 40love, fortyl_state )
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_SOUND_ADD("aysnd", AY8910, 2000000)
- MCFG_SOUND_CONFIG(ay8910_config)
+ MCFG_AY8910_PORT_A_WRITE_CB(WRITE8(fortyl_state, sound_control_2_w))
+ MCFG_AY8910_PORT_B_WRITE_CB(WRITE8(fortyl_state, sound_control_3_w))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.10)
MCFG_SOUND_ADD("msm", MSM5232, 8000000/4)
@@ -1133,7 +1124,8 @@ static MACHINE_CONFIG_START( undoukai, fortyl_state )
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_SOUND_ADD("aysnd", AY8910, 2000000)
- MCFG_SOUND_CONFIG(ay8910_config)
+ MCFG_AY8910_PORT_A_WRITE_CB(WRITE8(fortyl_state, sound_control_2_w))
+ MCFG_AY8910_PORT_B_WRITE_CB(WRITE8(fortyl_state, sound_control_3_w))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.10)
MCFG_SOUND_ADD("msm", MSM5232, 8000000/4)
diff --git a/src/mame/drivers/4enlinea.c b/src/mame/drivers/4enlinea.c
index 5e4e6ff3a79..65236874ec3 100644
--- a/src/mame/drivers/4enlinea.c
+++ b/src/mame/drivers/4enlinea.c
@@ -460,28 +460,6 @@ void _4enlinea_state::machine_reset()
{
}
-
-/**********************************
-* CRTC Interface *
-**********************************/
-
-
-
-/***********************************
-* Sound Interface *
-***********************************/
-
-static const ay8910_interface ay8910_intf =
-{
- AY8910_LEGACY_OUTPUT,
- AY8910_DEFAULT_LOADS,
- DEVCB_INPUT_PORT("IN-P2"),
- DEVCB_INPUT_PORT("IN-P1"),
- DEVCB_NULL,
- DEVCB_NULL
-};
-
-
/***********************************
* Machine Drivers *
***********************************/
@@ -540,7 +518,8 @@ static MACHINE_CONFIG_START( 4enlinea, _4enlinea_state )
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_SOUND_ADD("aysnd", AY8910, SND_AY_CLOCK)
- MCFG_SOUND_CONFIG(ay8910_intf)
+ MCFG_AY8910_PORT_A_READ_CB(IOPORT("IN-P2"))
+ MCFG_AY8910_PORT_B_READ_CB(IOPORT("IN-P1"))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50)
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/4roses.c b/src/mame/drivers/4roses.c
index 6daf30633c4..00fe7dc63dd 100644
--- a/src/mame/drivers/4roses.c
+++ b/src/mame/drivers/4roses.c
@@ -343,21 +343,6 @@ static GFXDECODE_START( 4roses )
GFXDECODE_END
-/************************
-* Sound Interface *
-************************/
-
-static const ay8910_interface ay8910_intf =
-{
- AY8910_LEGACY_OUTPUT,
- AY8910_DEFAULT_LOADS,
- DEVCB_NULL, /* portA in */
- DEVCB_NULL, /* portB in */
- DEVCB_NULL, /* portA out */
- DEVCB_NULL /* portB out */
-};
-
-
/**************************
* Machine Drivers *
**************************/
@@ -392,7 +377,6 @@ static MACHINE_CONFIG_START( 4roses, _4roses_state )
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_SOUND_ADD("ay8910", AY8910, MASTER_CLOCK/8) /* 2MHz, guess */
- MCFG_SOUND_CONFIG(ay8910_intf)
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 2.5)
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/5clown.c b/src/mame/drivers/5clown.c
index 0276eac06ba..af5e6ebfb28 100644
--- a/src/mame/drivers/5clown.c
+++ b/src/mame/drivers/5clown.c
@@ -995,21 +995,6 @@ static GFXDECODE_START( fclown )
GFXDECODE_END
/*************************
-* Sound Interfaces *
-*************************/
-
-static const ay8910_interface ay8910_config =
-{
- AY8910_LEGACY_OUTPUT,
- AY8910_DEFAULT_LOADS,
- DEVCB_NULL,
- DEVCB_NULL,
- DEVCB_NULL,
- DEVCB_NULL
-};
-
-
-/*************************
* Machine Drivers *
*************************/
@@ -1057,7 +1042,6 @@ static MACHINE_CONFIG_START( fclown, _5clown_state )
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_SOUND_ADD("ay8910", AY8910, MASTER_CLOCK/8) /* guess, seems ok */
- MCFG_SOUND_CONFIG(ay8910_config)
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.00)
MCFG_OKIM6295_ADD("oki6295", MASTER_CLOCK/12, OKIM6295_PIN7_LOW) /* guess, seems ok; pin7 guessed, seems ok */
diff --git a/src/mame/drivers/aces1.c b/src/mame/drivers/aces1.c
index 2d573ac03ec..5092c13fdb0 100644
--- a/src/mame/drivers/aces1.c
+++ b/src/mame/drivers/aces1.c
@@ -252,18 +252,6 @@ static INPUT_PORTS_START( aces1 )
INPUT_PORTS_END
-// 0xadf0 - Dips, Sound
-static const ay8910_interface ay8910_config =
-{
- AY8910_LEGACY_OUTPUT,
- AY8910_DEFAULT_LOADS,
- DEVCB_INPUT_PORT("DSWA"),
- DEVCB_INPUT_PORT("DSWB"),
- DEVCB_NULL,
- DEVCB_NULL
-};
-
-
static MACHINE_CONFIG_START( aces1, aces1_state )
MCFG_CPU_ADD("maincpu", Z80, 4000000) /* ?? Mhz */
@@ -293,8 +281,10 @@ static MACHINE_CONFIG_START( aces1, aces1_state )
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
+ // 0xadf0 - Dips, Sound
MCFG_SOUND_ADD("aysnd", AY8910, 1500000) /* ?? MHz */
- MCFG_SOUND_CONFIG(ay8910_config)
+ MCFG_AY8910_PORT_A_READ_CB(IOPORT("DSWA"))
+ MCFG_AY8910_PORT_B_READ_CB(IOPORT("DSWB"))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.00)
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/adp.c b/src/mame/drivers/adp.c
index 63962608837..337c4bac5c8 100644
--- a/src/mame/drivers/adp.c
+++ b/src/mame/drivers/adp.c
@@ -622,15 +622,6 @@ INTERRUPT_GEN_MEMBER(adp_state::adp_int)
device.execute().set_input_line(1, HOLD_LINE); // ??? All irqs have the same vector, and the mask used is 0 or 7
}
*/
-static const ay8910_interface ay8910_config =
-{
- AY8910_LEGACY_OUTPUT,
- AY8910_DEFAULT_LOADS,
- DEVCB_INPUT_PORT("PA"),
- DEVCB_NULL,
- DEVCB_NULL,
- DEVCB_NULL
-};
static ADDRESS_MAP_START( adp_h63484_map, AS_0, 16, adp_state )
AM_RANGE(0x00000, 0x1ffff) AM_MIRROR(0x60000) AM_RAM
@@ -680,7 +671,7 @@ static MACHINE_CONFIG_START( quickjac, adp_state )
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_SOUND_ADD("aysnd", AY8910, 3686400/2)
- MCFG_SOUND_CONFIG(ay8910_config)
+ MCFG_AY8910_PORT_A_READ_CB(IOPORT("PA"))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.10)
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/aeroboto.c b/src/mame/drivers/aeroboto.c
index 5a02dadf9fb..77be1977be8 100644
--- a/src/mame/drivers/aeroboto.c
+++ b/src/mame/drivers/aeroboto.c
@@ -207,18 +207,6 @@ static GFXDECODE_START( aeroboto )
GFXDECODE_ENTRY( "gfx3", 0, spritelayout, 0, 8 )
GFXDECODE_END
-
-
-static const ay8910_interface ay8910_config =
-{
- AY8910_LEGACY_OUTPUT,
- AY8910_DEFAULT_LOADS,
- DEVCB_DRIVER_MEMBER(driver_device, soundlatch_byte_r),
- DEVCB_DRIVER_MEMBER(driver_device, soundlatch2_byte_r),
- DEVCB_NULL,
- DEVCB_NULL
-};
-
void aeroboto_state::machine_start()
{
m_stars_rom = memregion("gfx2")->base();
@@ -270,7 +258,8 @@ static MACHINE_CONFIG_START( formatz, aeroboto_state )
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_SOUND_ADD("ay1", AY8910, XTAL_10MHz/8) /* verified on pcb */
- MCFG_SOUND_CONFIG(ay8910_config)
+ MCFG_AY8910_PORT_A_READ_CB(READ8(driver_device, soundlatch_byte_r))
+ MCFG_AY8910_PORT_B_READ_CB(READ8(driver_device, soundlatch2_byte_r))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25)
MCFG_SOUND_ADD("ay2", AY8910, XTAL_10MHz/16) /* verified on pcb */
diff --git a/src/mame/drivers/aerofgt.c b/src/mame/drivers/aerofgt.c
index 37f151a92f0..541df681856 100644
--- a/src/mame/drivers/aerofgt.c
+++ b/src/mame/drivers/aerofgt.c
@@ -1344,6 +1344,7 @@ static MACHINE_CONFIG_START( pspikes, aerofgt_state )
MCFG_SOUND_ADD("ymsnd", YM2610, 8000000)
MCFG_YM2610_IRQ_HANDLER(WRITELINE(aerofgt_state, irqhandler))
+ MCFG_AY8910_OUTPUT_TYPE(AY8910_LEGACY_OUTPUT | AY8910_SINGLE_OUTPUT)
MCFG_SOUND_ROUTE(0, "lspeaker", 0.25)
MCFG_SOUND_ROUTE(0, "rspeaker", 0.25)
MCFG_SOUND_ROUTE(1, "lspeaker", 1.0)
@@ -1503,6 +1504,7 @@ static MACHINE_CONFIG_START( karatblz, aerofgt_state )
MCFG_SOUND_ADD("ymsnd", YM2610, XTAL_8MHz ) /* verified on pcb */
MCFG_YM2610_IRQ_HANDLER(WRITELINE(aerofgt_state, irqhandler))
+ MCFG_AY8910_OUTPUT_TYPE(AY8910_LEGACY_OUTPUT | AY8910_SINGLE_OUTPUT)
MCFG_SOUND_ROUTE(0, "lspeaker", 0.25)
MCFG_SOUND_ROUTE(0, "rspeaker", 0.25)
MCFG_SOUND_ROUTE(1, "lspeaker", 1.0)
@@ -1557,6 +1559,7 @@ static MACHINE_CONFIG_START( spinlbrk, aerofgt_state )
MCFG_SOUND_ADD("ymsnd", YM2610, XTAL_8MHz) /* verified on pcb */
MCFG_YM2610_IRQ_HANDLER(WRITELINE(aerofgt_state, irqhandler))
+ MCFG_AY8910_OUTPUT_TYPE(AY8910_LEGACY_OUTPUT | AY8910_SINGLE_OUTPUT)
MCFG_SOUND_ROUTE(0, "lspeaker", 0.25)
MCFG_SOUND_ROUTE(0, "rspeaker", 0.25)
MCFG_SOUND_ROUTE(1, "lspeaker", 1.0)
@@ -1610,6 +1613,7 @@ static MACHINE_CONFIG_START( turbofrc, aerofgt_state )
MCFG_SOUND_ADD("ymsnd", YM2610, XTAL_8MHz) /* verified on pcb */
MCFG_YM2610_IRQ_HANDLER(WRITELINE(aerofgt_state, irqhandler))
+ MCFG_AY8910_OUTPUT_TYPE(AY8910_LEGACY_OUTPUT | AY8910_SINGLE_OUTPUT)
MCFG_SOUND_ROUTE(0, "lspeaker", 0.25)
MCFG_SOUND_ROUTE(0, "rspeaker", 0.25)
MCFG_SOUND_ROUTE(1, "lspeaker", 1.0)
@@ -1664,6 +1668,7 @@ static MACHINE_CONFIG_START( aerofgtb, aerofgt_state )
MCFG_SOUND_ADD("ymsnd", YM2610, 8000000)
MCFG_YM2610_IRQ_HANDLER(WRITELINE(aerofgt_state, irqhandler))
+ MCFG_AY8910_OUTPUT_TYPE(AY8910_LEGACY_OUTPUT | AY8910_SINGLE_OUTPUT)
MCFG_SOUND_ROUTE(0, "lspeaker", 0.25)
MCFG_SOUND_ROUTE(0, "rspeaker", 0.25)
MCFG_SOUND_ROUTE(1, "lspeaker", 1.0)
@@ -1712,6 +1717,7 @@ static MACHINE_CONFIG_START( aerofgt, aerofgt_state )
MCFG_SOUND_ADD("ymsnd", YM2610, XTAL_8MHz) /* verified on pcb */
MCFG_YM2610_IRQ_HANDLER(WRITELINE(aerofgt_state, irqhandler))
+ MCFG_AY8910_OUTPUT_TYPE(AY8910_LEGACY_OUTPUT | AY8910_SINGLE_OUTPUT)
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/airbustr.c b/src/mame/drivers/airbustr.c
index 9855672611b..41f59aef56d 100644
--- a/src/mame/drivers/airbustr.c
+++ b/src/mame/drivers/airbustr.c
@@ -516,17 +516,6 @@ static GFXDECODE_START( airbustr )
GFXDECODE_ENTRY( "gfx2", 0, sprite_gfxlayout, 512, 16 ) // sprites
GFXDECODE_END
-/* Sound Interfaces */
-
-static const ay8910_interface ay8910_config =
-{
- AY8910_LEGACY_OUTPUT,
- AY8910_DEFAULT_LOADS,
- DEVCB_INPUT_PORT("DSW1"), // DSW-1 connected to port A
- DEVCB_INPUT_PORT("DSW2"), // DSW-2 connected to port B
- DEVCB_NULL,
- DEVCB_NULL
-};
/* Interrupt Generators */
@@ -634,7 +623,8 @@ static MACHINE_CONFIG_START( airbustr, airbustr_state )
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_SOUND_ADD("ymsnd", YM2203, 3000000)
- MCFG_YM2203_AY8910_INTF(&ay8910_config)
+ MCFG_AY8910_PORT_A_READ_CB(IOPORT("DSW1")) // DSW-1 connected to port A
+ MCFG_AY8910_PORT_B_READ_CB(IOPORT("DSW2")) // DSW-2 connected to port B
MCFG_SOUND_ROUTE(0, "mono", 0.25)
MCFG_SOUND_ROUTE(1, "mono", 0.25)
MCFG_SOUND_ROUTE(2, "mono", 0.25)
diff --git a/src/mame/drivers/albazc.c b/src/mame/drivers/albazc.c
index 5d677127bd8..6ba972d9c41 100644
--- a/src/mame/drivers/albazc.c
+++ b/src/mame/drivers/albazc.c
@@ -261,17 +261,6 @@ static GFXDECODE_START( hanaroku )
GFXDECODE_END
-static const ay8910_interface ay8910_config =
-{
- AY8910_LEGACY_OUTPUT,
- AY8910_DEFAULT_LOADS,
- DEVCB_INPUT_PORT("DSW1"),
- DEVCB_INPUT_PORT("DSW2"),
- DEVCB_NULL,
- DEVCB_NULL
-};
-
-
static MACHINE_CONFIG_START( hanaroku, albazc_state )
MCFG_CPU_ADD("maincpu", Z80,6000000) /* ? MHz */
@@ -296,7 +285,8 @@ static MACHINE_CONFIG_START( hanaroku, albazc_state )
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_SOUND_ADD("aysnd", AY8910, 1500000) /* ? MHz */
- MCFG_SOUND_CONFIG(ay8910_config)
+ MCFG_AY8910_PORT_A_READ_CB(IOPORT("DSW1"))
+ MCFG_AY8910_PORT_B_READ_CB(IOPORT("DSW2"))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50)
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/albazg.c b/src/mame/drivers/albazg.c
index 79c5e4eb6d5..4d1b330f73f 100644
--- a/src/mame/drivers/albazg.c
+++ b/src/mame/drivers/albazg.c
@@ -200,16 +200,6 @@ WRITE8_MEMBER(albazg_state::yumefuda_output_w)
flip_screen_set(~data & 0x20);
}
-static const ay8910_interface ay8910_config =
-{
- AY8910_LEGACY_OUTPUT,
- AY8910_DEFAULT_LOADS,
- DEVCB_INPUT_PORT("DSW1"),
- DEVCB_INPUT_PORT("DSW2"),
- DEVCB_DRIVER_MEMBER(albazg_state,yumefuda_output_w),
- DEVCB_NULL
-};
-
/***************************************************************************************/
static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8, albazg_state )
@@ -392,7 +382,9 @@ static MACHINE_CONFIG_START( yumefuda, albazg_state )
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_SOUND_ADD("aysnd", AY8910, MASTER_CLOCK/16) /* guessed to use the same xtal as the crtc */
- MCFG_SOUND_CONFIG(ay8910_config)
+ MCFG_AY8910_PORT_A_READ_CB(IOPORT("DSW1"))
+ MCFG_AY8910_PORT_B_READ_CB(IOPORT("DSW2"))
+ MCFG_AY8910_PORT_A_WRITE_CB(WRITE8(albazg_state, yumefuda_output_w))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50)
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/alpha68k.c b/src/mame/drivers/alpha68k.c
index fcb3eb4210c..a091f0954bd 100644
--- a/src/mame/drivers/alpha68k.c
+++ b/src/mame/drivers/alpha68k.c
@@ -1811,13 +1811,6 @@ GFXDECODE_END
/******************************************************************************/
-static const ay8910_interface ay8910_config =
-{
- AY8910_LEGACY_OUTPUT,
- AY8910_DEFAULT_LOADS,
- DEVCB_DRIVER_MEMBER(driver_device, soundlatch_byte_r)
-};
-
WRITE8_MEMBER(alpha68k_state::porta_w)
{
if(data == 0xff)
@@ -1833,16 +1826,6 @@ WRITE8_MEMBER(alpha68k_state::porta_w)
m_sound_pa_latch = data & 1;
}
-static const ay8910_interface ym2203_ay8910_config =
-{
- AY8910_LEGACY_OUTPUT,
- AY8910_DEFAULT_LOADS,
- DEVCB_DRIVER_MEMBER(driver_device, soundlatch_byte_r),
- DEVCB_NULL,
- DEVCB_DRIVER_MEMBER(alpha68k_state, porta_w),
- DEVCB_NULL
-};
-
WRITE_LINE_MEMBER(alpha68k_state::ym3812_irq)
{
m_audiocpu->set_input_line(0, (state) ? HOLD_LINE : CLEAR_LINE);
@@ -2069,7 +2052,7 @@ static MACHINE_CONFIG_START( jongbou, alpha68k_state )
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_SOUND_ADD("aysnd", AY8910, 2000000)
- MCFG_SOUND_CONFIG(ay8910_config)
+ MCFG_AY8910_PORT_A_READ_CB(READ8(driver_device, soundlatch_byte_r))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.65)
MACHINE_CONFIG_END
@@ -2148,7 +2131,8 @@ static MACHINE_CONFIG_START( alpha68k_II, alpha68k_state )
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_SOUND_ADD("ym1", YM2203, 3000000)
- MCFG_YM2203_AY8910_INTF(&ym2203_ay8910_config)
+ MCFG_AY8910_PORT_A_READ_CB(READ8(driver_device, soundlatch_byte_r))
+ MCFG_AY8910_PORT_A_WRITE_CB(WRITE8(alpha68k_state, porta_w))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.65)
MCFG_SOUND_ADD("ym2", YM2413, 3579545)
@@ -2198,7 +2182,8 @@ static MACHINE_CONFIG_START( alpha68k_II_gm, alpha68k_state )
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_SOUND_ADD("ym1", YM2203, 3000000)
- MCFG_YM2203_AY8910_INTF(&ym2203_ay8910_config)
+ MCFG_AY8910_PORT_A_READ_CB(READ8(driver_device, soundlatch_byte_r))
+ MCFG_AY8910_PORT_A_WRITE_CB(WRITE8(alpha68k_state, porta_w))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.65)
MCFG_SOUND_ADD("ym2", YM2413, 3579545)
@@ -2242,7 +2227,8 @@ static MACHINE_CONFIG_START( alpha68k_V, alpha68k_state )
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_SOUND_ADD("ym1", YM2203, 3000000)
- MCFG_YM2203_AY8910_INTF(&ym2203_ay8910_config)
+ MCFG_AY8910_PORT_A_READ_CB(READ8(driver_device, soundlatch_byte_r))
+ MCFG_AY8910_PORT_A_WRITE_CB(WRITE8(alpha68k_state, porta_w))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.65)
MCFG_SOUND_ADD("ym2", YM2413, 3579545)
@@ -2285,7 +2271,8 @@ static MACHINE_CONFIG_START( alpha68k_V_sb, alpha68k_state )
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_SOUND_ADD("ym1", YM2203, 3000000)
- MCFG_YM2203_AY8910_INTF(&ym2203_ay8910_config)
+ MCFG_AY8910_PORT_A_READ_CB(READ8(driver_device, soundlatch_byte_r))
+ MCFG_AY8910_PORT_A_WRITE_CB(WRITE8(alpha68k_state, porta_w))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.65)
MCFG_SOUND_ADD("ym2", YM2413, 3579545)
diff --git a/src/mame/drivers/ambush.c b/src/mame/drivers/ambush.c
index 23b0fd82896..3ac2b861ee5 100644
--- a/src/mame/drivers/ambush.c
+++ b/src/mame/drivers/ambush.c
@@ -195,33 +195,6 @@ GFXDECODE_END
/*************************************
*
- * Sound interfaces
- *
- *************************************/
-
-static const ay8910_interface ay8912_interface_1 =
-{
- AY8910_LEGACY_OUTPUT,
- AY8910_DEFAULT_LOADS,
- DEVCB_INPUT_PORT("SYSTEM"),
- DEVCB_NULL,
- DEVCB_NULL,
- DEVCB_NULL
-};
-
-static const ay8910_interface ay8912_interface_2 =
-{
- AY8910_LEGACY_OUTPUT,
- AY8910_DEFAULT_LOADS,
- DEVCB_INPUT_PORT("INPUTS"),
- DEVCB_NULL,
- DEVCB_NULL,
- DEVCB_NULL
-};
-
-
-/*************************************
- *
* Machine driver
*
*************************************/
@@ -251,11 +224,11 @@ static MACHINE_CONFIG_START( ambush, ambush_state )
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_SOUND_ADD("ay1", AY8912, XTAL_18_432MHz/6/2) /* XTAL confirmed, divisor guessed */
- MCFG_SOUND_CONFIG(ay8912_interface_1)
+ MCFG_AY8910_PORT_A_READ_CB(IOPORT("SYSTEM"))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.33)
MCFG_SOUND_ADD("ay2", AY8912, XTAL_18_432MHz/6/2) /* XTAL confirmed, divisor guessed */
- MCFG_SOUND_CONFIG(ay8912_interface_2)
+ MCFG_AY8910_PORT_A_READ_CB(IOPORT("INPUTS"))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.33)
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/ampoker2.c b/src/mame/drivers/ampoker2.c
index 0f3c78ef532..a332dcb5ee6 100644
--- a/src/mame/drivers/ampoker2.c
+++ b/src/mame/drivers/ampoker2.c
@@ -1146,19 +1146,6 @@ static GFXDECODE_START( sigma2k )
GFXDECODE_ENTRY( "gfx1", 0x0000, s2k_charlayout, 0, 16 )
GFXDECODE_END
-
-/*******************
-* AY8910 Interfase *
-*******************/
-
-static const ay8910_interface ay8910_config =
-{
- AY8910_LEGACY_OUTPUT,
- AY8910_DEFAULT_LOADS,
- DEVCB_NULL, DEVCB_NULL, DEVCB_NULL, DEVCB_NULL /* no ports used */
-};
-
-
/*************************
* Machine Driver *
*************************/
@@ -1192,7 +1179,6 @@ static MACHINE_CONFIG_START( ampoker2, ampoker2_state )
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_SOUND_ADD("aysnd", AY8910,MASTER_CLOCK/4) /* 1.5 MHz, measured */
- MCFG_SOUND_CONFIG(ay8910_config)
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.30)
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/angelkds.c b/src/mame/drivers/angelkds.c
index bd9c0bd25f3..dd9ea07423b 100644
--- a/src/mame/drivers/angelkds.c
+++ b/src/mame/drivers/angelkds.c
@@ -512,13 +512,6 @@ WRITE_LINE_MEMBER(angelkds_state::irqhandler)
m_subcpu->set_input_line(0, state ? ASSERT_LINE : CLEAR_LINE);
}
-static const ay8910_interface ay8910_config =
-{
- AY8910_LEGACY_OUTPUT,
- AY8910_DEFAULT_LOADS,
- DEVCB_NULL, DEVCB_NULL, DEVCB_NULL, DEVCB_NULL
-};
-
/*** Graphics Decoding
all the 8x8 tiles are in one format, the 16x16 sprites in another
@@ -621,7 +614,6 @@ static MACHINE_CONFIG_START( angelkds, angelkds_state )
MCFG_SOUND_ADD("ym1", YM2203, XTAL_4MHz)
MCFG_YM2203_IRQ_HANDLER(WRITELINE(angelkds_state, irqhandler))
- MCFG_YM2203_AY8910_INTF(&ay8910_config)
MCFG_SOUND_ROUTE(0, "mono", 0.65)
MCFG_SOUND_ROUTE(1, "mono", 0.65)
MCFG_SOUND_ROUTE(2, "mono", 0.65)
diff --git a/src/mame/drivers/arabian.c b/src/mame/drivers/arabian.c
index 397d116518d..0ddde8616db 100644
--- a/src/mame/drivers/arabian.c
+++ b/src/mame/drivers/arabian.c
@@ -312,25 +312,6 @@ static INPUT_PORTS_START( arabiana )
INPUT_PORTS_END
-
-/*************************************
- *
- * Sound definitions
- *
- *************************************/
-
-static const ay8910_interface ay8910_config =
-{
- AY8910_LEGACY_OUTPUT,
- AY8910_DEFAULT_LOADS,
- DEVCB_NULL,
- DEVCB_NULL,
- DEVCB_DRIVER_MEMBER(arabian_state,ay8910_porta_w),
- DEVCB_DRIVER_MEMBER(arabian_state,ay8910_portb_w)
-};
-
-
-
/*************************************
*
* Machine driver
@@ -379,7 +360,8 @@ static MACHINE_CONFIG_START( arabian, arabian_state )
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_SOUND_ADD("aysnd", AY8910, MAIN_OSC/4/2)
- MCFG_SOUND_CONFIG(ay8910_config)
+ MCFG_AY8910_PORT_A_WRITE_CB(WRITE8(arabian_state, ay8910_porta_w))
+ MCFG_AY8910_PORT_B_WRITE_CB(WRITE8(arabian_state, ay8910_portb_w))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50)
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/argus.c b/src/mame/drivers/argus.c
index af97b2e169f..b62a00f4b93 100644
--- a/src/mame/drivers/argus.c
+++ b/src/mame/drivers/argus.c
@@ -157,14 +157,6 @@ WRITE_LINE_MEMBER(argus_state::irqhandler)
m_audiocpu->set_input_line(0, state ? ASSERT_LINE : CLEAR_LINE);
}
-static const ay8910_interface ay8910_config =
-{
- AY8910_LEGACY_OUTPUT,
- AY8910_DEFAULT_LOADS,
- DEVCB_NULL, DEVCB_NULL, DEVCB_NULL, DEVCB_NULL
-};
-
-
/***************************************************************************
Memory Handler(s)
@@ -569,7 +561,6 @@ static MACHINE_CONFIG_START( argus, argus_state )
MCFG_SOUND_ADD("ym1", YM2203, 6000000 / 4)
MCFG_YM2203_IRQ_HANDLER(WRITELINE(argus_state, irqhandler))
- MCFG_YM2203_AY8910_INTF(&ay8910_config)
MCFG_SOUND_ROUTE(0, "mono", 0.15)
MCFG_SOUND_ROUTE(1, "mono", 0.15)
MCFG_SOUND_ROUTE(2, "mono", 0.15)
@@ -614,7 +605,6 @@ static MACHINE_CONFIG_START( valtric, argus_state )
MCFG_SOUND_ADD("ym1", YM2203, 6000000 / 4)
MCFG_YM2203_IRQ_HANDLER(WRITELINE(argus_state, irqhandler))
- MCFG_YM2203_AY8910_INTF(&ay8910_config)
MCFG_SOUND_ROUTE(0, "mono", 0.15)
MCFG_SOUND_ROUTE(1, "mono", 0.15)
MCFG_SOUND_ROUTE(2, "mono", 0.15)
@@ -659,7 +649,6 @@ static MACHINE_CONFIG_START( butasan, argus_state )
MCFG_SOUND_ADD("ym1", YM2203, 6000000 / 4)
MCFG_YM2203_IRQ_HANDLER(WRITELINE(argus_state, irqhandler))
- MCFG_YM2203_AY8910_INTF(&ay8910_config)
MCFG_SOUND_ROUTE(0, "mono", 0.30)
MCFG_SOUND_ROUTE(1, "mono", 0.30)
MCFG_SOUND_ROUTE(2, "mono", 0.30)
diff --git a/src/mame/drivers/aristmk4.c b/src/mame/drivers/aristmk4.c
index 52a2e57bfd6..76aa0838ba7 100644
--- a/src/mame/drivers/aristmk4.c
+++ b/src/mame/drivers/aristmk4.c
@@ -1548,26 +1548,6 @@ static GFXDECODE_START(aristmk4)
GFXDECODE_ENTRY("tile_gfx",0x0,layout8x8x6, 0, 8 )
GFXDECODE_END
-static const ay8910_interface ay8910_config1 =
-{
- AY8910_LEGACY_OUTPUT,
- AY8910_DEFAULT_LOADS,
- DEVCB_INPUT_PORT("DSW1"),
- DEVCB_NULL,
- DEVCB_NULL,
- DEVCB_DRIVER_MEMBER(aristmk4_state,zn434_w) // Port write to set Vout of the DA convertors ( 2 x ZN434 )
-};
-
-static const ay8910_interface ay8910_config2 =
-{
- AY8910_LEGACY_OUTPUT,
- AY8910_DEFAULT_LOADS,
- DEVCB_NULL, // Port A read
- DEVCB_NULL, // Port B read
- DEVCB_DRIVER_MEMBER(aristmk4_state,pblp_out), // Port A write - goes to lamps on the buttons x8
- DEVCB_DRIVER_MEMBER(aristmk4_state,pbltlp_out) // Port B write - goes to lamps on the buttons x4 and light tower x4
-};
-
/* read m/c number */
READ8_MEMBER(aristmk4_state::pa1_r)
@@ -1718,11 +1698,13 @@ static MACHINE_CONFIG_START( aristmk4, aristmk4_state )
// the Mark IV has X 2 AY8910 sound chips which are tied to the VIA
MCFG_SOUND_ADD("ay1", AY8910 , MAIN_CLOCK/8)
- MCFG_SOUND_CONFIG(ay8910_config1)
+ MCFG_AY8910_PORT_A_READ_CB(IOPORT("DSW1"))
+ MCFG_AY8910_PORT_B_WRITE_CB(WRITE8(aristmk4_state, zn434_w)) // Port write to set Vout of the DA convertors ( 2 x ZN434 )
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.40)
MCFG_SOUND_ADD("ay2", AY8910 , MAIN_CLOCK/8)
- MCFG_SOUND_CONFIG(ay8910_config2)
+ MCFG_AY8910_PORT_A_WRITE_CB(WRITE8(aristmk4_state, pblp_out)) // Port A write - goes to lamps on the buttons x8
+ MCFG_AY8910_PORT_B_WRITE_CB(WRITE8(aristmk4_state, pbltlp_out)) // Port B write - goes to lamps on the buttons x4 and light tower x4
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.40)
MCFG_SAMPLES_ADD("samples", meter_samples_interface)
diff --git a/src/mame/drivers/arkanoid.c b/src/mame/drivers/arkanoid.c
index b9d8dda1744..17803409f1f 100644
--- a/src/mame/drivers/arkanoid.c
+++ b/src/mame/drivers/arkanoid.c
@@ -1129,32 +1129,6 @@ static GFXDECODE_START( hexa )
GFXDECODE_ENTRY( "gfx1", 0x0000, charlayout, 0 , 32 )
GFXDECODE_END
-
-/* Sound Interfaces */
-
-static const ay8910_interface ay8910_config =
-{
- AY8910_LEGACY_OUTPUT,
- AY8910_DEFAULT_LOADS,
- DEVCB_INPUT_PORT("UNUSED"),
- DEVCB_INPUT_PORT("DSW"),
- DEVCB_NULL,
- DEVCB_NULL
-};
-
-
-static const ay8910_interface hexa_ay8910_config =
-{
- AY8910_LEGACY_OUTPUT,
- AY8910_DEFAULT_LOADS,
- DEVCB_INPUT_PORT("INPUTS"),
- DEVCB_INPUT_PORT("DSW"),
- DEVCB_NULL,
- DEVCB_NULL
-};
-
-
-
/* Machine Drivers */
MACHINE_START_MEMBER(arkanoid_state,arkanoid)
@@ -1228,7 +1202,8 @@ static MACHINE_CONFIG_START( arkanoid, arkanoid_state )
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_SOUND_ADD("aysnd", YM2149, XTAL_12MHz/4/2) /* YM2149 clock is 3mhz, pin 26 is low so 3mhz/2 */
- MCFG_SOUND_CONFIG(ay8910_config)
+ MCFG_AY8910_PORT_A_READ_CB(IOPORT("UNUSED"))
+ MCFG_AY8910_PORT_B_READ_CB(IOPORT("DSW"))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.33)
MACHINE_CONFIG_END
@@ -1259,7 +1234,8 @@ static MACHINE_CONFIG_START( hexa, arkanoid_state )
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_SOUND_ADD("aysnd", AY8910, XTAL_12MHz/4/2) /* Imported from arkanoid - correct? */
- MCFG_SOUND_CONFIG(hexa_ay8910_config)
+ MCFG_AY8910_PORT_A_READ_CB(IOPORT("INPUTS"))
+ MCFG_AY8910_PORT_B_READ_CB(IOPORT("DSW"))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50)
MACHINE_CONFIG_END
@@ -1303,7 +1279,8 @@ static MACHINE_CONFIG_START( brixian, arkanoid_state )
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_SOUND_ADD("aysnd", AY8910, XTAL_12MHz/4/2) /* Imported from arkanoid - correct? */
- MCFG_SOUND_CONFIG(hexa_ay8910_config)
+ MCFG_AY8910_PORT_A_READ_CB(IOPORT("INPUTS"))
+ MCFG_AY8910_PORT_B_READ_CB(IOPORT("DSW"))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50)
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/ashnojoe.c b/src/mame/drivers/ashnojoe.c
index 96bafa0974e..34b67bdbf13 100644
--- a/src/mame/drivers/ashnojoe.c
+++ b/src/mame/drivers/ashnojoe.c
@@ -289,16 +289,6 @@ WRITE8_MEMBER(ashnojoe_state::ym2203_write_b)
membank("bank4")->set_entry(data & 0x0f);
}
-static const ay8910_interface ay8910_config =
-{
- AY8910_LEGACY_OUTPUT,
- AY8910_DEFAULT_LOADS,
- DEVCB_NULL,
- DEVCB_NULL,
- DEVCB_DRIVER_MEMBER(ashnojoe_state,ym2203_write_a),
- DEVCB_DRIVER_MEMBER(ashnojoe_state,ym2203_write_b),
-};
-
WRITE_LINE_MEMBER(ashnojoe_state::ashnojoe_vclk_cb)
{
if (m_msm5205_vclk_toggle == 0)
@@ -359,7 +349,8 @@ static MACHINE_CONFIG_START( ashnojoe, ashnojoe_state )
MCFG_SOUND_ADD("ymsnd", YM2203, 4000000)
MCFG_YM2203_IRQ_HANDLER(WRITELINE(ashnojoe_state, ym2203_irq_handler))
- MCFG_YM2203_AY8910_INTF(&ay8910_config)
+ MCFG_AY8910_PORT_A_WRITE_CB(WRITE8(ashnojoe_state, ym2203_write_a))
+ MCFG_AY8910_PORT_B_WRITE_CB(WRITE8(ashnojoe_state, ym2203_write_b))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.1)
MCFG_SOUND_ADD("msm", MSM5205, 384000)
diff --git a/src/mame/drivers/astrocde.c b/src/mame/drivers/astrocde.c
index 9b234c83755..cf1d15836bc 100644
--- a/src/mame/drivers/astrocde.c
+++ b/src/mame/drivers/astrocde.c
@@ -474,17 +474,6 @@ WRITE8_MEMBER(astrocde_state::demndrgn_sound_w)
*
*************************************/
-static const ay8910_interface ay8912_interface =
-{
- AY8910_LEGACY_OUTPUT,
- AY8910_DEFAULT_LOADS,
- DEVCB_INPUT_PORT("DIPSW"),
- DEVCB_NULL,
- DEVCB_NULL,
- DEVCB_NULL
-};
-
-
WRITE8_MEMBER(astrocde_state::tenpindx_sound_w)
{
soundlatch_byte_w(space, offset, data);
@@ -1478,7 +1467,7 @@ static MACHINE_CONFIG_DERIVED( tenpindx, astrocade_16color_base )
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_SOUND_ADD("aysnd", AY8912, ASTROCADE_CLOCK/4) /* real clock unknown */
- MCFG_SOUND_CONFIG(ay8912_interface)
+ MCFG_AY8910_PORT_A_READ_CB(IOPORT("DIPSW"))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.33)
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/asuka.c b/src/mame/drivers/asuka.c
index c1cb77132e1..52444615175 100644
--- a/src/mame/drivers/asuka.c
+++ b/src/mame/drivers/asuka.c
@@ -864,6 +864,7 @@ static MACHINE_CONFIG_START( bonzeadv, asuka_state )
MCFG_SOUND_ADD("ymsnd", YM2610, 8000000)
MCFG_YM2610_IRQ_HANDLER(WRITELINE(asuka_state, irqhandler))
+ MCFG_AY8910_OUTPUT_TYPE(AY8910_LEGACY_OUTPUT | AY8910_SINGLE_OUTPUT)
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/avt.c b/src/mame/drivers/avt.c
index 7cfcadeb0bd..0126d4efe77 100644
--- a/src/mame/drivers/avt.c
+++ b/src/mame/drivers/avt.c
@@ -846,22 +846,6 @@ static GFXDECODE_START( avt )
GFXDECODE_ENTRY( "gfx1", 0, tilelayout, 0, 16 )
GFXDECODE_END
-
-/********************************************
-* Sound Interfaces *
-********************************************/
-
-static const ay8910_interface ay8910_config =
-{
- AY8910_LEGACY_OUTPUT,
- AY8910_DEFAULT_LOADS,
- DEVCB_NULL,
- DEVCB_NULL,
- DEVCB_NULL,
- DEVCB_NULL
-};
-
-
/*********************************************
* Machine Drivers *
*********************************************/
@@ -901,7 +885,6 @@ static MACHINE_CONFIG_START( avt, avt_state )
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_SOUND_ADD("aysnd", AY8910, CPU_CLOCK/2) /* 1.25 MHz.?? */
- MCFG_SOUND_CONFIG(ay8910_config)
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.00)
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/bagman.c b/src/mame/drivers/bagman.c
index c829877036e..3cf3fd9bc67 100644
--- a/src/mame/drivers/bagman.c
+++ b/src/mame/drivers/bagman.c
@@ -359,17 +359,6 @@ static GFXDECODE_START( pickin )
GFXDECODE_END
-
-static const ay8910_interface ay8910_config =
-{
- AY8910_LEGACY_OUTPUT,
- AY8910_DEFAULT_LOADS,
- DEVCB_INPUT_PORT("P1"),
- DEVCB_INPUT_PORT("P2"),
- DEVCB_NULL,
- DEVCB_NULL
-};
-
/* squaitsa doesn't map the dial directly, instead it polls the results of the dial through an external circuitry.
I don't know if the following is correct, there can possbily be multiple solutions for the same problem. */
READ8_MEMBER(bagman_state::dial_input_p1_r)
@@ -412,26 +401,6 @@ READ8_MEMBER(bagman_state::dial_input_p2_r)
return (ioport("P2")->read() & 0x9f) | (m_p2_res);
}
-static const ay8910_interface ay8910_dial_config =
-{
- AY8910_LEGACY_OUTPUT,
- AY8910_DEFAULT_LOADS,
- DEVCB_DRIVER_MEMBER(bagman_state,dial_input_p1_r),
- DEVCB_DRIVER_MEMBER(bagman_state,dial_input_p2_r),
- DEVCB_NULL,
- DEVCB_NULL
-};
-
-static const ay8910_interface ay8910_interface_2 =
-{
- AY8910_LEGACY_OUTPUT,
- AY8910_DEFAULT_LOADS,
- DEVCB_NULL,
- DEVCB_NULL,
- DEVCB_NULL,
- DEVCB_NULL
-};
-
INTERRUPT_GEN_MEMBER(bagman_state::vblank_irq)
{
if(m_irq_mask)
@@ -479,7 +448,8 @@ static MACHINE_CONFIG_START( bagman, bagman_state )
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_SOUND_ADD("aysnd", AY8910, BAGMAN_H0 / 2)
- MCFG_SOUND_CONFIG(ay8910_config)
+ MCFG_AY8910_PORT_A_READ_CB(IOPORT("P1"))
+ MCFG_AY8910_PORT_B_READ_CB(IOPORT("P2"))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.40)
MCFG_SOUND_ADD("tms", TMS5110A, 640000)
@@ -514,12 +484,12 @@ static MACHINE_CONFIG_START( pickin, bagman_state )
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_SOUND_ADD("aysnd", AY8910, 1500000)
- MCFG_SOUND_CONFIG(ay8910_config)
+ MCFG_AY8910_PORT_A_READ_CB(IOPORT("P1"))
+ MCFG_AY8910_PORT_B_READ_CB(IOPORT("P2"))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.40)
/* maybe */
MCFG_SOUND_ADD("ay2", AY8910, 1500000)
- MCFG_SOUND_CONFIG(ay8910_interface_2)
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.40)
MACHINE_CONFIG_END
@@ -567,17 +537,19 @@ static MACHINE_CONFIG_START( botanic, bagman_state )
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_SOUND_ADD("aysnd", AY8910, 1500000)
- MCFG_SOUND_CONFIG(ay8910_config)
+ MCFG_AY8910_PORT_A_READ_CB(IOPORT("P1"))
+ MCFG_AY8910_PORT_B_READ_CB(IOPORT("P2"))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.40)
MCFG_SOUND_ADD("ay2", AY8910, 1500000)
- MCFG_SOUND_CONFIG(ay8910_interface_2)
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.40)
MACHINE_CONFIG_END
static MACHINE_CONFIG_DERIVED( squaitsa, botanic )
MCFG_SOUND_MODIFY("aysnd")
- MCFG_SOUND_CONFIG(ay8910_dial_config)
+ MCFG_AY8910_PORT_A_READ_CB(READ8(bagman_state, dial_input_p1_r))
+ MCFG_AY8910_PORT_B_READ_CB(READ8(bagman_state, dial_input_p2_r))
+
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/battlex.c b/src/mame/drivers/battlex.c
index b5327c41c97..40fefef2018 100644
--- a/src/mame/drivers/battlex.c
+++ b/src/mame/drivers/battlex.c
@@ -214,16 +214,6 @@ GFXDECODE_END
*
*************************************/
-static const ay8910_interface battlex_ay8910_interface =
-{
- AY8910_LEGACY_OUTPUT,
- AY8910_DEFAULT_LOADS,
- DEVCB_NULL,
- DEVCB_NULL,
- DEVCB_NULL,
- DEVCB_NULL
-};
-
void battlex_state::machine_start()
{
/* register for save states */
@@ -265,7 +255,6 @@ static MACHINE_CONFIG_START( battlex, battlex_state )
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_SOUND_ADD("aysnd", AY8910, XTAL_10MHz/8) // ?
- MCFG_SOUND_CONFIG(battlex_ay8910_interface)
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.40)
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/bbusters.c b/src/mame/drivers/bbusters.c
index ad621ad37f8..7b405c1fbf5 100644
--- a/src/mame/drivers/bbusters.c
+++ b/src/mame/drivers/bbusters.c
@@ -645,13 +645,6 @@ WRITE_LINE_MEMBER(bbusters_state::sound_irq)
m_audiocpu->set_input_line(0, state ? ASSERT_LINE : CLEAR_LINE);
}
-static const ay8910_interface ay8910_config =
-{
- AY8910_LEGACY_OUTPUT | AY8910_SINGLE_OUTPUT,
- AY8910_DEFAULT_LOADS,
- DEVCB_NULL, DEVCB_NULL, DEVCB_NULL, DEVCB_NULL
-};
-
/******************************************************************************/
void bbusters_state::screen_eof_bbuster(screen_device &screen, bool state)
@@ -696,6 +689,7 @@ static MACHINE_CONFIG_START( bbusters, bbusters_state )
MCFG_SOUND_ADD("ymsnd", YM2610, 8000000)
MCFG_YM2610_IRQ_HANDLER(WRITELINE(bbusters_state, sound_irq))
+ MCFG_AY8910_OUTPUT_TYPE(AY8910_LEGACY_OUTPUT | AY8910_SINGLE_OUTPUT)
MCFG_SOUND_ROUTE(0, "lspeaker", 1.0)
MCFG_SOUND_ROUTE(0, "rspeaker", 1.0)
MCFG_SOUND_ROUTE(1, "lspeaker", 1.0)
@@ -735,7 +729,7 @@ static MACHINE_CONFIG_START( mechatt, bbusters_state )
MCFG_SOUND_ADD("ymsnd", YM2608, 8000000)
MCFG_YM2608_IRQ_HANDLER(WRITELINE(bbusters_state, sound_irq))
- MCFG_YM2608_AY8910_INTF(&ay8910_config)
+ MCFG_AY8910_OUTPUT_TYPE(AY8910_LEGACY_OUTPUT | AY8910_SINGLE_OUTPUT)
MCFG_SOUND_ROUTE(0, "lspeaker", 0.50)
MCFG_SOUND_ROUTE(0, "rspeaker", 0.50)
MCFG_SOUND_ROUTE(1, "lspeaker", 1.0)
diff --git a/src/mame/drivers/big10.c b/src/mame/drivers/big10.c
index a152b7dcfc6..426adf18b80 100644
--- a/src/mame/drivers/big10.c
+++ b/src/mame/drivers/big10.c
@@ -226,21 +226,6 @@ static INPUT_PORTS_START( big10 )
INPUT_PORTS_END
-/**********************************
-* AY-3-8910 Interface *
-**********************************/
-
-static const ay8910_interface ay8910_config =
-{
- AY8910_LEGACY_OUTPUT,
- AY8910_DEFAULT_LOADS,
- DEVCB_INPUT_PORT("DSW2"),
- DEVCB_INPUT_PORT("DSW1"),
- DEVCB_DRIVER_MEMBER(big10_state,mux_w),
- DEVCB_NULL
-};
-
-
/**************************************
* Machine Driver *
**************************************/
@@ -271,7 +256,9 @@ static MACHINE_CONFIG_START( big10, big10_state )
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_SOUND_ADD("aysnd", AY8910, MASTER_CLOCK/12) /* guess */
- MCFG_SOUND_CONFIG(ay8910_config)
+ MCFG_AY8910_PORT_A_READ_CB(IOPORT("DSW2"))
+ MCFG_AY8910_PORT_B_READ_CB(IOPORT("DSW1"))
+ MCFG_AY8910_PORT_A_WRITE_CB(WRITE8(big10_state, mux_w))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.30)
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/bking.c b/src/mame/drivers/bking.c
index 6a0183e4092..a297b407517 100644
--- a/src/mame/drivers/bking.c
+++ b/src/mame/drivers/bking.c
@@ -376,16 +376,6 @@ WRITE8_MEMBER(bking_state::port_b_w)
logerror("port_b = %02x\n", data);
}
-static const ay8910_interface ay8910_config =
-{
- AY8910_LEGACY_OUTPUT,
- AY8910_DEFAULT_LOADS,
- DEVCB_NULL,
- DEVCB_NULL,
- DEVCB_DEVICE_MEMBER("dac", dac_device, write_signed8),
- DEVCB_DRIVER_MEMBER(bking_state,port_b_w)
-};
-
void bking_state::machine_start()
{
/* video */
@@ -492,7 +482,8 @@ static MACHINE_CONFIG_START( bking, bking_state )
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25)
MCFG_SOUND_ADD("ay2", AY8910, XTAL_6MHz/4)
- MCFG_SOUND_CONFIG(ay8910_config)
+ MCFG_AY8910_PORT_A_WRITE_CB(DEVWRITE8("dac", dac_device, write_signed8))
+ MCFG_AY8910_PORT_B_WRITE_CB(WRITE8(bking_state, port_b_w))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25)
MCFG_DAC_ADD("dac")
diff --git a/src/mame/drivers/bladestl.c b/src/mame/drivers/bladestl.c
index dc9612a007d..f39618057f0 100644
--- a/src/mame/drivers/bladestl.c
+++ b/src/mame/drivers/bladestl.c
@@ -268,17 +268,6 @@ GFXDECODE_END
*
*************************************/
-static const ay8910_interface ay8910_config =
-{
- AY8910_LEGACY_OUTPUT,
- AY8910_DEFAULT_LOADS,
- DEVCB_NULL,
- DEVCB_NULL,
- DEVCB_DEVICE_MEMBER("upd", upd775x_device, port_w),
- DEVCB_DRIVER_MEMBER(bladestl_state,bladestl_port_B_w)
-};
-
-
void bladestl_state::machine_start()
{
m_rombank->configure_entries(0, 4, memregion("maincpu")->base(), 0x2000);
@@ -349,7 +338,8 @@ static MACHINE_CONFIG_START( bladestl, bladestl_state )
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.60)
MCFG_SOUND_ADD("ymsnd", YM2203, 3579545)
- MCFG_YM2203_AY8910_INTF(&ay8910_config)
+ MCFG_AY8910_PORT_A_WRITE_CB(DEVWRITE8("upd", upd775x_device, port_w))
+ MCFG_AY8910_PORT_B_WRITE_CB(WRITE8(bladestl_state, bladestl_port_B_w))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.45)
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/blktiger.c b/src/mame/drivers/blktiger.c
index 895d9e4f7be..63e21dac120 100644
--- a/src/mame/drivers/blktiger.c
+++ b/src/mame/drivers/blktiger.c
@@ -264,13 +264,6 @@ WRITE_LINE_MEMBER(blktiger_state::irqhandler)
m_audiocpu->set_input_line(0, state ? ASSERT_LINE : CLEAR_LINE);
}
-static const ay8910_interface ay8910_config =
-{
- AY8910_LEGACY_OUTPUT,
- AY8910_DEFAULT_LOADS,
- DEVCB_NULL, DEVCB_NULL, DEVCB_NULL, DEVCB_NULL,
-};
-
void blktiger_state::machine_start()
{
/* configure bankswitching */
@@ -341,7 +334,6 @@ static MACHINE_CONFIG_START( blktiger, blktiger_state )
MCFG_SOUND_ADD("ym1", YM2203, XTAL_3_579545MHz) /* verified on pcb */
MCFG_YM2203_IRQ_HANDLER(WRITELINE(blktiger_state, irqhandler))
- MCFG_YM2203_AY8910_INTF(&ay8910_config)
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.15)
MCFG_SOUND_ADD("ym2", YM2203, XTAL_3_579545MHz) /* verified on pcb */
diff --git a/src/mame/drivers/blueprnt.c b/src/mame/drivers/blueprnt.c
index b790d812546..9d42f0eeb28 100644
--- a/src/mame/drivers/blueprnt.c
+++ b/src/mame/drivers/blueprnt.c
@@ -318,33 +318,6 @@ GFXDECODE_END
/*************************************
*
- * Sound interfaces
- *
- *************************************/
-
-static const ay8910_interface ay8910_interface_1 =
-{
- AY8910_LEGACY_OUTPUT,
- AY8910_DEFAULT_LOADS,
- DEVCB_NULL,
- DEVCB_DRIVER_MEMBER(driver_device, soundlatch_byte_r),
- DEVCB_DRIVER_MEMBER(blueprnt_state,dipsw_w),
- DEVCB_NULL
-};
-
-static const ay8910_interface ay8910_interface_2 =
-{
- AY8910_LEGACY_OUTPUT,
- AY8910_DEFAULT_LOADS,
- DEVCB_INPUT_PORT("DILSW1"),
- DEVCB_INPUT_PORT("DILSW2"),
- DEVCB_NULL,
- DEVCB_NULL
-};
-
-
-/*************************************
- *
* Machine driver
*
*************************************/
@@ -394,11 +367,13 @@ static MACHINE_CONFIG_START( blueprnt, blueprnt_state )
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_SOUND_ADD("ay1", AY8910, 10000000/2/2/2)
- MCFG_SOUND_CONFIG(ay8910_interface_1)
+ MCFG_AY8910_PORT_B_READ_CB(READ8(driver_device, soundlatch_byte_r))
+ MCFG_AY8910_PORT_A_WRITE_CB(WRITE8(blueprnt_state, dipsw_w))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25)
MCFG_SOUND_ADD("ay2", AY8910, 10000000/2/2/2/2)
- MCFG_SOUND_CONFIG(ay8910_interface_2)
+ MCFG_AY8910_PORT_A_READ_CB(IOPORT("DILSW1"))
+ MCFG_AY8910_PORT_B_READ_CB(IOPORT("DILSW2"))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25)
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/bmcbowl.c b/src/mame/drivers/bmcbowl.c
index b6a1e0d74c5..4f4d6a619cb 100644
--- a/src/mame/drivers/bmcbowl.c
+++ b/src/mame/drivers/bmcbowl.c
@@ -459,18 +459,6 @@ WRITE8_MEMBER(bmcbowl_state::input_mux_w)
m_bmc_input=data;
}
-
-static const ay8910_interface ay8910_config =
-{
- AY8910_LEGACY_OUTPUT,
- AY8910_DEFAULT_LOADS,
- DEVCB_DRIVER_MEMBER(bmcbowl_state,dips1_r),
- DEVCB_NULL,
- DEVCB_NULL,
- DEVCB_DRIVER_MEMBER(bmcbowl_state,input_mux_w)
-};
-
-
static MACHINE_CONFIG_START( bmcbowl, bmcbowl_state )
MCFG_CPU_ADD("maincpu", M68000, XTAL_21_4772MHz / 2 )
MCFG_CPU_PROGRAM_MAP(bmcbowl_mem)
@@ -495,7 +483,8 @@ static MACHINE_CONFIG_START( bmcbowl, bmcbowl_state )
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.50)
MCFG_SOUND_ADD("aysnd", AY8910, XTAL_3_579545MHz / 2)
- MCFG_SOUND_CONFIG(ay8910_config)
+ MCFG_AY8910_PORT_A_READ_CB(READ8(bmcbowl_state, dips1_r))
+ MCFG_AY8910_PORT_B_WRITE_CB(WRITE8(bmcbowl_state, input_mux_w))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 0.50)
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.50)
diff --git a/src/mame/drivers/bogeyman.c b/src/mame/drivers/bogeyman.c
index d893d2f2796..7cabb0a7918 100644
--- a/src/mame/drivers/bogeyman.c
+++ b/src/mame/drivers/bogeyman.c
@@ -222,16 +222,6 @@ WRITE8_MEMBER(bogeyman_state::bogeyman_colbank_w)
}
}
-static const ay8910_interface ay8910_config =
-{
- AY8910_LEGACY_OUTPUT,
- AY8910_DEFAULT_LOADS,
- DEVCB_NULL,
- DEVCB_NULL,
- DEVCB_DRIVER_MEMBER(bogeyman_state,bogeyman_colbank_w),
- DEVCB_NULL
-};
-
static MACHINE_CONFIG_START( bogeyman, bogeyman_state )
// basic machine hardware
@@ -259,7 +249,7 @@ static MACHINE_CONFIG_START( bogeyman, bogeyman_state )
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_SOUND_ADD("ay1", AY8910, 1500000) /* Verified */
- MCFG_SOUND_CONFIG(ay8910_config)
+ MCFG_AY8910_PORT_A_WRITE_CB(WRITE8(bogeyman_state, bogeyman_colbank_w))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.30)
MCFG_SOUND_ADD("ay2", AY8910, 1500000) /* Verified */
diff --git a/src/mame/drivers/btime.c b/src/mame/drivers/btime.c
index a458e757e30..9cd825f4a6d 100644
--- a/src/mame/drivers/btime.c
+++ b/src/mame/drivers/btime.c
@@ -1151,20 +1151,6 @@ GFXDECODE_END
****************************************************************************/
-static const ay8910_interface ay1_intf =
-{
- AY8910_DISCRETE_OUTPUT,
- {RES_K(5), RES_K(5), RES_K(5)},
- DEVCB_NULL, DEVCB_NULL, DEVCB_DRIVER_MEMBER(btime_state,ay_audio_nmi_enable_w), DEVCB_NULL
-};
-
-static const ay8910_interface ay2_intf =
-{
- AY8910_DISCRETE_OUTPUT,
- {RES_K(1), RES_K(5), RES_K(5)},
- DEVCB_NULL, DEVCB_NULL, DEVCB_NULL, DEVCB_NULL
-};
-
static const discrete_mixer_desc btime_sound_mixer_desc =
{DISC_MIXER_IS_OP_AMP,
{RES_K(100), RES_K(100)},
@@ -1328,13 +1314,16 @@ static MACHINE_CONFIG_START( btime, btime_state )
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_SOUND_ADD("ay1", AY8910, HCLK2)
- MCFG_SOUND_CONFIG(ay1_intf)
+ MCFG_AY8910_OUTPUT_TYPE(AY8910_DISCRETE_OUTPUT)
+ MCFG_AY8910_RES_LOADS(RES_K(5), RES_K(5), RES_K(5))
+ MCFG_AY8910_PORT_A_WRITE_CB(WRITE8(btime_state, ay_audio_nmi_enable_w))
MCFG_SOUND_ROUTE_EX(0, "discrete", 1.0, 0)
MCFG_SOUND_ROUTE_EX(1, "discrete", 1.0, 1)
MCFG_SOUND_ROUTE_EX(2, "discrete", 1.0, 2)
MCFG_SOUND_ADD("ay2", AY8910, HCLK2)
- MCFG_SOUND_CONFIG(ay2_intf)
+ MCFG_AY8910_OUTPUT_TYPE(AY8910_DISCRETE_OUTPUT)
+ MCFG_AY8910_RES_LOADS(RES_K(1), RES_K(5), RES_K(5))
MCFG_SOUND_ROUTE_EX(0, "discrete", 1.0, 3)
MCFG_SOUND_ROUTE_EX(1, "discrete", 1.0, 4)
MCFG_SOUND_ROUTE_EX(2, "discrete", 1.0, 5)
@@ -1447,7 +1436,9 @@ static MACHINE_CONFIG_DERIVED( zoar, btime )
/* sound hardware */
MCFG_SOUND_REPLACE("ay1", AY8910, HCLK1)
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.23)
- MCFG_SOUND_CONFIG(ay1_intf)
+ MCFG_AY8910_OUTPUT_TYPE(AY8910_DISCRETE_OUTPUT)
+ MCFG_AY8910_RES_LOADS(RES_K(5), RES_K(5), RES_K(5))
+ MCFG_AY8910_PORT_A_WRITE_CB(WRITE8(btime_state, ay_audio_nmi_enable_w))
MCFG_SOUND_REPLACE("ay2", AY8910, HCLK1)
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.23)
diff --git a/src/mame/drivers/bublbobl.c b/src/mame/drivers/bublbobl.c
index 65668b08a3a..78697ed358e 100644
--- a/src/mame/drivers/bublbobl.c
+++ b/src/mame/drivers/bublbobl.c
@@ -701,15 +701,6 @@ WRITE_LINE_MEMBER(bublbobl_state::irqhandler)
m_audiocpu->set_input_line(0, state ? ASSERT_LINE : CLEAR_LINE);
}
-static const ay8910_interface ay8910_config =
-{
- AY8910_LEGACY_OUTPUT,
- AY8910_DEFAULT_LOADS,
- DEVCB_NULL, DEVCB_NULL, DEVCB_NULL, DEVCB_NULL
-};
-
-
-
/*************************************
*
* Machine driver
@@ -781,7 +772,6 @@ static MACHINE_CONFIG_START( tokio, bublbobl_state )
MCFG_SOUND_ADD("ymsnd", YM2203, MAIN_XTAL/8)
MCFG_YM2203_IRQ_HANDLER(WRITELINE(bublbobl_state, irqhandler))
- MCFG_YM2203_AY8910_INTF(&ay8910_config)
MCFG_SOUND_ROUTE(0, "mono", 0.08)
MCFG_SOUND_ROUTE(1, "mono", 0.08)
MCFG_SOUND_ROUTE(2, "mono", 0.08)
@@ -864,7 +854,6 @@ static MACHINE_CONFIG_START( bublbobl, bublbobl_state )
MCFG_SOUND_ADD("ym1", YM2203, MAIN_XTAL/8)
MCFG_YM2203_IRQ_HANDLER(WRITELINE(bublbobl_state, irqhandler))
- MCFG_YM2203_AY8910_INTF(&ay8910_config)
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25)
MCFG_SOUND_ADD("ym2", YM3526, MAIN_XTAL/8)
diff --git a/src/mame/drivers/buggychl.c b/src/mame/drivers/buggychl.c
index 42365414050..32d7d5825c4 100644
--- a/src/mame/drivers/buggychl.c
+++ b/src/mame/drivers/buggychl.c
@@ -325,28 +325,6 @@ WRITE8_MEMBER(buggychl_state::port_b_1_w)
/* TRBL/BASS for the 7630 on this 8910 output */
}
-
-static const ay8910_interface ay8910_interface_1 =
-{
- AY8910_LEGACY_OUTPUT,
- AY8910_DEFAULT_LOADS,
- DEVCB_NULL,
- DEVCB_NULL,
- DEVCB_DRIVER_MEMBER(buggychl_state,port_a_0_w),
- DEVCB_DRIVER_MEMBER(buggychl_state,port_b_0_w)
-};
-
-static const ay8910_interface ay8910_interface_2 =
-{
- AY8910_LEGACY_OUTPUT,
- AY8910_DEFAULT_LOADS,
- DEVCB_NULL,
- DEVCB_NULL,
- DEVCB_DRIVER_MEMBER(buggychl_state,port_a_1_w),
- DEVCB_DRIVER_MEMBER(buggychl_state,port_b_1_w)
-};
-
-
void buggychl_state::machine_start()
{
UINT8 *ROM = memregion("maincpu")->base();
@@ -413,11 +391,13 @@ static MACHINE_CONFIG_START( buggychl, buggychl_state )
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_SOUND_ADD("ay1", AY8910, 8000000/4)
- MCFG_SOUND_CONFIG(ay8910_interface_1)
+ MCFG_AY8910_PORT_A_WRITE_CB(WRITE8(buggychl_state, port_a_0_w))
+ MCFG_AY8910_PORT_B_WRITE_CB(WRITE8(buggychl_state, port_b_0_w))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50)
MCFG_SOUND_ADD("ay2", AY8910, 8000000/4)
- MCFG_SOUND_CONFIG(ay8910_interface_2)
+ MCFG_AY8910_PORT_A_WRITE_CB(WRITE8(buggychl_state, port_a_1_w))
+ MCFG_AY8910_PORT_B_WRITE_CB(WRITE8(buggychl_state, port_b_1_w))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50)
MCFG_SOUND_ADD("msm", MSM5232, 2000000)
diff --git a/src/mame/drivers/calomega.c b/src/mame/drivers/calomega.c
index 031561bcbda..1c231211412 100644
--- a/src/mame/drivers/calomega.c
+++ b/src/mame/drivers/calomega.c
@@ -2565,41 +2565,6 @@ WRITE_LINE_MEMBER(calomega_state::write_acia_clock)
}
/*************************************************
-* Sound Interfaces *
-*************************************************/
-
-static const ay8910_interface sys903_ay8912_intf =
-{
- AY8910_LEGACY_OUTPUT,
- AY8910_DEFAULT_LOADS,
- DEVCB_INPUT_PORT("SW3"), /* from schematics */
- DEVCB_NULL,
- DEVCB_NULL,
- DEVCB_NULL
-};
-
-static const ay8910_interface sys905_ay8912_intf =
-{
- AY8910_LEGACY_OUTPUT,
- AY8910_DEFAULT_LOADS,
- DEVCB_NULL,
- DEVCB_NULL,
- DEVCB_NULL,
- DEVCB_NULL
-};
-
-static const ay8910_interface sys906_ay8912_intf =
-{
- AY8910_LEGACY_OUTPUT,
- AY8910_DEFAULT_LOADS,
- DEVCB_INPUT_PORT("SW2"), /* From PCB pic. Value is stored at $0539 */
- DEVCB_NULL,
- DEVCB_DRIVER_MEMBER(calomega_state,ay_aout_w),
- DEVCB_DRIVER_MEMBER(calomega_state,ay_bout_w)
-};
-
-
-/*************************************************
* Machine Drivers *
*************************************************/
@@ -2640,7 +2605,7 @@ static MACHINE_CONFIG_START( sys903, calomega_state )
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_SOUND_ADD("ay8912", AY8912, SND_CLOCK) /* confirmed */
- MCFG_SOUND_CONFIG(sys903_ay8912_intf)
+ MCFG_AY8910_PORT_A_READ_CB(IOPORT("SW3")) /* from schematics */
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.75)
/* acia */
@@ -2661,7 +2626,7 @@ static MACHINE_CONFIG_DERIVED( s903mod, sys903 )
/* sound hardware */
MCFG_SOUND_MODIFY("ay8912")
- MCFG_SOUND_CONFIG(sys905_ay8912_intf)
+ MCFG_AY8910_PORT_A_READ_CB(NULL)
MCFG_DEVICE_REMOVE("acia6850_0")
@@ -2685,7 +2650,7 @@ static MACHINE_CONFIG_DERIVED( sys905, sys903 )
/* sound hardware */
MCFG_SOUND_MODIFY("ay8912")
- MCFG_SOUND_CONFIG(sys905_ay8912_intf)
+ MCFG_AY8910_PORT_A_READ_CB(NULL)
MCFG_DEVICE_REMOVE("acia6850_0")
@@ -2717,7 +2682,9 @@ static MACHINE_CONFIG_DERIVED( sys906, sys903 )
/* sound hardware */
MCFG_SOUND_MODIFY("ay8912")
- MCFG_SOUND_CONFIG(sys906_ay8912_intf)
+ MCFG_AY8910_PORT_A_READ_CB(IOPORT("SW2")) /* From PCB pic. Value is stored at $0539 */
+ MCFG_AY8910_PORT_A_WRITE_CB(WRITE8(calomega_state, ay_aout_w))
+ MCFG_AY8910_PORT_B_WRITE_CB(WRITE8(calomega_state, ay_bout_w))
MCFG_DEVICE_REMOVE("acia6850_0")
diff --git a/src/mame/drivers/capbowl.c b/src/mame/drivers/capbowl.c
index bc9417d5006..a39f650957d 100644
--- a/src/mame/drivers/capbowl.c
+++ b/src/mame/drivers/capbowl.c
@@ -299,23 +299,6 @@ static INPUT_PORTS_START( capbowl )
INPUT_PORTS_END
-
-/*************************************
- *
- * Sound definitions
- *
- *************************************/
-
-static const ay8910_interface ay8910_config =
-{
- AY8910_LEGACY_OUTPUT,
- AY8910_DEFAULT_LOADS,
- DEVCB_DEVICE_MEMBER("ticket", ticket_dispenser_device, read),
- DEVCB_NULL,
- DEVCB_NULL,
- DEVCB_DEVICE_MEMBER("ticket", ticket_dispenser_device, write), /* Also a status LED. See memory map above */
-};
-
/*************************************
*
* TMS34061 interfacing
@@ -383,7 +366,8 @@ static MACHINE_CONFIG_START( capbowl, capbowl_state )
MCFG_SOUND_ADD("ymsnd", YM2203, MASTER_CLOCK/2)
MCFG_YM2203_IRQ_HANDLER(WRITELINE(capbowl_state, firqhandler))
- MCFG_YM2203_AY8910_INTF(&ay8910_config)
+ MCFG_AY8910_PORT_A_READ_CB(DEVREAD8("ticket", ticket_dispenser_device, read))
+ MCFG_AY8910_PORT_B_WRITE_CB(DEVWRITE8("ticket", ticket_dispenser_device, write)) /* Also a status LED. See memory map above */
MCFG_SOUND_ROUTE(0, "mono", 0.07)
MCFG_SOUND_ROUTE(1, "mono", 0.07)
MCFG_SOUND_ROUTE(2, "mono", 0.07)
diff --git a/src/mame/drivers/carrera.c b/src/mame/drivers/carrera.c
index 94cf851fbf6..2c163970c11 100644
--- a/src/mame/drivers/carrera.c
+++ b/src/mame/drivers/carrera.c
@@ -277,17 +277,6 @@ READ8_MEMBER(carrera_state::unknown_r)
return machine().rand();
}
-/* these are set as input, but I have no idea which input port it uses is for the AY */
-static const ay8910_interface ay8910_config =
-{
- AY8910_LEGACY_OUTPUT,
- AY8910_DEFAULT_LOADS,
- DEVCB_DRIVER_MEMBER(carrera_state,unknown_r),
- DEVCB_DRIVER_MEMBER(carrera_state,unknown_r),
- DEVCB_NULL,
- DEVCB_NULL
-};
-
PALETTE_INIT_MEMBER(carrera_state, carrera)
{
const UINT8 *color_prom = memregion("proms")->base();
@@ -343,7 +332,9 @@ static MACHINE_CONFIG_START( carrera, carrera_state )
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_SOUND_ADD("aysnd", AY8910, MASTER_CLOCK/12)
- MCFG_SOUND_CONFIG(ay8910_config)
+ /* these are set as input, but I have no idea which input port it uses is for the AY */
+ MCFG_AY8910_PORT_A_READ_CB(READ8(carrera_state, unknown_r))
+ MCFG_AY8910_PORT_B_READ_CB(READ8(carrera_state, unknown_r))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.00)
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/caswin.c b/src/mame/drivers/caswin.c
index c9a1f25792d..606c82bedf1 100644
--- a/src/mame/drivers/caswin.c
+++ b/src/mame/drivers/caswin.c
@@ -290,16 +290,6 @@ static GFXDECODE_START( vvillage )
GFXDECODE_ENTRY( "gfx1", 0, tiles8x8_layout, 0, 16 )
GFXDECODE_END
-static const ay8910_interface ay8910_config =
-{
- AY8910_LEGACY_OUTPUT,
- AY8910_DEFAULT_LOADS,
- DEVCB_INPUT_PORT("DSW1"),
- DEVCB_INPUT_PORT("DSW2"),
- DEVCB_NULL,
- DEVCB_NULL
-};
-
PALETTE_INIT_MEMBER(caswin_state, caswin)
{
const UINT8 *color_prom = memregion("proms")->base();
@@ -352,7 +342,8 @@ static MACHINE_CONFIG_START( vvillage, caswin_state )
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_SOUND_ADD("aysnd", AY8910, 4000000 / 4)
- MCFG_SOUND_CONFIG(ay8910_config)
+ MCFG_AY8910_PORT_A_READ_CB(IOPORT("DSW1"))
+ MCFG_AY8910_PORT_B_READ_CB(IOPORT("DSW2"))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.40)
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/cave.c b/src/mame/drivers/cave.c
index b26814b8e16..cdd58236046 100644
--- a/src/mame/drivers/cave.c
+++ b/src/mame/drivers/cave.c
@@ -1973,13 +1973,6 @@ WRITE_LINE_MEMBER(cave_state::irqhandler)
m_audiocpu->set_input_line(0, state ? ASSERT_LINE : CLEAR_LINE);
}
-static const ay8910_interface ay8910_config =
-{
- AY8910_LEGACY_OUTPUT,
- AY8910_DEFAULT_LOADS,
- DEVCB_NULL, DEVCB_NULL, DEVCB_NULL, DEVCB_NULL
-};
-
/***************************************************************************
Dangun Feveron
***************************************************************************/
@@ -2273,7 +2266,6 @@ static MACHINE_CONFIG_START( hotdogst, cave_state )
MCFG_SOUND_ADD("ymsnd", YM2203, XTAL_32MHz/8)
MCFG_YM2203_IRQ_HANDLER(WRITELINE(cave_state, irqhandler))
- MCFG_YM2203_AY8910_INTF(&ay8910_config)
MCFG_SOUND_ROUTE(0, "lspeaker", 0.20)
MCFG_SOUND_ROUTE(0, "rspeaker", 0.20)
MCFG_SOUND_ROUTE(1, "lspeaker", 0.20)
@@ -2380,7 +2372,6 @@ static MACHINE_CONFIG_START( mazinger, cave_state )
MCFG_SOUND_ADD("ymsnd", YM2203, XTAL_4MHz)
MCFG_YM2203_IRQ_HANDLER(WRITELINE(cave_state, irqhandler))
- MCFG_YM2203_AY8910_INTF(&ay8910_config)
MCFG_SOUND_ROUTE(0, "lspeaker", 0.20)
MCFG_SOUND_ROUTE(0, "rspeaker", 0.20)
MCFG_SOUND_ROUTE(1, "lspeaker", 0.20)
@@ -2612,7 +2603,6 @@ static MACHINE_CONFIG_START( pwrinst2, cave_state )
MCFG_SOUND_ADD("ymsnd", YM2203, XTAL_16MHz / 4)
MCFG_YM2203_IRQ_HANDLER(WRITELINE(cave_state, irqhandler))
- MCFG_YM2203_AY8910_INTF(&ay8910_config)
MCFG_SOUND_ROUTE(0, "lspeaker", 0.40)
MCFG_SOUND_ROUTE(0, "rspeaker", 0.40)
MCFG_SOUND_ROUTE(1, "lspeaker", 0.40)
diff --git a/src/mame/drivers/cb2001.c b/src/mame/drivers/cb2001.c
index 9284c9fe91a..d4b758b908c 100644
--- a/src/mame/drivers/cb2001.c
+++ b/src/mame/drivers/cb2001.c
@@ -803,16 +803,6 @@ PALETTE_INIT_MEMBER(cb2001_state, cb2001)
}
}
-static const ay8910_interface cb2001_ay8910_config =
-{
- AY8910_LEGACY_OUTPUT,
- AY8910_DEFAULT_LOADS,
- DEVCB_INPUT_PORT("DSW4"),
- DEVCB_INPUT_PORT("DSW5"),
- DEVCB_NULL,
- DEVCB_NULL
-};
-
static MACHINE_CONFIG_START( cb2001, cb2001_state )
MCFG_CPU_ADD("maincpu", V35, 20000000) // CPU91A-011-0016JK004; encrypted cpu like nec v25/35 used in some irem game
MCFG_V25_CONFIG(cb2001_decryption_table)
@@ -845,7 +835,8 @@ static MACHINE_CONFIG_START( cb2001, cb2001_state )
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_SOUND_ADD("aysnd", AY8910, 1500000) // wrong
- MCFG_SOUND_CONFIG(cb2001_ay8910_config)
+ MCFG_AY8910_PORT_A_READ_CB(IOPORT("DSW4"))
+ MCFG_AY8910_PORT_B_READ_CB(IOPORT("DSW5"))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50)
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/cchance.c b/src/mame/drivers/cchance.c
index 4eb90a36ae9..19795c2a568 100644
--- a/src/mame/drivers/cchance.c
+++ b/src/mame/drivers/cchance.c
@@ -183,16 +183,6 @@ static GFXDECODE_START( cchance )
GFXDECODE_ENTRY( "gfx1", 0, cchance_layout, 0x0, 32 )
GFXDECODE_END
-static const ay8910_interface ay8910_config =
-{
- AY8910_LEGACY_OUTPUT,
- AY8910_DEFAULT_LOADS,
- DEVCB_INPUT_PORT("DSW1"),
- DEVCB_INPUT_PORT("DSW2"),
- DEVCB_NULL,
- DEVCB_NULL
-};
-
MACHINE_START_MEMBER(cchance_state,cchance)
{
save_item(NAME(m_screenflip));
@@ -240,7 +230,8 @@ static MACHINE_CONFIG_START( cchance, cchance_state )
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_SOUND_ADD("aysnd", AY8910, 1500000/2)
- MCFG_SOUND_CONFIG(ay8910_config)
+ MCFG_AY8910_PORT_A_READ_CB(IOPORT("DSW1"))
+ MCFG_AY8910_PORT_B_READ_CB(IOPORT("DSW2"))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25)
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/centiped.c b/src/mame/drivers/centiped.c
index a8ea4683b5a..782cec77460 100644
--- a/src/mame/drivers/centiped.c
+++ b/src/mame/drivers/centiped.c
@@ -1692,14 +1692,6 @@ GFXDECODE_END
*
*************************************/
-static const ay8910_interface centipdb_ay8910_interface =
-{
- AY8910_LEGACY_OUTPUT,
- AY8910_DEFAULT_LOADS,
- DEVCB_DRIVER_MEMBER(centiped_state,caterplr_rand_r)
-};
-
-
static const pokey_interface milliped_pokey_interface_1 =
{
{ DEVCB_NULL },
@@ -1796,7 +1788,7 @@ static MACHINE_CONFIG_DERIVED( centipdb, centiped )
/* sound hardware */
MCFG_SOUND_REPLACE("pokey", AY8910, 12096000/8)
- MCFG_SOUND_CONFIG(centipdb_ay8910_interface)
+ MCFG_AY8910_PORT_A_READ_CB(READ8(centiped_state, caterplr_rand_r))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 2.0)
MACHINE_CONFIG_END
@@ -1812,7 +1804,7 @@ static MACHINE_CONFIG_DERIVED( magworm, centiped_base )
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_SOUND_ADD("pokey", AY8910, 12096000/8)
- MCFG_SOUND_CONFIG(centipdb_ay8910_interface)
+ MCFG_AY8910_PORT_A_READ_CB(READ8(centiped_state, caterplr_rand_r))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 2.0)
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/chaknpop.c b/src/mame/drivers/chaknpop.c
index c781634431d..e4af56e852c 100644
--- a/src/mame/drivers/chaknpop.c
+++ b/src/mame/drivers/chaknpop.c
@@ -161,27 +161,6 @@ static ADDRESS_MAP_START( chaknpop_map, AS_PROGRAM, 8, chaknpop_state )
AM_RANGE(0xc000, 0xffff) AM_RAMBANK("bank1") // bitmap plane 1-4
ADDRESS_MAP_END
-static const ay8910_interface ay8910_interface_1 =
-{
- AY8910_LEGACY_OUTPUT,
- AY8910_DEFAULT_LOADS,
- DEVCB_INPUT_PORT("DSWA"), // DSW A
- DEVCB_INPUT_PORT("DSWB"), // DSW B
- DEVCB_NULL,
- DEVCB_NULL
-};
-
-static const ay8910_interface ay8910_interface_2 =
-{
- AY8910_LEGACY_OUTPUT,
- AY8910_DEFAULT_LOADS,
- DEVCB_NULL,
- DEVCB_NULL,
- DEVCB_DRIVER_MEMBER(chaknpop_state,unknown_port_1_w), // ??
- DEVCB_DRIVER_MEMBER(chaknpop_state,unknown_port_2_w) // ??
-};
-
-
/***************************************************************************
Input Port(s)
@@ -394,11 +373,13 @@ static MACHINE_CONFIG_START( chaknpop, chaknpop_state )
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_SOUND_ADD("ay1", AY8910, XTAL_18MHz / 12) /* Verified on PCB */
- MCFG_SOUND_CONFIG(ay8910_interface_1)
+ MCFG_AY8910_PORT_A_READ_CB(IOPORT("DSWA"))
+ MCFG_AY8910_PORT_B_READ_CB(IOPORT("DSWB"))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.15)
MCFG_SOUND_ADD("ay2", AY8910, XTAL_18MHz / 12) /* Verified on PCB */
- MCFG_SOUND_CONFIG(ay8910_interface_2)
+ MCFG_AY8910_PORT_A_WRITE_CB(WRITE8(chaknpop_state, unknown_port_1_w)) // ??
+ MCFG_AY8910_PORT_B_WRITE_CB(WRITE8(chaknpop_state, unknown_port_2_w)) // ??
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.10)
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/chanbara.c b/src/mame/drivers/chanbara.c
index 7c4d7b4f272..91852d7971f 100644
--- a/src/mame/drivers/chanbara.c
+++ b/src/mame/drivers/chanbara.c
@@ -373,18 +373,6 @@ WRITE_LINE_MEMBER(chanbara_state::sound_irq)
m_maincpu->set_input_line(0, state);
}
-
-static const ay8910_interface ay8910_config =
-{
- AY8910_LEGACY_OUTPUT,
- AY8910_DEFAULT_LOADS,
- DEVCB_NULL,
- DEVCB_NULL,
- DEVCB_DRIVER_MEMBER(chanbara_state,chanbara_ay_out_0_w),
- DEVCB_DRIVER_MEMBER(chanbara_state,chanbara_ay_out_1_w),
-};
-
-
void chanbara_state::machine_start()
{
save_item(NAME(m_scroll));
@@ -421,7 +409,10 @@ static MACHINE_CONFIG_START( chanbara, chanbara_state )
MCFG_SOUND_ADD("ymsnd", YM2203, 12000000/8)
MCFG_YM2203_IRQ_HANDLER(WRITELINE(chanbara_state, sound_irq))
- MCFG_YM2203_AY8910_INTF(&ay8910_config)
+
+
+ MCFG_AY8910_PORT_A_WRITE_CB(WRITE8(chanbara_state, chanbara_ay_out_0_w))
+ MCFG_AY8910_PORT_B_WRITE_CB(WRITE8(chanbara_state, chanbara_ay_out_1_w))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/changela.c b/src/mame/drivers/changela.c
index 521ebe88bf1..7aec5cc449e 100644
--- a/src/mame/drivers/changela.c
+++ b/src/mame/drivers/changela.c
@@ -379,28 +379,6 @@ static INPUT_PORTS_START( changela )
PORT_BIT( 0xff, 0x00, IPT_DIAL ) PORT_MINMAX(0x00, 0xff) PORT_SENSITIVITY(50) PORT_KEYDELTA(8) PORT_CONDITION("DSWA", 0x20, EQUALS, 0x00)
INPUT_PORTS_END
-
-static const ay8910_interface ay8910_interface_1 =
-{
- AY8910_LEGACY_OUTPUT,
- AY8910_DEFAULT_LOADS,
- DEVCB_INPUT_PORT("DSWA"),
- DEVCB_INPUT_PORT("DSWB"),
- DEVCB_NULL,
- DEVCB_NULL
-};
-
-static const ay8910_interface ay8910_interface_2 =
-{
- AY8910_LEGACY_OUTPUT,
- AY8910_DEFAULT_LOADS,
- DEVCB_INPUT_PORT("DSWC"),
- DEVCB_INPUT_PORT("DSWD"),
- DEVCB_NULL,
- DEVCB_NULL
-};
-
-
TIMER_DEVICE_CALLBACK_MEMBER(changela_state::changela_scanline)
{
int scanline = param;
@@ -517,11 +495,13 @@ static MACHINE_CONFIG_START( changela, changela_state )
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_SOUND_ADD("ay1", AY8910, 1250000)
- MCFG_SOUND_CONFIG(ay8910_interface_1)
+ MCFG_AY8910_PORT_A_READ_CB(IOPORT("DSWA"))
+ MCFG_AY8910_PORT_B_READ_CB(IOPORT("DSWB"))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50)
MCFG_SOUND_ADD("ay2", AY8910, 1250000)
- MCFG_SOUND_CONFIG(ay8910_interface_2)
+ MCFG_AY8910_PORT_A_READ_CB(IOPORT("DSWC"))
+ MCFG_AY8910_PORT_B_READ_CB(IOPORT("DSWD"))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50)
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/chinagat.c b/src/mame/drivers/chinagat.c
index 90414bd0611..d8868b233bb 100644
--- a/src/mame/drivers/chinagat.c
+++ b/src/mame/drivers/chinagat.c
@@ -510,15 +510,6 @@ WRITE_LINE_MEMBER(chinagat_state::chinagat_irq_handler)
m_soundcpu->set_input_line(0, state ? ASSERT_LINE : CLEAR_LINE );
}
-/* This is only on the second bootleg board */
-static const ay8910_interface ay8910_config =
-{
- AY8910_LEGACY_OUTPUT,
- AY8910_DEFAULT_LOADS,
- DEVCB_NULL, DEVCB_NULL, DEVCB_NULL, DEVCB_NULL
-};
-
-
MACHINE_START_MEMBER(chinagat_state,chinagat)
{
/* configure banks */
@@ -682,7 +673,6 @@ static MACHINE_CONFIG_START( saiyugoub2, chinagat_state )
MCFG_SOUND_ADD("ym1", YM2203, 3579545)
MCFG_YM2203_IRQ_HANDLER(WRITELINE(chinagat_state, chinagat_irq_handler))
- MCFG_YM2203_AY8910_INTF(&ay8910_config)
MCFG_SOUND_ROUTE(0, "mono", 0.50)
MCFG_SOUND_ROUTE(1, "mono", 0.50)
MCFG_SOUND_ROUTE(2, "mono", 0.50)
diff --git a/src/mame/drivers/chinsan.c b/src/mame/drivers/chinsan.c
index c67b589d150..b9fe7c3d179 100644
--- a/src/mame/drivers/chinsan.c
+++ b/src/mame/drivers/chinsan.c
@@ -150,17 +150,6 @@ WRITE8_MEMBER(chinsan_state::ym_port_w2)
logerror("ym_write port 2 %02x\n", data);
}
-
-static const ay8910_interface ay8910_config =
-{
- AY8910_LEGACY_OUTPUT,
- AY8910_DEFAULT_LOADS,
- DEVCB_INPUT_PORT("DSW1"),
- DEVCB_INPUT_PORT("DSW2"),
- DEVCB_DRIVER_MEMBER(chinsan_state,ym_port_w1),
- DEVCB_DRIVER_MEMBER(chinsan_state,ym_port_w2)
-};
-
WRITE8_MEMBER(chinsan_state::chinsan_port00_w)
{
m_port_select = data;
@@ -618,7 +607,10 @@ static MACHINE_CONFIG_START( chinsan, chinsan_state )
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_SOUND_ADD("ymsnd", YM2203, 1500000) /* ? Mhz */
- MCFG_YM2203_AY8910_INTF(&ay8910_config)
+ MCFG_AY8910_PORT_A_READ_CB(IOPORT("DSW1"))
+ MCFG_AY8910_PORT_B_READ_CB(IOPORT("DSW2"))
+ MCFG_AY8910_PORT_A_WRITE_CB(WRITE8(chinsan_state, ym_port_w1))
+ MCFG_AY8910_PORT_B_WRITE_CB(WRITE8(chinsan_state, ym_port_w2))
MCFG_SOUND_ROUTE(0, "mono", 0.15)
MCFG_SOUND_ROUTE(1, "mono", 0.15)
MCFG_SOUND_ROUTE(2, "mono", 0.15)
diff --git a/src/mame/drivers/citycon.c b/src/mame/drivers/citycon.c
index 2cf4c720b30..73156ba3d92 100644
--- a/src/mame/drivers/citycon.c
+++ b/src/mame/drivers/citycon.c
@@ -169,20 +169,6 @@ static GFXDECODE_START( citycon )
GFXDECODE_ENTRY( "gfx3", 0x0b000, tilelayout, 256, 16 )
GFXDECODE_END
-
-
-static const ay8910_interface ay8910_config =
-{
- AY8910_LEGACY_OUTPUT,
- AY8910_DEFAULT_LOADS,
- DEVCB_DRIVER_MEMBER(driver_device, soundlatch_byte_r),
- DEVCB_DRIVER_MEMBER(driver_device, soundlatch2_byte_r),
- DEVCB_NULL,
- DEVCB_NULL
-};
-
-
-
void citycon_state::machine_start()
{
save_item(NAME(m_bg_image));
@@ -226,7 +212,8 @@ static MACHINE_CONFIG_START( citycon, citycon_state )
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.40)
MCFG_SOUND_ADD("ymsnd", YM2203, 1250000)
- MCFG_YM2203_AY8910_INTF(&ay8910_config)
+ MCFG_AY8910_PORT_A_READ_CB(READ8(driver_device, soundlatch_byte_r))
+ MCFG_AY8910_PORT_B_READ_CB(READ8(driver_device, soundlatch2_byte_r))
MCFG_SOUND_ROUTE(0, "mono", 0.40)
MCFG_SOUND_ROUTE(1, "mono", 0.40)
MCFG_SOUND_ROUTE(2, "mono", 0.40)
diff --git a/src/mame/drivers/cntsteer.c b/src/mame/drivers/cntsteer.c
index 066df5cf216..c4ce91c563c 100644
--- a/src/mame/drivers/cntsteer.c
+++ b/src/mame/drivers/cntsteer.c
@@ -867,16 +867,6 @@ MACHINE_RESET_MEMBER(cntsteer_state,zerotrgt)
MACHINE_RESET_CALL_MEMBER(cntsteer);
}
-static const ay8910_interface ay8910_config =
-{
- AY8910_LEGACY_OUTPUT,
- AY8910_DEFAULT_LOADS,
- DEVCB_NULL,
- DEVCB_NULL,
- DEVCB_DEVICE_MEMBER("dac", dac_device, write_unsigned8),
- DEVCB_NULL
-};
-
static MACHINE_CONFIG_START( cntsteer, cntsteer_state )
/* basic machine hardware */
@@ -916,7 +906,7 @@ static MACHINE_CONFIG_START( cntsteer, cntsteer_state )
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_SOUND_ADD("ay1", AY8910, 1500000)
- MCFG_SOUND_CONFIG(ay8910_config)
+ MCFG_AY8910_PORT_A_WRITE_CB(DEVWRITE8("dac", dac_device, write_unsigned8))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50)
MCFG_SOUND_ADD("ay2", AY8910, 1500000)
diff --git a/src/mame/drivers/coinmstr.c b/src/mame/drivers/coinmstr.c
index f483ca33f1f..c5841c2b679 100644
--- a/src/mame/drivers/coinmstr.c
+++ b/src/mame/drivers/coinmstr.c
@@ -1437,18 +1437,6 @@ UINT32 coinmstr_state::screen_update_coinmstr(screen_device &screen, bitmap_ind1
}
-
-static const ay8910_interface ay8912_interface =
-{
- AY8910_LEGACY_OUTPUT,
- AY8910_DEFAULT_LOADS,
- DEVCB_INPUT_PORT("DSW1"),
- DEVCB_NULL,
- DEVCB_NULL,
- DEVCB_NULL
-};
-
-
static MACHINE_CONFIG_START( coinmstr, coinmstr_state )
MCFG_CPU_ADD("maincpu", Z80, CPU_CLOCK) // 7 MHz.
MCFG_CPU_PROGRAM_MAP(coinmstr_map)
@@ -1486,7 +1474,7 @@ static MACHINE_CONFIG_START( coinmstr, coinmstr_state )
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_SOUND_ADD("aysnd", AY8910, SND_CLOCK)
- MCFG_SOUND_CONFIG(ay8912_interface)
+ MCFG_AY8910_PORT_A_READ_CB(IOPORT("DSW1"))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25)
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/combatsc.c b/src/mame/drivers/combatsc.c
index 1352998d428..f12a86b2ed7 100644
--- a/src/mame/drivers/combatsc.c
+++ b/src/mame/drivers/combatsc.c
@@ -635,26 +635,6 @@ GFXDECODE_END
*
*************************************/
-static const ay8910_interface ay8910_config =
-{
- AY8910_LEGACY_OUTPUT,
- AY8910_DEFAULT_LOADS,
- DEVCB_NULL,
- DEVCB_NULL,
- DEVCB_DRIVER_MEMBER(combatsc_state,combatsc_portA_w),
- DEVCB_NULL
-};
-
-static const ay8910_interface ay8910_bootleg_config =
-{
- AY8910_LEGACY_OUTPUT,
- AY8910_DEFAULT_LOADS,
- DEVCB_NULL,
- DEVCB_NULL,
- DEVCB_NULL,
- DEVCB_NULL
-};
-
MACHINE_START_MEMBER(combatsc_state,combatsc)
{
UINT8 *MEM = memregion("maincpu")->base() + 0x38000;
@@ -748,7 +728,7 @@ static MACHINE_CONFIG_START( combatsc, combatsc_state )
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_SOUND_ADD("ymsnd", YM2203, 3000000)
- MCFG_YM2203_AY8910_INTF(&ay8910_config)
+ MCFG_AY8910_PORT_A_WRITE_CB(WRITE8(combatsc_state, combatsc_portA_w))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.20)
MCFG_SOUND_ADD("upd", UPD7759, UPD7759_STANDARD_CLOCK)
@@ -792,7 +772,6 @@ static MACHINE_CONFIG_START( combatscb, combatsc_state )
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_SOUND_ADD("ymsnd", YM2203, 3000000)
- MCFG_YM2203_AY8910_INTF(&ay8910_bootleg_config)
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.20)
MCFG_SOUND_ADD("msm5205", MSM5205, 384000)
diff --git a/src/mame/drivers/compgolf.c b/src/mame/drivers/compgolf.c
index fecbd1143cf..b8135384a2b 100644
--- a/src/mame/drivers/compgolf.c
+++ b/src/mame/drivers/compgolf.c
@@ -204,17 +204,6 @@ WRITE_LINE_MEMBER(compgolf_state::sound_irq)
m_maincpu->set_input_line(0, state);
}
-static const ay8910_interface ay8910_config =
-{
- AY8910_LEGACY_OUTPUT,
- AY8910_DEFAULT_LOADS,
- DEVCB_NULL,
- DEVCB_NULL,
- DEVCB_DRIVER_MEMBER(compgolf_state,compgolf_scrollx_lo_w),
- DEVCB_DRIVER_MEMBER(compgolf_state,compgolf_scrolly_lo_w),
-};
-
-
/*************************************
*
* Machine driver
@@ -265,7 +254,8 @@ static MACHINE_CONFIG_START( compgolf, compgolf_state )
MCFG_SOUND_ADD("ymsnd", YM2203, 1500000)
MCFG_YM2203_IRQ_HANDLER(WRITELINE(compgolf_state, sound_irq))
- MCFG_YM2203_AY8910_INTF(&ay8910_config)
+ MCFG_AY8910_PORT_A_WRITE_CB(WRITE8(compgolf_state, compgolf_scrollx_lo_w))
+ MCFG_AY8910_PORT_B_WRITE_CB(WRITE8(compgolf_state, compgolf_scrolly_lo_w))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/corona.c b/src/mame/drivers/corona.c
index cfbafe535d6..e4cac2d16c0 100644
--- a/src/mame/drivers/corona.c
+++ b/src/mame/drivers/corona.c
@@ -1342,20 +1342,6 @@ INPUT_PORTS_END
/*******************************************
-* Sound Interface *
-*******************************************/
-static const ay8910_interface aysnd_config =
-{
- AY8910_LEGACY_OUTPUT,
- AY8910_DEFAULT_LOADS,
- DEVCB_NULL, /* Port A read */
- DEVCB_NULL, /* Port B read */
- DEVCB_DRIVER_MEMBER(corona_state,ay_port_a_out), /* Port A write */
- DEVCB_DRIVER_MEMBER(corona_state,ay_port_b_out) /* Port B write */
-};
-
-
-/*******************************************
* Machine Drivers *
*******************************************/
@@ -1388,7 +1374,8 @@ static MACHINE_CONFIG_START( winner81, corona_state )
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_SOUND_ADD("aysnd", AY8912, AY_CLK1) /* measured */
- MCFG_SOUND_CONFIG(aysnd_config)
+ MCFG_AY8910_PORT_A_WRITE_CB(WRITE8(corona_state, ay_port_a_out)) /* Port A write */
+ MCFG_AY8910_PORT_B_WRITE_CB(WRITE8(corona_state, ay_port_b_out)) /* Port B write */
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/crshrace.c b/src/mame/drivers/crshrace.c
index 6f87b0d3a28..0c54c5a8e5d 100644
--- a/src/mame/drivers/crshrace.c
+++ b/src/mame/drivers/crshrace.c
@@ -467,6 +467,7 @@ static MACHINE_CONFIG_START( crshrace, crshrace_state )
MCFG_SOUND_ADD("ymsnd", YM2610, 8000000)
MCFG_YM2610_IRQ_HANDLER(WRITELINE(crshrace_state, irqhandler))
+ MCFG_AY8910_OUTPUT_TYPE(AY8910_LEGACY_OUTPUT | AY8910_SINGLE_OUTPUT)
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/darius.c b/src/mame/drivers/darius.c
index 17fce3f8465..c29b570b3d2 100644
--- a/src/mame/drivers/darius.c
+++ b/src/mame/drivers/darius.c
@@ -759,27 +759,6 @@ WRITE_LINE_MEMBER(darius_state::irqhandler) /* assumes Z80 sandwiched between 68
m_audiocpu->set_input_line(0, state ? ASSERT_LINE : CLEAR_LINE);
}
-static const ay8910_interface ay8910_config_1 =
-{
- AY8910_LEGACY_OUTPUT,
- AY8910_DEFAULT_LOADS,
- DEVCB_NULL, /* portA read */
- DEVCB_NULL,
- DEVCB_DRIVER_MEMBER(darius_state,darius_write_portA0), /* portA write */
- DEVCB_DRIVER_MEMBER(darius_state,darius_write_portB0), /* portB write */
-};
-
-static const ay8910_interface ay8910_config_2 =
-{
- AY8910_LEGACY_OUTPUT,
- AY8910_DEFAULT_LOADS,
- DEVCB_NULL, /* portA read */
- DEVCB_NULL,
- DEVCB_DRIVER_MEMBER(darius_state,darius_write_portA1), /* portA write */
- DEVCB_DRIVER_MEMBER(darius_state,darius_write_portB1) /* portB write */
-};
-
-
/***********************************************************
MACHINE DRIVERS
***********************************************************/
@@ -898,7 +877,8 @@ static MACHINE_CONFIG_START( darius, darius_state )
MCFG_SOUND_ADD("ym1", YM2203, 4000000)
MCFG_YM2203_IRQ_HANDLER(WRITELINE(darius_state, irqhandler))
- MCFG_YM2203_AY8910_INTF(&ay8910_config_1)
+ MCFG_AY8910_PORT_A_WRITE_CB(WRITE8(darius_state, darius_write_portA0)) /* portA write */
+ MCFG_AY8910_PORT_B_WRITE_CB(WRITE8(darius_state, darius_write_portB0)) /* portB write */
MCFG_SOUND_ROUTE(0, "filter0.0l", 0.08)
MCFG_SOUND_ROUTE(0, "filter0.0r", 0.08)
MCFG_SOUND_ROUTE(1, "filter0.1l", 0.08)
@@ -909,7 +889,8 @@ static MACHINE_CONFIG_START( darius, darius_state )
MCFG_SOUND_ROUTE(3, "filter0.3r", 0.60)
MCFG_SOUND_ADD("ym2", YM2203, 4000000)
- MCFG_YM2203_AY8910_INTF(&ay8910_config_2)
+ MCFG_AY8910_PORT_A_WRITE_CB(WRITE8(darius_state, darius_write_portA1)) /* portA write */
+ MCFG_AY8910_PORT_B_WRITE_CB(WRITE8(darius_state, darius_write_portB1)) /* portB write */
MCFG_SOUND_ROUTE(0, "filter1.0l", 0.08)
MCFG_SOUND_ROUTE(0, "filter1.0r", 0.08)
MCFG_SOUND_ROUTE(1, "filter1.1l", 0.08)
diff --git a/src/mame/drivers/ddayjlc.c b/src/mame/drivers/ddayjlc.c
index 33eca144b7f..664c564b396 100644
--- a/src/mame/drivers/ddayjlc.c
+++ b/src/mame/drivers/ddayjlc.c
@@ -429,16 +429,6 @@ UINT32 ddayjlc_state::screen_update_ddayjlc(screen_device &screen, bitmap_ind16
return 0;
}
-static const ay8910_interface ay8910_config =
-{
- AY8910_LEGACY_OUTPUT,
- AY8910_DEFAULT_LOADS,
- DEVCB_DRIVER_MEMBER(driver_device, soundlatch_byte_r),
- DEVCB_NULL,
- DEVCB_NULL,
- DEVCB_NULL
-};
-
INTERRUPT_GEN_MEMBER(ddayjlc_state::ddayjlc_interrupt)
{
if(m_main_nmi_enable)
@@ -542,7 +532,7 @@ static MACHINE_CONFIG_START( ddayjlc, ddayjlc_state )
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_SOUND_ADD("ay1", AY8910, 12000000/6)
- MCFG_SOUND_CONFIG(ay8910_config)
+ MCFG_AY8910_PORT_A_READ_CB(READ8(driver_device, soundlatch_byte_r))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
MCFG_SOUND_ADD("ay2", AY8910, 12000000/6)
diff --git a/src/mame/drivers/ddenlovr.c b/src/mame/drivers/ddenlovr.c
index c265ca3ebd9..30184da8de4 100644
--- a/src/mame/drivers/ddenlovr.c
+++ b/src/mame/drivers/ddenlovr.c
@@ -4182,15 +4182,6 @@ ADDRESS_MAP_END
Hanafuda Hana Tengoku
***************************************************************************/
-static const ay8910_interface htengoku_ay8910_interface =
-{
- AY8910_LEGACY_OUTPUT,
- AY8910_DEFAULT_LOADS,
- // A B
- DEVCB_DRIVER_MEMBER(ddenlovr_state,htengoku_dsw_r), DEVCB_NULL, // R
- DEVCB_NULL, DEVCB_DRIVER_MEMBER(ddenlovr_state,htengoku_dsw_w) // W
-};
-
static ADDRESS_MAP_START( yarunara_mem_map, AS_PROGRAM, 8, dynax_state )
AM_RANGE( 0x0000, 0x5fff ) AM_ROM
AM_RANGE( 0x6000, 0x6fff ) AM_RAM
@@ -4231,7 +4222,8 @@ static MACHINE_CONFIG_START( htengoku, ddenlovr_state )
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_SOUND_ADD("aysnd", AY8910, 20000000 / 16)
- MCFG_SOUND_CONFIG(htengoku_ay8910_interface)
+ MCFG_AY8910_PORT_A_READ_CB(READ8(ddenlovr_state, htengoku_dsw_r))
+ MCFG_AY8910_PORT_B_WRITE_CB(WRITE8(ddenlovr_state, htengoku_dsw_w))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.20)
MCFG_SOUND_ADD("ymsnd", YM2413, 3579545)
@@ -9475,16 +9467,6 @@ static MACHINE_CONFIG_DERIVED( akamaru, ddenlovr )
MCFG_CPU_PROGRAM_MAP(akamaru_map)
MACHINE_CONFIG_END
-
-static const ay8910_interface quiz365_ay8910_interface =
-{
- AY8910_LEGACY_OUTPUT,
- AY8910_DEFAULT_LOADS,
- // A B
- DEVCB_DRIVER_MEMBER(ddenlovr_state,quiz365_input_r), DEVCB_NULL, // R
- DEVCB_NULL, DEVCB_DRIVER_MEMBER(ddenlovr_state,ddenlovr_select_w) // W
-};
-
static MACHINE_CONFIG_DERIVED( quiz365, ddenlovr )
/* basic machine hardware */
@@ -9492,7 +9474,8 @@ static MACHINE_CONFIG_DERIVED( quiz365, ddenlovr )
MCFG_CPU_PROGRAM_MAP(quiz365_map)
MCFG_SOUND_MODIFY("aysnd")
- MCFG_SOUND_CONFIG(quiz365_ay8910_interface)
+ MCFG_AY8910_PORT_A_READ_CB(READ8(ddenlovr_state, quiz365_input_r))
+ MCFG_AY8910_PORT_B_WRITE_CB(WRITE8(ddenlovr_state, ddenlovr_select_w))
MACHINE_CONFIG_END
static MACHINE_CONFIG_DERIVED( nettoqc, ddenlovr )
@@ -9902,15 +9885,6 @@ TIMER_DEVICE_CALLBACK_MEMBER(ddenlovr_state::mjmyster_irq)
m_maincpu->set_input_line_and_vector(0, HOLD_LINE, 0xfa);
}
-static const ay8910_interface mjmyster_ay8910_interface =
-{
- AY8910_LEGACY_OUTPUT,
- AY8910_DEFAULT_LOADS,
- // A B
- DEVCB_NULL, DEVCB_NULL, // R
- DEVCB_NULL, DEVCB_DRIVER_MEMBER(ddenlovr_state,ddenlovr_select_w) // W
-};
-
WRITE_LINE_MEMBER(ddenlovr_state::mjmyster_rtc_irq)
{
/* I haven't found a irq ack register, so I need this kludge to
@@ -9939,7 +9913,7 @@ static MACHINE_CONFIG_DERIVED( mjmyster, quizchq )
MCFG_MACHINE_START_OVERRIDE(ddenlovr_state,mjmyster)
MCFG_SOUND_ADD("aysnd", AY8910, 3579545)
- MCFG_SOUND_CONFIG(mjmyster_ay8910_interface)
+ MCFG_AY8910_PORT_B_WRITE_CB(WRITE8(ddenlovr_state, ddenlovr_select_w))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.30)
MACHINE_CONFIG_END
@@ -9966,15 +9940,6 @@ INTERRUPT_GEN_MEMBER(ddenlovr_state::hginga_irq)
m_maincpu->set_input_line_and_vector(0, HOLD_LINE, 0xf8);
}
-static const ay8910_interface hginga_ay8910_interface =
-{
- AY8910_LEGACY_OUTPUT,
- AY8910_DEFAULT_LOADS,
- // A B
- DEVCB_DRIVER_MEMBER(ddenlovr_state,hginga_dsw_r), DEVCB_NULL, // R
- DEVCB_NULL, DEVCB_DRIVER_MEMBER(ddenlovr_state,ddenlovr_select_w) // W
-};
-
WRITE_LINE_MEMBER(ddenlovr_state::hginga_rtc_irq)
{
/* I haven't found a irq ack register, so I need this kludge to
@@ -10001,7 +9966,8 @@ static MACHINE_CONFIG_DERIVED( hginga, quizchq )
MCFG_MACHINE_START_OVERRIDE(ddenlovr_state,mjmyster)
MCFG_SOUND_ADD("aysnd", AY8910, 3579545)
- MCFG_SOUND_CONFIG(hginga_ay8910_interface)
+ MCFG_AY8910_PORT_A_READ_CB(READ8(ddenlovr_state, hginga_dsw_r))
+ MCFG_AY8910_PORT_B_WRITE_CB(WRITE8(ddenlovr_state, ddenlovr_select_w))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.30)
MACHINE_CONFIG_END
@@ -10019,7 +9985,8 @@ static MACHINE_CONFIG_DERIVED( hgokou, quizchq )
MCFG_MACHINE_START_OVERRIDE(ddenlovr_state,mjmyster)
MCFG_SOUND_ADD("aysnd", AY8910, 3579545)
- MCFG_SOUND_CONFIG(hginga_ay8910_interface)
+ MCFG_AY8910_PORT_A_READ_CB(READ8(ddenlovr_state, hginga_dsw_r))
+ MCFG_AY8910_PORT_B_WRITE_CB(WRITE8(ddenlovr_state, ddenlovr_select_w))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.30)
MACHINE_CONFIG_END
@@ -10055,7 +10022,7 @@ static MACHINE_CONFIG_DERIVED( mjmyuniv, quizchq )
MCFG_MSM6242_OUT_INT_HANDLER(WRITELINE(ddenlovr_state, mjmyster_rtc_irq))
MCFG_SOUND_ADD("aysnd", AY8910, 1789772)
- MCFG_SOUND_CONFIG(mjmyster_ay8910_interface)
+ MCFG_AY8910_PORT_B_WRITE_CB(WRITE8(ddenlovr_state, ddenlovr_select_w))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.30)
MACHINE_CONFIG_END
@@ -10075,7 +10042,7 @@ static MACHINE_CONFIG_DERIVED( mjmyornt, quizchq )
MCFG_MSM6242_OUT_INT_HANDLER(WRITELINE(ddenlovr_state, mjmyster_rtc_irq))
MCFG_SOUND_ADD("aysnd", AY8910, 1789772)
- MCFG_SOUND_CONFIG(mjmyster_ay8910_interface)
+ MCFG_AY8910_PORT_B_WRITE_CB(WRITE8(ddenlovr_state, ddenlovr_select_w))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.30)
MACHINE_CONFIG_END
@@ -10277,15 +10244,6 @@ MACHINE_CONFIG_END
Return Of Sel Jan II
***************************************************************************/
-static const ay8910_interface seljan2_ay8910_interface =
-{
- AY8910_LEGACY_OUTPUT,
- AY8910_DEFAULT_LOADS,
- // A B
- DEVCB_DRIVER_MEMBER(ddenlovr_state,seljan2_dsw_r), DEVCB_NULL, // R
- DEVCB_NULL, DEVCB_DRIVER_MEMBER(ddenlovr_state,ddenlovr_select_w) // W
-};
-
MACHINE_START_MEMBER(ddenlovr_state,seljan2)
{
UINT8 *ROM = memregion("maincpu")->base();
@@ -10332,7 +10290,8 @@ static MACHINE_CONFIG_START( seljan2, ddenlovr_state )
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.80)
MCFG_SOUND_ADD("aysnd", AY8910, XTAL_28_63636MHz / 8)
- MCFG_SOUND_CONFIG(seljan2_ay8910_interface)
+ MCFG_AY8910_PORT_A_READ_CB(READ8(ddenlovr_state, seljan2_dsw_r))
+ MCFG_AY8910_PORT_B_WRITE_CB(WRITE8(ddenlovr_state, ddenlovr_select_w))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.30)
MCFG_OKIM6295_ADD("oki", XTAL_28_63636MHz / 28, OKIM6295_PIN7_HIGH) // ?
diff --git a/src/mame/drivers/ddribble.c b/src/mame/drivers/ddribble.c
index ff440e8c588..52c1355de09 100644
--- a/src/mame/drivers/ddribble.c
+++ b/src/mame/drivers/ddribble.c
@@ -219,17 +219,6 @@ static GFXDECODE_START( ddribble )
GFXDECODE_ENTRY( "gfx2", 0x40000, spritelayout, 64, 16 ) /* colors 0-15 but using lookup table */
GFXDECODE_END
-static const ay8910_interface ay8910_config =
-{
- AY8910_LEGACY_OUTPUT,
- AY8910_DEFAULT_LOADS,
- DEVCB_NULL,
- DEVCB_DRIVER_MEMBER(ddribble_state,ddribble_vlm5030_busy_r),
- DEVCB_DRIVER_MEMBER(ddribble_state,ddribble_vlm5030_ctrl_w),
- DEVCB_NULL
-};
-
-
void ddribble_state::machine_start()
{
@@ -296,7 +285,8 @@ static MACHINE_CONFIG_START( ddribble, ddribble_state )
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_SOUND_ADD("ymsnd", YM2203, XTAL_3_579545MHz) /* verified on pcb */
- MCFG_YM2203_AY8910_INTF(&ay8910_config)
+ MCFG_AY8910_PORT_B_READ_CB(READ8(ddribble_state, ddribble_vlm5030_busy_r))
+ MCFG_AY8910_PORT_A_WRITE_CB(WRITE8(ddribble_state, ddribble_vlm5030_ctrl_w))
MCFG_SOUND_ROUTE(0, "filter1", 0.25)
MCFG_SOUND_ROUTE(1, "filter2", 0.25)
MCFG_SOUND_ROUTE(2, "filter3", 0.25)
diff --git a/src/mame/drivers/dfruit.c b/src/mame/drivers/dfruit.c
index 07bb36b2143..1c806079423 100644
--- a/src/mame/drivers/dfruit.c
+++ b/src/mame/drivers/dfruit.c
@@ -360,15 +360,6 @@ TIMER_DEVICE_CALLBACK_MEMBER(dfruit_state::dfruit_irq_scanline)
}
}
-static const ay8910_interface ay8910_config =
-{
- AY8910_LEGACY_OUTPUT,
- AY8910_DEFAULT_LOADS,
- DEVCB_INPUT_PORT("IN4"), DEVCB_INPUT_PORT("IN5"), DEVCB_NULL, DEVCB_NULL,
-};
-
-
-
#define MASTER_CLOCK XTAL_14MHz
static MACHINE_CONFIG_START( dfruit, dfruit_state )
@@ -406,7 +397,8 @@ static MACHINE_CONFIG_START( dfruit, dfruit_state )
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_SOUND_ADD("opn", YM2203, MASTER_CLOCK/4)
- MCFG_YM2203_AY8910_INTF(&ay8910_config)
+ MCFG_AY8910_PORT_A_READ_CB(IOPORT("IN4"))
+ MCFG_AY8910_PORT_B_READ_CB(IOPORT("IN5"))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.30)
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/dlair.c b/src/mame/drivers/dlair.c
index 04dfb4af081..771fd47a4f5 100644
--- a/src/mame/drivers/dlair.c
+++ b/src/mame/drivers/dlair.c
@@ -687,23 +687,6 @@ static GFXDECODE_START( dlair )
GFXDECODE_END
-
-/*************************************
- *
- * Sound chip definitions
- *
- *************************************/
-
-static const ay8910_interface ay8910_config =
-{
- AY8910_LEGACY_OUTPUT,
- AY8910_DEFAULT_LOADS,
- DEVCB_INPUT_PORT("DSW1"),
- DEVCB_INPUT_PORT("DSW2")
-};
-
-
-
/*************************************
*
* Machine drivers
@@ -724,7 +707,8 @@ static MACHINE_CONFIG_START( dlair_base, dlair_state )
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
MCFG_SOUND_ADD("aysnd", AY8910, MASTER_CLOCK_US/8)
- MCFG_SOUND_CONFIG(ay8910_config)
+ MCFG_AY8910_PORT_A_READ_CB(IOPORT("DSW1"))
+ MCFG_AY8910_PORT_B_READ_CB(IOPORT("DSW2"))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.33)
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/dominob.c b/src/mame/drivers/dominob.c
index 6ffee9346d9..6e936f7815e 100644
--- a/src/mame/drivers/dominob.c
+++ b/src/mame/drivers/dominob.c
@@ -286,17 +286,6 @@ static GFXDECODE_START( dominob )
GFXDECODE_END
-static const ay8910_interface ay8910_config =
-{
- AY8910_LEGACY_OUTPUT,
- AY8910_DEFAULT_LOADS,
- DEVCB_NULL,
- DEVCB_INPUT_PORT("DSW"),
- DEVCB_NULL,
- DEVCB_NULL
-};
-
-
static MACHINE_CONFIG_START( dominob, dominob_state )
/* basic machine hardware */
@@ -322,7 +311,7 @@ static MACHINE_CONFIG_START( dominob, dominob_state )
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_SOUND_ADD("aysnd", AY8910, XTAL_12MHz/4)
- MCFG_SOUND_CONFIG(ay8910_config)
+ MCFG_AY8910_PORT_B_READ_CB(IOPORT("DSW"))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.30)
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/dooyong.c b/src/mame/drivers/dooyong.c
index a0f01eca09e..9e9963ea8c7 100644
--- a/src/mame/drivers/dooyong.c
+++ b/src/mame/drivers/dooyong.c
@@ -789,20 +789,6 @@ WRITE_LINE_MEMBER(dooyong_state::irqhandler_2203_2)
m_audiocpu->set_input_line(0, (m_interrupt_line_1 | m_interrupt_line_2) ? ASSERT_LINE : CLEAR_LINE);
}
-static const ay8910_interface ay8910_config_1 =
-{
- AY8910_LEGACY_OUTPUT,
- AY8910_DEFAULT_LOADS,
- DEVCB_DRIVER_MEMBER(dooyong_state,unk_r), DEVCB_NULL, DEVCB_NULL, DEVCB_NULL
-};
-
-static const ay8910_interface ay8910_config_2 =
-{
- AY8910_LEGACY_OUTPUT,
- AY8910_DEFAULT_LOADS,
- DEVCB_DRIVER_MEMBER(dooyong_state,unk_r), DEVCB_NULL, DEVCB_NULL, DEVCB_NULL
-};
-
/***************************************************************************
Machine driver(s)
@@ -815,12 +801,12 @@ static MACHINE_CONFIG_FRAGMENT( sound_2203 )
MCFG_SOUND_ADD("ym1", YM2203, 1500000)
MCFG_YM2203_IRQ_HANDLER(WRITELINE(dooyong_state,irqhandler_2203_1))
- MCFG_YM2203_AY8910_INTF(&ay8910_config_1)
+ MCFG_AY8910_PORT_A_READ_CB(READ8(dooyong_state, unk_r))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.40)
MCFG_SOUND_ADD("ym2", YM2203, 1500000)
MCFG_YM2203_IRQ_HANDLER(WRITELINE(dooyong_state, irqhandler_2203_2))
- MCFG_YM2203_AY8910_INTF(&ay8910_config_2)
+ MCFG_AY8910_PORT_A_READ_CB(READ8(dooyong_state, unk_r))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.40)
MACHINE_CONFIG_END
@@ -885,12 +871,12 @@ static MACHINE_CONFIG_START( lastday, dooyong_state )
MCFG_SOUND_ADD("ym1", YM2203, 4000000)
MCFG_YM2203_IRQ_HANDLER(WRITELINE(dooyong_state,irqhandler_2203_1))
- MCFG_YM2203_AY8910_INTF(&ay8910_config_1)
+ MCFG_AY8910_PORT_A_READ_CB(READ8(dooyong_state, unk_r))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.40)
MCFG_SOUND_ADD("ym2", YM2203, 4000000)
MCFG_YM2203_IRQ_HANDLER(WRITELINE(dooyong_state, irqhandler_2203_2))
- MCFG_YM2203_AY8910_INTF(&ay8910_config_2)
+ MCFG_AY8910_PORT_A_READ_CB(READ8(dooyong_state, unk_r))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.40)
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/dunhuang.c b/src/mame/drivers/dunhuang.c
index 736d4a5d834..1f2452a0370 100644
--- a/src/mame/drivers/dunhuang.c
+++ b/src/mame/drivers/dunhuang.c
@@ -761,17 +761,6 @@ GFXDECODE_END
Machine Drivers
***************************************************************************/
-static const ay8910_interface dunhuang_ay8910_interface =
-{
- AY8910_LEGACY_OUTPUT,
- AY8910_DEFAULT_LOADS,
- // A B
- DEVCB_NULL, DEVCB_DRIVER_MEMBER(dunhuang_state,dunhuang_dsw_r), // R
- DEVCB_DRIVER_MEMBER(dunhuang_state, dunhuang_input_w), DEVCB_NULL // W
-};
-
-
-
void dunhuang_state::machine_start()
{
UINT8 *ROM = memregion("maincpu")->base();
@@ -850,7 +839,8 @@ static MACHINE_CONFIG_START( dunhuang, dunhuang_state )
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.80)
MCFG_SOUND_ADD("ay8910", AY8910, 12000000/8)
- MCFG_SOUND_CONFIG(dunhuang_ay8910_interface)
+ MCFG_AY8910_PORT_B_READ_CB(READ8(dunhuang_state, dunhuang_dsw_r))
+ MCFG_AY8910_PORT_A_WRITE_CB(WRITE8(dunhuang_state, dunhuang_input_w))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.30)
MCFG_OKIM6295_ADD("oki", 12000000/8, OKIM6295_PIN7_HIGH)
diff --git a/src/mame/drivers/dwarfd.c b/src/mame/drivers/dwarfd.c
index 00fdc877e0c..da1e1717d60 100644
--- a/src/mame/drivers/dwarfd.c
+++ b/src/mame/drivers/dwarfd.c
@@ -999,17 +999,6 @@ PALETTE_INIT_MEMBER(dwarfd_state, dwarfd)
palette.set_pen_color(6, rgb_t(255, 0, 0));
}
-static const ay8910_interface ay8910_config =
-{
- AY8910_LEGACY_OUTPUT,
- AY8910_DEFAULT_LOADS,
- DEVCB_INPUT_PORT("IN2"),
- DEVCB_INPUT_PORT("IN1"),
- DEVCB_NULL,
- DEVCB_NULL
-};
-
-
void dwarfd_state::machine_start()
{
save_item(NAME(m_bank));
@@ -1077,7 +1066,8 @@ static MACHINE_CONFIG_START( dwarfd, dwarfd_state )
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_SOUND_ADD("aysnd", AY8910, 1500000)
- MCFG_SOUND_CONFIG(ay8910_config)
+ MCFG_AY8910_PORT_A_READ_CB(IOPORT("IN2"))
+ MCFG_AY8910_PORT_B_READ_CB(IOPORT("IN1"))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/dynax.c b/src/mame/drivers/dynax.c
index 7f79d9695b5..99fa5c1c17f 100644
--- a/src/mame/drivers/dynax.c
+++ b/src/mame/drivers/dynax.c
@@ -4056,17 +4056,6 @@ MACHINE_START_MEMBER(dynax_state,hnoridur)
Hana no Mai
***************************************************************************/
-static const ay8910_interface hanamai_ay8910_config =
-{
- AY8910_LEGACY_OUTPUT,
- AY8910_DEFAULT_LOADS,
- DEVCB_INPUT_PORT("DSW1"), /* Port A Read: DSW */
- DEVCB_INPUT_PORT("DSW0"), /* Port B Read: DSW */
- DEVCB_NULL, /* Port A Write */
- DEVCB_NULL, /* Port B Write */
-};
-
-
static MACHINE_CONFIG_START( hanamai, dynax_state )
/* basic machine hardware */
@@ -4102,7 +4091,8 @@ static MACHINE_CONFIG_START( hanamai, dynax_state )
MCFG_SOUND_ADD("ymsnd", YM2203, 22000000 / 8)
MCFG_YM2203_IRQ_HANDLER(WRITELINE(dynax_state, sprtmtch_sound_callback))
- MCFG_YM2203_AY8910_INTF(&hanamai_ay8910_config)
+ MCFG_AY8910_PORT_A_READ_CB(IOPORT("DSW1"))
+ MCFG_AY8910_PORT_B_READ_CB(IOPORT("DSW0"))
MCFG_SOUND_ROUTE(0, "mono", 0.20)
MCFG_SOUND_ROUTE(1, "mono", 0.20)
MCFG_SOUND_ROUTE(2, "mono", 0.20)
@@ -4120,13 +4110,6 @@ MACHINE_CONFIG_END
Hana Oriduru
***************************************************************************/
-static const ay8910_interface hnoridur_ay8910_interface =
-{
- AY8910_LEGACY_OUTPUT,
- AY8910_DEFAULT_LOADS,
- DEVCB_INPUT_PORT("DSW0") /* Port A Read: DSW */
-};
-
static MACHINE_CONFIG_START( hnoridur, dynax_state )
/* basic machine hardware */
@@ -4157,7 +4140,7 @@ static MACHINE_CONFIG_START( hnoridur, dynax_state )
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_SOUND_ADD("aysnd", AY8910, 22000000 / 16)
- MCFG_SOUND_CONFIG(hnoridur_ay8910_interface)
+ MCFG_AY8910_PORT_A_READ_CB(IOPORT("DSW0"))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.20)
MCFG_SOUND_ADD("ymsnd", YM2413, 3579545)
@@ -4204,7 +4187,7 @@ static MACHINE_CONFIG_START( hjingi, dynax_state )
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_SOUND_ADD("aysnd", AY8910, XTAL_22MHz / 16)
- MCFG_SOUND_CONFIG(hnoridur_ay8910_interface)
+ MCFG_AY8910_PORT_A_READ_CB(IOPORT("DSW0"))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.20)
MCFG_SOUND_ADD("ymsnd", YM2413, XTAL_3_579545MHz )
@@ -4221,16 +4204,6 @@ MACHINE_CONFIG_END
Sports Match
***************************************************************************/
-static const ay8910_interface sprtmtch_ay8910_config =
-{
- AY8910_LEGACY_OUTPUT,
- AY8910_DEFAULT_LOADS,
- DEVCB_INPUT_PORT("DSW0"), /* Port A Read: DSW */
- DEVCB_INPUT_PORT("DSW1"), /* Port B Read: DSW */
- DEVCB_NULL, /* Port A Write */
- DEVCB_NULL, /* Port B Write */
-};
-
static MACHINE_CONFIG_START( sprtmtch, dynax_state )
/* basic machine hardware */
@@ -4263,7 +4236,8 @@ static MACHINE_CONFIG_START( sprtmtch, dynax_state )
MCFG_SOUND_ADD("ymsnd", YM2203, 22000000 / 8)
MCFG_YM2203_IRQ_HANDLER(WRITELINE(dynax_state, sprtmtch_sound_callback))
- MCFG_YM2203_AY8910_INTF(&sprtmtch_ay8910_config)
+ MCFG_AY8910_PORT_A_READ_CB(IOPORT("DSW0"))
+ MCFG_AY8910_PORT_B_READ_CB(IOPORT("DSW1"))
MCFG_SOUND_ROUTE(0, "mono", 0.20)
MCFG_SOUND_ROUTE(1, "mono", 0.20)
MCFG_SOUND_ROUTE(2, "mono", 0.20)
@@ -4390,13 +4364,6 @@ MACHINE_CONFIG_END
// dual monitor, 2 CPU's, 2 blitters
-static const ay8910_interface jantouki_ay8910_config =
-{
- AY8910_LEGACY_OUTPUT,
- AY8910_DEFAULT_LOADS,
- DEVCB_NULL, DEVCB_NULL, DEVCB_NULL, DEVCB_NULL
-};
-
MACHINE_START_MEMBER(dynax_state,jantouki)
{
UINT8 *MAIN = memregion("maincpu")->base();
@@ -4461,7 +4428,6 @@ static MACHINE_CONFIG_START( jantouki, dynax_state )
MCFG_SOUND_ADD("ymsnd", YM2203, 22000000 / 8)
MCFG_YM2203_IRQ_HANDLER(WRITELINE(dynax_state, jantouki_sound_callback))
- MCFG_YM2203_AY8910_INTF(&jantouki_ay8910_config)
MCFG_SOUND_ROUTE(0, "mono", 0.20)
MCFG_SOUND_ROUTE(1, "mono", 0.20)
MCFG_SOUND_ROUTE(2, "mono", 0.20)
@@ -4594,15 +4560,6 @@ TIMER_DEVICE_CALLBACK_MEMBER(dynax_state::tenkai_interrupt)
m_maincpu->set_input_line(INPUT_LINE_IRQ1, HOLD_LINE);
}
-static const ay8910_interface tenkai_ay8910_interface =
-{
- AY8910_LEGACY_OUTPUT,
- AY8910_DEFAULT_LOADS,
- // A // B
- DEVCB_DRIVER_MEMBER(dynax_state,tenkai_dsw_r), DEVCB_NULL, // Read
- DEVCB_NULL, DEVCB_DRIVER_MEMBER(dynax_state,tenkai_dswsel_w) // Write
-};
-
MACHINE_START_MEMBER(dynax_state,tenkai)
{
MACHINE_START_CALL_MEMBER(dynax);
@@ -4646,7 +4603,8 @@ static MACHINE_CONFIG_START( tenkai, dynax_state )
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_SOUND_ADD("aysnd", AY8910, 22000000 / 16)
- MCFG_SOUND_CONFIG(tenkai_ay8910_interface)
+ MCFG_AY8910_PORT_A_READ_CB(READ8(dynax_state, tenkai_dsw_r))
+ MCFG_AY8910_PORT_B_WRITE_CB(WRITE8(dynax_state, tenkai_dswsel_w))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.20)
MCFG_SOUND_ADD("ymsnd", YM2413, 3579545)
@@ -4716,7 +4674,8 @@ static MACHINE_CONFIG_START( gekisha, dynax_state )
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_SOUND_ADD("aysnd", AY8910, XTAL_24MHz / 16) // ?
- MCFG_SOUND_CONFIG(tenkai_ay8910_interface)
+ MCFG_AY8910_PORT_A_READ_CB(READ8(dynax_state, tenkai_dsw_r))
+ MCFG_AY8910_PORT_B_WRITE_CB(WRITE8(dynax_state, tenkai_dswsel_w))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.20)
MCFG_SOUND_ADD("ymsnd", YM2413, XTAL_24MHz / 8) // ?
diff --git a/src/mame/drivers/enigma2.c b/src/mame/drivers/enigma2.c
index b19f9db34d8..c64965c982b 100644
--- a/src/mame/drivers/enigma2.c
+++ b/src/mame/drivers/enigma2.c
@@ -437,20 +437,6 @@ CUSTOM_INPUT_MEMBER(enigma2_state::p2_controls_r)
return ioport("P1CONTROLS")->read();
}
-
-
-static const ay8910_interface ay8910_config =
-{
- AY8910_LEGACY_OUTPUT,
- AY8910_DEFAULT_LOADS,
- DEVCB_DRIVER_MEMBER(enigma2_state,sound_latch_r),
- DEVCB_NULL,
- DEVCB_NULL,
- DEVCB_DRIVER_MEMBER(enigma2_state,protection_data_w)
-};
-
-
-
static ADDRESS_MAP_START( engima2_main_cpu_map, AS_PROGRAM, 8, enigma2_state )
ADDRESS_MAP_GLOBAL_MASK(0x7fff)
AM_RANGE(0x0000, 0x1fff) AM_ROM AM_WRITENOP
@@ -628,7 +614,8 @@ static MACHINE_CONFIG_START( enigma2, enigma2_state )
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_SOUND_ADD("aysnd", AY8910, AY8910_CLOCK)
- MCFG_SOUND_CONFIG(ay8910_config)
+ MCFG_AY8910_PORT_A_READ_CB(READ8(enigma2_state, sound_latch_r))
+ MCFG_AY8910_PORT_B_WRITE_CB(WRITE8(enigma2_state, protection_data_w))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
MACHINE_CONFIG_END
@@ -654,7 +641,8 @@ static MACHINE_CONFIG_START( enigma2a, enigma2_state )
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_SOUND_ADD("aysnd", AY8910, AY8910_CLOCK)
- MCFG_SOUND_CONFIG(ay8910_config)
+ MCFG_AY8910_PORT_A_READ_CB(READ8(enigma2_state, sound_latch_r))
+ MCFG_AY8910_PORT_B_WRITE_CB(WRITE8(enigma2_state, protection_data_w))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/equites.c b/src/mame/drivers/equites.c
index dec2a2d1d6c..c1b4ed45cdc 100644
--- a/src/mame/drivers/equites.c
+++ b/src/mame/drivers/equites.c
@@ -1089,17 +1089,6 @@ GFXDECODE_END
/******************************************************************************/
-static const ay8910_interface equites_8910intf =
-{
- AY8910_LEGACY_OUTPUT,
- AY8910_DEFAULT_LOADS,
- DEVCB_NULL,
- DEVCB_NULL,
- DEVCB_DRIVER_MEMBER(equites_state,equites_8910porta_w),
- DEVCB_DRIVER_MEMBER(equites_state,equites_8910portb_w)
-};
-
-
static const char *const alphamc07_sample_names[] =
{
"*equites",
@@ -1144,7 +1133,8 @@ static MACHINE_CONFIG_FRAGMENT( common_sound )
MCFG_SOUND_ROUTE(10,"mono", 0.12) // pin 22 Noise Output (this actually feeds an analog section)
MCFG_SOUND_ADD("aysnd", AY8910, XTAL_6_144MHz/4) /* verified on pcb */
- MCFG_SOUND_CONFIG(equites_8910intf)
+ MCFG_AY8910_PORT_A_WRITE_CB(WRITE8(equites_state, equites_8910porta_w))
+ MCFG_AY8910_PORT_B_WRITE_CB(WRITE8(equites_state, equites_8910portb_w))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.15)
MCFG_DAC_ADD("dac1")
diff --git a/src/mame/drivers/ettrivia.c b/src/mame/drivers/ettrivia.c
index 398725fb4e7..bfdaee6a80f 100644
--- a/src/mame/drivers/ettrivia.c
+++ b/src/mame/drivers/ettrivia.c
@@ -273,27 +273,6 @@ UINT32 ettrivia_state::screen_update_ettrivia(screen_device &screen, bitmap_ind1
return 0;
}
-static const ay8910_interface ay8912_interface_2 =
-{
- AY8910_LEGACY_OUTPUT,
- AY8910_DEFAULT_LOADS,
- DEVCB_INPUT_PORT("IN1"),
- DEVCB_NULL,
- DEVCB_NULL,
- DEVCB_NULL
-};
-
-static const ay8910_interface ay8912_interface_3 =
-{
- AY8910_LEGACY_OUTPUT,
- AY8910_DEFAULT_LOADS,
- DEVCB_INPUT_PORT("IN0"),
- DEVCB_NULL,
- DEVCB_NULL,
- DEVCB_NULL
-};
-
-
INTERRUPT_GEN_MEMBER(ettrivia_state::ettrivia_interrupt)
{
if( ioport("COIN")->read() & 0x01 )
@@ -330,11 +309,11 @@ static MACHINE_CONFIG_START( ettrivia, ettrivia_state )
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25)
MCFG_SOUND_ADD("ay2", AY8910, 1500000)
- MCFG_SOUND_CONFIG(ay8912_interface_2)
+ MCFG_AY8910_PORT_A_READ_CB(IOPORT("IN1"))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25)
MCFG_SOUND_ADD("ay3", AY8910, 1500000)
- MCFG_SOUND_CONFIG(ay8912_interface_3)
+ MCFG_AY8910_PORT_A_READ_CB(IOPORT("IN0"))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25)
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/exerion.c b/src/mame/drivers/exerion.c
index 5097a1f6be6..b01ffcdf4cd 100644
--- a/src/mame/drivers/exerion.c
+++ b/src/mame/drivers/exerion.c
@@ -335,25 +335,6 @@ static GFXDECODE_START( exerion )
GFXDECODE_END
-
-/*************************************
- *
- * Sound interfaces
- *
- *************************************/
-
-static const ay8910_interface ay8910_config =
-{
- AY8910_LEGACY_OUTPUT,
- AY8910_DEFAULT_LOADS,
- DEVCB_DRIVER_MEMBER(exerion_state,exerion_porta_r),
- DEVCB_NULL,
- DEVCB_NULL,
- DEVCB_DRIVER_MEMBER(exerion_state,exerion_portb_w)
-};
-
-
-
/*************************************
*
* Machine drivers
@@ -413,7 +394,8 @@ static MACHINE_CONFIG_START( exerion, exerion_state )
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.30)
MCFG_SOUND_ADD("ay2", AY8910, EXERION_AY8910_CLOCK)
- MCFG_SOUND_CONFIG(ay8910_config)
+ MCFG_AY8910_PORT_A_READ_CB(READ8(exerion_state, exerion_porta_r))
+ MCFG_AY8910_PORT_B_WRITE_CB(WRITE8(exerion_state, exerion_portb_w))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.30)
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/f1gp.c b/src/mame/drivers/f1gp.c
index 278ca0602d9..91b9b6646e8 100644
--- a/src/mame/drivers/f1gp.c
+++ b/src/mame/drivers/f1gp.c
@@ -450,6 +450,7 @@ static MACHINE_CONFIG_START( f1gp, f1gp_state )
MCFG_SOUND_ADD("ymsnd", YM2610, XTAL_8MHz)
MCFG_YM2610_IRQ_HANDLER(WRITELINE(f1gp_state, irqhandler))
+ MCFG_AY8910_OUTPUT_TYPE(AY8910_LEGACY_OUTPUT | AY8910_SINGLE_OUTPUT)
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/fireball.c b/src/mame/drivers/fireball.c
index 2501aec1421..9f8f7f2e07e 100644
--- a/src/mame/drivers/fireball.c
+++ b/src/mame/drivers/fireball.c
@@ -459,21 +459,6 @@ void fireball_state::machine_reset()
output_set_value("RV", 0);
}
-
-/******************************
-* AY 3-8910 *
-******************************/
-
-static const ay8910_interface ay8912_interface =
-{
- AY8910_LEGACY_OUTPUT,
- AY8910_DEFAULT_LOADS,
- DEVCB_NULL,
- DEVCB_NULL,
- DEVCB_NULL,
- DEVCB_NULL
-};
-
/*************************
* INT callback *
*************************/
@@ -515,7 +500,6 @@ static MACHINE_CONFIG_START( fireball, fireball_state )
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_SOUND_ADD("aysnd", AY8912, AY_CLK)
- MCFG_SOUND_CONFIG(ay8912_interface)
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
/* Video */
diff --git a/src/mame/drivers/flipjack.c b/src/mame/drivers/flipjack.c
index 73eb8b51171..10b9db22923 100644
--- a/src/mame/drivers/flipjack.c
+++ b/src/mame/drivers/flipjack.c
@@ -403,27 +403,6 @@ INPUT_PORTS_END
***************************************************************************/
-static const ay8910_interface ay8910_config_1 =
-{
- AY8910_LEGACY_OUTPUT, /* Flags */
- AY8910_DEFAULT_LOADS, /* Load on channel in ohms */
- DEVCB_DRIVER_MEMBER(flipjack_state,flipjack_soundlatch_r), /* Port A read */
- DEVCB_NULL, /* Port B read */
- DEVCB_NULL, /* Port A write */
- DEVCB_NULL /* Port B write */
-};
-
-static const ay8910_interface ay8910_config_2 =
-{
- AY8910_LEGACY_OUTPUT, /* Flags */
- AY8910_DEFAULT_LOADS, /* Load on channel in ohms */
- DEVCB_NULL, /* Port A read */
- DEVCB_NULL, /* Port B read */
- DEVCB_NULL, /* Port A write */
- DEVCB_NULL /* Port B write */
-};
-
-
static const gfx_layout tilelayout =
{
8, 8,
@@ -490,11 +469,10 @@ static MACHINE_CONFIG_START( flipjack, flipjack_state )
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_SOUND_ADD("ay1", AY8910, MASTER_CLOCK/8)
- MCFG_SOUND_CONFIG(ay8910_config_1)
+ MCFG_AY8910_PORT_A_READ_CB(READ8(flipjack_state, flipjack_soundlatch_r)) /* Port A read */
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50)
MCFG_SOUND_ADD("ay2", AY8910, MASTER_CLOCK/8)
- MCFG_SOUND_CONFIG(ay8910_config_2)
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50)
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/flstory.c b/src/mame/drivers/flstory.c
index 8b03dd7231c..ea264722867 100644
--- a/src/mame/drivers/flstory.c
+++ b/src/mame/drivers/flstory.c
@@ -972,16 +972,6 @@ static GFXDECODE_START( flstory )
GFXDECODE_END
-static const ay8910_interface ay8910_config =
-{
- AY8910_LEGACY_OUTPUT,
- AY8910_DEFAULT_LOADS,
- DEVCB_NULL,
- DEVCB_NULL,
- DEVCB_DRIVER_MEMBER(flstory_state,sound_control_2_w),
- DEVCB_DRIVER_MEMBER(flstory_state,sound_control_3_w)
-};
-
void flstory_state::machine_start()
{
/* video */
@@ -1087,7 +1077,8 @@ static MACHINE_CONFIG_START( flstory, flstory_state )
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_SOUND_ADD("aysnd", AY8910, XTAL_8MHz/4) /* verified on pcb */
- MCFG_SOUND_CONFIG(ay8910_config)
+ MCFG_AY8910_PORT_A_WRITE_CB(WRITE8(flstory_state, sound_control_2_w))
+ MCFG_AY8910_PORT_B_WRITE_CB(WRITE8(flstory_state, sound_control_3_w))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.10)
MCFG_SOUND_ADD("msm", MSM5232, XTAL_8MHz/4) /* verified on pcb */
@@ -1146,7 +1137,8 @@ static MACHINE_CONFIG_START( onna34ro, flstory_state )
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_SOUND_ADD("aysnd", AY8910, 8000000/4)
- MCFG_SOUND_CONFIG(ay8910_config)
+ MCFG_AY8910_PORT_A_WRITE_CB(WRITE8(flstory_state, sound_control_2_w))
+ MCFG_AY8910_PORT_B_WRITE_CB(WRITE8(flstory_state, sound_control_3_w))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.10)
MCFG_SOUND_ADD("msm", MSM5232, 8000000/4)
@@ -1205,7 +1197,8 @@ static MACHINE_CONFIG_START( victnine, flstory_state )
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_SOUND_ADD("aysnd", AY8910, 8000000/4)
- MCFG_SOUND_CONFIG(ay8910_config)
+ MCFG_AY8910_PORT_A_WRITE_CB(WRITE8(flstory_state, sound_control_2_w))
+ MCFG_AY8910_PORT_B_WRITE_CB(WRITE8(flstory_state, sound_control_3_w))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50)
MCFG_SOUND_ADD("msm", MSM5232, 8000000/4)
@@ -1270,7 +1263,8 @@ static MACHINE_CONFIG_START( rumba, flstory_state )
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_SOUND_ADD("aysnd", AY8910, XTAL_8MHz/4) /* verified on pcb */
- MCFG_SOUND_CONFIG(ay8910_config)
+ MCFG_AY8910_PORT_A_WRITE_CB(WRITE8(flstory_state, sound_control_2_w))
+ MCFG_AY8910_PORT_B_WRITE_CB(WRITE8(flstory_state, sound_control_3_w))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50)
MCFG_SOUND_ADD("msm", MSM5232, XTAL_8MHz/4) /* verified on pcb */
diff --git a/src/mame/drivers/forte2.c b/src/mame/drivers/forte2.c
index 20c51193c70..c6e74670df4 100644
--- a/src/mame/drivers/forte2.c
+++ b/src/mame/drivers/forte2.c
@@ -87,17 +87,6 @@ WRITE8_MEMBER(forte2_state::forte2_ay8910_set_input_mask)
m_input_mask = data;
}
-static const ay8910_interface forte2_ay8910_interface =
-{
- AY8910_LEGACY_OUTPUT,
- AY8910_DEFAULT_LOADS,
- DEVCB_DRIVER_MEMBER(forte2_state,forte2_ay8910_read_input),
- DEVCB_NULL,
- DEVCB_NULL,
- DEVCB_DRIVER_MEMBER(forte2_state,forte2_ay8910_set_input_mask)
-};
-
-
WRITE_LINE_MEMBER(forte2_state::vdp_interrupt)
{
m_maincpu->set_input_line(0, (state ? HOLD_LINE : CLEAR_LINE));
@@ -132,7 +121,8 @@ static MACHINE_CONFIG_START( pesadelo, forte2_state )
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_SOUND_ADD("aysnd", AY8910, (float)XTAL_3_579545MHz/2)
- MCFG_SOUND_CONFIG(forte2_ay8910_interface)
+ MCFG_AY8910_PORT_A_READ_CB(READ8(forte2_state, forte2_ay8910_read_input))
+ MCFG_AY8910_PORT_B_WRITE_CB(WRITE8(forte2_state, forte2_ay8910_set_input_mask))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50)
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/fortecar.c b/src/mame/drivers/fortecar.c
index af596c8483d..89a6854c2b4 100644
--- a/src/mame/drivers/fortecar.c
+++ b/src/mame/drivers/fortecar.c
@@ -514,18 +514,6 @@ Seems to work properly, but must be checked closely...
// logerror("AY port B write %02x\n",data);
}
-
-static const ay8910_interface ay8910_config =
-{
- AY8910_LEGACY_OUTPUT,
- AY8910_DEFAULT_LOADS,
- DEVCB_NULL,
- DEVCB_NULL,
- DEVCB_DRIVER_MEMBER(fortecar_state,ayporta_w),
- DEVCB_DRIVER_MEMBER(fortecar_state,ayportb_w)
-};
-
-
static ADDRESS_MAP_START( fortecar_map, AS_PROGRAM, 8, fortecar_state )
AM_RANGE(0x0000, 0xbfff) AM_ROM
AM_RANGE(0xc000, 0xc7ff) AM_ROM
@@ -690,7 +678,8 @@ static MACHINE_CONFIG_START( fortecar, fortecar_state )
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_SOUND_ADD("aysnd", AY8910, AY_CLOCK) /* 1.5 MHz, measured */
- MCFG_SOUND_CONFIG(ay8910_config)
+ MCFG_AY8910_PORT_A_WRITE_CB(WRITE8(fortecar_state, ayporta_w))
+ MCFG_AY8910_PORT_B_WRITE_CB(WRITE8(fortecar_state, ayportb_w))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50)
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/fromanc2.c b/src/mame/drivers/fromanc2.c
index 23226dda05d..afeb54b7efd 100644
--- a/src/mame/drivers/fromanc2.c
+++ b/src/mame/drivers/fromanc2.c
@@ -564,6 +564,7 @@ static MACHINE_CONFIG_START( fromanc2, fromanc2_state )
MCFG_SOUND_ADD("ymsnd", YM2610, 8000000)
MCFG_YM2610_IRQ_HANDLER(WRITELINE(fromanc2_state, irqhandler))
+ MCFG_AY8910_OUTPUT_TYPE(AY8910_LEGACY_OUTPUT | AY8910_SINGLE_OUTPUT)
MCFG_SOUND_ROUTE(0, "mono", 0.50)
MCFG_SOUND_ROUTE(1, "mono", 0.75)
MCFG_SOUND_ROUTE(2, "mono", 0.75)
@@ -616,6 +617,7 @@ static MACHINE_CONFIG_START( fromancr, fromanc2_state )
MCFG_SOUND_ADD("ymsnd", YM2610, 8000000)
MCFG_YM2610_IRQ_HANDLER(WRITELINE(fromanc2_state, irqhandler))
+ MCFG_AY8910_OUTPUT_TYPE(AY8910_LEGACY_OUTPUT | AY8910_SINGLE_OUTPUT)
MCFG_SOUND_ROUTE(0, "mono", 0.50)
MCFG_SOUND_ROUTE(1, "mono", 0.75)
MCFG_SOUND_ROUTE(2, "mono", 0.75)
@@ -665,6 +667,7 @@ static MACHINE_CONFIG_START( fromanc4, fromanc2_state )
MCFG_SOUND_ADD("ymsnd", YM2610, 8000000)
MCFG_YM2610_IRQ_HANDLER(WRITELINE(fromanc2_state, irqhandler))
+ MCFG_AY8910_OUTPUT_TYPE(AY8910_LEGACY_OUTPUT | AY8910_SINGLE_OUTPUT)
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/funkybee.c b/src/mame/drivers/funkybee.c
index f07d3d80ac6..9b19f67873e 100644
--- a/src/mame/drivers/funkybee.c
+++ b/src/mame/drivers/funkybee.c
@@ -267,17 +267,6 @@ static GFXDECODE_START( funkybee )
GFXDECODE_END
-static const ay8910_interface ay8910_config =
-{
- AY8910_LEGACY_OUTPUT,
- AY8910_DEFAULT_LOADS,
- DEVCB_INPUT_PORT("DSW"),
- DEVCB_NULL,
- DEVCB_NULL,
- DEVCB_NULL
-};
-
-
void funkybee_state::machine_start()
{
save_item(NAME(m_gfx_bank));
@@ -314,7 +303,7 @@ static MACHINE_CONFIG_START( funkybee, funkybee_state )
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_SOUND_ADD("aysnd", AY8910, 1500000)
- MCFG_SOUND_CONFIG(ay8910_config)
+ MCFG_AY8910_PORT_A_READ_CB(IOPORT("DSW"))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50)
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/funworld.c b/src/mame/drivers/funworld.c
index 5a6d652b123..3e0dfa3ed39 100644
--- a/src/mame/drivers/funworld.c
+++ b/src/mame/drivers/funworld.c
@@ -2843,30 +2843,6 @@ READ8_MEMBER(funworld_state::funquiz_ay8910_b_r)
return 0x00;
}
-/************************
-* Sound Interface *
-************************/
-
-static const ay8910_interface ay8910_intf =
-{
- AY8910_LEGACY_OUTPUT,
- AY8910_DEFAULT_LOADS,
- DEVCB_NULL, /* portA in */
- DEVCB_NULL, /* portB in */
- DEVCB_DRIVER_MEMBER(funworld_state,funworld_lamp_a_w), /* portA out */
- DEVCB_DRIVER_MEMBER(funworld_state,funworld_lamp_b_w) /* portB out */
-};
-
-static const ay8910_interface funquiz_ay8910_intf =
-{
- AY8910_LEGACY_OUTPUT,
- AY8910_DEFAULT_LOADS,
- DEVCB_DRIVER_MEMBER(funworld_state,funquiz_ay8910_a_r), /* portA in */
- DEVCB_DRIVER_MEMBER(funworld_state,funquiz_ay8910_b_r), /* portB in */
- DEVCB_DRIVER_MEMBER(funworld_state,funworld_lamp_a_w), /* portA out */
- DEVCB_DRIVER_MEMBER(funworld_state,funworld_lamp_b_w) /* portB out */
-};
-
/********************************
* Machine Start & Reset *
********************************/
@@ -2930,7 +2906,8 @@ static MACHINE_CONFIG_START( fw1stpal, funworld_state )
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_SOUND_ADD("ay8910", AY8910, SND_CLOCK) /* 2MHz */
- MCFG_SOUND_CONFIG(ay8910_intf)
+ MCFG_AY8910_PORT_A_WRITE_CB(WRITE8(funworld_state, funworld_lamp_a_w)) /* portA out */
+ MCFG_AY8910_PORT_B_WRITE_CB(WRITE8(funworld_state, funworld_lamp_b_w)) /* portB out */
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 2.5) /* analyzed to avoid clips */
MACHINE_CONFIG_END
@@ -2950,7 +2927,10 @@ static MACHINE_CONFIG_DERIVED( funquiz, fw1stpal )
MCFG_CPU_PROGRAM_MAP(funquiz_map)
MCFG_CPU_VBLANK_INT_DRIVER("screen", funworld_state, nmi_line_pulse)
MCFG_SOUND_REPLACE("ay8910", AY8910, SND_CLOCK) /* 2MHz */
- MCFG_SOUND_CONFIG(funquiz_ay8910_intf)
+ MCFG_AY8910_PORT_A_READ_CB(READ8(funworld_state, funquiz_ay8910_a_r)) /* portA in */
+ MCFG_AY8910_PORT_B_READ_CB(READ8(funworld_state, funquiz_ay8910_b_r)) /* portB in */
+ MCFG_AY8910_PORT_A_WRITE_CB(WRITE8(funworld_state, funworld_lamp_a_w)) /* portA out */
+ MCFG_AY8910_PORT_B_WRITE_CB(WRITE8(funworld_state, funworld_lamp_b_w)) /* portB out */
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 2.5)
MACHINE_CONFIG_END
@@ -2968,7 +2948,8 @@ static MACHINE_CONFIG_DERIVED( magicrd2, fw1stpal )
MCFG_MC6845_CHAR_WIDTH(4)
MCFG_SOUND_REPLACE("ay8910", AY8910, SND_CLOCK) /* 2MHz */
- MCFG_SOUND_CONFIG(ay8910_intf)
+ MCFG_AY8910_PORT_A_WRITE_CB(WRITE8(funworld_state, funworld_lamp_a_w)) /* portA out */
+ MCFG_AY8910_PORT_B_WRITE_CB(WRITE8(funworld_state, funworld_lamp_b_w)) /* portB out */
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.5) /* analyzed to avoid clips */
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/gaiden.c b/src/mame/drivers/gaiden.c
index 9b3501d4cf2..f00bd32ef0c 100644
--- a/src/mame/drivers/gaiden.c
+++ b/src/mame/drivers/gaiden.c
@@ -741,13 +741,6 @@ WRITE_LINE_MEMBER(gaiden_state::irqhandler)
m_audiocpu->set_input_line(0, state ? ASSERT_LINE : CLEAR_LINE);
}
-static const ay8910_interface ay8910_config =
-{
- AY8910_LEGACY_OUTPUT,
- AY8910_DEFAULT_LOADS,
- DEVCB_NULL, DEVCB_NULL, DEVCB_NULL, DEVCB_NULL
-};
-
static MACHINE_CONFIG_START( shadoww, gaiden_state )
/* basic machine hardware */
@@ -781,7 +774,6 @@ static MACHINE_CONFIG_START( shadoww, gaiden_state )
MCFG_SOUND_ADD("ym1", YM2203, 4000000)
MCFG_YM2203_IRQ_HANDLER(WRITELINE(gaiden_state, irqhandler))
- MCFG_YM2203_AY8910_INTF(&ay8910_config)
MCFG_SOUND_ROUTE(0, "mono", 0.15)
MCFG_SOUND_ROUTE(1, "mono", 0.15)
MCFG_SOUND_ROUTE(2, "mono", 0.15)
@@ -957,7 +949,6 @@ static MACHINE_CONFIG_START( mastninj, gaiden_state )
MCFG_SOUND_ADD("ym1", YM2203, 4000000) /* ?? MHz */
MCFG_YM2203_IRQ_HANDLER(WRITELINE(gaiden_state, irqhandler))
- MCFG_YM2203_AY8910_INTF(&ay8910_config)
MCFG_SOUND_ROUTE(0, "mono", 0.15)
MCFG_SOUND_ROUTE(1, "mono", 0.15)
MCFG_SOUND_ROUTE(2, "mono", 0.15)
diff --git a/src/mame/drivers/galaxian.c b/src/mame/drivers/galaxian.c
index 212a3ee48c2..22511269a26 100644
--- a/src/mame/drivers/galaxian.c
+++ b/src/mame/drivers/galaxian.c
@@ -4933,86 +4933,6 @@ GFXDECODE_END
*
*************************************/
-static const ay8910_interface frogger_ay8910_interface =
-{
- AY8910_DISCRETE_OUTPUT,
- {RES_K(5.1), RES_K(5.1), RES_K(5.1)},
- DEVCB_DRIVER_MEMBER(driver_device, soundlatch_byte_r),
- DEVCB_DRIVER_MEMBER(galaxian_state,frogger_sound_timer_r),
- DEVCB_NULL,
- DEVCB_NULL
-};
-
-static const ay8910_interface konami_ay8910_interface_1 =
-{
- AY8910_DISCRETE_OUTPUT,
- {RES_K(5.1), RES_K(5.1), RES_K(5.1)},
- DEVCB_DRIVER_MEMBER(driver_device, soundlatch_byte_r),
- DEVCB_DRIVER_MEMBER(galaxian_state,konami_sound_timer_r),
- DEVCB_NULL,
- DEVCB_NULL
-};
-
-static const ay8910_interface konami_ay8910_interface_2 =
-{
- AY8910_DISCRETE_OUTPUT,
- {RES_K(5.1), RES_K(5.1), RES_K(5.1)},
- DEVCB_NULL,
- DEVCB_NULL,
- DEVCB_NULL,
- DEVCB_NULL
-};
-
-static const ay8910_interface explorer_ay8910_interface_1 =
-{
- AY8910_LEGACY_OUTPUT,
- AY8910_DEFAULT_LOADS,
- DEVCB_DRIVER_MEMBER(galaxian_state,explorer_sound_latch_r),
- DEVCB_NULL,
- DEVCB_NULL,
- DEVCB_NULL
-};
-
-static const ay8910_interface explorer_ay8910_interface_2 =
-{
- AY8910_LEGACY_OUTPUT,
- AY8910_DEFAULT_LOADS,
- DEVCB_DRIVER_MEMBER(galaxian_state,konami_sound_timer_r),
- DEVCB_NULL,
- DEVCB_NULL,
- DEVCB_NULL
-};
-
-static const ay8910_interface sfx_ay8910_interface =
-{
- AY8910_LEGACY_OUTPUT,
- AY8910_DEFAULT_LOADS,
- DEVCB_NULL,
- DEVCB_NULL,
- DEVCB_DRIVER_MEMBER(driver_device, soundlatch2_byte_w),
- DEVCB_DRIVER_MEMBER(galaxian_state,sfx_sample_control_w)
-};
-
-static const ay8910_interface scorpion_ay8910_interface =
-{
- AY8910_LEGACY_OUTPUT,
- AY8910_DEFAULT_LOADS,
- DEVCB_NULL,
- DEVCB_NULL,
- DEVCB_DEVICE_MEMBER("digitalker", digitalker_device, digitalker_data_w),
- DEVCB_DRIVER_MEMBER(galaxian_state,scorpion_digitalker_control_w)
-};
-
-static const ay8910_interface checkmaj_ay8910_interface =
-{
- AY8910_LEGACY_OUTPUT,
- AY8910_DEFAULT_LOADS,
- DEVCB_DRIVER_MEMBER(driver_device, soundlatch_byte_r),
- DEVCB_NULL,
- DEVCB_NULL,
- DEVCB_NULL
-};
-
static const discrete_mixer_desc konami_sound_mixer_desc =
{DISC_MIXER_IS_OP_AMP,
{RES_K(5.1), RES_K(5.1), RES_K(5.1), RES_K(5.1), RES_K(5.1), RES_K(5.1)},
@@ -5123,7 +5043,10 @@ static MACHINE_CONFIG_FRAGMENT( konami_sound_1x_ay8910 )
/* sound hardware */
MCFG_SOUND_ADD("8910.0", AY8910, KONAMI_SOUND_CLOCK/8)
- MCFG_SOUND_CONFIG(frogger_ay8910_interface)
+ MCFG_AY8910_OUTPUT_TYPE(AY8910_DISCRETE_OUTPUT)
+ MCFG_AY8910_RES_LOADS(RES_K(5.1), RES_K(5.1), RES_K(5.1))
+ MCFG_AY8910_PORT_A_READ_CB(READ8(driver_device, soundlatch_byte_r))
+ MCFG_AY8910_PORT_B_READ_CB(READ8(galaxian_state, frogger_sound_timer_r))
MCFG_SOUND_ROUTE_EX(0, "konami", 1.0, 0)
MCFG_SOUND_ROUTE_EX(1, "konami", 1.0, 1)
MCFG_SOUND_ROUTE_EX(2, "konami", 1.0, 2)
@@ -5143,13 +5066,17 @@ static MACHINE_CONFIG_FRAGMENT( konami_sound_2x_ay8910 )
/* sound hardware */
MCFG_SOUND_ADD("8910.0", AY8910, KONAMI_SOUND_CLOCK/8)
- MCFG_SOUND_CONFIG(konami_ay8910_interface_1)
+ MCFG_AY8910_OUTPUT_TYPE(AY8910_DISCRETE_OUTPUT)
+ MCFG_AY8910_RES_LOADS(RES_K(5.1), RES_K(5.1), RES_K(5.1))
+ MCFG_AY8910_PORT_A_READ_CB(READ8(driver_device, soundlatch_byte_r))
+ MCFG_AY8910_PORT_B_READ_CB(READ8(galaxian_state, konami_sound_timer_r))
MCFG_SOUND_ROUTE_EX(0, "konami", 1.0, 0)
MCFG_SOUND_ROUTE_EX(1, "konami", 1.0, 1)
MCFG_SOUND_ROUTE_EX(2, "konami", 1.0, 2)
MCFG_SOUND_ADD("8910.1", AY8910, KONAMI_SOUND_CLOCK/8)
- MCFG_SOUND_CONFIG(konami_ay8910_interface_2)
+ MCFG_AY8910_OUTPUT_TYPE(AY8910_DISCRETE_OUTPUT)
+ MCFG_AY8910_RES_LOADS(RES_K(5.1), RES_K(5.1), RES_K(5.1))
MCFG_SOUND_ROUTE_EX(0, "konami", 1.0, 3)
MCFG_SOUND_ROUTE_EX(1, "konami", 1.0, 4)
MCFG_SOUND_ROUTE_EX(2, "konami", 1.0, 5)
@@ -5203,7 +5130,6 @@ static MACHINE_CONFIG_DERIVED( zigzag, galaxian_base )
/* sound hardware */
MCFG_SOUND_ADD("8910.0", AY8910, 1789750)
-
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50)
MACHINE_CONFIG_END
@@ -5314,7 +5240,7 @@ static MACHINE_CONFIG_DERIVED( checkmaj, galaxian_base )
/* sound hardware */
MCFG_SOUND_ADD("8910.0", AY8910, 1620000)
- MCFG_SOUND_CONFIG(checkmaj_ay8910_interface)
+ MCFG_AY8910_PORT_A_READ_CB(READ8(driver_device, soundlatch_byte_r))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 2)
MACHINE_CONFIG_END
@@ -5444,11 +5370,11 @@ static MACHINE_CONFIG_DERIVED( explorer, galaxian_base )
/* sound hardware */
MCFG_SOUND_ADD("8910.0", AY8910, KONAMI_SOUND_CLOCK/8)
- MCFG_SOUND_CONFIG(explorer_ay8910_interface_1)
+ MCFG_AY8910_PORT_A_READ_CB(READ8(galaxian_state, explorer_sound_latch_r))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25)
MCFG_SOUND_ADD("8910.1", AY8910, KONAMI_SOUND_CLOCK/8)
- MCFG_SOUND_CONFIG(explorer_ay8910_interface_2)
+ MCFG_AY8910_PORT_A_READ_CB(READ8(galaxian_state, konami_sound_timer_r))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25)
MACHINE_CONFIG_END
@@ -5472,7 +5398,8 @@ static MACHINE_CONFIG_DERIVED( scorpion, theend )
/* extra AY8910 with I/O ports */
MCFG_SOUND_ADD("8910.2", AY8910, KONAMI_SOUND_CLOCK/8)
- MCFG_SOUND_CONFIG(scorpion_ay8910_interface)
+ MCFG_AY8910_PORT_A_WRITE_CB(DEVWRITE8("digitalker", digitalker_device, digitalker_data_w))
+ MCFG_AY8910_PORT_B_WRITE_CB(WRITE8(galaxian_state, scorpion_digitalker_control_w))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25)
MCFG_DIGITALKER_ADD("digitalker", 4000000)
@@ -5511,7 +5438,8 @@ static MACHINE_CONFIG_DERIVED( sfx, galaxian_base )
/* port on 2nd 8910 is used for communication */
MCFG_SOUND_MODIFY("8910.1")
- MCFG_SOUND_CONFIG(sfx_ay8910_interface)
+ MCFG_AY8910_PORT_A_WRITE_CB(WRITE8(driver_device, soundlatch2_byte_w))
+ MCFG_AY8910_PORT_B_WRITE_CB(WRITE8(galaxian_state, sfx_sample_control_w))
/* DAC for the sample player */
MCFG_DAC_ADD("dac")
diff --git a/src/mame/drivers/galaxold.c b/src/mame/drivers/galaxold.c
index 69eaa11fbd3..3ffa6de7f11 100644
--- a/src/mame/drivers/galaxold.c
+++ b/src/mame/drivers/galaxold.c
@@ -2317,17 +2317,6 @@ static GFXDECODE_START( _4in1 )
GFXDECODE_END
-static const ay8910_interface bongo_ay8910_interface =
-{
- AY8910_LEGACY_OUTPUT,
- AY8910_DEFAULT_LOADS,
- DEVCB_INPUT_PORT("DSW1"),
- DEVCB_NULL,
- DEVCB_NULL,
- DEVCB_NULL
-};
-
-
static MACHINE_CONFIG_START( galaxold_base, galaxold_state )
/* basic machine hardware */
@@ -2579,7 +2568,7 @@ static MACHINE_CONFIG_DERIVED( bongo, galaxold_base )
/* sound hardware */
MCFG_SOUND_ADD("aysnd", AY8910, PIXEL_CLOCK/4)
- MCFG_SOUND_CONFIG(bongo_ay8910_interface)
+ MCFG_AY8910_PORT_A_READ_CB(IOPORT("DSW1"))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50)
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/gameplan.c b/src/mame/drivers/gameplan.c
index 1135ce3958d..6995d53d9fd 100644
--- a/src/mame/drivers/gameplan.c
+++ b/src/mame/drivers/gameplan.c
@@ -931,16 +931,6 @@ INPUT_PORTS_END
*
*************************************/
-static const ay8910_interface ay8910_config =
-{
- AY8910_LEGACY_OUTPUT,
- AY8910_DEFAULT_LOADS,
- DEVCB_INPUT_PORT("DSW2"),
- DEVCB_INPUT_PORT("DSW3")
-};
-
-
-
MACHINE_START_MEMBER(gameplan_state,gameplan)
{
/* register for save states */
@@ -987,7 +977,8 @@ static MACHINE_CONFIG_START( gameplan, gameplan_state )
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_SOUND_ADD("aysnd", AY8910, GAMEPLAN_AY8910_CLOCK)
- MCFG_SOUND_CONFIG(ay8910_config)
+ MCFG_AY8910_PORT_A_READ_CB(IOPORT("DSW2"))
+ MCFG_AY8910_PORT_B_READ_CB(IOPORT("DSW3"))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.33)
/* via */
diff --git a/src/mame/drivers/gladiatr.c b/src/mame/drivers/gladiatr.c
index c79aa852c07..321f7037766 100644
--- a/src/mame/drivers/gladiatr.c
+++ b/src/mame/drivers/gladiatr.c
@@ -616,27 +616,6 @@ READ8_MEMBER(gladiatr_state::f1_r)
return machine().rand();
}
-static const ay8910_interface ppking_ay8910_config =
-{
- AY8910_LEGACY_OUTPUT,
- AY8910_DEFAULT_LOADS,
- DEVCB_DRIVER_MEMBER(gladiatr_state,f1_r),
- DEVCB_DRIVER_MEMBER(gladiatr_state,f1_r),
- DEVCB_NULL,
- DEVCB_NULL
-};
-
-static const ay8910_interface ay8910_config =
-{
- AY8910_LEGACY_OUTPUT,
- AY8910_DEFAULT_LOADS,
- DEVCB_NULL,
- DEVCB_INPUT_PORT("DSW3"), /* port B read */
- DEVCB_DRIVER_MEMBER(gladiatr_state,gladiator_int_control_w), /* port A write */
- DEVCB_NULL,
-};
-
-
static MACHINE_CONFIG_START( ppking, gladiatr_state )
/* basic machine hardware */
@@ -676,7 +655,8 @@ static MACHINE_CONFIG_START( ppking, gladiatr_state )
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_SOUND_ADD("ymsnd", YM2203, XTAL_12MHz/8) /* verified on pcb */
- MCFG_YM2203_AY8910_INTF(&ppking_ay8910_config)
+ MCFG_AY8910_PORT_A_READ_CB(READ8(gladiatr_state, f1_r))
+ MCFG_AY8910_PORT_B_READ_CB(READ8(gladiatr_state, f1_r))
MCFG_SOUND_ROUTE(0, "mono", 0.60)
MCFG_SOUND_ROUTE(1, "mono", 0.60)
MCFG_SOUND_ROUTE(2, "mono", 0.60)
@@ -731,7 +711,8 @@ static MACHINE_CONFIG_START( gladiatr, gladiatr_state )
MCFG_SOUND_ADD("ymsnd", YM2203, XTAL_12MHz/8) /* verified on pcb */
MCFG_YM2203_IRQ_HANDLER(WRITELINE(gladiatr_state, gladiator_ym_irq))
- MCFG_YM2203_AY8910_INTF(&ay8910_config)
+ MCFG_AY8910_PORT_B_READ_CB(IOPORT("DSW3")) /* port B read */
+ MCFG_AY8910_PORT_A_WRITE_CB(WRITE8(gladiatr_state, gladiator_int_control_w)) /* port A write */
MCFG_SOUND_ROUTE(0, "mono", 0.60)
MCFG_SOUND_ROUTE(1, "mono", 0.60)
MCFG_SOUND_ROUTE(2, "mono", 0.60)
diff --git a/src/mame/drivers/gluck2.c b/src/mame/drivers/gluck2.c
index 2e14e67280a..4fb3ffa322d 100644
--- a/src/mame/drivers/gluck2.c
+++ b/src/mame/drivers/gluck2.c
@@ -502,26 +502,6 @@ static GFXDECODE_START( gluck2 )
GFXDECODE_ENTRY( "gfx", 0x3800, tilelayout, 0, 16 )
GFXDECODE_END
-
-/*************************************************
-* Sound Interfaces *
-*************************************************/
-
-static const ay8910_interface ay8910_intf =
-{
- AY8910_LEGACY_OUTPUT,
- AY8910_DEFAULT_LOADS,
- DEVCB_INPUT_PORT("SW3"),
- DEVCB_INPUT_PORT("SW2"),
-
-/* Output ports have a minimal activity during init.
- They seems unused (at least for Good Luck II)
-*/
- DEVCB_NULL,
- DEVCB_NULL
-};
-
-
/*********************************************
* Machine Drivers *
*********************************************/
@@ -560,7 +540,11 @@ static MACHINE_CONFIG_START( gluck2, gluck2_state )
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_SOUND_ADD("ay8910", AY8910, MASTER_CLOCK/8) /* guess */
- MCFG_SOUND_CONFIG(ay8910_intf)
+ MCFG_AY8910_PORT_A_READ_CB(IOPORT("SW3"))
+ MCFG_AY8910_PORT_B_READ_CB(IOPORT("SW2"))
+/* Output ports have a minimal activity during init.
+ They seems unused (at least for Good Luck II)
+*/
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
MCFG_SOUND_ADD("ymsnd", YM2413, SND_CLOCK)
diff --git a/src/mame/drivers/goal92.c b/src/mame/drivers/goal92.c
index ef37253cbea..d29089d12c3 100644
--- a/src/mame/drivers/goal92.c
+++ b/src/mame/drivers/goal92.c
@@ -214,13 +214,6 @@ WRITE_LINE_MEMBER(goal92_state::irqhandler)
//m_audiocpu->set_input_line(INPUT_LINE_NMI, state ? ASSERT_LINE : CLEAR_LINE);
}
-static const ay8910_interface ay8910_config =
-{
- AY8910_LEGACY_OUTPUT,
- AY8910_DEFAULT_LOADS,
- DEVCB_NULL, DEVCB_NULL, DEVCB_NULL, DEVCB_NULL
-};
-
WRITE_LINE_MEMBER(goal92_state::goal92_adpcm_int)
{
m_msm->data_w(m_msm5205next);
@@ -327,7 +320,6 @@ static MACHINE_CONFIG_START( goal92, goal92_state )
MCFG_SOUND_ADD("ym1", YM2203, 2500000/2)
MCFG_YM2203_IRQ_HANDLER(WRITELINE(goal92_state, irqhandler))
- MCFG_YM2203_AY8910_INTF(&ay8910_config)
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25)
MCFG_SOUND_ADD("ym2", YM2203, 2500000/2)
diff --git a/src/mame/drivers/goldngam.c b/src/mame/drivers/goldngam.c
index 83b5aa9f7c0..c00a366c3cf 100644
--- a/src/mame/drivers/goldngam.c
+++ b/src/mame/drivers/goldngam.c
@@ -544,16 +544,6 @@ GFXDECODE_END
*************************/
-static const ay8910_interface goldngam_ay8910_interface =
-{
- AY8910_LEGACY_OUTPUT,
- AY8910_DEFAULT_LOADS,
- DEVCB_NULL, //r
- DEVCB_NULL, //r
- DEVCB_NULL,
- DEVCB_NULL
-};
-
static MACHINE_CONFIG_START( swisspkr, goldngam_state )
/* basic machine hardware */
@@ -579,7 +569,6 @@ static MACHINE_CONFIG_START( swisspkr, goldngam_state )
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_SOUND_ADD("aysnd", AY8910, MASTER_CLOCK/4)
- MCFG_SOUND_CONFIG(goldngam_ay8910_interface)
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.00)
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/goldnpkr.c b/src/mame/drivers/goldnpkr.c
index 57f4431ab10..2fa73365111 100644
--- a/src/mame/drivers/goldnpkr.c
+++ b/src/mame/drivers/goldnpkr.c
@@ -3662,21 +3662,6 @@ static DISCRETE_SOUND_START( pottnpkr )
DISCRETE_SOUND_END
-/*******************************************
-* Other Sound Interfaces *
-*******************************************/
-
-static const ay8910_interface ay8910_config =
-{
- AY8910_LEGACY_OUTPUT,
- AY8910_DEFAULT_LOADS,
- DEVCB_NULL,
- DEVCB_NULL,
- DEVCB_NULL,
- DEVCB_NULL
-};
-
-
/******************************************
* Machine Start & Reset *
******************************************/
@@ -3805,7 +3790,6 @@ static MACHINE_CONFIG_DERIVED( wcfalcon, goldnpkr_base )
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_SOUND_ADD("ay8910", AY8910, MASTER_CLOCK/4) /* guess, seems ok */
- MCFG_SOUND_CONFIG(ay8910_config)
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.00)
MACHINE_CONFIG_END
@@ -3883,7 +3867,6 @@ static MACHINE_CONFIG_DERIVED( wildcrdb, goldnpkr_base )
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_SOUND_ADD("ay8910", AY8910, MASTER_CLOCK/4) /* guess, seems ok */
- MCFG_SOUND_CONFIG(ay8910_config)
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.00)
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/goldstar.c b/src/mame/drivers/goldstar.c
index c06aa5c13cd..f87de448e96 100644
--- a/src/mame/drivers/goldstar.c
+++ b/src/mame/drivers/goldstar.c
@@ -6168,26 +6168,6 @@ WRITE8_MEMBER(goldstar_state::system_outputc_w)
//popmessage("system_outputc_w %02x",data);
}
-static const ay8910_interface ay8910_config =
-{
- AY8910_LEGACY_OUTPUT,
- AY8910_DEFAULT_LOADS,
- DEVCB_INPUT_PORT("DSW4"),
- DEVCB_INPUT_PORT("DSW3"),
- DEVCB_NULL,
- DEVCB_NULL
-};
-
-static const ay8910_interface cm_ay8910_config =
-{
- AY8910_LEGACY_OUTPUT,
- AY8910_DEFAULT_LOADS,
- DEVCB_INPUT_PORT("DSW4"),
- DEVCB_INPUT_PORT("DSW5"),
- DEVCB_NULL,
- DEVCB_NULL
-};
-
WRITE8_MEMBER(goldstar_state::ay8910_outputa_w)
{
//popmessage("ay8910_outputa_w %02x",data);
@@ -6198,27 +6178,6 @@ WRITE8_MEMBER(goldstar_state::ay8910_outputb_w)
//popmessage("ay8910_outputb_w %02x",data);
}
-static const ay8910_interface lucky8_ay8910_config =
-{
- AY8910_LEGACY_OUTPUT,
- AY8910_DEFAULT_LOADS,
- DEVCB_INPUT_PORT("DSW3"),
- DEVCB_INPUT_PORT("DSW4"),
- DEVCB_DRIVER_MEMBER(goldstar_state,ay8910_outputa_w),
- DEVCB_DRIVER_MEMBER(goldstar_state,ay8910_outputb_w)
-};
-
-static const ay8910_interface ladylinr_ay8910_config =
-{
- AY8910_LEGACY_OUTPUT,
- AY8910_DEFAULT_LOADS,
- DEVCB_NULL,
- DEVCB_NULL,
- DEVCB_NULL,
- DEVCB_NULL
-};
-
-
static MACHINE_CONFIG_START( goldstar, goldstar_state )
/* basic machine hardware */
@@ -6246,7 +6205,8 @@ static MACHINE_CONFIG_START( goldstar, goldstar_state )
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_SOUND_ADD("aysnd", AY8910, AY_CLOCK)
- MCFG_SOUND_CONFIG(ay8910_config)
+ MCFG_AY8910_PORT_A_READ_CB(IOPORT("DSW4"))
+ MCFG_AY8910_PORT_B_READ_CB(IOPORT("DSW3"))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50)
MCFG_OKIM6295_ADD("oki", OKI_CLOCK, OKIM6295_PIN7_HIGH) /* clock frequency & pin 7 not verified */
@@ -6282,7 +6242,8 @@ static MACHINE_CONFIG_START( goldstbl, goldstar_state )
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_SOUND_ADD("aysnd", AY8910, AY_CLOCK)
- MCFG_SOUND_CONFIG(ay8910_config)
+ MCFG_AY8910_PORT_A_READ_CB(IOPORT("DSW4"))
+ MCFG_AY8910_PORT_B_READ_CB(IOPORT("DSW3"))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50)
MCFG_OKIM6295_ADD("oki", OKI_CLOCK, OKIM6295_PIN7_HIGH) /* clock frequency & pin 7 not verified */
@@ -6317,7 +6278,8 @@ static MACHINE_CONFIG_START( moonlght, goldstar_state )
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_SOUND_ADD("aysnd", AY8910, AY_CLOCK)
- MCFG_SOUND_CONFIG(ay8910_config)
+ MCFG_AY8910_PORT_A_READ_CB(IOPORT("DSW4"))
+ MCFG_AY8910_PORT_B_READ_CB(IOPORT("DSW3"))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50)
MCFG_OKIM6295_ADD("oki", OKI_CLOCK, OKIM6295_PIN7_HIGH) /* clock frequency & pin 7 not verified */
@@ -6353,7 +6315,8 @@ static MACHINE_CONFIG_START( goldfrui, goldstar_state )
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_SOUND_ADD("aysnd", AY8910, AY_CLOCK)
- MCFG_SOUND_CONFIG(ay8910_config)
+ MCFG_AY8910_PORT_A_READ_CB(IOPORT("DSW4"))
+ MCFG_AY8910_PORT_B_READ_CB(IOPORT("DSW3"))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50)
MCFG_OKIM6295_ADD("oki", OKI_CLOCK, OKIM6295_PIN7_HIGH) /* clock frequency & pin 7 not verified */
@@ -6390,7 +6353,8 @@ static MACHINE_CONFIG_START( super9, goldstar_state )
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_SOUND_ADD("aysnd", AY8910, AY_CLOCK)
- MCFG_SOUND_CONFIG(ay8910_config)
+ MCFG_AY8910_PORT_A_READ_CB(IOPORT("DSW4"))
+ MCFG_AY8910_PORT_B_READ_CB(IOPORT("DSW3"))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50)
MCFG_OKIM6295_ADD("oki", OKI_CLOCK, OKIM6295_PIN7_HIGH) /* clock frequency & pin 7 not verified */
@@ -6501,7 +6465,8 @@ static MACHINE_CONFIG_START( chrygld, goldstar_state )
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.80)
MCFG_SOUND_ADD("aysnd", AY8910, AY_CLOCK)
- MCFG_SOUND_CONFIG(ay8910_config)
+ MCFG_AY8910_PORT_A_READ_CB(IOPORT("DSW4"))
+ MCFG_AY8910_PORT_B_READ_CB(IOPORT("DSW3"))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50)
MACHINE_CONFIG_END
@@ -6550,7 +6515,8 @@ static MACHINE_CONFIG_START( cb3e, goldstar_state )
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.80)
MCFG_SOUND_ADD("aysnd", AY8910, AY_CLOCK)
- MCFG_SOUND_CONFIG(ay8910_config)
+ MCFG_AY8910_PORT_A_READ_CB(IOPORT("DSW4"))
+ MCFG_AY8910_PORT_B_READ_CB(IOPORT("DSW3"))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50)
MACHINE_CONFIG_END
@@ -6599,7 +6565,8 @@ static MACHINE_CONFIG_START( cb3c, goldstar_state )
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.80)
MCFG_SOUND_ADD("aysnd", AY8910, AY_CLOCK)
- MCFG_SOUND_CONFIG(ay8910_config)
+ MCFG_AY8910_PORT_A_READ_CB(IOPORT("DSW4"))
+ MCFG_AY8910_PORT_B_READ_CB(IOPORT("DSW3"))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50)
MACHINE_CONFIG_END
@@ -6648,7 +6615,8 @@ static MACHINE_CONFIG_START( ncb3, goldstar_state )
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.80)
MCFG_SOUND_ADD("aysnd", AY8910, AY_CLOCK)
- MCFG_SOUND_CONFIG(ay8910_config)
+ MCFG_AY8910_PORT_A_READ_CB(IOPORT("DSW4"))
+ MCFG_AY8910_PORT_B_READ_CB(IOPORT("DSW3"))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50)
MACHINE_CONFIG_END
@@ -6696,7 +6664,8 @@ static MACHINE_CONFIG_START( wcherry, goldstar_state )
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.80)
MCFG_SOUND_ADD("aysnd", AY8910, AY_CLOCK)
- MCFG_SOUND_CONFIG(ay8910_config)
+ MCFG_AY8910_PORT_A_READ_CB(IOPORT("DSW4"))
+ MCFG_AY8910_PORT_B_READ_CB(IOPORT("DSW3"))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50)
MACHINE_CONFIG_END
@@ -6739,7 +6708,8 @@ static MACHINE_CONFIG_START( cm, goldstar_state )
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_SOUND_ADD("aysnd", AY8910, AY_CLOCK)
- MCFG_SOUND_CONFIG(cm_ay8910_config)
+ MCFG_AY8910_PORT_A_READ_CB(IOPORT("DSW4"))
+ MCFG_AY8910_PORT_B_READ_CB(IOPORT("DSW5"))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50)
MACHINE_CONFIG_END
@@ -6786,7 +6756,8 @@ static MACHINE_CONFIG_START( cmnobmp, goldstar_state )
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_SOUND_ADD("aysnd", AY8910, AY_CLOCK)
- MCFG_SOUND_CONFIG(cm_ay8910_config)
+ MCFG_AY8910_PORT_A_READ_CB(IOPORT("DSW4"))
+ MCFG_AY8910_PORT_B_READ_CB(IOPORT("DSW5"))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50)
MACHINE_CONFIG_END
#endif
@@ -6828,7 +6799,8 @@ static MACHINE_CONFIG_START( cmast91, goldstar_state )
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_SOUND_ADD("aysnd", AY8910, AY_CLOCK)
- MCFG_SOUND_CONFIG(cm_ay8910_config)
+ MCFG_AY8910_PORT_A_READ_CB(IOPORT("DSW4"))
+ MCFG_AY8910_PORT_B_READ_CB(IOPORT("DSW5"))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50)
MACHINE_CONFIG_END
@@ -6886,7 +6858,10 @@ static MACHINE_CONFIG_START( lucky8, goldstar_state )
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.80)
MCFG_SOUND_ADD("aysnd", AY8910, AY_CLOCK)
- MCFG_SOUND_CONFIG(lucky8_ay8910_config)
+ MCFG_AY8910_PORT_A_READ_CB(IOPORT("DSW3"))
+ MCFG_AY8910_PORT_B_READ_CB(IOPORT("DSW4"))
+ MCFG_AY8910_PORT_A_WRITE_CB(WRITE8(goldstar_state, ay8910_outputa_w))
+ MCFG_AY8910_PORT_B_WRITE_CB(WRITE8(goldstar_state, ay8910_outputb_w))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50)
MACHINE_CONFIG_END
@@ -6937,7 +6912,10 @@ static MACHINE_CONFIG_START( bingowng, goldstar_state )
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.80)
MCFG_SOUND_ADD("aysnd", AY8910, AY_CLOCK)
- MCFG_SOUND_CONFIG(lucky8_ay8910_config)
+ MCFG_AY8910_PORT_A_READ_CB(IOPORT("DSW3"))
+ MCFG_AY8910_PORT_B_READ_CB(IOPORT("DSW4"))
+ MCFG_AY8910_PORT_A_WRITE_CB(WRITE8(goldstar_state, ay8910_outputa_w))
+ MCFG_AY8910_PORT_B_WRITE_CB(WRITE8(goldstar_state, ay8910_outputb_w))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50)
MACHINE_CONFIG_END
@@ -6988,7 +6966,10 @@ static MACHINE_CONFIG_START( bingownga, goldstar_state )
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.80)
MCFG_SOUND_ADD("aysnd", AY8910, AY_CLOCK)
- MCFG_SOUND_CONFIG(lucky8_ay8910_config)
+ MCFG_AY8910_PORT_A_READ_CB(IOPORT("DSW3"))
+ MCFG_AY8910_PORT_B_READ_CB(IOPORT("DSW4"))
+ MCFG_AY8910_PORT_A_WRITE_CB(WRITE8(goldstar_state, ay8910_outputa_w))
+ MCFG_AY8910_PORT_B_WRITE_CB(WRITE8(goldstar_state, ay8910_outputb_w))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50)
MACHINE_CONFIG_END
@@ -7056,7 +7037,10 @@ static MACHINE_CONFIG_START( magodds, goldstar_state )
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.00) // shut up annoying whine
MCFG_SOUND_ADD("aysnd", AY8910, AY_CLOCK)
- MCFG_SOUND_CONFIG(lucky8_ay8910_config)
+ MCFG_AY8910_PORT_A_READ_CB(IOPORT("DSW3"))
+ MCFG_AY8910_PORT_B_READ_CB(IOPORT("DSW4"))
+ MCFG_AY8910_PORT_A_WRITE_CB(WRITE8(goldstar_state, ay8910_outputa_w))
+ MCFG_AY8910_PORT_B_WRITE_CB(WRITE8(goldstar_state, ay8910_outputb_w))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.80)
MACHINE_CONFIG_END
@@ -7144,7 +7128,6 @@ static MACHINE_CONFIG_START( ladylinr, goldstar_state )
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.80)
MCFG_SOUND_ADD("aysnd", AY8910, AY_CLOCK)
- MCFG_SOUND_CONFIG(ladylinr_ay8910_config)
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50)
MACHINE_CONFIG_END
@@ -7196,7 +7179,10 @@ static MACHINE_CONFIG_START( wcat3, goldstar_state )
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.80)
MCFG_SOUND_ADD("aysnd", AY8910, AY_CLOCK)
- MCFG_SOUND_CONFIG(lucky8_ay8910_config)
+ MCFG_AY8910_PORT_A_READ_CB(IOPORT("DSW3"))
+ MCFG_AY8910_PORT_B_READ_CB(IOPORT("DSW4"))
+ MCFG_AY8910_PORT_A_WRITE_CB(WRITE8(goldstar_state, ay8910_outputa_w))
+ MCFG_AY8910_PORT_B_WRITE_CB(WRITE8(goldstar_state, ay8910_outputb_w))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50)
MACHINE_CONFIG_END
@@ -7240,7 +7226,8 @@ static MACHINE_CONFIG_START( amcoe1, goldstar_state )
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_SOUND_ADD("aysnd", AY8910, AY_CLOCK)
- MCFG_SOUND_CONFIG(cm_ay8910_config)
+ MCFG_AY8910_PORT_A_READ_CB(IOPORT("DSW4"))
+ MCFG_AY8910_PORT_B_READ_CB(IOPORT("DSW5"))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50)
MCFG_OKIM6295_ADD("oki", OKI_CLOCK, OKIM6295_PIN7_HIGH) /* clock frequency & pin 7 not verified */
@@ -7286,7 +7273,8 @@ static MACHINE_CONFIG_START( amcoe1a, goldstar_state )
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_SOUND_ADD("aysnd", AY8910, AY_CLOCK)
- MCFG_SOUND_CONFIG(cm_ay8910_config)
+ MCFG_AY8910_PORT_A_READ_CB(IOPORT("DSW4"))
+ MCFG_AY8910_PORT_B_READ_CB(IOPORT("DSW5"))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50)
MCFG_OKIM6295_ADD("oki", OKI_CLOCK, OKIM6295_PIN7_HIGH) /* clock frequency & pin 7 not verified */
@@ -7332,7 +7320,8 @@ static MACHINE_CONFIG_START( amcoe2, goldstar_state )
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_SOUND_ADD("aysnd", AY8910, AY_CLOCK)
- MCFG_SOUND_CONFIG(cm_ay8910_config)
+ MCFG_AY8910_PORT_A_READ_CB(IOPORT("DSW4"))
+ MCFG_AY8910_PORT_B_READ_CB(IOPORT("DSW5"))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 2.00) /* analyzed for clips */
MACHINE_CONFIG_END
@@ -7373,7 +7362,8 @@ static MACHINE_CONFIG_START( nfm, goldstar_state )
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_SOUND_ADD("aysnd", AY8910, AY_CLOCK)
- MCFG_SOUND_CONFIG(cm_ay8910_config)
+ MCFG_AY8910_PORT_A_READ_CB(IOPORT("DSW4"))
+ MCFG_AY8910_PORT_B_READ_CB(IOPORT("DSW5"))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 2.00) /* analyzed for clips */
MACHINE_CONFIG_END
@@ -7407,7 +7397,10 @@ static MACHINE_CONFIG_START( unkch, goldstar_state )
MCFG_SPEAKER_STANDARD_MONO("mono")
// MCFG_SOUND_ADD("aysnd", AY8910, AY_CLOCK)
-// MCFG_SOUND_CONFIG(ay8910_config)
+//
+//
+// MCFG_AY8910_PORT_A_READ_CB(IOPORT("DSW4"))
+// MCFG_AY8910_PORT_B_READ_CB(IOPORT("DSW3"))
// MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50)
MACHINE_CONFIG_END
@@ -7461,7 +7454,8 @@ static MACHINE_CONFIG_START( pkrmast, goldstar_state )
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_SOUND_ADD("aysnd", AY8910, AY_CLOCK)
- MCFG_SOUND_CONFIG(cm_ay8910_config)
+ MCFG_AY8910_PORT_A_READ_CB(IOPORT("DSW4"))
+ MCFG_AY8910_PORT_B_READ_CB(IOPORT("DSW5"))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50)
MACHINE_CONFIG_END
@@ -7507,7 +7501,10 @@ static MACHINE_CONFIG_START( megaline, goldstar_state )
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.80)
MCFG_SOUND_ADD("aysnd", AY8910, AY_CLOCK)
- MCFG_SOUND_CONFIG(lucky8_ay8910_config)
+ MCFG_AY8910_PORT_A_READ_CB(IOPORT("DSW3"))
+ MCFG_AY8910_PORT_B_READ_CB(IOPORT("DSW4"))
+ MCFG_AY8910_PORT_A_WRITE_CB(WRITE8(goldstar_state, ay8910_outputa_w))
+ MCFG_AY8910_PORT_B_WRITE_CB(WRITE8(goldstar_state, ay8910_outputb_w))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50)
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/grchamp.c b/src/mame/drivers/grchamp.c
index 83e3e360548..bbe2750672c 100644
--- a/src/mame/drivers/grchamp.c
+++ b/src/mame/drivers/grchamp.c
@@ -428,35 +428,6 @@ WRITE8_MEMBER(grchamp_state::grchamp_portB_2_w)
}
-
-/*************************************
- *
- * Sound interfaces
- *
- *************************************/
-
-static const ay8910_interface ay8910_interface_1 =
-{
- AY8910_LEGACY_OUTPUT,
- AY8910_DEFAULT_LOADS,
- DEVCB_NULL,
- DEVCB_NULL,
- DEVCB_DRIVER_MEMBER(grchamp_state,grchamp_portA_0_w),
- DEVCB_DRIVER_MEMBER(grchamp_state,grchamp_portB_0_w)
-};
-
-static const ay8910_interface ay8910_interface_3 =
-{
- AY8910_LEGACY_OUTPUT,
- AY8910_DEFAULT_LOADS,
- DEVCB_NULL,
- DEVCB_NULL,
- DEVCB_DRIVER_MEMBER(grchamp_state,grchamp_portA_2_w),
- DEVCB_DRIVER_MEMBER(grchamp_state,grchamp_portB_2_w)
-};
-
-
-
/*************************************
*
* Graphics Layouts
@@ -694,14 +665,16 @@ static MACHINE_CONFIG_START( grchamp, grchamp_state )
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_SOUND_ADD("ay1", AY8910, SOUND_CLOCK/4) /* 3B */
- MCFG_SOUND_CONFIG(ay8910_interface_1)
+ MCFG_AY8910_PORT_A_WRITE_CB(WRITE8(grchamp_state, grchamp_portA_0_w))
+ MCFG_AY8910_PORT_B_WRITE_CB(WRITE8(grchamp_state, grchamp_portB_0_w))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.2)
MCFG_SOUND_ADD("ay2", AY8910, SOUND_CLOCK/4)
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.2)
MCFG_SOUND_ADD("ay3", AY8910, SOUND_CLOCK/4) /* 1B */
- MCFG_SOUND_CONFIG(ay8910_interface_3)
+ MCFG_AY8910_PORT_A_WRITE_CB(WRITE8(grchamp_state, grchamp_portA_2_w))
+ MCFG_AY8910_PORT_B_WRITE_CB(WRITE8(grchamp_state, grchamp_portB_2_w))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.2)
MCFG_SOUND_ADD("discrete", DISCRETE, 0)
diff --git a/src/mame/drivers/gstriker.c b/src/mame/drivers/gstriker.c
index 1d3782d14c6..e971201ab34 100644
--- a/src/mame/drivers/gstriker.c
+++ b/src/mame/drivers/gstriker.c
@@ -570,6 +570,7 @@ static MACHINE_CONFIG_START( gstriker, gstriker_state )
MCFG_SOUND_ADD("ymsnd", YM2610, 8000000)
MCFG_YM2610_IRQ_HANDLER(WRITELINE(gstriker_state, gs_ym2610_irq))
+ MCFG_AY8910_OUTPUT_TYPE(AY8910_LEGACY_OUTPUT | AY8910_SINGLE_OUTPUT)
MCFG_SOUND_ROUTE(0, "lspeaker", 0.25)
MCFG_SOUND_ROUTE(0, "rspeaker", 0.25)
MCFG_SOUND_ROUTE(1, "lspeaker", 1.0)
@@ -619,6 +620,7 @@ static MACHINE_CONFIG_START( vgoal, gstriker_state )
MCFG_SOUND_ADD("ymsnd", YM2610, 8000000)
MCFG_YM2610_IRQ_HANDLER(WRITELINE(gstriker_state, gs_ym2610_irq))
+ MCFG_AY8910_OUTPUT_TYPE(AY8910_LEGACY_OUTPUT | AY8910_SINGLE_OUTPUT)
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/gsword.c b/src/mame/drivers/gsword.c
index 814b4697c74..c4ad07f9098 100644
--- a/src/mame/drivers/gsword.c
+++ b/src/mame/drivers/gsword.c
@@ -620,17 +620,6 @@ static GFXDECODE_START( gsword )
GFXDECODE_END
-
-static const ay8910_interface ay8910_config =
-{
- AY8910_LEGACY_OUTPUT,
- AY8910_DEFAULT_LOADS,
- DEVCB_NULL,
- DEVCB_NULL,
- DEVCB_DRIVER_MEMBER(gsword_state,gsword_nmi_set_w), /* portA write */
- DEVCB_NULL
-};
-
static MACHINE_CONFIG_START( gsword, gsword_state )
/* basic machine hardware */
@@ -681,7 +670,7 @@ static MACHINE_CONFIG_START( gsword, gsword_state )
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.30)
MCFG_SOUND_ADD("ay2", AY8910, 1500000)
- MCFG_SOUND_CONFIG(ay8910_config)
+ MCFG_AY8910_PORT_A_WRITE_CB(WRITE8(gsword_state, gsword_nmi_set_w)) /* portA write */
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.30)
MCFG_SOUND_ADD("msm", MSM5205, XTAL_400kHz) /* verified on pcb */
@@ -730,7 +719,7 @@ static MACHINE_CONFIG_START( josvolly, gsword_state )
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.30)
MCFG_SOUND_ADD("ay2", AY8910, 1500000)
- MCFG_SOUND_CONFIG(ay8910_config)
+ MCFG_AY8910_PORT_A_WRITE_CB(WRITE8(gsword_state, gsword_nmi_set_w)) /* portA write */
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.30)
#if 0
diff --git a/src/mame/drivers/gundealr.c b/src/mame/drivers/gundealr.c
index 35d482f0cd0..10ab4dceb32 100644
--- a/src/mame/drivers/gundealr.c
+++ b/src/mame/drivers/gundealr.c
@@ -390,16 +390,6 @@ TIMER_DEVICE_CALLBACK_MEMBER(gundealr_state::gundealr_scanline)
m_maincpu->set_input_line_and_vector(0, HOLD_LINE,0xcf); /* RST 10h */
}
-static const ay8910_interface ay8910_config =
-{
- AY8910_LEGACY_OUTPUT,
- AY8910_DEFAULT_LOADS,
- DEVCB_NULL,
- DEVCB_NULL,
- DEVCB_NULL,
- DEVCB_NULL
-};
-
static MACHINE_CONFIG_START( gundealr, gundealr_state )
/* basic machine hardware */
@@ -426,7 +416,6 @@ static MACHINE_CONFIG_START( gundealr, gundealr_state )
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_SOUND_ADD("ymsnd", YM2203, 1500000)
- MCFG_YM2203_AY8910_INTF(&ay8910_config)
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25)
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/gyruss.c b/src/mame/drivers/gyruss.c
index 9a5bef30c32..1c4a525478c 100644
--- a/src/mame/drivers/gyruss.c
+++ b/src/mame/drivers/gyruss.c
@@ -344,57 +344,6 @@ static GFXDECODE_START( gyruss )
GFXDECODE_ENTRY( "gfx2", 0x0000, charlayout, 16*16, 16 )
GFXDECODE_END
-
-static const ay8910_interface ay8910_interface_1 =
-{
- AY8910_DISCRETE_OUTPUT,
- { RES_K(3.3), RES_K(3.3), RES_K(3.3) },
- DEVCB_NULL,
- DEVCB_NULL,
- DEVCB_NULL,
- DEVCB_DRIVER_MEMBER(gyruss_state,gyruss_filter0_w)
-};
-
-static const ay8910_interface ay8910_interface_2 =
-{
- AY8910_DISCRETE_OUTPUT,
- { RES_K(3.3), RES_K(3.3), RES_K(3.3) },
- DEVCB_NULL,
- DEVCB_NULL,
- DEVCB_NULL,
- DEVCB_DRIVER_MEMBER(gyruss_state,gyruss_filter1_w)
-};
-
-static const ay8910_interface ay8910_interface_3 =
-{
- AY8910_DISCRETE_OUTPUT,
- { RES_K(3.3), RES_K(3.3), RES_K(3.3) },
- DEVCB_DRIVER_MEMBER(gyruss_state,gyruss_portA_r),
- DEVCB_NULL,
- DEVCB_NULL,
- DEVCB_NULL
-};
-
-static const ay8910_interface ay8910_interface_4 =
-{
- AY8910_DISCRETE_OUTPUT,
- { RES_K(3.3), RES_K(3.3), RES_K(3.3) },
- DEVCB_NULL,
- DEVCB_NULL,
- DEVCB_NULL,
- DEVCB_NULL
-};
-
-static const ay8910_interface ay8910_interface_5 =
-{
- AY8910_DISCRETE_OUTPUT,
- { RES_K(3.3), RES_K(3.3), RES_K(3.3) },
- DEVCB_NULL,
- DEVCB_NULL,
- DEVCB_NULL,
- DEVCB_NULL
-};
-
static const discrete_mixer_desc konami_right_mixer_desc =
{DISC_MIXER_IS_RESISTOR,
{RES_K(2.2), RES_K(2.2), RES_K(2.2), RES_K(3.3)/3, RES_K(3.3)/3 },
@@ -543,31 +492,39 @@ static MACHINE_CONFIG_START( gyruss, gyruss_state )
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
MCFG_SOUND_ADD("ay1", AY8910, SOUND_CLOCK/8)
- MCFG_SOUND_CONFIG(ay8910_interface_1)
+ MCFG_AY8910_OUTPUT_TYPE(AY8910_DISCRETE_OUTPUT)
+ MCFG_AY8910_RES_LOADS(RES_K(3.3), RES_K(3.3), RES_K(3.3))
+ MCFG_AY8910_PORT_B_WRITE_CB(WRITE8(gyruss_state, gyruss_filter0_w))
MCFG_SOUND_ROUTE_EX(0, "discrete", 1.0, 0)
MCFG_SOUND_ROUTE_EX(1, "discrete", 1.0, 1)
MCFG_SOUND_ROUTE_EX(2, "discrete", 1.0, 2)
MCFG_SOUND_ADD("ay2", AY8910, SOUND_CLOCK/8)
- MCFG_SOUND_CONFIG(ay8910_interface_2)
+ MCFG_AY8910_OUTPUT_TYPE(AY8910_DISCRETE_OUTPUT)
+ MCFG_AY8910_RES_LOADS(RES_K(3.3), RES_K(3.3), RES_K(3.3))
+ MCFG_AY8910_PORT_B_WRITE_CB(WRITE8(gyruss_state, gyruss_filter1_w))
MCFG_SOUND_ROUTE_EX(0, "discrete", 1.0, 3)
MCFG_SOUND_ROUTE_EX(1, "discrete", 1.0, 4)
MCFG_SOUND_ROUTE_EX(2, "discrete", 1.0, 5)
MCFG_SOUND_ADD("ay3", AY8910, SOUND_CLOCK/8)
- MCFG_SOUND_CONFIG(ay8910_interface_3)
+ MCFG_AY8910_OUTPUT_TYPE(AY8910_DISCRETE_OUTPUT)
+ MCFG_AY8910_RES_LOADS(RES_K(3.3), RES_K(3.3), RES_K(3.3))
+ MCFG_AY8910_PORT_A_READ_CB(READ8(gyruss_state, gyruss_portA_r))
MCFG_SOUND_ROUTE_EX(0, "discrete", 1.0, 6)
MCFG_SOUND_ROUTE_EX(1, "discrete", 1.0, 7)
MCFG_SOUND_ROUTE_EX(2, "discrete", 1.0, 8)
MCFG_SOUND_ADD("ay4", AY8910, SOUND_CLOCK/8)
- MCFG_SOUND_CONFIG(ay8910_interface_4)
+ MCFG_AY8910_OUTPUT_TYPE(AY8910_DISCRETE_OUTPUT)
+ MCFG_AY8910_RES_LOADS(RES_K(3.3), RES_K(3.3), RES_K(3.3))
MCFG_SOUND_ROUTE_EX(0, "discrete", 1.0, 9)
MCFG_SOUND_ROUTE_EX(1, "discrete", 1.0, 10)
MCFG_SOUND_ROUTE_EX(2, "discrete", 1.0, 11)
MCFG_SOUND_ADD("ay5", AY8910, SOUND_CLOCK/8)
- MCFG_SOUND_CONFIG(ay8910_interface_5)
+ MCFG_AY8910_OUTPUT_TYPE(AY8910_DISCRETE_OUTPUT)
+ MCFG_AY8910_RES_LOADS(RES_K(3.3), RES_K(3.3), RES_K(3.3))
MCFG_SOUND_ROUTE_EX(0, "discrete", 1.0, 12)
MCFG_SOUND_ROUTE_EX(1, "discrete", 1.0, 13)
MCFG_SOUND_ROUTE_EX(2, "discrete", 1.0, 14)
diff --git a/src/mame/drivers/halleys.c b/src/mame/drivers/halleys.c
index f0952306428..9188d591c6e 100644
--- a/src/mame/drivers/halleys.c
+++ b/src/mame/drivers/halleys.c
@@ -1967,17 +1967,6 @@ void halleys_state::machine_reset()
}
-static const ay8910_interface ay8910_config =
-{
- AY8910_LEGACY_OUTPUT,
- AY8910_DEFAULT_LOADS,
- DEVCB_NULL,
- DEVCB_NULL,
- DEVCB_NULL,
- DEVCB_DRIVER_MEMBER(halleys_state,sndnmi_msk_w) // port Bwrite
-};
-
-
static MACHINE_CONFIG_START( halleys, halleys_state )
MCFG_CPU_ADD("maincpu", M6809, XTAL_19_968MHz/12) /* verified on pcb */
MCFG_CPU_PROGRAM_MAP(halleys_map)
@@ -2014,7 +2003,7 @@ static MACHINE_CONFIG_START( halleys, halleys_state )
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.15)
MCFG_SOUND_ADD("ay4", AY8910, XTAL_6MHz/4) /* verified on pcb */
- MCFG_SOUND_CONFIG(ay8910_config)
+ MCFG_AY8910_PORT_B_WRITE_CB(WRITE8(halleys_state, sndnmi_msk_w)) // port Bwrite
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.15)
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/hanaawas.c b/src/mame/drivers/hanaawas.c
index 39b944906f8..82e62665b39 100644
--- a/src/mame/drivers/hanaawas.c
+++ b/src/mame/drivers/hanaawas.c
@@ -171,17 +171,6 @@ static GFXDECODE_START( hanaawas )
GFXDECODE_END
-static const ay8910_interface ay8910_config =
-{
- AY8910_LEGACY_OUTPUT,
- AY8910_DEFAULT_LOADS,
- DEVCB_INPUT_PORT("DSW"),
- DEVCB_NULL,
- DEVCB_NULL,
- DEVCB_DRIVER_MEMBER(hanaawas_state, hanaawas_portB_w)
-};
-
-
void hanaawas_state::machine_start()
{
save_item(NAME(m_mux));
@@ -219,7 +208,8 @@ static MACHINE_CONFIG_START( hanaawas, hanaawas_state )
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_SOUND_ADD("aysnd", AY8910, 18432000/12)
- MCFG_SOUND_CONFIG(ay8910_config)
+ MCFG_AY8910_PORT_A_READ_CB(IOPORT("DSW"))
+ MCFG_AY8910_PORT_B_WRITE_CB(WRITE8(hanaawas_state, hanaawas_portB_w))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50)
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/hitpoker.c b/src/mame/drivers/hitpoker.c
index 17681857388..588a1e3aa9f 100644
--- a/src/mame/drivers/hitpoker.c
+++ b/src/mame/drivers/hitpoker.c
@@ -462,17 +462,6 @@ static GFXDECODE_START( hitpoker )
GFXDECODE_ENTRY( "gfx1", 0, hitpoker_layout_8bpp, 0, 8 )
GFXDECODE_END
-static const ay8910_interface ay8910_config =
-{
- AY8910_LEGACY_OUTPUT,
- AY8910_DEFAULT_LOADS,
- DEVCB_INPUT_PORT("DSW1"),
- DEVCB_INPUT_PORT("DSW2"),
- DEVCB_NULL,
- DEVCB_NULL
-};
-
-
INTERRUPT_GEN_MEMBER(hitpoker_state::hitpoker_irq)
{
device.execute().set_input_line(MC68HC11_IRQ_LINE, HOLD_LINE);
@@ -506,7 +495,8 @@ static MACHINE_CONFIG_START( hitpoker, hitpoker_state )
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_SOUND_ADD("aysnd", YM2149, 1500000)
- MCFG_SOUND_CONFIG(ay8910_config)
+ MCFG_AY8910_PORT_A_READ_CB(IOPORT("DSW1"))
+ MCFG_AY8910_PORT_B_READ_CB(IOPORT("DSW2"))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50)
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/hnayayoi.c b/src/mame/drivers/hnayayoi.c
index 457ebe19c75..e2c36d57973 100644
--- a/src/mame/drivers/hnayayoi.c
+++ b/src/mame/drivers/hnayayoi.c
@@ -504,18 +504,6 @@ WRITE_LINE_MEMBER(hnayayoi_state::irqhandler)
// m_maincpu->set_input_line(0, state ? ASSERT_LINE : CLEAR_LINE);
}
-
-static const ay8910_interface ay8910_config =
-{
- AY8910_LEGACY_OUTPUT,
- AY8910_DEFAULT_LOADS,
- DEVCB_INPUT_PORT("DSW1"),
- DEVCB_INPUT_PORT("DSW2"),
- DEVCB_NULL,
- DEVCB_NULL,
-};
-
-
void hnayayoi_state::machine_start()
{
save_item(NAME(m_palbank));
@@ -566,7 +554,8 @@ static MACHINE_CONFIG_START( hnayayoi, hnayayoi_state )
MCFG_SOUND_ADD("ymsnd", YM2203, 20000000/8)
MCFG_YM2203_IRQ_HANDLER(WRITELINE(hnayayoi_state, irqhandler))
- MCFG_YM2203_AY8910_INTF(&ay8910_config)
+ MCFG_AY8910_PORT_A_READ_CB(IOPORT("DSW1"))
+ MCFG_AY8910_PORT_B_READ_CB(IOPORT("DSW2"))
MCFG_SOUND_ROUTE(0, "mono", 0.25)
MCFG_SOUND_ROUTE(1, "mono", 0.25)
MCFG_SOUND_ROUTE(2, "mono", 0.25)
diff --git a/src/mame/drivers/holeland.c b/src/mame/drivers/holeland.c
index 003f524efb9..e82a1cb3f3d 100644
--- a/src/mame/drivers/holeland.c
+++ b/src/mame/drivers/holeland.c
@@ -251,29 +251,6 @@ static GFXDECODE_START( crzrally )
GFXDECODE_END
-
-static const ay8910_interface ay8910_interface_1 =
-{
- AY8910_LEGACY_OUTPUT,
- AY8910_DEFAULT_LOADS,
- DEVCB_INPUT_PORT("IN0"),
- DEVCB_INPUT_PORT("IN1"),
- DEVCB_NULL,
- DEVCB_NULL
-};
-
-static const ay8910_interface ay8910_interface_2 =
-{
- AY8910_LEGACY_OUTPUT,
- AY8910_DEFAULT_LOADS,
- DEVCB_INPUT_PORT("DSW1"),
- DEVCB_INPUT_PORT("DSW2"),
- DEVCB_NULL,
- DEVCB_NULL
-};
-
-
-
static MACHINE_CONFIG_START( holeland, holeland_state )
/* basic machine hardware */
@@ -299,11 +276,13 @@ static MACHINE_CONFIG_START( holeland, holeland_state )
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_SOUND_ADD("ay1", AY8910, 1818182)
- MCFG_SOUND_CONFIG(ay8910_interface_1)
+ MCFG_AY8910_PORT_A_READ_CB(IOPORT("IN0"))
+ MCFG_AY8910_PORT_B_READ_CB(IOPORT("IN1"))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25)
MCFG_SOUND_ADD("ay2", AY8910, 1818182)
- MCFG_SOUND_CONFIG(ay8910_interface_2)
+ MCFG_AY8910_PORT_A_READ_CB(IOPORT("DSW1"))
+ MCFG_AY8910_PORT_B_READ_CB(IOPORT("DSW2"))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25)
MACHINE_CONFIG_END
@@ -368,11 +347,13 @@ static MACHINE_CONFIG_START( crzrally, holeland_state )
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_SOUND_ADD("ay1", AY8910, 20000000/16)
- MCFG_SOUND_CONFIG(ay8910_interface_1)
+ MCFG_AY8910_PORT_A_READ_CB(IOPORT("IN0"))
+ MCFG_AY8910_PORT_B_READ_CB(IOPORT("IN1"))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25)
MCFG_SOUND_ADD("ay2", AY8910, 20000000/16)
- MCFG_SOUND_CONFIG(ay8910_interface_2)
+ MCFG_AY8910_PORT_A_READ_CB(IOPORT("DSW1"))
+ MCFG_AY8910_PORT_B_READ_CB(IOPORT("DSW2"))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25)
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/homedata.c b/src/mame/drivers/homedata.c
index 804ad7dd814..0dded98ce4e 100644
--- a/src/mame/drivers/homedata.c
+++ b/src/mame/drivers/homedata.c
@@ -1260,18 +1260,6 @@ MACHINE_CONFIG_END
/**************************************************************************/
-
-static const ay8910_interface ay8910_config =
-{
- AY8910_LEGACY_OUTPUT,
- AY8910_DEFAULT_LOADS,
- DEVCB_INPUT_PORT("DSW1"),
- DEVCB_INPUT_PORT("DSW2"),
- DEVCB_NULL,
- DEVCB_NULL
-};
-
-
static MACHINE_CONFIG_START( reikaids, homedata_state )
/* basic machine hardware */
@@ -1309,7 +1297,8 @@ static MACHINE_CONFIG_START( reikaids, homedata_state )
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_SOUND_ADD("ymsnd", YM2203, 3000000)
- MCFG_YM2203_AY8910_INTF(&ay8910_config)
+ MCFG_AY8910_PORT_A_READ_CB(IOPORT("DSW1"))
+ MCFG_AY8910_PORT_B_READ_CB(IOPORT("DSW2"))
MCFG_SOUND_ROUTE(0, "mono", 0.25)
MCFG_SOUND_ROUTE(1, "mono", 0.25)
MCFG_SOUND_ROUTE(2, "mono", 0.25)
diff --git a/src/mame/drivers/homerun.c b/src/mame/drivers/homerun.c
index bf56fad9448..ebdd39f94eb 100644
--- a/src/mame/drivers/homerun.c
+++ b/src/mame/drivers/homerun.c
@@ -321,17 +321,6 @@ static GFXDECODE_START( homerun )
GFXDECODE_ENTRY( "gfx2", 0, spritelayout, 0, 16 )
GFXDECODE_END
-/**************************************************************************/
-
-static const ay8910_interface ay8910_config =
-{
- AY8910_LEGACY_OUTPUT,
- AY8910_DEFAULT_LOADS,
- DEVCB_INPUT_PORT("DSW"),
- DEVCB_NULL,
- DEVCB_NULL,
- DEVCB_DRIVER_MEMBER(homerun_state, homerun_banking_w)
-};
/**************************************************************************/
@@ -388,7 +377,8 @@ static MACHINE_CONFIG_START( dynashot, homerun_state )
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_SOUND_ADD("ymsnd", YM2203, XTAL_20MHz/8)
- MCFG_YM2203_AY8910_INTF(&ay8910_config)
+ MCFG_AY8910_PORT_A_READ_CB(IOPORT("DSW"))
+ MCFG_AY8910_PORT_B_WRITE_CB(WRITE8(homerun_state, homerun_banking_w))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50)
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/hotblock.c b/src/mame/drivers/hotblock.c
index e51a83b03fa..06175652e3f 100644
--- a/src/mame/drivers/hotblock.c
+++ b/src/mame/drivers/hotblock.c
@@ -205,17 +205,6 @@ INTERRUPT_GEN_MEMBER(hotblock_state::hotblocks_irq)/* right? */
device.execute().set_input_line(INPUT_LINE_NMI, PULSE_LINE);
}
-static const ay8910_interface ay8910_config =
-{
- AY8910_LEGACY_OUTPUT,
- AY8910_DEFAULT_LOADS,
- DEVCB_INPUT_PORT("P1"),
- DEVCB_INPUT_PORT("P2"),
- DEVCB_NULL,
- DEVCB_NULL
-};
-
-
static MACHINE_CONFIG_START( hotblock, hotblock_state )
/* basic machine hardware */
@@ -240,7 +229,8 @@ static MACHINE_CONFIG_START( hotblock, hotblock_state )
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_SOUND_ADD("aysnd", AY8910, 1000000)
- MCFG_SOUND_CONFIG(ay8910_config)
+ MCFG_AY8910_PORT_A_READ_CB(IOPORT("P1"))
+ MCFG_AY8910_PORT_B_READ_CB(IOPORT("P2"))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50)
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/hyhoo.c b/src/mame/drivers/hyhoo.c
index 8ab8043acf7..e03a93df36d 100644
--- a/src/mame/drivers/hyhoo.c
+++ b/src/mame/drivers/hyhoo.c
@@ -219,18 +219,6 @@ static INPUT_PORTS_START( hyhoo2 )
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED )
INPUT_PORTS_END
-
-static const ay8910_interface ay8910_config =
-{
- AY8910_LEGACY_OUTPUT,
- AY8910_DEFAULT_LOADS,
- DEVCB_INPUT_PORT("DSWA"),
- DEVCB_INPUT_PORT("DSWB"),
- DEVCB_NULL,
- DEVCB_NULL
-};
-
-
static MACHINE_CONFIG_START( hyhoo, hyhoo_state )
/* basic machine hardware */
@@ -257,7 +245,8 @@ static MACHINE_CONFIG_START( hyhoo, hyhoo_state )
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_SOUND_ADD("aysnd", AY8910, 1250000)
- MCFG_SOUND_CONFIG(ay8910_config)
+ MCFG_AY8910_PORT_A_READ_CB(IOPORT("DSWA"))
+ MCFG_AY8910_PORT_B_READ_CB(IOPORT("DSWB"))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.35)
MCFG_DAC_ADD("dac")
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50)
diff --git a/src/mame/drivers/icecold.c b/src/mame/drivers/icecold.c
index 8de45fdf570..11c9be97df6 100644
--- a/src/mame/drivers/icecold.c
+++ b/src/mame/drivers/icecold.c
@@ -327,27 +327,6 @@ TIMER_DEVICE_CALLBACK_MEMBER(icecold_state::icecold_motors_timer)
}
}
-static const ay8910_interface icecold_ay8910_0_intf =
-{
- AY8910_LEGACY_OUTPUT,
- AY8910_DEFAULT_LOADS,
- DEVCB_INPUT_PORT("DSW4"),
- DEVCB_NULL,
- DEVCB_NULL,
- DEVCB_DRIVER_MEMBER(icecold_state, ay8910_0_b_w)
-};
-
-static const ay8910_interface icecold_ay8910_1_intf =
-{
- AY8910_LEGACY_OUTPUT,
- AY8910_DEFAULT_LOADS,
- DEVCB_NULL,
- DEVCB_NULL,
- DEVCB_DRIVER_MEMBER(icecold_state, ay8910_1_a_w),
- DEVCB_DRIVER_MEMBER(icecold_state, ay8910_1_b_w)
-};
-
-
static MACHINE_CONFIG_START( icecold, icecold_state )
/* basic machine hardware */
@@ -389,11 +368,13 @@ static MACHINE_CONFIG_START( icecold, icecold_state )
// sound hardware
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_SOUND_ADD("ay0", AY8910, XTAL_6MHz/4)
- MCFG_SOUND_CONFIG(icecold_ay8910_0_intf)
+ MCFG_AY8910_PORT_A_READ_CB(IOPORT("DSW4"))
+ MCFG_AY8910_PORT_B_WRITE_CB(WRITE8(icecold_state, ay8910_0_b_w))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25)
MCFG_SOUND_ADD("ay1", AY8910, XTAL_6MHz/4)
- MCFG_SOUND_CONFIG(icecold_ay8910_1_intf)
+ MCFG_AY8910_PORT_A_WRITE_CB(WRITE8(icecold_state, ay8910_1_a_w))
+ MCFG_AY8910_PORT_B_WRITE_CB(WRITE8(icecold_state, ay8910_1_b_w))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25)
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/inufuku.c b/src/mame/drivers/inufuku.c
index e9f7c4ff33e..19842999234 100644
--- a/src/mame/drivers/inufuku.c
+++ b/src/mame/drivers/inufuku.c
@@ -404,6 +404,7 @@ static MACHINE_CONFIG_START( inufuku, inufuku_state )
MCFG_SOUND_ADD("ymsnd", YM2610, 32000000/4)
MCFG_YM2610_IRQ_HANDLER(WRITELINE(inufuku_state, irqhandler))
+ MCFG_AY8910_OUTPUT_TYPE(AY8910_LEGACY_OUTPUT | AY8910_SINGLE_OUTPUT)
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/ironhors.c b/src/mame/drivers/ironhors.c
index d6f9d9e8bb2..a3bbf090fe1 100644
--- a/src/mame/drivers/ironhors.c
+++ b/src/mame/drivers/ironhors.c
@@ -340,17 +340,6 @@ DISCRETE_SOUND_END
*
*************************************/
-static const ay8910_interface ay8910_config =
-{
- AY8910_LEGACY_OUTPUT,
- AY8910_DEFAULT_LOADS,
- DEVCB_NULL,
- DEVCB_NULL,
- DEVCB_DRIVER_MEMBER(ironhors_state,ironhors_filter_w),
- DEVCB_NULL
-};
-
-
void ironhors_state::machine_start()
{
save_item(NAME(m_palettebank));
@@ -395,7 +384,7 @@ static MACHINE_CONFIG_START( ironhors, ironhors_state )
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_SOUND_ADD("ym2203", YM2203, 18432000/6)
- MCFG_YM2203_AY8910_INTF(&ay8910_config)
+ MCFG_AY8910_PORT_A_WRITE_CB(WRITE8(ironhors_state, ironhors_filter_w))
MCFG_SOUND_ROUTE_EX(0, "disc_ih", 1.0, 0)
MCFG_SOUND_ROUTE_EX(1, "disc_ih", 1.0, 1)
@@ -429,18 +418,6 @@ READ8_MEMBER(ironhors_state::farwest_soundlatch_r)
return soundlatch_byte_r(m_soundcpu->space(AS_PROGRAM), 0);
}
-static const ay8910_interface farwest_ay8910_config =
-{
- AY8910_LEGACY_OUTPUT,
- AY8910_DEFAULT_LOADS,
- DEVCB_NULL,
- DEVCB_DRIVER_MEMBER(ironhors_state,farwest_soundlatch_r),
- DEVCB_DRIVER_MEMBER(ironhors_state,ironhors_filter_w),
- DEVCB_NULL
-};
-
-
-
static MACHINE_CONFIG_DERIVED( farwest, ironhors )
MCFG_CPU_MODIFY("maincpu")
@@ -458,7 +435,8 @@ static MACHINE_CONFIG_DERIVED( farwest, ironhors )
MCFG_SCREEN_UPDATE_DRIVER(ironhors_state, screen_update_farwest)
MCFG_SOUND_MODIFY("ym2203")
- MCFG_YM2203_AY8910_INTF(&farwest_ay8910_config)
+ MCFG_AY8910_PORT_B_READ_CB(READ8(ironhors_state, farwest_soundlatch_r))
+ MCFG_AY8910_PORT_A_WRITE_CB(WRITE8(ironhors_state, ironhors_filter_w))
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/itech8.c b/src/mame/drivers/itech8.c
index 789342ded9a..65fe9f652db 100644
--- a/src/mame/drivers/itech8.c
+++ b/src/mame/drivers/itech8.c
@@ -1584,24 +1584,6 @@ static INPUT_PORTS_START( gpgolf )
PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED )
INPUT_PORTS_END
-
-
-/*************************************
- *
- * Sound definitions
- *
- *************************************/
-
-static const ay8910_interface ay8910_config =
-{
- AY8910_LEGACY_OUTPUT,
- AY8910_DEFAULT_LOADS,
- DEVCB_NULL,
- DEVCB_NULL,
- DEVCB_NULL,
- DEVCB_DRIVER_MEMBER(itech8_state,ym2203_portb_out),
-};
-
/*************************************
*
* TMS34061 interfacing
@@ -1674,7 +1656,7 @@ static MACHINE_CONFIG_FRAGMENT( itech8_sound_ym2203 )
/* sound hardware */
MCFG_SOUND_ADD("ymsnd", YM2203, CLOCK_8MHz/2)
MCFG_YM2203_IRQ_HANDLER(WRITELINE(itech8_state, generate_sound_irq))
- MCFG_YM2203_AY8910_INTF(&ay8910_config)
+ MCFG_AY8910_PORT_B_WRITE_CB(WRITE8(itech8_state, ym2203_portb_out))
MCFG_SOUND_ROUTE(0, "mono", 0.07)
MCFG_SOUND_ROUTE(1, "mono", 0.07)
MCFG_SOUND_ROUTE(2, "mono", 0.07)
@@ -1694,7 +1676,7 @@ static MACHINE_CONFIG_FRAGMENT( itech8_sound_ym2608b )
/* sound hardware */
MCFG_SOUND_ADD("ymsnd", YM2608, CLOCK_8MHz)
MCFG_YM2608_IRQ_HANDLER(WRITELINE(itech8_state, generate_sound_irq))
- MCFG_YM2608_AY8910_INTF(&ay8910_config)
+ MCFG_AY8910_PORT_B_WRITE_CB(WRITE8(itech8_state, ym2203_portb_out))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.75)
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/jack.c b/src/mame/drivers/jack.c
index 90aa33e1483..5a9cd99acd5 100644
--- a/src/mame/drivers/jack.c
+++ b/src/mame/drivers/jack.c
@@ -849,16 +849,6 @@ static GFXDECODE_START( joinem )
GFXDECODE_ENTRY( "gfx1", 0, joinem_charlayout, 0, 32 )
GFXDECODE_END
-
-static const ay8910_interface ay8910_config =
-{
- AY8910_LEGACY_OUTPUT,
- AY8910_DEFAULT_LOADS,
- DEVCB_DRIVER_MEMBER(driver_device, soundlatch_byte_r),
- DEVCB_DRIVER_MEMBER(jack_state, timer_r)
-};
-
-
/***************************************************************/
void jack_state::machine_start()
@@ -932,7 +922,8 @@ static MACHINE_CONFIG_START( jack, jack_state )
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_SOUND_ADD("aysnd", AY8910, XTAL_18MHz/12)
- MCFG_SOUND_CONFIG(ay8910_config)
+ MCFG_AY8910_PORT_A_READ_CB(READ8(driver_device, soundlatch_byte_r))
+ MCFG_AY8910_PORT_B_READ_CB(READ8(jack_state, timer_r))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/jangou.c b/src/mame/drivers/jangou.c
index 14ff0e00b45..790187166fc 100644
--- a/src/mame/drivers/jangou.c
+++ b/src/mame/drivers/jangou.c
@@ -890,22 +890,6 @@ INPUT_PORTS_END
/*************************************
*
- * Sound HW Config
- *
- *************************************/
-
-static const ay8910_interface ay8910_config =
-{
- AY8910_LEGACY_OUTPUT,
- AY8910_DEFAULT_LOADS,
- DEVCB_DRIVER_MEMBER(jangou_state,input_mux_r),
- DEVCB_DRIVER_MEMBER(jangou_state,input_system_r),
- DEVCB_NULL,
- DEVCB_NULL
-};
-
-/*************************************
- *
* Machine driver
*
*************************************/
@@ -1001,7 +985,8 @@ static MACHINE_CONFIG_START( jangou, jangou_state )
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_SOUND_ADD("aysnd", AY8910, MASTER_CLOCK / 16)
- MCFG_SOUND_CONFIG(ay8910_config)
+ MCFG_AY8910_PORT_A_READ_CB(READ8(jangou_state, input_mux_r))
+ MCFG_AY8910_PORT_B_READ_CB(READ8(jangou_state, input_system_r))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.40)
MCFG_SOUND_ADD("cvsd", HC55516, MASTER_CLOCK / 1024)
diff --git a/src/mame/drivers/jongkyo.c b/src/mame/drivers/jongkyo.c
index 5a58e1282f7..055f9576517 100644
--- a/src/mame/drivers/jongkyo.c
+++ b/src/mame/drivers/jongkyo.c
@@ -460,23 +460,6 @@ PALETTE_INIT_MEMBER(jongkyo_state, jongkyo)
/*************************************
*
- * Sound interface
- *
- *************************************/
-
-static const ay8910_interface ay8910_config =
-{
- AY8910_LEGACY_OUTPUT,
- AY8910_DEFAULT_LOADS,
- DEVCB_DRIVER_MEMBER(jongkyo_state,input_1p_r),
- DEVCB_DRIVER_MEMBER(jongkyo_state,input_2p_r),
- DEVCB_NULL,
- DEVCB_NULL
-};
-
-
-/*************************************
- *
* Machine driver
*
*************************************/
@@ -519,7 +502,8 @@ static MACHINE_CONFIG_START( jongkyo, jongkyo_state )
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_SOUND_ADD("aysnd", AY8910, JONGKYO_CLOCK/8)
- MCFG_SOUND_CONFIG(ay8910_config)
+ MCFG_AY8910_PORT_A_READ_CB(READ8(jongkyo_state, input_1p_r))
+ MCFG_AY8910_PORT_B_READ_CB(READ8(jongkyo_state, input_2p_r))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.33)
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/jpms80.c b/src/mame/drivers/jpms80.c
index 1ef17cda903..c506538863b 100644
--- a/src/mame/drivers/jpms80.c
+++ b/src/mame/drivers/jpms80.c
@@ -64,18 +64,6 @@ ADDRESS_MAP_END
static INPUT_PORTS_START( jpms80 )
INPUT_PORTS_END
-
-static const ay8910_interface ay8910_interface_jpm =
-{
- AY8910_LEGACY_OUTPUT,
- AY8910_DEFAULT_LOADS,
- DEVCB_NULL,
- DEVCB_NULL,
- DEVCB_NULL,
- DEVCB_NULL
-};
-
-
// these are wrong
#define MAIN_CLOCK 2000000
#define SOUND_CLOCK 2000000
@@ -95,7 +83,6 @@ static MACHINE_CONFIG_START( jpms80, jpms80_state )
MCFG_DEVICE_ADD("tms9902duart", TMS9902, DUART_CLOCK)
MCFG_SOUND_ADD("aysnd", AY8910, 2000000)
- MCFG_SOUND_CONFIG(ay8910_interface_jpm)
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/junofrst.c b/src/mame/drivers/junofrst.c
index e01b4c32801..0948663cc99 100644
--- a/src/mame/drivers/junofrst.c
+++ b/src/mame/drivers/junofrst.c
@@ -368,18 +368,6 @@ static INPUT_PORTS_START( junofrst )
INPUT_PORTS_END
-
-static const ay8910_interface ay8910_config =
-{
- AY8910_LEGACY_OUTPUT,
- AY8910_DEFAULT_LOADS,
- DEVCB_DRIVER_MEMBER(junofrst_state,junofrst_portA_r),
- DEVCB_NULL,
- DEVCB_NULL,
- DEVCB_DRIVER_MEMBER(junofrst_state,junofrst_portB_w)
-};
-
-
MACHINE_START_MEMBER(junofrst_state,junofrst)
{
m_filter_0_0 = machine().device("filter.0.0");
@@ -444,7 +432,8 @@ static MACHINE_CONFIG_START( junofrst, junofrst_state )
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_SOUND_ADD("aysnd", AY8910, 14318000/8)
- MCFG_SOUND_CONFIG(ay8910_config)
+ MCFG_AY8910_PORT_A_READ_CB(READ8(junofrst_state, junofrst_portA_r))
+ MCFG_AY8910_PORT_B_WRITE_CB(WRITE8(junofrst_state, junofrst_portB_w))
MCFG_SOUND_ROUTE(0, "filter.0.0", 0.30)
MCFG_SOUND_ROUTE(1, "filter.0.1", 0.30)
MCFG_SOUND_ROUTE(2, "filter.0.2", 0.30)
diff --git a/src/mame/drivers/kaneko16.c b/src/mame/drivers/kaneko16.c
index 04e50f4ca7a..b12593e7be5 100644
--- a/src/mame/drivers/kaneko16.c
+++ b/src/mame/drivers/kaneko16.c
@@ -87,7 +87,6 @@ Dip locations verified from manual for:
#include "emu.h"
#include "cpu/z80/z80.h"
#include "cpu/m68000/m68000.h"
-#include "machine/eepromser.h"
#include "includes/kaneko16.h"
#include "sound/2203intf.h"
#include "sound/2151intf.h"
@@ -219,6 +218,15 @@ WRITE16_MEMBER(kaneko16_state::kaneko16_eeprom_w)
}
}
+READ8_MEMBER(kaneko16_state::eeprom_r)
+{
+ return m_eeprom->do_read();
+}
+
+WRITE8_MEMBER(kaneko16_state::eeprom_w)
+{
+ m_eeprom->cs_write(data);
+}
/***************************************************************************
@@ -1654,27 +1662,6 @@ TIMER_DEVICE_CALLBACK_MEMBER(kaneko16_state::kaneko16_interrupt)
m_maincpu->set_input_line(3, HOLD_LINE);
}
-static const ay8910_interface ay8910_intf_dsw =
-{
- AY8910_LEGACY_OUTPUT,
- AY8910_DEFAULT_LOADS,
- DEVCB_INPUT_PORT("DSW1"),
- DEVCB_INPUT_PORT("DSW2"),
- DEVCB_NULL,
- DEVCB_NULL,
-};
-
-static const ay8910_interface ay8910_intf_eeprom =
-{
- AY8910_LEGACY_OUTPUT,
- AY8910_DEFAULT_LOADS,
- DEVCB_DEVICE_LINE_MEMBER("eeprom", eeprom_serial_93cxx_device, do_read), /* inputs A: 0,EEPROM bit read */
- DEVCB_NULL, /* inputs B */
- DEVCB_NULL, /* outputs A */
- DEVCB_DEVICE_LINE_MEMBER("eeprom", eeprom_serial_93cxx_device, cs_write) /* outputs B: 0,EEPROM reset */
-};
-
-
/***************************************************************************
The Berlin Wall
***************************************************************************/
@@ -1728,7 +1715,8 @@ static MACHINE_CONFIG_START( berlwall, kaneko16_berlwall_state )
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
MCFG_SOUND_ADD("ay1", YM2149, 1000000)
- MCFG_SOUND_CONFIG(ay8910_intf_dsw)
+ MCFG_AY8910_PORT_A_READ_CB(IOPORT("DSW1"))
+ MCFG_AY8910_PORT_B_READ_CB(IOPORT("DSW2"))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 1.0)
MCFG_SOUND_ADD("ay2", YM2149, 1000000)
@@ -1794,7 +1782,8 @@ static MACHINE_CONFIG_START( bakubrkr, kaneko16_state )
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
MCFG_SOUND_ADD("ay2", YM2149, XTAL_12MHz/6) /* verified on pcb */
- MCFG_SOUND_CONFIG(ay8910_intf_eeprom)
+ MCFG_AY8910_PORT_A_READ_CB(READ8(kaneko16_state, eeprom_r)) /* inputs A: 0,EEPROM bit read */
+ MCFG_AY8910_PORT_B_WRITE_CB(WRITE8(kaneko16_state, eeprom_w)) /* outputs B: 0,EEPROM reset */
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
MCFG_OKIM6295_ADD("oki", XTAL_12MHz/6, OKIM6295_PIN7_HIGH) /* verified on pcb */
@@ -2051,7 +2040,8 @@ static MACHINE_CONFIG_START( mgcrystl, kaneko16_state )
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
MCFG_SOUND_ADD("ay2", YM2149, XTAL_12MHz/6) /* verified on pcb */
- MCFG_SOUND_CONFIG(ay8910_intf_eeprom)
+ MCFG_AY8910_PORT_A_READ_CB(READ8(kaneko16_state, eeprom_r)) /* inputs A: 0,EEPROM bit read */
+ MCFG_AY8910_PORT_B_WRITE_CB(WRITE8(kaneko16_state, eeprom_w)) /* outputs B: 0,EEPROM reset */
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
MCFG_OKIM6295_ADD("oki", XTAL_12MHz/6, OKIM6295_PIN7_HIGH) /* verified on pcb */
diff --git a/src/mame/drivers/kas89.c b/src/mame/drivers/kas89.c
index 88cc456b237..a95db485102 100644
--- a/src/mame/drivers/kas89.c
+++ b/src/mame/drivers/kas89.c
@@ -751,21 +751,6 @@ static INPUT_PORTS_START( kas89 )
INPUT_PORTS_END
-/**********************************
-* AY-3-8910 Interface *
-**********************************/
-
-static const ay8910_interface ay8910_config =
-{
- AY8910_LEGACY_OUTPUT,
- AY8910_DEFAULT_LOADS,
- DEVCB_NULL, // Nothing connected here.
- DEVCB_NULL, // Nothing connected here.
- DEVCB_NULL, // Nothing connected here.
- DEVCB_NULL // Nothing connected here.
-};
-
-
/**************************************
* Machine Driver *
**************************************/
@@ -802,7 +787,6 @@ static MACHINE_CONFIG_START( kas89, kas89_state )
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_SOUND_ADD("aysnd", AY8910, MASTER_CLOCK/12) /* Confirmed */
- MCFG_SOUND_CONFIG(ay8910_config)
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/kingdrby.c b/src/mame/drivers/kingdrby.c
index 00b7bed9eaa..43a53a6667a 100644
--- a/src/mame/drivers/kingdrby.c
+++ b/src/mame/drivers/kingdrby.c
@@ -864,26 +864,6 @@ GFXDECODE_END
*
*************************************/
-static const ay8910_interface ay8910_config =
-{
- AY8910_LEGACY_OUTPUT,
- AY8910_DEFAULT_LOADS,
- DEVCB_DRIVER_MEMBER(kingdrby_state,sound_cmd_r),
- DEVCB_NULL, /* discrete read? */
- DEVCB_NULL,
- DEVCB_NULL /* discrete write? */
-};
-
-static const ay8910_interface cowrace_ay8910_config =
-{
- AY8910_LEGACY_OUTPUT,
- AY8910_DEFAULT_LOADS,
- DEVCB_DRIVER_MEMBER(kingdrby_state,sound_cmd_r), // read A
- DEVCB_DEVICE_MEMBER("oki", okim6295_device, read), // read B
- DEVCB_NULL, // write A
- DEVCB_DEVICE_MEMBER("oki", okim6295_device, write) // write B
-};
-
PALETTE_INIT_MEMBER(kingdrby_state,kingdrby)
{
const UINT8 *color_prom = memregion("proms")->base();
@@ -993,7 +973,7 @@ static MACHINE_CONFIG_START( kingdrby, kingdrby_state )
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_SOUND_ADD("aysnd", AY8910, CLK_1/8) /* guess */
- MCFG_SOUND_CONFIG(ay8910_config)
+ MCFG_AY8910_PORT_A_READ_CB(READ8(kingdrby_state, sound_cmd_r))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25)
MACHINE_CONFIG_END
@@ -1032,7 +1012,9 @@ static MACHINE_CONFIG_DERIVED( cowrace, kingdrbb )
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.80)
MCFG_SOUND_REPLACE("aysnd", YM2203, 3000000)
- MCFG_YM2203_AY8910_INTF(&cowrace_ay8910_config)
+ MCFG_AY8910_PORT_A_READ_CB(READ8(kingdrby_state, sound_cmd_r))
+ MCFG_AY8910_PORT_B_READ_CB(DEVREAD8("oki", okim6295_device, read)) // read B
+ MCFG_AY8910_PORT_B_WRITE_CB(DEVWRITE8("oki", okim6295_device, write)) // write B
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.80)
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/kingobox.c b/src/mame/drivers/kingobox.c
index c1df39e9d66..2b7d4603831 100644
--- a/src/mame/drivers/kingobox.c
+++ b/src/mame/drivers/kingobox.c
@@ -435,13 +435,6 @@ static GFXDECODE_START( rk )
GFXDECODE_ENTRY( "gfx4", 0x00000, rk_bglayout, 0, 32 ) /* bg tiles */
GFXDECODE_END
-static const ay8910_interface ay8910_config =
-{
- AY8910_LEGACY_OUTPUT,
- AY8910_DEFAULT_LOADS,
- DEVCB_DRIVER_MEMBER(driver_device, soundlatch_byte_r)
-};
-
INTERRUPT_GEN_MEMBER(kingofb_state::kingofb_interrupt)
{
if (m_nmi_enable)
@@ -502,7 +495,7 @@ static MACHINE_CONFIG_START( kingofb, kingofb_state )
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_SOUND_ADD("aysnd", AY8910, 1500000)
- MCFG_SOUND_CONFIG(ay8910_config)
+ MCFG_AY8910_PORT_A_READ_CB(READ8(driver_device, soundlatch_byte_r))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25)
MCFG_DAC_ADD("dac")
@@ -553,7 +546,7 @@ static MACHINE_CONFIG_START( ringking, kingofb_state )
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_SOUND_ADD("aysnd", AY8910, 1500000)
- MCFG_SOUND_CONFIG(ay8910_config)
+ MCFG_AY8910_PORT_A_READ_CB(READ8(driver_device, soundlatch_byte_r))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25)
MCFG_DAC_ADD("dac")
diff --git a/src/mame/drivers/kingpin.c b/src/mame/drivers/kingpin.c
index e6933020301..e2ff12c64bc 100644
--- a/src/mame/drivers/kingpin.c
+++ b/src/mame/drivers/kingpin.c
@@ -126,16 +126,6 @@ WRITE_LINE_MEMBER(kingpin_state::vdp_interrupt)
m_maincpu->set_input_line(0, state ? ASSERT_LINE : CLEAR_LINE);
}
-static const ay8910_interface ay8912_interface =
-{
- AY8910_LEGACY_OUTPUT,
- AY8910_DEFAULT_LOADS,
- DEVCB_NULL,
- DEVCB_NULL,
- DEVCB_NULL,
- DEVCB_NULL
-};
-
static MACHINE_CONFIG_START( kingpin, kingpin_state )
/* basic machine hardware */
@@ -170,7 +160,6 @@ static MACHINE_CONFIG_START( kingpin, kingpin_state )
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_SOUND_ADD("aysnd", AY8912, XTAL_3_579545MHz)
- MCFG_SOUND_CONFIG(ay8912_interface)
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50)
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/kncljoe.c b/src/mame/drivers/kncljoe.c
index 75e0ddb3005..b1a4b98782b 100644
--- a/src/mame/drivers/kncljoe.c
+++ b/src/mame/drivers/kncljoe.c
@@ -229,15 +229,6 @@ static GFXDECODE_START( kncljoe )
GFXDECODE_ENTRY( "gfx3", 0, spritelayout, 0x80, 16 )
GFXDECODE_END
-static const ay8910_interface ay8910_config =
-{
- AY8910_LEGACY_OUTPUT,
- AY8910_DEFAULT_LOADS,
- DEVCB_DRIVER_MEMBER(driver_device, soundlatch_byte_r),
- DEVCB_NULL,
- DEVCB_NULL,
- DEVCB_DRIVER_MEMBER(kncljoe_state,unused_w)
-};
INTERRUPT_GEN_MEMBER(kncljoe_state::sound_nmi)
{
@@ -294,7 +285,8 @@ static MACHINE_CONFIG_START( kncljoe, kncljoe_state )
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_SOUND_ADD("aysnd", AY8910, XTAL_3_579545MHz/4) /* verified on pcb */
- MCFG_SOUND_CONFIG(ay8910_config)
+ MCFG_AY8910_PORT_A_READ_CB(READ8(driver_device, soundlatch_byte_r))
+ MCFG_AY8910_PORT_B_WRITE_CB(WRITE8(kncljoe_state, unused_w))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.30)
MCFG_SOUND_ADD("sn1", SN76489, XTAL_3_579545MHz) /* verified on pcb */
diff --git a/src/mame/drivers/koikoi.c b/src/mame/drivers/koikoi.c
index 7d2f4ef2ff1..e514b334d3e 100644
--- a/src/mame/drivers/koikoi.c
+++ b/src/mame/drivers/koikoi.c
@@ -319,21 +319,6 @@ GFXDECODE_END
/*************************************
*
- * Sound interface
- *
- *************************************/
-
-static const ay8910_interface ay8910_config =
-{
- AY8910_LEGACY_OUTPUT,
- AY8910_DEFAULT_LOADS,
- DEVCB_NULL, DEVCB_DRIVER_MEMBER(koikoi_state,input_r),
- DEVCB_DRIVER_MEMBER(koikoi_state,unknown_w), DEVCB_NULL
-};
-
-
-/*************************************
- *
* Machine driver
*
*************************************/
@@ -385,7 +370,8 @@ static MACHINE_CONFIG_START( koikoi, koikoi_state )
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_SOUND_ADD("aysnd", AY8910, KOIKOI_CRYSTAL/8)
- MCFG_SOUND_CONFIG(ay8910_config)
+ MCFG_AY8910_PORT_B_READ_CB(READ8(koikoi_state, input_r))
+ MCFG_AY8910_PORT_A_WRITE_CB(WRITE8(koikoi_state, unknown_w))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.10)
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/ksayakyu.c b/src/mame/drivers/ksayakyu.c
index abc22dc6a77..9ed7b750ae0 100644
--- a/src/mame/drivers/ksayakyu.c
+++ b/src/mame/drivers/ksayakyu.c
@@ -183,27 +183,6 @@ WRITE8_MEMBER(ksayakyu_state::dummy3_w)
// printf("%02x 3\n", data);
}
-
-static const ay8910_interface ay8910_interface_1 =
-{
- AY8910_LEGACY_OUTPUT,
- AY8910_DEFAULT_LOADS,
- DEVCB_DRIVER_MEMBER(driver_device, soundlatch_byte_r),
- DEVCB_NULL,
- DEVCB_NULL,
- DEVCB_DRIVER_MEMBER(ksayakyu_state,dummy1_w)
-};
-
-static const ay8910_interface ay8910_interface_2 =
-{
- AY8910_LEGACY_OUTPUT,
- AY8910_DEFAULT_LOADS,
- DEVCB_NULL,
- DEVCB_NULL,
- DEVCB_DRIVER_MEMBER(ksayakyu_state,dummy2_w),
- DEVCB_DRIVER_MEMBER(ksayakyu_state,dummy3_w)
-};
-
static const gfx_layout charlayout =
{
8,8,
@@ -296,11 +275,13 @@ static MACHINE_CONFIG_START( ksayakyu, ksayakyu_state )
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_SOUND_ADD("ay1", AY8910, MAIN_CLOCK/16) //unknown clock
- MCFG_SOUND_CONFIG(ay8910_interface_1)
+ MCFG_AY8910_PORT_A_READ_CB(READ8(driver_device, soundlatch_byte_r))
+ MCFG_AY8910_PORT_B_WRITE_CB(WRITE8(ksayakyu_state, dummy1_w))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25)
MCFG_SOUND_ADD("ay2", AY8910, MAIN_CLOCK/16) //unknown clock
- MCFG_SOUND_CONFIG(ay8910_interface_2)
+ MCFG_AY8910_PORT_A_WRITE_CB(WRITE8(ksayakyu_state, dummy2_w))
+ MCFG_AY8910_PORT_B_WRITE_CB(WRITE8(ksayakyu_state, dummy3_w))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25)
MCFG_DAC_ADD("dac")
diff --git a/src/mame/drivers/kurukuru.c b/src/mame/drivers/kurukuru.c
index f21e3dd21de..9ed799a789e 100644
--- a/src/mame/drivers/kurukuru.c
+++ b/src/mame/drivers/kurukuru.c
@@ -534,22 +534,6 @@ void kurukuru_state::machine_reset()
update_sound_irq(0);
}
-
-/*************************************************
-* Sound Interfaces *
-*************************************************/
-
-static const ay8910_interface ym2149_intf =
-{
- AY8910_LEGACY_OUTPUT,
- AY8910_DEFAULT_LOADS,
- DEVCB_UNMAPPED,
- DEVCB_INPUT_PORT("DSW2"),
- DEVCB_DRIVER_MEMBER(kurukuru_state, ym2149_aout_w),
- DEVCB_DRIVER_MEMBER(kurukuru_state, ym2149_bout_w)
-};
-
-
/*************************************************
* Machine Driver *
*************************************************/
@@ -586,7 +570,9 @@ static MACHINE_CONFIG_START( kurukuru, kurukuru_state )
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_SOUND_ADD("ym2149", YM2149, YM2149_CLOCK)
- MCFG_SOUND_CONFIG(ym2149_intf)
+ MCFG_AY8910_PORT_B_READ_CB(IOPORT("DSW2"))
+ MCFG_AY8910_PORT_A_WRITE_CB(WRITE8(kurukuru_state, ym2149_aout_w))
+ MCFG_AY8910_PORT_B_WRITE_CB(WRITE8(kurukuru_state, ym2149_bout_w))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.80)
MCFG_SOUND_ADD("adpcm", MSM5205, M5205_CLOCK)
diff --git a/src/mame/drivers/kyugo.c b/src/mame/drivers/kyugo.c
index cbc21f757b1..7e2afd7fc16 100644
--- a/src/mame/drivers/kyugo.c
+++ b/src/mame/drivers/kyugo.c
@@ -472,23 +472,6 @@ GFXDECODE_END
/*************************************
*
- * Sound definition
- *
- *************************************/
-
-static const ay8910_interface ay8910_config =
-{
- AY8910_LEGACY_OUTPUT,
- AY8910_DEFAULT_LOADS,
- DEVCB_INPUT_PORT("DSW1"),
- DEVCB_INPUT_PORT("DSW2"),
- DEVCB_NULL,
- DEVCB_NULL
-};
-
-
-/*************************************
- *
* Machine drivers
*
*************************************/
@@ -555,7 +538,8 @@ static MACHINE_CONFIG_START( gyrodine, kyugo_state )
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_SOUND_ADD("ay1", AY8910, XTAL_18_432MHz/12) /* verified on pcb */
- MCFG_SOUND_CONFIG(ay8910_config)
+ MCFG_AY8910_PORT_A_READ_CB(IOPORT("DSW1"))
+ MCFG_AY8910_PORT_B_READ_CB(IOPORT("DSW2"))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.30)
MCFG_SOUND_ADD("ay2", AY8910, XTAL_18_432MHz/12) /* verified on pcb */
diff --git a/src/mame/drivers/labyrunr.c b/src/mame/drivers/labyrunr.c
index 1869c9e863f..72ae74e0abe 100644
--- a/src/mame/drivers/labyrunr.c
+++ b/src/mame/drivers/labyrunr.c
@@ -153,28 +153,6 @@ GFXDECODE_END
***************************************************************************/
-static const ay8910_interface ay8910_config_1 =
-{
- AY8910_LEGACY_OUTPUT,
- AY8910_DEFAULT_LOADS,
- DEVCB_INPUT_PORT("DSW1"),
- DEVCB_INPUT_PORT("DSW2"),
- DEVCB_NULL,
- DEVCB_NULL
-};
-
-static const ay8910_interface ay8910_config_2 =
-{
- AY8910_LEGACY_OUTPUT,
- AY8910_DEFAULT_LOADS,
- DEVCB_NULL,
- DEVCB_INPUT_PORT("DSW3"),
- DEVCB_NULL,
- DEVCB_NULL
-};
-
-
-
void labyrunr_state::machine_start()
{
UINT8 *ROM = memregion("maincpu")->base();
@@ -214,14 +192,15 @@ static MACHINE_CONFIG_START( labyrunr, labyrunr_state )
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_SOUND_ADD("ym1", YM2203, 3000000)
- MCFG_YM2203_AY8910_INTF(&ay8910_config_1)
+ MCFG_AY8910_PORT_A_READ_CB(IOPORT("DSW1"))
+ MCFG_AY8910_PORT_B_READ_CB(IOPORT("DSW2"))
MCFG_SOUND_ROUTE(0, "mono", 0.40)
MCFG_SOUND_ROUTE(1, "mono", 0.40)
MCFG_SOUND_ROUTE(2, "mono", 0.40)
MCFG_SOUND_ROUTE(3, "mono", 0.80)
MCFG_SOUND_ADD("ym2", YM2203, 3000000)
- MCFG_YM2203_AY8910_INTF(&ay8910_config_2)
+ MCFG_AY8910_PORT_B_READ_CB(IOPORT("DSW3"))
MCFG_SOUND_ROUTE(0, "mono", 0.40)
MCFG_SOUND_ROUTE(1, "mono", 0.40)
MCFG_SOUND_ROUTE(2, "mono", 0.40)
diff --git a/src/mame/drivers/ladyfrog.c b/src/mame/drivers/ladyfrog.c
index bfb3ce7f8b7..b9035bc6003 100644
--- a/src/mame/drivers/ladyfrog.c
+++ b/src/mame/drivers/ladyfrog.c
@@ -102,16 +102,6 @@ WRITE8_MEMBER(ladyfrog_state::unk_w)
{
}
-static const ay8910_interface ay8910_config =
-{
- AY8910_LEGACY_OUTPUT,
- AY8910_DEFAULT_LOADS,
- DEVCB_NULL,
- DEVCB_NULL,
- DEVCB_DRIVER_MEMBER(ladyfrog_state,unk_w),
- DEVCB_DRIVER_MEMBER(ladyfrog_state,unk_w)
-};
-
READ8_MEMBER(ladyfrog_state::snd_flag_r)
{
return m_snd_flag | 0xfd;
@@ -317,7 +307,8 @@ static MACHINE_CONFIG_START( ladyfrog, ladyfrog_state )
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_SOUND_ADD("aysnd", AY8910, 8000000/4)
- MCFG_SOUND_CONFIG(ay8910_config)
+ MCFG_AY8910_PORT_A_WRITE_CB(WRITE8(ladyfrog_state, unk_w))
+ MCFG_AY8910_PORT_B_WRITE_CB(WRITE8(ladyfrog_state, unk_w))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.15)
MCFG_SOUND_ADD("msm", MSM5232, 2000000)
diff --git a/src/mame/drivers/laserbat.c b/src/mame/drivers/laserbat.c
index 0a8b055cd91..ce63e464965 100644
--- a/src/mame/drivers/laserbat.c
+++ b/src/mame/drivers/laserbat.c
@@ -612,17 +612,6 @@ WRITE8_MEMBER(laserbat_state::zaccaria_port0b_w)
m_last_port0b = data;
}
-static const ay8910_interface ay8910_config =
-{
- AY8910_LEGACY_OUTPUT,
- AY8910_DEFAULT_LOADS,
- DEVCB_NULL,
- DEVCB_DRIVER_MEMBER(driver_device, soundlatch_byte_r),
- DEVCB_NULL,//ay8910_port0a_w,
- DEVCB_NULL
-};
-
-
INTERRUPT_GEN_MEMBER(laserbat_state::laserbat_interrupt)
{
device.execute().set_input_line_and_vector(0, HOLD_LINE, 0x0a);
@@ -779,7 +768,7 @@ static MACHINE_CONFIG_START( catnmous, laserbat_state )
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_SOUND_ADD("ay1", AY8910, 3580000/2) // ?
- MCFG_SOUND_CONFIG(ay8910_config)
+ MCFG_AY8910_PORT_B_READ_CB(READ8(driver_device, soundlatch_byte_r))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
MCFG_SOUND_ADD("ay2", AY8910, 3580000/2) // ?
diff --git a/src/mame/drivers/lastduel.c b/src/mame/drivers/lastduel.c
index b50090aa865..a8be5729635 100644
--- a/src/mame/drivers/lastduel.c
+++ b/src/mame/drivers/lastduel.c
@@ -449,13 +449,6 @@ WRITE_LINE_MEMBER(lastduel_state::irqhandler)
m_audiocpu->set_input_line(0, state ? ASSERT_LINE : CLEAR_LINE);
}
-static const ay8910_interface ay8910_config =
-{
- AY8910_LEGACY_OUTPUT,
- AY8910_DEFAULT_LOADS,
- DEVCB_NULL, DEVCB_NULL, DEVCB_NULL, DEVCB_NULL,
-};
-
TIMER_DEVICE_CALLBACK_MEMBER(lastduel_state::lastduel_timer_cb)
{
m_maincpu->set_input_line(4, HOLD_LINE); /* Controls */
@@ -527,7 +520,6 @@ static MACHINE_CONFIG_START( lastduel, lastduel_state )
MCFG_SOUND_ADD("ym1", YM2203, XTAL_3_579545MHz)
MCFG_YM2203_IRQ_HANDLER(WRITELINE(lastduel_state, irqhandler))
- MCFG_YM2203_AY8910_INTF(&ay8910_config)
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.40)
MCFG_SOUND_ADD("ym2", YM2203, XTAL_3_579545MHz)
@@ -571,7 +563,6 @@ static MACHINE_CONFIG_START( madgear, lastduel_state )
MCFG_SOUND_ADD("ym1", YM2203, XTAL_3_579545MHz)
MCFG_YM2203_IRQ_HANDLER(WRITELINE(lastduel_state, irqhandler))
- MCFG_YM2203_AY8910_INTF(&ay8910_config)
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.40)
MCFG_SOUND_ADD("ym2", YM2203, XTAL_3_579545MHz)
diff --git a/src/mame/drivers/leland.c b/src/mame/drivers/leland.c
index 7bb30685bb7..28ec0524db8 100644
--- a/src/mame/drivers/leland.c
+++ b/src/mame/drivers/leland.c
@@ -716,17 +716,6 @@ INPUT_PORTS_END
it does not take cross-chip mixing effects into account.
*/
-static const ay8910_interface ay8910_config =
-{
- AY8910_SINGLE_OUTPUT,
- {1000, 0, 0},
- DEVCB_DRIVER_MEMBER(leland_state, leland_sound_port_r),
- DEVCB_NULL,
- DEVCB_DRIVER_MEMBER(leland_state, leland_sound_port_w),
- DEVCB_NULL
-};
-
-
/*************************************
*
@@ -758,11 +747,17 @@ static MACHINE_CONFIG_START( leland, leland_state )
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_SOUND_ADD("ay8910.1", AY8910, 10000000/6)
- MCFG_SOUND_CONFIG(ay8910_config)
+ MCFG_AY8910_OUTPUT_TYPE(AY8910_SINGLE_OUTPUT)
+ MCFG_AY8910_RES_LOADS(1000, 0, 0)
+ MCFG_AY8910_PORT_A_READ_CB(READ8(leland_state, leland_sound_port_r))
+ MCFG_AY8910_PORT_A_WRITE_CB(WRITE8(leland_state, leland_sound_port_w))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25)
MCFG_SOUND_ADD("ay8910.2", AY8910, 10000000/6)
- MCFG_SOUND_CONFIG(ay8910_config)
+ MCFG_AY8910_OUTPUT_TYPE(AY8910_SINGLE_OUTPUT)
+ MCFG_AY8910_RES_LOADS(1000, 0, 0)
+ MCFG_AY8910_PORT_A_READ_CB(READ8(leland_state, leland_sound_port_r))
+ MCFG_AY8910_PORT_A_WRITE_CB(WRITE8(leland_state, leland_sound_port_w))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25)
MCFG_SOUND_ADD("dac0", DAC, 0)
diff --git a/src/mame/drivers/lkage.c b/src/mame/drivers/lkage.c
index 70c527cd423..65b71fc8b16 100644
--- a/src/mame/drivers/lkage.c
+++ b/src/mame/drivers/lkage.c
@@ -479,13 +479,6 @@ WRITE_LINE_MEMBER(lkage_state::irqhandler)
m_audiocpu->set_input_line(0, state ? ASSERT_LINE : CLEAR_LINE);
}
-static const ay8910_interface ay8910_config =
-{
- AY8910_LEGACY_OUTPUT,
- AY8910_DEFAULT_LOADS,
- DEVCB_NULL, DEVCB_NULL, DEVCB_NULL, DEVCB_NULL
-};
-
void lkage_state::machine_start()
{
save_item(NAME(m_bg_tile_bank));
@@ -573,7 +566,6 @@ static MACHINE_CONFIG_START( lkage, lkage_state )
MCFG_SOUND_ADD("ym1", YM2203, AUDIO_CLOCK )
MCFG_YM2203_IRQ_HANDLER(WRITELINE(lkage_state, irqhandler))
- MCFG_YM2203_AY8910_INTF(&ay8910_config)
MCFG_SOUND_ROUTE(0, "mono", 0.15)
MCFG_SOUND_ROUTE(1, "mono", 0.15)
MCFG_SOUND_ROUTE(2, "mono", 0.15)
@@ -619,7 +611,6 @@ static MACHINE_CONFIG_START( lkageb, lkage_state )
MCFG_SOUND_ADD("ym1", YM2203, AUDIO_CLOCK)
MCFG_YM2203_IRQ_HANDLER(WRITELINE(lkage_state, irqhandler))
- MCFG_YM2203_AY8910_INTF(&ay8910_config)
MCFG_SOUND_ROUTE(0, "mono", 0.15)
MCFG_SOUND_ROUTE(1, "mono", 0.15)
MCFG_SOUND_ROUTE(2, "mono", 0.15)
diff --git a/src/mame/drivers/lockon.c b/src/mame/drivers/lockon.c
index 72242cc62ab..28f4b365b0c 100644
--- a/src/mame/drivers/lockon.c
+++ b/src/mame/drivers/lockon.c
@@ -429,17 +429,6 @@ WRITE8_MEMBER(lockon_state::ym2203_out_b)
set_led_status(machine(), 1, !(data & 0x10));
}
-static const ay8910_interface ay8910_config =
-{
- AY8910_LEGACY_OUTPUT,
- AY8910_DEFAULT_LOADS,
- DEVCB_INPUT_PORT("YM2203"),
- DEVCB_NULL,
- DEVCB_NULL,
- DEVCB_DRIVER_MEMBER(lockon_state,ym2203_out_b),
-};
-
-
/*************************************
*
* Machine driver
@@ -520,7 +509,8 @@ static MACHINE_CONFIG_START( lockon, lockon_state )
MCFG_SOUND_ADD("ymsnd", YM2203, XTAL_16MHz / 4)
MCFG_YM2203_IRQ_HANDLER(WRITELINE(lockon_state, ym2203_irq))
- MCFG_YM2203_AY8910_INTF(&ay8910_config)
+ MCFG_AY8910_PORT_A_READ_CB(IOPORT("YM2203"))
+ MCFG_AY8910_PORT_B_WRITE_CB(WRITE8(lockon_state, ym2203_out_b))
MCFG_SOUND_ROUTE(0, "lspeaker", 0.40)
MCFG_SOUND_ROUTE(0, "rspeaker", 0.40)
MCFG_SOUND_ROUTE(1, "f2203.1l", 1.0)
diff --git a/src/mame/drivers/looping.c b/src/mame/drivers/looping.c
index 03c32b22650..9c244919ac8 100644
--- a/src/mame/drivers/looping.c
+++ b/src/mame/drivers/looping.c
@@ -617,23 +617,6 @@ static GFXDECODE_START( looping )
GFXDECODE_END
-
-/*************************************
- *
- * Sound interfaces
- *
- *************************************/
-
-static const ay8910_interface ay8910_config =
-{
- AY8910_LEGACY_OUTPUT,
- AY8910_DEFAULT_LOADS,
- DEVCB_DRIVER_MEMBER(driver_device, soundlatch_byte_r),
- DEVCB_NULL,
- DEVCB_NULL,
- DEVCB_NULL
-};
-
/*************************************
*
* Machine drivers
@@ -670,7 +653,7 @@ static MACHINE_CONFIG_START( looping, looping_state )
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_SOUND_ADD("aysnd", AY8910, SOUND_CLOCK/4)
- MCFG_SOUND_CONFIG(ay8910_config)
+ MCFG_AY8910_PORT_A_READ_CB(READ8(driver_device, soundlatch_byte_r))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.20)
MCFG_SOUND_ADD("tms", TMS5220, TMS_CLOCK)
diff --git a/src/mame/drivers/lsasquad.c b/src/mame/drivers/lsasquad.c
index 41f02b1c0fd..16073a9995d 100644
--- a/src/mame/drivers/lsasquad.c
+++ b/src/mame/drivers/lsasquad.c
@@ -547,18 +547,6 @@ WRITE8_MEMBER(lsasquad_state::unk)
{
}
-
-static const ay8910_interface ay8910_config =
-{
- AY8910_LEGACY_OUTPUT,
- AY8910_DEFAULT_LOADS,
- DEVCB_NULL,
- DEVCB_NULL,
- DEVCB_DRIVER_MEMBER(lsasquad_state,unk),
- DEVCB_DRIVER_MEMBER(lsasquad_state,unk),
-};
-
-
MACHINE_START_MEMBER(lsasquad_state,lsasquad)
{
UINT8 *ROM = memregion("maincpu")->base();
@@ -644,7 +632,8 @@ static MACHINE_CONFIG_START( lsasquad, lsasquad_state )
MCFG_SOUND_ADD("ymsnd", YM2203, MASTER_CLOCK / 8)
MCFG_YM2203_IRQ_HANDLER(WRITELINE(lsasquad_state, irqhandler))
- MCFG_YM2203_AY8910_INTF(&ay8910_config)
+ MCFG_AY8910_PORT_A_WRITE_CB(WRITE8(lsasquad_state, unk))
+ MCFG_AY8910_PORT_B_WRITE_CB(WRITE8(lsasquad_state, unk))
MCFG_SOUND_ROUTE(0, "mono", 0.12)
MCFG_SOUND_ROUTE(1, "mono", 0.12)
MCFG_SOUND_ROUTE(2, "mono", 0.12)
@@ -700,7 +689,8 @@ static MACHINE_CONFIG_START( daikaiju, lsasquad_state )
MCFG_SOUND_ADD("ymsnd", YM2203, MASTER_CLOCK / 8)
MCFG_YM2203_IRQ_HANDLER(WRITELINE(lsasquad_state, irqhandler))
- MCFG_YM2203_AY8910_INTF(&ay8910_config)
+ MCFG_AY8910_PORT_A_WRITE_CB(WRITE8(lsasquad_state, unk))
+ MCFG_AY8910_PORT_B_WRITE_CB(WRITE8(lsasquad_state, unk))
MCFG_SOUND_ROUTE(0, "mono", 0.12)
MCFG_SOUND_ROUTE(1, "mono", 0.12)
MCFG_SOUND_ROUTE(2, "mono", 0.12)
diff --git a/src/mame/drivers/lucky74.c b/src/mame/drivers/lucky74.c
index c293512a5a9..238382736d5 100644
--- a/src/mame/drivers/lucky74.c
+++ b/src/mame/drivers/lucky74.c
@@ -1451,22 +1451,6 @@ WRITE_LINE_MEMBER(lucky74_state::lucky74_adpcm_int)
return;
}
-
-/*****************************
-* Sound Interfaces *
-*****************************/
-
-static const ay8910_interface ay8910_config =
-{
- AY8910_LEGACY_OUTPUT,
- AY8910_DEFAULT_LOADS,
- DEVCB_INPUT_PORT("IN3"),
- DEVCB_NULL, /* a sort of status byte */
- DEVCB_NULL,
- DEVCB_DRIVER_MEMBER(lucky74_state,ym2149_portb_w)
-};
-
-
/*************************
* Machine Drivers *
*************************/
@@ -1529,7 +1513,9 @@ static MACHINE_CONFIG_START( lucky74, lucky74_state )
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.80)
MCFG_SOUND_ADD("aysnd", AY8910, C_06B49P_CLKOUT_04) /* 1.5 MHz. */
- MCFG_SOUND_CONFIG(ay8910_config)
+ MCFG_AY8910_PORT_A_READ_CB(IOPORT("IN3"))
+ /* port b read is a sort of status byte */
+ MCFG_AY8910_PORT_B_WRITE_CB(WRITE8(lucky74_state, ym2149_portb_w))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.00) /* not routed to audio hardware */
MCFG_SOUND_ADD("msm", MSM5205, C_06B49P_CLKOUT_06) /* 375 kHz. */
diff --git a/src/mame/drivers/lvcards.c b/src/mame/drivers/lvcards.c
index 382c95b730e..cd6939802b3 100644
--- a/src/mame/drivers/lvcards.c
+++ b/src/mame/drivers/lvcards.c
@@ -447,17 +447,6 @@ GFXDECODE_END
/* Sound Interfaces */
-static const ay8910_interface lcay8910_interface =
-{
- AY8910_LEGACY_OUTPUT,
- AY8910_DEFAULT_LOADS,
- DEVCB_INPUT_PORT("DSW0"),
- DEVCB_INPUT_PORT("DSW1"),
- DEVCB_NULL,
- DEVCB_NULL
-};
-
-
static MACHINE_CONFIG_START( lvcards, lvcards_state )
// basic machine hardware
MCFG_CPU_ADD("maincpu",Z80, 18432000/6) // 3.072 MHz ?
@@ -484,7 +473,8 @@ static MACHINE_CONFIG_START( lvcards, lvcards_state )
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_SOUND_ADD("aysnd", AY8910, 18432000/12)
- MCFG_SOUND_CONFIG(lcay8910_interface)
+ MCFG_AY8910_PORT_A_READ_CB(IOPORT("DSW0"))
+ MCFG_AY8910_PORT_B_READ_CB(IOPORT("DSW1"))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25)
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/madalien.c b/src/mame/drivers/madalien.c
index 8bdeb52e773..f430d4e2b82 100644
--- a/src/mame/drivers/madalien.c
+++ b/src/mame/drivers/madalien.c
@@ -157,17 +157,6 @@ static INPUT_PORTS_START( madalien )
INPUT_PORTS_END
-static const ay8910_interface ay8910_config =
-{
- AY8910_LEGACY_OUTPUT,
- AY8910_DEFAULT_LOADS,
- DEVCB_NULL,
- DEVCB_NULL,
- DEVCB_DRIVER_MEMBER(madalien_state,madalien_portA_w),
- DEVCB_DRIVER_MEMBER(madalien_state,madalien_portB_w)
-};
-
-
static MACHINE_CONFIG_START( madalien, madalien_state )
/* main CPU */
@@ -185,7 +174,8 @@ static MACHINE_CONFIG_START( madalien, madalien_state )
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_SOUND_ADD("aysnd", AY8910, SOUND_CLOCK / 4)
- MCFG_SOUND_CONFIG(ay8910_config)
+ MCFG_AY8910_PORT_A_WRITE_CB(WRITE8(madalien_state, madalien_portA_w))
+ MCFG_AY8910_PORT_B_WRITE_CB(WRITE8(madalien_state, madalien_portB_w))
MCFG_SOUND_ROUTE_EX(0, "discrete", 1.0, 0)
MCFG_SOUND_ROUTE_EX(1, "discrete", 1.0, 1)
MCFG_SOUND_ROUTE_EX(2, "discrete", 1.0, 2)
diff --git a/src/mame/drivers/magmax.c b/src/mame/drivers/magmax.c
index 584d3edd082..194f46adb64 100644
--- a/src/mame/drivers/magmax.c
+++ b/src/mame/drivers/magmax.c
@@ -330,17 +330,6 @@ static GFXDECODE_START( magmax )
GFXDECODE_END
-static const ay8910_interface ay8910_config =
-{
- AY8910_LEGACY_OUTPUT,
- AY8910_DEFAULT_LOADS,
- DEVCB_NULL,
- DEVCB_NULL,
- DEVCB_DRIVER_MEMBER(magmax_state,ay8910_portA_0_w), /*write port A*/
- DEVCB_DRIVER_MEMBER(magmax_state,ay8910_portB_0_w) /*write port B*/
-};
-
-
static MACHINE_CONFIG_START( magmax, magmax_state )
/* basic machine hardware */
@@ -372,7 +361,8 @@ static MACHINE_CONFIG_START( magmax, magmax_state )
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_SOUND_ADD("ay1", AY8910, XTAL_20MHz/16) /* verified on pcb */
- MCFG_SOUND_CONFIG(ay8910_config)
+ MCFG_AY8910_PORT_A_WRITE_CB(WRITE8(magmax_state, ay8910_portA_0_w)) /*write port A*/
+ MCFG_AY8910_PORT_B_WRITE_CB(WRITE8(magmax_state, ay8910_portB_0_w)) /*write port B*/
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.40)
MCFG_SOUND_ADD("ay2", AY8910, XTAL_20MHz/16) /* verified on pcb */
diff --git a/src/mame/drivers/maygay1b.c b/src/mame/drivers/maygay1b.c
index a8e87c635fd..809063c113d 100644
--- a/src/mame/drivers/maygay1b.c
+++ b/src/mame/drivers/maygay1b.c
@@ -454,15 +454,6 @@ static ADDRESS_MAP_START( m1_memmap, AS_PROGRAM, 8, maygay1b_state )
AM_RANGE(0x2800, 0xffff) AM_ROM
ADDRESS_MAP_END
-static const ay8910_interface ay8910_config =
-{
- AY8910_LEGACY_OUTPUT,
- AY8910_DEFAULT_LOADS,
- DEVCB_NULL,
- DEVCB_NULL,
- DEVCB_DRIVER_MEMBER(maygay1b_state,m1_meter_w),
- DEVCB_DRIVER_MEMBER(maygay1b_state,m1_lockout_w),
-};
/*************************************
*
@@ -538,8 +529,9 @@ MACHINE_CONFIG_START( maygay_m1, maygay1b_state )
MCFG_S16LF01_ADD("vfd",0)
MCFG_SPEAKER_STANDARD_MONO("mono")
- MCFG_SOUND_ADD("aysnd",YM2149, M1_MASTER_CLOCK)
- MCFG_SOUND_CONFIG(ay8910_config)
+ MCFG_SOUND_ADD("aysnd", YM2149, M1_MASTER_CLOCK)
+ MCFG_AY8910_PORT_A_WRITE_CB(WRITE8(maygay1b_state, m1_meter_w))
+ MCFG_AY8910_PORT_B_WRITE_CB(WRITE8(maygay1b_state, m1_lockout_w))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
MCFG_SOUND_ADD("ymsnd", YM2413, M1_MASTER_CLOCK/4)
diff --git a/src/mame/drivers/mayumi.c b/src/mame/drivers/mayumi.c
index 889f38526b5..f93b10a6a79 100644
--- a/src/mame/drivers/mayumi.c
+++ b/src/mame/drivers/mayumi.c
@@ -343,22 +343,6 @@ GFXDECODE_END
/*************************************
*
- * Sound interfaces
- *
- *************************************/
-
-static const ay8910_interface ay8910_config =
-{
- AY8910_LEGACY_OUTPUT,
- AY8910_DEFAULT_LOADS,
- DEVCB_INPUT_PORT("DSW1"),
- DEVCB_INPUT_PORT("DSW2"),
- DEVCB_NULL,
- DEVCB_NULL
-};
-
-/*************************************
- *
* Machine driver
*
*************************************/
@@ -409,7 +393,8 @@ static MACHINE_CONFIG_START( mayumi, mayumi_state )
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_SOUND_ADD("ymsnd", YM2203, MCLK/4)
- MCFG_YM2203_AY8910_INTF(&ay8910_config)
+ MCFG_AY8910_PORT_A_READ_CB(IOPORT("DSW1"))
+ MCFG_AY8910_PORT_B_READ_CB(IOPORT("DSW2"))
MCFG_SOUND_ROUTE(0, "mono", 0.15)
MCFG_SOUND_ROUTE(1, "mono", 0.15)
MCFG_SOUND_ROUTE(2, "mono", 0.15)
diff --git a/src/mame/drivers/mazerbla.c b/src/mame/drivers/mazerbla.c
index 0b9d927258a..73014eab723 100644
--- a/src/mame/drivers/mazerbla.c
+++ b/src/mame/drivers/mazerbla.c
@@ -1346,27 +1346,6 @@ INPUT_PORTS_END
*
*************************************/
-/* only Great Guns */
-static const ay8910_interface ay8912_interface_1 =
-{
- AY8910_LEGACY_OUTPUT,
- AY8910_DEFAULT_LOADS,
- DEVCB_NULL,
- DEVCB_DRIVER_MEMBER(mazerbla_state,soundcommand_r),
- DEVCB_NULL,
- DEVCB_NULL
-};
-
-static const ay8910_interface ay8912_interface_2 =
-{
- AY8910_LEGACY_OUTPUT,
- AY8910_DEFAULT_LOADS,
- DEVCB_NULL,
- DEVCB_NULL,
- DEVCB_NULL,
- DEVCB_DRIVER_MEMBER(mazerbla_state,gg_led_ctrl_w)
-};
-
IRQ_CALLBACK_MEMBER(mazerbla_state::irq_callback)
{
/* all data lines are tied to +5V via 10K resistors */
@@ -1547,11 +1526,11 @@ static MACHINE_CONFIG_START( greatgun, mazerbla_state )
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_SOUND_ADD("ay1", AY8910, SOUND_CLOCK / 8)
- MCFG_SOUND_CONFIG(ay8912_interface_1)
+ MCFG_AY8910_PORT_B_READ_CB(READ8(mazerbla_state, soundcommand_r))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.30)
MCFG_SOUND_ADD("ay2", AY8910, SOUND_CLOCK / 8)
- MCFG_SOUND_CONFIG(ay8912_interface_2)
+ MCFG_AY8910_PORT_B_WRITE_CB(WRITE8(mazerbla_state, gg_led_ctrl_w))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/mcatadv.c b/src/mame/drivers/mcatadv.c
index ee9ab9db7db..67d0e5d5756 100644
--- a/src/mame/drivers/mcatadv.c
+++ b/src/mame/drivers/mcatadv.c
@@ -464,6 +464,7 @@ static MACHINE_CONFIG_START( mcatadv, mcatadv_state )
MCFG_SOUND_ADD("ymsnd", YM2610, XTAL_16MHz/2) /* verified on pcb */
MCFG_YM2610_IRQ_HANDLER(WRITELINE(mcatadv_state, sound_irq))
+ MCFG_AY8910_OUTPUT_TYPE(AY8910_LEGACY_OUTPUT | AY8910_SINGLE_OUTPUT)
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/megasys1.c b/src/mame/drivers/megasys1.c
index 41d4a72eccb..94985fddb29 100644
--- a/src/mame/drivers/megasys1.c
+++ b/src/mame/drivers/megasys1.c
@@ -1643,14 +1643,6 @@ WRITE_LINE_MEMBER(megasys1_state::irqhandler)
m_audiocpu->set_input_line(0, state ? ASSERT_LINE : CLEAR_LINE);
}
-
-static const ay8910_interface ay8910_config =
-{
- AY8910_LEGACY_OUTPUT,
- AY8910_DEFAULT_LOADS,
- DEVCB_NULL, DEVCB_NULL, DEVCB_NULL, DEVCB_NULL
-};
-
static MACHINE_CONFIG_START( system_Z, megasys1_state )
/* basic machine hardware */
@@ -1682,7 +1674,6 @@ static MACHINE_CONFIG_START( system_Z, megasys1_state )
MCFG_SOUND_ADD("ymsnd", YM2203, 1500000)
MCFG_YM2203_IRQ_HANDLER(WRITELINE(megasys1_state, irqhandler))
- MCFG_YM2203_AY8910_INTF(&ay8910_config)
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50)
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/megazone.c b/src/mame/drivers/megazone.c
index 04930e7681f..b92acdb4490 100644
--- a/src/mame/drivers/megazone.c
+++ b/src/mame/drivers/megazone.c
@@ -210,20 +210,6 @@ static GFXDECODE_START( megazone )
GFXDECODE_ENTRY( "gfx2", 0, charlayout, 16*16, 16 )
GFXDECODE_END
-
-
-static const ay8910_interface ay8910_config =
-{
- AY8910_LEGACY_OUTPUT,
- AY8910_DEFAULT_LOADS,
- DEVCB_DRIVER_MEMBER(megazone_state,megazone_port_a_r),
- DEVCB_NULL,
- DEVCB_NULL,
- DEVCB_DRIVER_MEMBER(megazone_state,megazone_port_b_w)
-};
-
-
-
void megazone_state::machine_start()
{
save_item(NAME(m_flipscreen));
@@ -279,7 +265,8 @@ static MACHINE_CONFIG_START( megazone, megazone_state )
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_SOUND_ADD("aysnd", AY8910, 14318000/8)
- MCFG_SOUND_CONFIG(ay8910_config)
+ MCFG_AY8910_PORT_A_READ_CB(READ8(megazone_state, megazone_port_a_r))
+ MCFG_AY8910_PORT_B_WRITE_CB(WRITE8(megazone_state, megazone_port_b_w))
MCFG_SOUND_ROUTE(0, "filter.0.0", 0.30)
MCFG_SOUND_ROUTE(1, "filter.0.1", 0.30)
MCFG_SOUND_ROUTE(2, "filter.0.2", 0.30)
diff --git a/src/mame/drivers/meijinsn.c b/src/mame/drivers/meijinsn.c
index 1422a717845..0aeaaf24e38 100644
--- a/src/mame/drivers/meijinsn.c
+++ b/src/mame/drivers/meijinsn.c
@@ -328,13 +328,6 @@ TIMER_DEVICE_CALLBACK_MEMBER(meijinsn_state::meijinsn_interrupt)
m_maincpu->set_input_line(2, HOLD_LINE);
}
-static const ay8910_interface ay8910_config =
-{
- AY8910_LEGACY_OUTPUT,
- AY8910_DEFAULT_LOADS,
- DEVCB_DRIVER_MEMBER(driver_device, soundlatch_byte_r)
-};
-
void meijinsn_state::machine_start()
{
save_item(NAME(m_deposits1));
@@ -379,7 +372,7 @@ static MACHINE_CONFIG_START( meijinsn, meijinsn_state )
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_SOUND_ADD("aysnd", AY8910, 2000000)
- MCFG_SOUND_CONFIG(ay8910_config)
+ MCFG_AY8910_PORT_A_READ_CB(READ8(driver_device, soundlatch_byte_r))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.75)
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/merit.c b/src/mame/drivers/merit.c
index 8e06b873f71..8153344482b 100644
--- a/src/mame/drivers/merit.c
+++ b/src/mame/drivers/merit.c
@@ -1121,14 +1121,6 @@ static INPUT_PORTS_START( couplep )
INPUT_PORTS_END
-static const ay8910_interface merit_ay8912_interface =
-{
- AY8910_LEGACY_OUTPUT,
- AY8910_DEFAULT_LOADS,
- DEVCB_NULL, DEVCB_NULL,
- DEVCB_DRIVER_MEMBER(merit_state,led2_w), DEVCB_NULL
-};
-
void merit_state::dodge_nvram_init(nvram_device &nvram, void *base, size_t size)
{
memset(base, 0x00, size);
@@ -1176,7 +1168,7 @@ static MACHINE_CONFIG_START( pitboss, merit_state )
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_SOUND_ADD("aysnd", AY8910, CRTC_CLOCK)
- MCFG_SOUND_CONFIG(merit_ay8912_interface)
+ MCFG_AY8910_PORT_A_WRITE_CB(WRITE8(merit_state, led2_w))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.33)
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/meritm.c b/src/mame/drivers/meritm.c
index dc85d4f820e..5ff860b1dc2 100644
--- a/src/mame/drivers/meritm.c
+++ b/src/mame/drivers/meritm.c
@@ -854,16 +854,6 @@ WRITE8_MEMBER(meritm_state::meritm_ay8930_port_b_w)
// lamps
};
-static const ay8910_interface ay8910_config =
-{
- AY8910_LEGACY_OUTPUT,
- AY8910_DEFAULT_LOADS,
- DEVCB_INPUT_PORT("DSW"), /* Port A read */
- DEVCB_NULL, /* Port B read */
- DEVCB_NULL, /* Port A write */
- DEVCB_DRIVER_MEMBER(meritm_state,meritm_ay8930_port_b_w) /* Port B write */
-};
-
/*************************************
*
* PIOs
@@ -1115,7 +1105,8 @@ static MACHINE_CONFIG_START( meritm_crt250, meritm_state )
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_SOUND_ADD("aysnd", AY8910, SYSTEM_CLK/12)
- MCFG_SOUND_CONFIG(ay8910_config)
+ MCFG_AY8910_PORT_A_READ_CB(IOPORT("DSW")) /* Port A read */
+ MCFG_AY8910_PORT_B_WRITE_CB(WRITE8(meritm_state, meritm_ay8930_port_b_w)) /* Port B write */
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/metro.c b/src/mame/drivers/metro.c
index 8260ef82b9a..b62d78b5e5b 100644
--- a/src/mame/drivers/metro.c
+++ b/src/mame/drivers/metro.c
@@ -4541,6 +4541,7 @@ static MACHINE_CONFIG_START( blzntrnd, metro_state )
MCFG_SOUND_ADD("ymsnd", YM2610, XTAL_16MHz/2)
MCFG_YM2610_IRQ_HANDLER(WRITELINE(metro_state, blzntrnd_irqhandler))
+ MCFG_AY8910_OUTPUT_TYPE(AY8910_LEGACY_OUTPUT | AY8910_SINGLE_OUTPUT)
MCFG_SOUND_ROUTE(0, "lspeaker", 0.25)
MCFG_SOUND_ROUTE(0, "rspeaker", 0.25)
MCFG_SOUND_ROUTE(1, "lspeaker", 1.0)
@@ -4586,6 +4587,7 @@ static MACHINE_CONFIG_START( gstrik2, metro_state )
MCFG_SOUND_ADD("ymsnd", YM2610, XTAL_16MHz/2)
MCFG_YM2610_IRQ_HANDLER(WRITELINE(metro_state, blzntrnd_irqhandler))
+ MCFG_AY8910_OUTPUT_TYPE(AY8910_LEGACY_OUTPUT | AY8910_SINGLE_OUTPUT)
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/mexico86.c b/src/mame/drivers/mexico86.c
index e56fd25d10c..9aa70347760 100644
--- a/src/mame/drivers/mexico86.c
+++ b/src/mame/drivers/mexico86.c
@@ -391,24 +391,6 @@ static GFXDECODE_START( mexico86 )
GFXDECODE_END
-
-/*************************************
- *
- * Sound interfaces
- *
- *************************************/
-
-static const ay8910_interface ay8910_config =
-{
- AY8910_LEGACY_OUTPUT,
- AY8910_DEFAULT_LOADS,
- DEVCB_INPUT_PORT("DSW0"),
- DEVCB_INPUT_PORT("DSW1"),
- DEVCB_NULL,
- DEVCB_NULL
-};
-
-
/*************************************
*
* Machine driver
@@ -496,7 +478,8 @@ static MACHINE_CONFIG_START( mexico86, mexico86_state )
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_SOUND_ADD("ymsnd", YM2203, 3000000)
- MCFG_YM2203_AY8910_INTF(&ay8910_config)
+ MCFG_AY8910_PORT_A_READ_CB(IOPORT("DSW0"))
+ MCFG_AY8910_PORT_B_READ_CB(IOPORT("DSW1"))
MCFG_SOUND_ROUTE(0, "mono", 0.30)
MCFG_SOUND_ROUTE(1, "mono", 0.30)
MCFG_SOUND_ROUTE(2, "mono", 0.30)
diff --git a/src/mame/drivers/miniboy7.c b/src/mame/drivers/miniboy7.c
index a35549bf001..9a6f97d65d1 100644
--- a/src/mame/drivers/miniboy7.c
+++ b/src/mame/drivers/miniboy7.c
@@ -390,22 +390,6 @@ static GFXDECODE_START( miniboy7 )
GFXDECODE_END
-
-/***********************************
-* Sound Interface *
-***********************************/
-
-static const ay8910_interface miniboy7_ay8910_intf =
-{
- AY8910_LEGACY_OUTPUT,
- AY8910_DEFAULT_LOADS,
- DEVCB_NULL,
- DEVCB_NULL,
- DEVCB_NULL,
- DEVCB_NULL
-};
-
-
/***********************************
* Machine Drivers *
***********************************/
@@ -441,7 +425,6 @@ static MACHINE_CONFIG_START( miniboy7, miniboy7_state )
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_SOUND_ADD("ay8910", AY8910, MASTER_CLOCK/8) /* guess */
- MCFG_SOUND_CONFIG(miniboy7_ay8910_intf)
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.75)
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/mjsister.c b/src/mame/drivers/mjsister.c
index f7144b76c7f..29248a3fcbd 100644
--- a/src/mame/drivers/mjsister.c
+++ b/src/mame/drivers/mjsister.c
@@ -445,22 +445,6 @@ INPUT_PORTS_END
/*************************************
*
- * Sound interface
- *
- *************************************/
-
-static const ay8910_interface ay8910_config =
-{
- AY8910_LEGACY_OUTPUT,
- AY8910_DEFAULT_LOADS,
- DEVCB_INPUT_PORT("DSW1"),
- DEVCB_INPUT_PORT("DSW2"),
- DEVCB_NULL,
- DEVCB_NULL
-};
-
-/*************************************
- *
* Machine driver
*
*************************************/
@@ -537,7 +521,8 @@ static MACHINE_CONFIG_START( mjsister, mjsister_state )
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_SOUND_ADD("aysnd", AY8910, MCLK/8)
- MCFG_SOUND_CONFIG(ay8910_config)
+ MCFG_AY8910_PORT_A_READ_CB(IOPORT("DSW1"))
+ MCFG_AY8910_PORT_B_READ_CB(IOPORT("DSW2"))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.15)
MCFG_DAC_ADD("dac")
diff --git a/src/mame/drivers/momoko.c b/src/mame/drivers/momoko.c
index 30fd5e50075..1bd6507ccdc 100644
--- a/src/mame/drivers/momoko.c
+++ b/src/mame/drivers/momoko.c
@@ -214,16 +214,6 @@ GFXDECODE_END
/****************************************************************************/
-static const ay8910_interface ay8910_config =
-{
- AY8910_LEGACY_OUTPUT,
- AY8910_DEFAULT_LOADS,
- DEVCB_DRIVER_MEMBER(driver_device, soundlatch_byte_r),
- DEVCB_NULL,
- DEVCB_NULL,
- DEVCB_NULL
-};
-
void momoko_state::machine_start()
{
UINT8 *BG_MAP = memregion("user1")->base();
@@ -290,7 +280,7 @@ static MACHINE_CONFIG_START( momoko, momoko_state )
MCFG_SOUND_ROUTE(3, "mono", 0.40)
MCFG_SOUND_ADD("ym2", YM2203, 1250000)
- MCFG_YM2203_AY8910_INTF(&ay8910_config)
+ MCFG_AY8910_PORT_A_READ_CB(READ8(driver_device, soundlatch_byte_r))
MCFG_SOUND_ROUTE(0, "mono", 0.15)
MCFG_SOUND_ROUTE(1, "mono", 0.15)
MCFG_SOUND_ROUTE(2, "mono", 0.15)
diff --git a/src/mame/drivers/mosaic.c b/src/mame/drivers/mosaic.c
index 6786f80207c..88b7e5d9e93 100644
--- a/src/mame/drivers/mosaic.c
+++ b/src/mame/drivers/mosaic.c
@@ -230,20 +230,6 @@ static GFXDECODE_START( mosaic )
GFXDECODE_ENTRY( "gfx2", 0, charlayout, 0, 1 )
GFXDECODE_END
-
-
-static const ay8910_interface ay8910_config =
-{
- AY8910_LEGACY_OUTPUT,
- AY8910_DEFAULT_LOADS,
- DEVCB_INPUT_PORT("DSW"),
- DEVCB_NULL,
- DEVCB_NULL,
- DEVCB_NULL
-};
-
-
-
void mosaic_state::machine_start()
{
save_item(NAME(m_prot_val));
@@ -281,7 +267,7 @@ static MACHINE_CONFIG_START( mosaic, mosaic_state )
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_SOUND_ADD("ymsnd", YM2203, 3000000)
- MCFG_YM2203_AY8910_INTF(&ay8910_config)
+ MCFG_AY8910_PORT_A_READ_CB(IOPORT("DSW"))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50)
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/mpu12wbk.c b/src/mame/drivers/mpu12wbk.c
index 57445b630d5..4236d71cc12 100644
--- a/src/mame/drivers/mpu12wbk.c
+++ b/src/mame/drivers/mpu12wbk.c
@@ -475,22 +475,6 @@ static GFXDECODE_START( mpu12wbk )
GFXDECODE_ENTRY( "gfx1", 0, charlayout, 0, 16 )
GFXDECODE_END
-
-/*************************
-* Sound Interface *
-*************************/
-
-static const ay8910_interface ay8910_config =
-{
- AY8910_LEGACY_OUTPUT,
- AY8910_DEFAULT_LOADS,
- DEVCB_NULL,
- DEVCB_NULL,
- DEVCB_NULL,
- DEVCB_NULL
-};
-
-
/*************************
* Machine Drivers *
*************************/
@@ -525,7 +509,6 @@ static MACHINE_CONFIG_START( mpu12wbk, mpu12wbk_state )
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_SOUND_ADD("ay8910", AY8910, MASTER_CLOCK/8) /* guess */
- MCFG_SOUND_CONFIG(ay8910_config)
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.00)
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/mpu4dealem.c b/src/mame/drivers/mpu4dealem.c
index 2b69ec3d60b..61cd45287b5 100644
--- a/src/mame/drivers/mpu4dealem.c
+++ b/src/mame/drivers/mpu4dealem.c
@@ -202,7 +202,8 @@ static MACHINE_CONFIG_START( dealem, mpu4dealem_state )
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_SOUND_ADD("ay8913",AY8913, MPU4_MASTER_CLOCK/4)
- MCFG_SOUND_CONFIG(ay8910_config)
+ MCFG_AY8910_OUTPUT_TYPE(AY8910_SINGLE_OUTPUT)
+ MCFG_AY8910_RES_LOADS(820, 0, 0)
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
MCFG_NVRAM_ADD_0FILL("nvram")
diff --git a/src/mame/drivers/mpu4hw.c b/src/mame/drivers/mpu4hw.c
index 6595149dd7b..63e1a2f2339 100644
--- a/src/mame/drivers/mpu4hw.c
+++ b/src/mame/drivers/mpu4hw.c
@@ -2610,15 +2610,6 @@ static ADDRESS_MAP_START( mpu4_memmap, AS_PROGRAM, 8, mpu4_state )
AM_RANGE(0x1000, 0xffff) AM_ROMBANK("bank1") /* 64k paged ROM (4 pages) */
ADDRESS_MAP_END
-const ay8910_interface ay8910_config =
-{
- AY8910_SINGLE_OUTPUT,
- {820,0,0},
- DEVCB_NULL,
- DEVCB_NULL,
- DEVCB_NULL,
- DEVCB_NULL
-};
MACHINE_CONFIG_FRAGMENT( mpu4_common )
MCFG_TIMER_DRIVER_ADD_PERIODIC("50hz", mpu4_state, gen_50hz, attotime::from_hz(100))
@@ -2712,8 +2703,9 @@ MACHINE_CONFIG_END
MACHINE_CONFIG_DERIVED( mod2 , mpu4base )
- MCFG_SOUND_ADD("ay8913",AY8913, MPU4_MASTER_CLOCK/4)
- MCFG_SOUND_CONFIG(ay8910_config)
+ MCFG_SOUND_ADD("ay8913", AY8913, MPU4_MASTER_CLOCK/4)
+ MCFG_AY8910_OUTPUT_TYPE(AY8910_SINGLE_OUTPUT)
+ MCFG_AY8910_RES_LOADS(820, 0, 0)
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 1.0)
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 1.0)
diff --git a/src/mame/drivers/mrflea.c b/src/mame/drivers/mrflea.c
index 3ab64ee4462..5ca2badfb6a 100644
--- a/src/mame/drivers/mrflea.c
+++ b/src/mame/drivers/mrflea.c
@@ -299,28 +299,6 @@ GFXDECODE_END
/*************************************
*
- * Sound interfaces
- *
- *************************************/
-
-static const ay8910_interface mrflea_ay8910_interface_0 =
-{
- AY8910_LEGACY_OUTPUT,
- AY8910_DEFAULT_LOADS,
- DEVCB_INPUT_PORT("IN1"),
- DEVCB_INPUT_PORT("IN0")
-};
-
-static const ay8910_interface mrflea_ay8910_interface_1 =
-{
- AY8910_LEGACY_OUTPUT,
- AY8910_DEFAULT_LOADS,
- DEVCB_INPUT_PORT("DSW2"),
- DEVCB_INPUT_PORT("DSW1")
-};
-
-/*************************************
- *
* Machine driver
*
*************************************/
@@ -377,11 +355,13 @@ static MACHINE_CONFIG_START( mrflea, mrflea_state )
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_SOUND_ADD("ay1", AY8910, 2000000)
- MCFG_SOUND_CONFIG(mrflea_ay8910_interface_0)
+ MCFG_AY8910_PORT_A_READ_CB(IOPORT("IN1"))
+ MCFG_AY8910_PORT_B_READ_CB(IOPORT("IN0"))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25)
MCFG_SOUND_ADD("ay2", AY8910, 2000000)
- MCFG_SOUND_CONFIG(mrflea_ay8910_interface_1)
+ MCFG_AY8910_PORT_A_READ_CB(IOPORT("DSW2"))
+ MCFG_AY8910_PORT_B_READ_CB(IOPORT("DSW1"))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25)
MCFG_SOUND_ADD("ay3", AY8910, 2000000)
diff --git a/src/mame/drivers/multfish.c b/src/mame/drivers/multfish.c
index 97b436e2e91..2076ef5ae2a 100644
--- a/src/mame/drivers/multfish.c
+++ b/src/mame/drivers/multfish.c
@@ -1031,17 +1031,6 @@ void igrosoft_gamble_state::machine_reset()
m_hopper = 0;
}
-static const ay8910_interface ay8910_config =
-{
- AY8910_LEGACY_OUTPUT,
- AY8910_DEFAULT_LOADS,
- DEVCB_NULL,
- DEVCB_NULL,
- DEVCB_NULL,
- DEVCB_NULL
-};
-
-
MACHINE_CONFIG_START( igrosoft_gamble, igrosoft_gamble_state )
/* basic machine hardware */
MCFG_CPU_ADD("maincpu", Z80, XTAL_24MHz/4)
@@ -1065,7 +1054,6 @@ MACHINE_CONFIG_START( igrosoft_gamble, igrosoft_gamble_state )
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_SOUND_ADD("aysnd", AY8910, 6000000/4)
- MCFG_SOUND_CONFIG(ay8910_config)
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.30)
MCFG_M48T35_ADD( "m48t35" )
diff --git a/src/mame/drivers/nbmj8688.c b/src/mame/drivers/nbmj8688.c
index 56d4e6cae4c..61155d623a4 100644
--- a/src/mame/drivers/nbmj8688.c
+++ b/src/mame/drivers/nbmj8688.c
@@ -2753,17 +2753,6 @@ READ8_MEMBER(nbmj8688_state::dipsw2_r)
return m_nb1413m3->dipsw2_r(space,offset);
}
-static const ay8910_interface ay8910_config =
-{
- AY8910_LEGACY_OUTPUT,
- AY8910_DEFAULT_LOADS,
- DEVCB_DRIVER_MEMBER(nbmj8688_state, dipsw1_r), // DIPSW-A read
- DEVCB_DRIVER_MEMBER(nbmj8688_state, dipsw2_r), // DIPSW-B read
- DEVCB_NULL,
- DEVCB_NULL
-};
-
-
static MACHINE_CONFIG_START( NBMJDRV_4096, nbmj8688_state )
/* basic machine hardware */
@@ -2791,7 +2780,8 @@ static MACHINE_CONFIG_START( NBMJDRV_4096, nbmj8688_state )
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_SOUND_ADD("psg", AY8910, 1250000)
- MCFG_SOUND_CONFIG(ay8910_config)
+ MCFG_AY8910_PORT_A_READ_CB(READ8(nbmj8688_state, dipsw1_r)) // DIPSW-A read
+ MCFG_AY8910_PORT_B_READ_CB(READ8(nbmj8688_state, dipsw2_r)) // DIPSW-B read
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.35)
MCFG_DAC_ADD("dac")
@@ -2969,7 +2959,8 @@ static MACHINE_CONFIG_START( mbmj_p16bit_LCD, nbmj8688_state )
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_SOUND_ADD("psg", AY8910, 1250000)
- MCFG_SOUND_CONFIG(ay8910_config)
+ MCFG_AY8910_PORT_A_READ_CB(READ8(nbmj8688_state, dipsw1_r)) // DIPSW-A read
+ MCFG_AY8910_PORT_B_READ_CB(READ8(nbmj8688_state, dipsw2_r)) // DIPSW-B read
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.35)
MCFG_DAC_ADD("dac")
diff --git a/src/mame/drivers/nbmj8891.c b/src/mame/drivers/nbmj8891.c
index fac3fbf055b..1dd197f7c61 100644
--- a/src/mame/drivers/nbmj8891.c
+++ b/src/mame/drivers/nbmj8891.c
@@ -2506,18 +2506,6 @@ static INPUT_PORTS_START( taiwanmb )
INPUT_PORTS_END
-
-static const ay8910_interface ay8910_config =
-{
- AY8910_LEGACY_OUTPUT,
- AY8910_DEFAULT_LOADS,
- DEVCB_INPUT_PORT("DSWA"),
- DEVCB_INPUT_PORT("DSWB"),
- DEVCB_NULL,
- DEVCB_NULL
-};
-
-
static MACHINE_CONFIG_START( gionbana, nbmj8891_state )
/* basic machine hardware */
@@ -2578,7 +2566,8 @@ static MACHINE_CONFIG_DERIVED( omotesnd, gionbana )
/* sound hardware */
MCFG_SOUND_REPLACE("fmsnd", AY8910, 1250000)
- MCFG_SOUND_CONFIG(ay8910_config)
+ MCFG_AY8910_PORT_A_READ_CB(IOPORT("DSWA"))
+ MCFG_AY8910_PORT_B_READ_CB(IOPORT("DSWB"))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.35)
MACHINE_CONFIG_END
@@ -2828,7 +2817,8 @@ static MACHINE_CONFIG_DERIVED( mjfocusm, gionbana )
/* sound hardware */
MCFG_SOUND_REPLACE("fmsnd", AY8910, 1250000)
- MCFG_SOUND_CONFIG(ay8910_config)
+ MCFG_AY8910_PORT_A_READ_CB(IOPORT("DSWA"))
+ MCFG_AY8910_PORT_B_READ_CB(IOPORT("DSWB"))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.70)
MACHINE_CONFIG_END
@@ -2858,7 +2848,8 @@ static MACHINE_CONFIG_DERIVED( taiwanmb, gionbana )
/* sound hardware */
MCFG_SOUND_REPLACE("fmsnd", AY8910, 1250000)
- MCFG_SOUND_CONFIG(ay8910_config)
+ MCFG_AY8910_PORT_A_READ_CB(IOPORT("DSWA"))
+ MCFG_AY8910_PORT_B_READ_CB(IOPORT("DSWB"))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.70)
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/nbmj8991.c b/src/mame/drivers/nbmj8991.c
index d25c3448778..ae7982fb79a 100644
--- a/src/mame/drivers/nbmj8991.c
+++ b/src/mame/drivers/nbmj8991.c
@@ -1383,17 +1383,6 @@ static INPUT_PORTS_START( av2mj2rg )
INPUT_PORTS_END
-static const ay8910_interface ay8910_config =
-{
- AY8910_LEGACY_OUTPUT,
- AY8910_DEFAULT_LOADS,
- DEVCB_INPUT_PORT("DSWA"),
- DEVCB_INPUT_PORT("DSWB"),
- DEVCB_NULL,
- DEVCB_NULL
-};
-
-
static MACHINE_CONFIG_START( nbmjdrv1, nbmj8991_state ) // galkoku
/* basic machine hardware */
@@ -1471,7 +1460,8 @@ static MACHINE_CONFIG_DERIVED( nbmjdrv3, nbmjdrv1 )
/* sound hardware */
MCFG_SOUND_REPLACE("fmsnd", AY8910, 1250000)
- MCFG_SOUND_CONFIG(ay8910_config)
+ MCFG_AY8910_PORT_A_READ_CB(IOPORT("DSWA"))
+ MCFG_AY8910_PORT_B_READ_CB(IOPORT("DSWB"))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.35)
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/nemesis.c b/src/mame/drivers/nemesis.c
index a3b4d6694a2..86ed7236788 100644
--- a/src/mame/drivers/nemesis.c
+++ b/src/mame/drivers/nemesis.c
@@ -1425,26 +1425,6 @@ GFXDECODE_END
/******************************************************************************/
-static const ay8910_interface ay8910_interface_1 =
-{
- AY8910_LEGACY_OUTPUT | AY8910_SINGLE_OUTPUT,
- AY8910_DEFAULT_LOADS,
- DEVCB_DRIVER_MEMBER(nemesis_state,nemesis_portA_r),
- DEVCB_NULL,
- DEVCB_NULL,
- DEVCB_NULL
-};
-
-static const ay8910_interface ay8910_interface_2 =
-{
- AY8910_LEGACY_OUTPUT,
- AY8910_DEFAULT_LOADS,
- DEVCB_NULL,
- DEVCB_NULL,
- DEVCB_DEVICE_MEMBER("k005289", k005289_device, k005289_control_A_w),
- DEVCB_DEVICE_MEMBER("k005289", k005289_device, k005289_control_B_w)
-};
-
WRITE_LINE_MEMBER(nemesis_state::sound_irq)
{
/* Interrupts _are_ generated, I wonder where they go.. */
@@ -1522,11 +1502,13 @@ static MACHINE_CONFIG_START( nemesis, nemesis_state )
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_SOUND_ADD("ay1", AY8910, 14318180/8)
- MCFG_SOUND_CONFIG(ay8910_interface_1)
+ MCFG_AY8910_OUTPUT_TYPE(AY8910_LEGACY_OUTPUT | AY8910_SINGLE_OUTPUT)
+ MCFG_AY8910_PORT_A_READ_CB(READ8(nemesis_state, nemesis_portA_r))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "filter1", 0.20)
MCFG_SOUND_ADD("ay2", AY8910, 14318180/8)
- MCFG_SOUND_CONFIG(ay8910_interface_2)
+ MCFG_AY8910_PORT_A_WRITE_CB(DEVWRITE8("k005289", k005289_device, k005289_control_A_w))
+ MCFG_AY8910_PORT_B_WRITE_CB(DEVWRITE8("k005289", k005289_device, k005289_control_B_w))
MCFG_SOUND_ROUTE(0, "filter2", 1.00)
MCFG_SOUND_ROUTE(1, "filter3", 1.00)
MCFG_SOUND_ROUTE(2, "filter4", 1.00)
@@ -1574,11 +1556,13 @@ static MACHINE_CONFIG_START( gx400, nemesis_state )
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_SOUND_ADD("ay1", AY8910, 14318180/8)
- MCFG_SOUND_CONFIG(ay8910_interface_1)
+ MCFG_AY8910_OUTPUT_TYPE(AY8910_LEGACY_OUTPUT | AY8910_SINGLE_OUTPUT)
+ MCFG_AY8910_PORT_A_READ_CB(READ8(nemesis_state, nemesis_portA_r))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "filter1", 0.20)
MCFG_SOUND_ADD("ay2", AY8910, 14318180/8)
- MCFG_SOUND_CONFIG(ay8910_interface_2)
+ MCFG_AY8910_PORT_A_WRITE_CB(DEVWRITE8("k005289", k005289_device, k005289_control_A_w))
+ MCFG_AY8910_PORT_B_WRITE_CB(DEVWRITE8("k005289", k005289_device, k005289_control_B_w))
MCFG_SOUND_ROUTE(0, "filter2", 1.00)
MCFG_SOUND_ROUTE(1, "filter3", 1.00)
MCFG_SOUND_ROUTE(2, "filter4", 1.00)
@@ -1628,11 +1612,13 @@ static MACHINE_CONFIG_START( konamigt, nemesis_state )
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_SOUND_ADD("ay1", AY8910, 14318180/8)
- MCFG_SOUND_CONFIG(ay8910_interface_1)
+ MCFG_AY8910_OUTPUT_TYPE(AY8910_LEGACY_OUTPUT | AY8910_SINGLE_OUTPUT)
+ MCFG_AY8910_PORT_A_READ_CB(READ8(nemesis_state, nemesis_portA_r))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "filter1", 0.20)
MCFG_SOUND_ADD("ay2", AY8910, 14318180/8)
- MCFG_SOUND_CONFIG(ay8910_interface_2)
+ MCFG_AY8910_PORT_A_WRITE_CB(DEVWRITE8("k005289", k005289_device, k005289_control_A_w))
+ MCFG_AY8910_PORT_B_WRITE_CB(DEVWRITE8("k005289", k005289_device, k005289_control_B_w))
MCFG_SOUND_ROUTE(0, "filter2", 1.00)
MCFG_SOUND_ROUTE(1, "filter3", 1.00)
MCFG_SOUND_ROUTE(2, "filter4", 1.00)
@@ -1680,11 +1666,13 @@ static MACHINE_CONFIG_START( rf2_gx400, nemesis_state )
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_SOUND_ADD("ay1", AY8910, 14318180/8)
- MCFG_SOUND_CONFIG(ay8910_interface_1)
+ MCFG_AY8910_OUTPUT_TYPE(AY8910_LEGACY_OUTPUT | AY8910_SINGLE_OUTPUT)
+ MCFG_AY8910_PORT_A_READ_CB(READ8(nemesis_state, nemesis_portA_r))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "filter1", 0.20)
MCFG_SOUND_ADD("ay2", AY8910, 14318180/8)
- MCFG_SOUND_CONFIG(ay8910_interface_2)
+ MCFG_AY8910_PORT_A_WRITE_CB(DEVWRITE8("k005289", k005289_device, k005289_control_A_w))
+ MCFG_AY8910_PORT_B_WRITE_CB(DEVWRITE8("k005289", k005289_device, k005289_control_B_w))
MCFG_SOUND_ROUTE(0, "filter2", 1.00)
MCFG_SOUND_ROUTE(1, "filter3", 1.00)
MCFG_SOUND_ROUTE(2, "filter4", 1.00)
@@ -2667,11 +2655,13 @@ static MACHINE_CONFIG_START( bubsys, nemesis_state )
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_SOUND_ADD("ay1", AY8910, 14318180/8)
- MCFG_SOUND_CONFIG(ay8910_interface_1)
+ MCFG_AY8910_OUTPUT_TYPE(AY8910_LEGACY_OUTPUT | AY8910_SINGLE_OUTPUT)
+ MCFG_AY8910_PORT_A_READ_CB(READ8(nemesis_state, nemesis_portA_r))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "filter1", 0.20)
MCFG_SOUND_ADD("ay2", AY8910, 14318180/8)
- MCFG_SOUND_CONFIG(ay8910_interface_2)
+ MCFG_AY8910_PORT_A_WRITE_CB(DEVWRITE8("k005289", k005289_device, k005289_control_A_w))
+ MCFG_AY8910_PORT_B_WRITE_CB(DEVWRITE8("k005289", k005289_device, k005289_control_B_w))
MCFG_SOUND_ROUTE(0, "filter2", 1.00)
MCFG_SOUND_ROUTE(1, "filter3", 1.00)
MCFG_SOUND_ROUTE(2, "filter4", 1.00)
diff --git a/src/mame/drivers/neogeo.c b/src/mame/drivers/neogeo.c
index 348185dc6b1..b017bd14201 100644
--- a/src/mame/drivers/neogeo.c
+++ b/src/mame/drivers/neogeo.c
@@ -1792,6 +1792,7 @@ MACHINE_CONFIG_START( neogeo_base, neogeo_state )
MCFG_SOUND_ADD("ymsnd", YM2610, NEOGEO_YM2610_CLOCK)
MCFG_YM2610_IRQ_HANDLER(INPUTLINE("audiocpu", 0))
+ MCFG_AY8910_OUTPUT_TYPE(AY8910_LEGACY_OUTPUT | AY8910_SINGLE_OUTPUT)
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 5df9d3eaa04..736b987ba93 100644
--- a/src/mame/drivers/neoprint.c
+++ b/src/mame/drivers/neoprint.c
@@ -507,6 +507,7 @@ static MACHINE_CONFIG_START( neoprint, neoprint_state )
MCFG_SOUND_ADD("ymsnd", YM2610, 24000000 / 3)
MCFG_YM2610_IRQ_HANDLER(WRITELINE(neoprint_state, audio_cpu_irq))
+ MCFG_AY8910_OUTPUT_TYPE(AY8910_LEGACY_OUTPUT | AY8910_SINGLE_OUTPUT)
MCFG_SOUND_ROUTE(0, "lspeaker", 0.60)
MCFG_SOUND_ROUTE(0, "rspeaker", 0.60)
MCFG_SOUND_ROUTE(1, "lspeaker", 1.0)
@@ -550,6 +551,7 @@ static MACHINE_CONFIG_START( nprsp, neoprint_state )
MCFG_SOUND_ADD("ymsnd", YM2610, 24000000 / 3)
MCFG_YM2610_IRQ_HANDLER(WRITELINE(neoprint_state, audio_cpu_irq))
+ MCFG_AY8910_OUTPUT_TYPE(AY8910_LEGACY_OUTPUT | AY8910_SINGLE_OUTPUT)
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/nightgal.c b/src/mame/drivers/nightgal.c
index 493984e8909..fcf144b2ca9 100644
--- a/src/mame/drivers/nightgal.c
+++ b/src/mame/drivers/nightgal.c
@@ -867,17 +867,6 @@ static INPUT_PORTS_START( sexygal )
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
INPUT_PORTS_END
-static const ay8910_interface ay8910_config =
-{
- AY8910_LEGACY_OUTPUT,
- AY8910_DEFAULT_LOADS,
- DEVCB_DRIVER_MEMBER(nightgal_state,input_1p_r),
- DEVCB_DRIVER_MEMBER(nightgal_state,input_2p_r),
- DEVCB_NULL,
- DEVCB_NULL
-};
-
-
void nightgal_state::machine_start()
{
save_item(NAME(m_nsc_latch));
@@ -933,7 +922,8 @@ static MACHINE_CONFIG_START( royalqn, nightgal_state )
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_SOUND_ADD("aysnd", AY8910, MASTER_CLOCK / 8)
- MCFG_SOUND_CONFIG(ay8910_config)
+ MCFG_AY8910_PORT_A_READ_CB(READ8(nightgal_state, input_1p_r))
+ MCFG_AY8910_PORT_B_READ_CB(READ8(nightgal_state, input_2p_r))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.40)
MACHINE_CONFIG_END
@@ -952,7 +942,8 @@ static MACHINE_CONFIG_DERIVED( sexygal, royalqn )
MCFG_DEVICE_REMOVE("aysnd")
MCFG_SOUND_ADD("ymsnd", YM2203, MASTER_CLOCK / 8)
- MCFG_SOUND_CONFIG(ay8910_config)
+ MCFG_AY8910_PORT_A_READ_CB(READ8(nightgal_state, input_1p_r))
+ MCFG_AY8910_PORT_B_READ_CB(READ8(nightgal_state, input_2p_r))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.40)
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/ninjakd2.c b/src/mame/drivers/ninjakd2.c
index 2aeb76d4041..32f74fe140f 100644
--- a/src/mame/drivers/ninjakd2.c
+++ b/src/mame/drivers/ninjakd2.c
@@ -870,14 +870,6 @@ WRITE_LINE_MEMBER(ninjakd2_state::irqhandler)
m_soundcpu->set_input_line(0, state ? ASSERT_LINE : CLEAR_LINE);
}
-static const ay8910_interface ay8910_config =
-{
- AY8910_LEGACY_OUTPUT,
- AY8910_DEFAULT_LOADS,
- DEVCB_NULL, DEVCB_NULL, DEVCB_NULL, DEVCB_NULL
-};
-
-
static const samples_interface ninjakd2_samples_interface =
{
1, /* 1 channel */
@@ -958,7 +950,6 @@ static MACHINE_CONFIG_START( ninjakd2, ninjakd2_state )
MCFG_SOUND_ADD("2203.1", YM2203, MAIN_CLOCK_12/8) /* verified */
MCFG_YM2203_IRQ_HANDLER(WRITELINE(ninjakd2_state, irqhandler))
- MCFG_YM2203_AY8910_INTF(&ay8910_config)
MCFG_SOUND_ROUTE(0, "mono", 0.10)
MCFG_SOUND_ROUTE(1, "mono", 0.10)
MCFG_SOUND_ROUTE(2, "mono", 0.10)
diff --git a/src/mame/drivers/ninjaw.c b/src/mame/drivers/ninjaw.c
index 88bc4590687..71607aeeafe 100644
--- a/src/mame/drivers/ninjaw.c
+++ b/src/mame/drivers/ninjaw.c
@@ -846,6 +846,7 @@ static MACHINE_CONFIG_START( ninjaw, ninjaw_state )
MCFG_SOUND_ADD("ymsnd", YM2610, 16000000/2)
MCFG_YM2610_IRQ_HANDLER(WRITELINE(ninjaw_state, irqhandler))
+ MCFG_AY8910_OUTPUT_TYPE(AY8910_LEGACY_OUTPUT | AY8910_SINGLE_OUTPUT)
MCFG_SOUND_ROUTE(0, "lspeaker", 0.25)
MCFG_SOUND_ROUTE(0, "rspeaker", 0.25)
MCFG_SOUND_ROUTE(1, "2610.1.l", 1.0)
@@ -966,6 +967,7 @@ static MACHINE_CONFIG_START( darius2, ninjaw_state )
MCFG_SOUND_ADD("ymsnd", YM2610, 16000000/2)
MCFG_YM2610_IRQ_HANDLER(WRITELINE(ninjaw_state, irqhandler))
+ MCFG_AY8910_OUTPUT_TYPE(AY8910_LEGACY_OUTPUT | AY8910_SINGLE_OUTPUT)
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/nmk16.c b/src/mame/drivers/nmk16.c
index 2d751effd90..4b535d932fd 100644
--- a/src/mame/drivers/nmk16.c
+++ b/src/mame/drivers/nmk16.c
@@ -3604,13 +3604,6 @@ WRITE_LINE_MEMBER(nmk16_state::ym2203_irqhandler)
m_audiocpu->set_input_line(0, state ? ASSERT_LINE : CLEAR_LINE);
}
-static const ay8910_interface ay8910_config =
-{
- AY8910_LEGACY_OUTPUT,
- AY8910_DEFAULT_LOADS,
- DEVCB_NULL, DEVCB_NULL, DEVCB_NULL, DEVCB_NULL
-};
-
TIMER_DEVICE_CALLBACK_MEMBER(nmk16_state::nmk16_scanline)
{
int scanline = param;
@@ -3669,7 +3662,6 @@ static MACHINE_CONFIG_START( tharrier, nmk16_state )
MCFG_SOUND_ADD("ymsnd", YM2203, 1500000)
MCFG_YM2203_IRQ_HANDLER(WRITELINE(nmk16_state, ym2203_irqhandler))
- MCFG_YM2203_AY8910_INTF(&ay8910_config)
MCFG_SOUND_ROUTE(0, "mono", 0.50)
MCFG_SOUND_ROUTE(1, "mono", 0.50)
MCFG_SOUND_ROUTE(2, "mono", 0.50)
@@ -3715,7 +3707,6 @@ static MACHINE_CONFIG_START( manybloc, nmk16_state )
MCFG_SOUND_ADD("ymsnd", YM2203, 1500000)
MCFG_YM2203_IRQ_HANDLER(WRITELINE(nmk16_state, ym2203_irqhandler))
- MCFG_YM2203_AY8910_INTF(&ay8910_config)
MCFG_SOUND_ROUTE(0, "mono", 0.50)
MCFG_SOUND_ROUTE(1, "mono", 0.50)
MCFG_SOUND_ROUTE(2, "mono", 0.50)
@@ -3759,7 +3750,6 @@ static MACHINE_CONFIG_START( mustang, nmk16_state )
MCFG_SOUND_ADD("ymsnd", YM2203, 1500000)
MCFG_YM2203_IRQ_HANDLER(DEVWRITELINE("nmk004", nmk004_device, ym2203_irq_handler))
- MCFG_YM2203_AY8910_INTF(&ay8910_config)
MCFG_SOUND_ROUTE(0, "mono", 0.50)
MCFG_SOUND_ROUTE(1, "mono", 0.50)
MCFG_SOUND_ROUTE(2, "mono", 0.50)
@@ -3837,7 +3827,6 @@ static MACHINE_CONFIG_START( bioship, nmk16_state )
MCFG_SOUND_ADD("ymsnd", YM2203, BIOSHIP_CRYSTAL2 / 8) /* 1.5 Mhz (verified) */
MCFG_YM2203_IRQ_HANDLER(DEVWRITELINE("nmk004", nmk004_device, ym2203_irq_handler))
- MCFG_YM2203_AY8910_INTF(&ay8910_config)
MCFG_SOUND_ROUTE(0, "mono", 0.50)
MCFG_SOUND_ROUTE(1, "mono", 0.50)
MCFG_SOUND_ROUTE(2, "mono", 0.50)
@@ -3881,7 +3870,6 @@ static MACHINE_CONFIG_START( vandyke, nmk16_state )
MCFG_SOUND_ADD("ymsnd", YM2203, XTAL_12MHz/8) /* verified on pcb */
MCFG_YM2203_IRQ_HANDLER(DEVWRITELINE("nmk004", nmk004_device, ym2203_irq_handler))
- MCFG_YM2203_AY8910_INTF(&ay8910_config)
MCFG_SOUND_ROUTE(0, "mono", 0.50)
MCFG_SOUND_ROUTE(1, "mono", 0.50)
MCFG_SOUND_ROUTE(2, "mono", 0.50)
@@ -3961,7 +3949,6 @@ static MACHINE_CONFIG_START( acrobatm, nmk16_state )
MCFG_SOUND_ADD("ymsnd", YM2203, 1500000) /* (verified on pcb) */
MCFG_YM2203_IRQ_HANDLER(DEVWRITELINE("nmk004", nmk004_device, ym2203_irq_handler))
- MCFG_YM2203_AY8910_INTF(&ay8910_config)
MCFG_SOUND_ROUTE(0, "mono", 0.50)
MCFG_SOUND_ROUTE(1, "mono", 0.50)
MCFG_SOUND_ROUTE(2, "mono", 0.50)
@@ -4039,7 +4026,6 @@ static MACHINE_CONFIG_START( tdragon, nmk16_state )
MCFG_SOUND_ADD("ymsnd", YM2203, XTAL_12MHz/8) /* verified on pcb */
MCFG_YM2203_IRQ_HANDLER(DEVWRITELINE("nmk004", nmk004_device, ym2203_irq_handler))
- MCFG_YM2203_AY8910_INTF(&ay8910_config)
MCFG_SOUND_ROUTE(0, "mono", 0.50)
MCFG_SOUND_ROUTE(1, "mono", 0.50)
MCFG_SOUND_ROUTE(2, "mono", 0.50)
@@ -4118,7 +4104,6 @@ static MACHINE_CONFIG_START( strahl, nmk16_state )
MCFG_SOUND_ADD("ymsnd", YM2203, 1500000)
MCFG_YM2203_IRQ_HANDLER(DEVWRITELINE("nmk004", nmk004_device, ym2203_irq_handler))
- MCFG_YM2203_AY8910_INTF(&ay8910_config)
MCFG_SOUND_ROUTE(0, "mono", 0.50)
MCFG_SOUND_ROUTE(1, "mono", 0.50)
MCFG_SOUND_ROUTE(2, "mono", 0.50)
@@ -4163,7 +4148,6 @@ static MACHINE_CONFIG_START( hachamf, nmk16_state )
MCFG_SOUND_ADD("ymsnd", YM2203, 1500000)
MCFG_YM2203_IRQ_HANDLER(DEVWRITELINE("nmk004", nmk004_device, ym2203_irq_handler))
- MCFG_YM2203_AY8910_INTF(&ay8910_config)
MCFG_SOUND_ROUTE(0, "mono", 0.50)
MCFG_SOUND_ROUTE(1, "mono", 0.50)
MCFG_SOUND_ROUTE(2, "mono", 0.50)
@@ -4207,7 +4191,6 @@ static MACHINE_CONFIG_START( macross, nmk16_state )
MCFG_SOUND_ADD("ymsnd", YM2203, 1500000)
MCFG_YM2203_IRQ_HANDLER(DEVWRITELINE("nmk004", nmk004_device, ym2203_irq_handler))
- MCFG_YM2203_AY8910_INTF(&ay8910_config)
MCFG_SOUND_ROUTE(0, "mono", 0.50)
MCFG_SOUND_ROUTE(1, "mono", 0.50)
MCFG_SOUND_ROUTE(2, "mono", 0.50)
@@ -4251,7 +4234,6 @@ static MACHINE_CONFIG_START( blkheart, nmk16_state )
MCFG_SOUND_ADD("ymsnd", YM2203, XTAL_12MHz/8 ) /* verified on pcb */
MCFG_YM2203_IRQ_HANDLER(DEVWRITELINE("nmk004", nmk004_device, ym2203_irq_handler))
- MCFG_YM2203_AY8910_INTF(&ay8910_config)
MCFG_SOUND_ROUTE(0, "mono", 0.50)
MCFG_SOUND_ROUTE(1, "mono", 0.50)
MCFG_SOUND_ROUTE(2, "mono", 0.50)
@@ -4295,7 +4277,6 @@ static MACHINE_CONFIG_START( gunnail, nmk16_state )
MCFG_SOUND_ADD("ymsnd", YM2203, 1500000)
MCFG_YM2203_IRQ_HANDLER(DEVWRITELINE("nmk004", nmk004_device, ym2203_irq_handler))
- MCFG_YM2203_AY8910_INTF(&ay8910_config)
MCFG_SOUND_ROUTE(0, "mono", 0.50)
MCFG_SOUND_ROUTE(1, "mono", 0.50)
MCFG_SOUND_ROUTE(2, "mono", 0.50)
@@ -4341,7 +4322,6 @@ static MACHINE_CONFIG_START( macross2, nmk16_state )
MCFG_SOUND_ADD("ymsnd", YM2203, 1500000)
MCFG_YM2203_IRQ_HANDLER(WRITELINE(nmk16_state, ym2203_irqhandler))
- MCFG_YM2203_AY8910_INTF(&ay8910_config)
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.90)
MCFG_OKIM6295_ADD("oki1", 16000000/4, OKIM6295_PIN7_LOW)
@@ -4388,7 +4368,6 @@ static MACHINE_CONFIG_START( tdragon2, nmk16_state )
MCFG_SOUND_ADD("ymsnd", YM2203, 1500000)
MCFG_YM2203_IRQ_HANDLER(WRITELINE(nmk16_state, ym2203_irqhandler))
- MCFG_YM2203_AY8910_INTF(&ay8910_config)
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.00)
MCFG_OKIM6295_ADD("oki1", 16000000/4, OKIM6295_PIN7_LOW)
@@ -4434,7 +4413,6 @@ static MACHINE_CONFIG_START( raphero, nmk16_state )
MCFG_SOUND_ADD("ymsnd", YM2203, 1500000)
MCFG_YM2203_IRQ_HANDLER(WRITELINE(nmk16_state, ym2203_irqhandler))
- MCFG_YM2203_AY8910_INTF(&ay8910_config)
MCFG_SOUND_ROUTE(0, "mono", 0.70)
MCFG_SOUND_ROUTE(1, "mono", 0.70)
MCFG_SOUND_ROUTE(2, "mono", 0.70)
diff --git a/src/mame/drivers/nova2001.c b/src/mame/drivers/nova2001.c
index 3a67cc61282..5bf9d3b9413 100644
--- a/src/mame/drivers/nova2001.c
+++ b/src/mame/drivers/nova2001.c
@@ -623,55 +623,6 @@ static GFXDECODE_START( raiders5 )
GFXDECODE_END
-
-/*************************************
- *
- * Sound definitions
- *
- *************************************/
-
-static const ay8910_interface nova2001_ay8910_interface_1 =
-{
- AY8910_LEGACY_OUTPUT,
- AY8910_DEFAULT_LOADS,
- DEVCB_NULL,
- DEVCB_NULL,
- DEVCB_DRIVER_MEMBER(nova2001_state, nova2001_scroll_x_w),
- DEVCB_DRIVER_MEMBER(nova2001_state, nova2001_scroll_y_w)
-};
-
-static const ay8910_interface nova2001_ay8910_interface_2 =
-{
- AY8910_LEGACY_OUTPUT,
- AY8910_DEFAULT_LOADS,
- DEVCB_INPUT_PORT("DSW1"),
- DEVCB_INPUT_PORT("DSW2"),
- DEVCB_NULL,
- DEVCB_NULL
-};
-
-static const ay8910_interface pkunwar_ay8910_interface_1 =
-{
- AY8910_LEGACY_OUTPUT,
- AY8910_DEFAULT_LOADS,
- DEVCB_INPUT_PORT("IN0"),
- DEVCB_INPUT_PORT("IN1"),
- DEVCB_NULL,
- DEVCB_NULL
-};
-
-static const ay8910_interface pkunwar_ay8910_interface_2 =
-{
- AY8910_LEGACY_OUTPUT,
- AY8910_DEFAULT_LOADS,
- DEVCB_INPUT_PORT("IN2"),
- DEVCB_INPUT_PORT("DSW1"),
- DEVCB_NULL,
- DEVCB_NULL
-};
-
-
-
/*************************************
*
* Machine drivers
@@ -704,11 +655,13 @@ static MACHINE_CONFIG_START( nova2001, nova2001_state )
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_SOUND_ADD("ay1", AY8910, MAIN_CLOCK/6) // 2 MHz verified on schematics
- MCFG_SOUND_CONFIG(nova2001_ay8910_interface_1)
+ MCFG_AY8910_PORT_A_WRITE_CB(WRITE8(nova2001_state, nova2001_scroll_x_w))
+ MCFG_AY8910_PORT_B_WRITE_CB(WRITE8(nova2001_state, nova2001_scroll_y_w))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25)
MCFG_SOUND_ADD("ay2", AY8910, MAIN_CLOCK/6)
- MCFG_SOUND_CONFIG(nova2001_ay8910_interface_2)
+ MCFG_AY8910_PORT_A_READ_CB(IOPORT("DSW1"))
+ MCFG_AY8910_PORT_B_READ_CB(IOPORT("DSW2"))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25)
MACHINE_CONFIG_END
@@ -746,11 +699,13 @@ static MACHINE_CONFIG_START( ninjakun, nova2001_state )
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_SOUND_ADD("ay1", AY8910, MAIN_CLOCK/4) // 3 MHz
- MCFG_SOUND_CONFIG(nova2001_ay8910_interface_2) // note swapped order wrt nova2001
+ MCFG_AY8910_PORT_A_READ_CB(IOPORT("DSW1"))
+ MCFG_AY8910_PORT_B_READ_CB(IOPORT("DSW2"))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.20)
MCFG_SOUND_ADD("ay2", AY8910, MAIN_CLOCK/4) // 3 MHz
- MCFG_SOUND_CONFIG(nova2001_ay8910_interface_1)
+ MCFG_AY8910_PORT_A_WRITE_CB(WRITE8(nova2001_state, nova2001_scroll_x_w))
+ MCFG_AY8910_PORT_B_WRITE_CB(WRITE8(nova2001_state, nova2001_scroll_y_w))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.20)
MACHINE_CONFIG_END
@@ -781,11 +736,13 @@ static MACHINE_CONFIG_START( pkunwar, nova2001_state )
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_SOUND_ADD("ay1", AY8910, MAIN_CLOCK/8) // 1.5MHz (correct?)
- MCFG_SOUND_CONFIG(pkunwar_ay8910_interface_1)
+ MCFG_AY8910_PORT_A_READ_CB(IOPORT("IN0"))
+ MCFG_AY8910_PORT_B_READ_CB(IOPORT("IN1"))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25)
MCFG_SOUND_ADD("ay2", AY8910, MAIN_CLOCK/8)
- MCFG_SOUND_CONFIG(pkunwar_ay8910_interface_2)
+ MCFG_AY8910_PORT_A_READ_CB(IOPORT("IN2"))
+ MCFG_AY8910_PORT_B_READ_CB(IOPORT("DSW1"))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25)
MACHINE_CONFIG_END
@@ -821,11 +778,13 @@ static MACHINE_CONFIG_START( raiders5, nova2001_state )
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_SOUND_ADD("ay1", AY8910, MAIN_CLOCK/8) // 1.5MHz
- MCFG_SOUND_CONFIG(pkunwar_ay8910_interface_1)
+ MCFG_AY8910_PORT_A_READ_CB(IOPORT("IN0"))
+ MCFG_AY8910_PORT_B_READ_CB(IOPORT("IN1"))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25)
MCFG_SOUND_ADD("ay2", AY8910, MAIN_CLOCK/8)
- MCFG_SOUND_CONFIG(pkunwar_ay8910_interface_2)
+ MCFG_AY8910_PORT_A_READ_CB(IOPORT("IN2"))
+ MCFG_AY8910_PORT_B_READ_CB(IOPORT("DSW1"))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25)
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/nycaptor.c b/src/mame/drivers/nycaptor.c
index dff1bfb4d34..a90af31d6c6 100644
--- a/src/mame/drivers/nycaptor.c
+++ b/src/mame/drivers/nycaptor.c
@@ -293,16 +293,6 @@ WRITE8_MEMBER(nycaptor_state::unk_w)
{
}
-static const ay8910_interface ay8910_config =
-{
- AY8910_LEGACY_OUTPUT,
- AY8910_DEFAULT_LOADS,
- DEVCB_NULL,
- DEVCB_NULL,
- DEVCB_DRIVER_MEMBER(nycaptor_state,unk_w),
- DEVCB_DRIVER_MEMBER(nycaptor_state,unk_w)
-};
-
READ8_MEMBER(nycaptor_state::nycaptor_generic_control_r)
{
return m_generic_control_reg;
@@ -843,11 +833,13 @@ static MACHINE_CONFIG_START( nycaptor, nycaptor_state )
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_SOUND_ADD("ay1", AY8910, 8000000/4)
- MCFG_SOUND_CONFIG(ay8910_config)
+ MCFG_AY8910_PORT_A_WRITE_CB(WRITE8(nycaptor_state, unk_w))
+ MCFG_AY8910_PORT_B_WRITE_CB(WRITE8(nycaptor_state, unk_w))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.15)
MCFG_SOUND_ADD("ay2", AY8910, 8000000/4)
- MCFG_SOUND_CONFIG(ay8910_config)
+ MCFG_AY8910_PORT_A_WRITE_CB(WRITE8(nycaptor_state, unk_w))
+ MCFG_AY8910_PORT_B_WRITE_CB(WRITE8(nycaptor_state, unk_w))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.15)
MCFG_SOUND_ADD("msm", MSM5232, 2000000)
@@ -902,11 +894,13 @@ static MACHINE_CONFIG_START( cyclshtg, nycaptor_state )
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_SOUND_ADD("ay1", AY8910, 8000000/4)
- MCFG_SOUND_CONFIG(ay8910_config)
+ MCFG_AY8910_PORT_A_WRITE_CB(WRITE8(nycaptor_state, unk_w))
+ MCFG_AY8910_PORT_B_WRITE_CB(WRITE8(nycaptor_state, unk_w))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.15)
MCFG_SOUND_ADD("ay2", AY8910, 8000000/4)
- MCFG_SOUND_CONFIG(ay8910_config)
+ MCFG_AY8910_PORT_A_WRITE_CB(WRITE8(nycaptor_state, unk_w))
+ MCFG_AY8910_PORT_B_WRITE_CB(WRITE8(nycaptor_state, unk_w))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.15)
MCFG_SOUND_ADD("msm", MSM5232, 2000000)
@@ -961,11 +955,13 @@ static MACHINE_CONFIG_START( bronx, nycaptor_state )
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_SOUND_ADD("ay1", AY8910, 8000000/4)
- MCFG_SOUND_CONFIG(ay8910_config)
+ MCFG_AY8910_PORT_A_WRITE_CB(WRITE8(nycaptor_state, unk_w))
+ MCFG_AY8910_PORT_B_WRITE_CB(WRITE8(nycaptor_state, unk_w))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.15)
MCFG_SOUND_ADD("ay2", AY8910, 8000000/4)
- MCFG_SOUND_CONFIG(ay8910_config)
+ MCFG_AY8910_PORT_A_WRITE_CB(WRITE8(nycaptor_state, unk_w))
+ MCFG_AY8910_PORT_B_WRITE_CB(WRITE8(nycaptor_state, unk_w))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.15)
MCFG_SOUND_ADD("msm", MSM5232, 2000000)
diff --git a/src/mame/drivers/nyny.c b/src/mame/drivers/nyny.c
index 580dd33d359..7deb94c061b 100644
--- a/src/mame/drivers/nyny.c
+++ b/src/mame/drivers/nyny.c
@@ -384,30 +384,6 @@ WRITE8_MEMBER(nyny_state::nyny_ay8910_37_port_a_w)
/*logerror("%x PORT A write %x at Y=%x X=%x\n", space.device().safe_pc(), data, m_screen->vpos(), m_screen->hpos());*/
}
-
-static const ay8910_interface ay8910_37_interface =
-{
- AY8910_LEGACY_OUTPUT,
- AY8910_DEFAULT_LOADS,
- DEVCB_NULL,
- DEVCB_NULL,
- DEVCB_DRIVER_MEMBER(nyny_state,nyny_ay8910_37_port_a_w),
- DEVCB_DEVICE_MEMBER("dac", dac_device, write_unsigned8)
-};
-
-
-static const ay8910_interface ay8910_64_interface =
-{
- AY8910_LEGACY_OUTPUT,
- AY8910_DEFAULT_LOADS,
- DEVCB_INPUT_PORT("SW2"),
- DEVCB_INPUT_PORT("SW1"),
- DEVCB_NULL,
- DEVCB_NULL
-};
-
-
-
/*************************************
*
* Audio system - CPU 2
@@ -666,11 +642,13 @@ static MACHINE_CONFIG_START( nyny, nyny_state )
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_SOUND_ADD("ay1", AY8910, AUDIO_CPU_1_CLOCK)
- MCFG_SOUND_CONFIG(ay8910_37_interface)
+ MCFG_AY8910_PORT_A_WRITE_CB(WRITE8(nyny_state, nyny_ay8910_37_port_a_w))
+ MCFG_AY8910_PORT_B_WRITE_CB(DEVWRITE8("dac", dac_device, write_unsigned8))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25)
MCFG_SOUND_ADD("ay2", AY8910, AUDIO_CPU_1_CLOCK)
- MCFG_SOUND_CONFIG(ay8910_64_interface)
+ MCFG_AY8910_PORT_A_READ_CB(IOPORT("SW2"))
+ MCFG_AY8910_PORT_B_READ_CB(IOPORT("SW1"))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25)
MCFG_SOUND_ADD("ay3", AY8910, AUDIO_CPU_2_CLOCK)
diff --git a/src/mame/drivers/ojankohs.c b/src/mame/drivers/ojankohs.c
index 65c38addab8..ca15ea912d0 100644
--- a/src/mame/drivers/ojankohs.c
+++ b/src/mame/drivers/ojankohs.c
@@ -750,32 +750,6 @@ static GFXDECODE_START( ojankohs )
GFXDECODE_ENTRY( "gfx1", 0, ojankohs_bglayout, 0, 64 )
GFXDECODE_END
-
-static const ay8910_interface ojankohs_ay8910_interface =
-{
- AY8910_LEGACY_OUTPUT,
- AY8910_DEFAULT_LOADS,
- DEVCB_DRIVER_MEMBER(ojankohs_state,ojankohs_ay8910_0_r), /* read port #0 */
- DEVCB_DRIVER_MEMBER(ojankohs_state,ojankohs_ay8910_1_r) /* read port #1 */
-};
-
-static const ay8910_interface ojankoy_ay8910_interface =
-{
- AY8910_LEGACY_OUTPUT,
- AY8910_DEFAULT_LOADS,
- DEVCB_INPUT_PORT("DSW1"), /* read port #0 */
- DEVCB_INPUT_PORT("DSW2"), /* read port #1 */
-};
-
-static const ay8910_interface ojankoc_ay8910_interface =
-{
- AY8910_LEGACY_OUTPUT,
- AY8910_DEFAULT_LOADS,
- DEVCB_INPUT_PORT("DSW1"), /* read port #0 */
- DEVCB_INPUT_PORT("DSW2"), /* read port #1 */
-};
-
-
MACHINE_START_MEMBER(ojankohs_state,common)
{
save_item(NAME(m_gfxreg));
@@ -862,7 +836,8 @@ static MACHINE_CONFIG_START( ojankohs, ojankohs_state )
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_SOUND_ADD("aysnd", AY8910, 12000000/6)
- MCFG_SOUND_CONFIG(ojankohs_ay8910_interface)
+ MCFG_AY8910_PORT_A_READ_CB(READ8(ojankohs_state, ojankohs_ay8910_0_r)) /* read port #0 */
+ MCFG_AY8910_PORT_B_READ_CB(READ8(ojankohs_state, ojankohs_ay8910_1_r)) /* read port #1 */
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.15)
MCFG_SOUND_ADD("msm", MSM5205, 384000)
@@ -901,7 +876,8 @@ static MACHINE_CONFIG_START( ojankoy, ojankohs_state )
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_SOUND_ADD("aysnd", AY8910, 12000000/8)
- MCFG_SOUND_CONFIG(ojankoy_ay8910_interface)
+ MCFG_AY8910_PORT_A_READ_CB(IOPORT("DSW1"))
+ MCFG_AY8910_PORT_B_READ_CB(IOPORT("DSW2"))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.15)
MCFG_SOUND_ADD("msm", MSM5205, 384000)
@@ -939,7 +915,8 @@ static MACHINE_CONFIG_START( ccasino, ojankohs_state )
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_SOUND_ADD("aysnd", AY8910, 12000000/8)
- MCFG_SOUND_CONFIG(ojankoy_ay8910_interface)
+ MCFG_AY8910_PORT_A_READ_CB(IOPORT("DSW1"))
+ MCFG_AY8910_PORT_B_READ_CB(IOPORT("DSW2"))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.15)
MCFG_SOUND_ADD("msm", MSM5205, 384000)
@@ -976,7 +953,8 @@ static MACHINE_CONFIG_START( ojankoc, ojankohs_state )
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_SOUND_ADD("aysnd", AY8910, 8000000/4)
- MCFG_SOUND_CONFIG(ojankoc_ay8910_interface)
+ MCFG_AY8910_PORT_A_READ_CB(IOPORT("DSW1"))
+ MCFG_AY8910_PORT_B_READ_CB(IOPORT("DSW2"))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.15)
MCFG_SOUND_ADD("msm", MSM5205, 8000000/22)
diff --git a/src/mame/drivers/othunder.c b/src/mame/drivers/othunder.c
index ec04fa72a3a..dc0b573ccad 100644
--- a/src/mame/drivers/othunder.c
+++ b/src/mame/drivers/othunder.c
@@ -689,6 +689,7 @@ static MACHINE_CONFIG_START( othunder, othunder_state )
MCFG_SOUND_ADD("ymsnd", YM2610, 16000000/2)
MCFG_YM2610_IRQ_HANDLER(WRITELINE(othunder_state, irqhandler))
+ MCFG_AY8910_OUTPUT_TYPE(AY8910_LEGACY_OUTPUT | AY8910_SINGLE_OUTPUT)
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/pacman.c b/src/mame/drivers/pacman.c
index 87c408ae27c..37d1ae0974d 100644
--- a/src/mame/drivers/pacman.c
+++ b/src/mame/drivers/pacman.c
@@ -3556,16 +3556,6 @@ static MACHINE_CONFIG_DERIVED( crush4, mschamp )
MCFG_GFXDECODE_MODIFY("gfxdecode", crush4)
MACHINE_CONFIG_END
-static const ay8910_interface crushs_ay8910_interface =
-{
- AY8910_LEGACY_OUTPUT,
- AY8910_DEFAULT_LOADS,
- DEVCB_NULL,
- DEVCB_NULL,
- DEVCB_NULL,
- DEVCB_NULL
-};
-
static MACHINE_CONFIG_DERIVED( crushs, pacman )
/* basic machine hardware */
@@ -3575,7 +3565,6 @@ static MACHINE_CONFIG_DERIVED( crushs, pacman )
/* sound hardware */
MCFG_SOUND_ADD("ay8912", AY8912, 1789750)
- MCFG_SOUND_CONFIG(crushs_ay8910_interface)
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.75)
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/pandoras.c b/src/mame/drivers/pandoras.c
index d7dadd2ba36..27fe69bf05b 100644
--- a/src/mame/drivers/pandoras.c
+++ b/src/mame/drivers/pandoras.c
@@ -315,16 +315,6 @@ READ8_MEMBER(pandoras_state::pandoras_portB_r)
return (m_audiocpu->total_cycles() / 512) & 0x0f;
}
-static const ay8910_interface ay8910_config =
-{
- AY8910_LEGACY_OUTPUT,
- AY8910_DEFAULT_LOADS,
- DEVCB_DRIVER_MEMBER(pandoras_state,pandoras_portA_r), // not used
- DEVCB_DRIVER_MEMBER(pandoras_state,pandoras_portB_r),
- DEVCB_NULL,
- DEVCB_NULL
-};
-
static MACHINE_CONFIG_START( pandoras, pandoras_state )
/* basic machine hardware */
@@ -364,7 +354,8 @@ static MACHINE_CONFIG_START( pandoras, pandoras_state )
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_SOUND_ADD("aysnd", AY8910, SOUND_CLOCK/8)
- MCFG_SOUND_CONFIG(ay8910_config)
+ MCFG_AY8910_PORT_A_READ_CB(READ8(pandoras_state, pandoras_portA_r)) // not used
+ MCFG_AY8910_PORT_B_READ_CB(READ8(pandoras_state, pandoras_portB_r))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.40)
MCFG_DAC_ADD("dac")
diff --git a/src/mame/drivers/pastelg.c b/src/mame/drivers/pastelg.c
index eb864d79349..f561d50cfaf 100644
--- a/src/mame/drivers/pastelg.c
+++ b/src/mame/drivers/pastelg.c
@@ -392,16 +392,6 @@ static INPUT_PORTS_START( galds )
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
INPUT_PORTS_END
-static const ay8910_interface ay8910_config =
-{
- AY8910_LEGACY_OUTPUT,
- AY8910_DEFAULT_LOADS,
- DEVCB_INPUT_PORT("DSWB"),
- DEVCB_INPUT_PORT("DSWA"),
- DEVCB_NULL,
- DEVCB_NULL
-};
-
static MACHINE_CONFIG_START( pastelg, pastelg_state )
@@ -432,7 +422,8 @@ static MACHINE_CONFIG_START( pastelg, pastelg_state )
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_SOUND_ADD("aysnd", AY8910, 1250000)
- MCFG_SOUND_CONFIG(ay8910_config)
+ MCFG_AY8910_PORT_A_READ_CB(IOPORT("DSWB"))
+ MCFG_AY8910_PORT_B_READ_CB(IOPORT("DSWA"))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.35)
MCFG_DAC_ADD("dac")
@@ -489,7 +480,8 @@ static MACHINE_CONFIG_START( threeds, pastelg_state )
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_SOUND_ADD("aysnd", AY8910, 1250000)
- MCFG_SOUND_CONFIG(ay8910_config)
+ MCFG_AY8910_PORT_A_READ_CB(IOPORT("DSWB"))
+ MCFG_AY8910_PORT_B_READ_CB(IOPORT("DSWA"))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.35)
MCFG_DAC_ADD("dac")
diff --git a/src/mame/drivers/pengadvb.c b/src/mame/drivers/pengadvb.c
index 23ebbc34dfb..c51ff8f2a47 100644
--- a/src/mame/drivers/pengadvb.c
+++ b/src/mame/drivers/pengadvb.c
@@ -148,16 +148,6 @@ WRITE8_MEMBER(pengadvb_state::pengadvb_psg_port_b_w)
// leftover from msx ver?
}
-static const ay8910_interface pengadvb_ay8910_interface =
-{
- AY8910_LEGACY_OUTPUT,
- AY8910_DEFAULT_LOADS,
- DEVCB_INPUT_PORT("IN0"),
- DEVCB_NULL,
- DEVCB_NULL,
- DEVCB_DRIVER_MEMBER(pengadvb_state,pengadvb_psg_port_b_w)
-};
-
/**************************************************************************/
// I8255
@@ -263,7 +253,8 @@ static MACHINE_CONFIG_START( pengadvb, pengadvb_state )
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_SOUND_ADD("aysnd", AY8910, XTAL_10_738635MHz/6)
- MCFG_SOUND_CONFIG(pengadvb_ay8910_interface)
+ MCFG_AY8910_PORT_A_READ_CB(IOPORT("IN0"))
+ MCFG_AY8910_PORT_B_WRITE_CB(WRITE8(pengadvb_state, pengadvb_psg_port_b_w))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50)
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/phoenix.c b/src/mame/drivers/phoenix.c
index f3c8183312c..6bb9585e26e 100644
--- a/src/mame/drivers/phoenix.c
+++ b/src/mame/drivers/phoenix.c
@@ -411,18 +411,6 @@ static GFXDECODE_START( pleiads )
GFXDECODE_END
-static const ay8910_interface survival_ay8910_interface =
-{
- AY8910_LEGACY_OUTPUT,
- AY8910_DEFAULT_LOADS,
- DEVCB_NULL,
- DEVCB_DRIVER_MEMBER(phoenix_state, survival_protection_r),
- DEVCB_NULL,
- DEVCB_NULL
-};
-
-
-
MACHINE_RESET_MEMBER(phoenix_state,phoenix)
{
membank("bank1")->set_base(memregion("maincpu")->base() + 0x4000);
@@ -528,7 +516,7 @@ static MACHINE_CONFIG_START( survival, phoenix_state )
/* FIXME: check clock */
MCFG_SOUND_ADD("aysnd", AY8910, 11000000/4)
- MCFG_SOUND_CONFIG(survival_ay8910_interface)
+ MCFG_AY8910_PORT_B_READ_CB(READ8(phoenix_state, survival_protection_r))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50)
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/pipedrm.c b/src/mame/drivers/pipedrm.c
index d8a03d367da..f84df2c184d 100644
--- a/src/mame/drivers/pipedrm.c
+++ b/src/mame/drivers/pipedrm.c
@@ -580,16 +580,6 @@ WRITE_LINE_MEMBER(pipedrm_state::irqhandler)
m_subcpu->set_input_line(0, state ? ASSERT_LINE : CLEAR_LINE);
}
-
-static const ay8910_interface ay8910_config =
-{
- AY8910_LEGACY_OUTPUT | AY8910_SINGLE_OUTPUT,
- AY8910_DEFAULT_LOADS,
- DEVCB_NULL, DEVCB_NULL, DEVCB_NULL, DEVCB_NULL
-};
-
-
-
/*************************************
*
* Machine driver
@@ -679,6 +669,7 @@ static MACHINE_CONFIG_START( pipedrm, pipedrm_state )
MCFG_SOUND_ADD("ymsnd", YM2610, 8000000)
MCFG_YM2610_IRQ_HANDLER(WRITELINE(pipedrm_state, irqhandler))
+ MCFG_AY8910_OUTPUT_TYPE(AY8910_LEGACY_OUTPUT | AY8910_SINGLE_OUTPUT)
MCFG_SOUND_ROUTE(0, "mono", 0.50)
MCFG_SOUND_ROUTE(1, "mono", 1.0)
MCFG_SOUND_ROUTE(2, "mono", 1.0)
@@ -720,7 +711,7 @@ static MACHINE_CONFIG_START( hatris, pipedrm_state )
MCFG_SOUND_ADD("ymsnd", YM2608, 8000000)
MCFG_YM2608_IRQ_HANDLER(WRITELINE(pipedrm_state, irqhandler))
- MCFG_YM2608_AY8910_INTF(&ay8910_config)
+ MCFG_AY8910_OUTPUT_TYPE(AY8910_LEGACY_OUTPUT | AY8910_SINGLE_OUTPUT)
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/pipeline.c b/src/mame/drivers/pipeline.c
index 8423140c162..89dd381d2ee 100644
--- a/src/mame/drivers/pipeline.c
+++ b/src/mame/drivers/pipeline.c
@@ -321,13 +321,6 @@ static const z80_daisy_config daisy_chain_sound[] =
{ NULL }
};
-static const ay8910_interface ay8910_config =
-{
- AY8910_LEGACY_OUTPUT,
- AY8910_DEFAULT_LOADS,
- DEVCB_NULL, DEVCB_NULL, DEVCB_NULL, DEVCB_NULL
-};
-
PALETTE_INIT_MEMBER(pipeline_state, pipeline)
{
int r,g,b,i,c;
@@ -395,7 +388,6 @@ static MACHINE_CONFIG_START( pipeline, pipeline_state )
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_SOUND_ADD("ymsnd", YM2203, 7372800/4)
- MCFG_YM2203_AY8910_INTF(&ay8910_config)
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.60)
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/pitnrun.c b/src/mame/drivers/pitnrun.c
index 4340aa3a5fc..656fb03c633 100644
--- a/src/mame/drivers/pitnrun.c
+++ b/src/mame/drivers/pitnrun.c
@@ -211,16 +211,6 @@ static const gfx_layout charlayout =
8*8*2
};
-static const ay8910_interface ay8910_config =
-{
- AY8910_LEGACY_OUTPUT,
- AY8910_DEFAULT_LOADS,
- DEVCB_DRIVER_MEMBER(driver_device, soundlatch_byte_r),
- DEVCB_DRIVER_MEMBER(driver_device, soundlatch_byte_r),
- DEVCB_NULL,
- DEVCB_NULL
-};
-
static GFXDECODE_START( pitnrun )
GFXDECODE_ENTRY( "gfx3", 0, charlayout, 64, 2 )
GFXDECODE_ENTRY( "gfx2", 0, charlayout, 32, 2 )
@@ -260,11 +250,13 @@ static MACHINE_CONFIG_START( pitnrun, pitnrun_state )
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_SOUND_ADD("ay1", AY8910, XTAL_18_432MHz/12) /* verified on pcb */
- MCFG_SOUND_CONFIG(ay8910_config)
+ MCFG_AY8910_PORT_A_READ_CB(READ8(driver_device, soundlatch_byte_r))
+ MCFG_AY8910_PORT_B_READ_CB(READ8(driver_device, soundlatch_byte_r))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50)
MCFG_SOUND_ADD("ay2", AY8910, XTAL_18_432MHz/12) /* verified on pcb */
- MCFG_SOUND_CONFIG(ay8910_config)
+ MCFG_AY8910_PORT_A_READ_CB(READ8(driver_device, soundlatch_byte_r))
+ MCFG_AY8910_PORT_B_READ_CB(READ8(driver_device, soundlatch_byte_r))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50)
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/pkscram.c b/src/mame/drivers/pkscram.c
index e8c278afe06..6b05a667340 100644
--- a/src/mame/drivers/pkscram.c
+++ b/src/mame/drivers/pkscram.c
@@ -281,13 +281,6 @@ WRITE_LINE_MEMBER(pkscram_state::irqhandler)
m_maincpu->set_input_line(2, state ? ASSERT_LINE : CLEAR_LINE);
}
-static const ay8910_interface ay8910_config =
-{
- AY8910_LEGACY_OUTPUT,
- AY8910_DEFAULT_LOADS,
- DEVCB_NULL, DEVCB_NULL, DEVCB_NULL, DEVCB_NULL
-};
-
void pkscram_state::machine_start()
{
save_item(NAME(m_out));
@@ -332,7 +325,6 @@ static MACHINE_CONFIG_START( pkscramble, pkscram_state )
MCFG_SOUND_ADD("ymsnd", YM2203, 12000000/4)
MCFG_YM2203_IRQ_HANDLER(WRITELINE(pkscram_state, irqhandler))
- MCFG_YM2203_AY8910_INTF(&ay8910_config)
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.60)
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/poker72.c b/src/mame/drivers/poker72.c
index c58f7606ced..1f8df5c34fc 100644
--- a/src/mame/drivers/poker72.c
+++ b/src/mame/drivers/poker72.c
@@ -337,16 +337,6 @@ PALETTE_INIT_MEMBER(poker72_state, poker72)
}
}
-static const ay8910_interface ay8910_config =
-{
- AY8910_LEGACY_OUTPUT,
- AY8910_DEFAULT_LOADS,
- DEVCB_INPUT_PORT("DSW0"),
- DEVCB_INPUT_PORT("DSW1"),
- DEVCB_NULL,
- DEVCB_NULL
-};
-
void poker72_state::machine_reset()
{
UINT8 *ROM = memregion("maincpu")->base();
@@ -379,7 +369,8 @@ static MACHINE_CONFIG_START( poker72, poker72_state )
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_SOUND_ADD("ay", AY8910, 8000000/8) /* ? Mhz */
- MCFG_SOUND_CONFIG(ay8910_config)
+ MCFG_AY8910_PORT_A_READ_CB(IOPORT("DSW0"))
+ MCFG_AY8910_PORT_B_READ_CB(IOPORT("DSW1"))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50)
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/popeye.c b/src/mame/drivers/popeye.c
index 48c5f0cee63..c3bf61bffca 100644
--- a/src/mame/drivers/popeye.c
+++ b/src/mame/drivers/popeye.c
@@ -444,27 +444,6 @@ WRITE8_MEMBER(popeye_state::popeye_portB_w)
m_dswbit = (data & 0x0e) >> 1;
}
-static const ay8910_interface ay8910_config =
-{
- AY8910_LEGACY_OUTPUT,
- AY8910_DEFAULT_LOADS,
- DEVCB_INPUT_PORT("DSW0"),
- DEVCB_NULL,
- DEVCB_NULL,
- DEVCB_DRIVER_MEMBER(popeye_state,popeye_portB_w)
-};
-
-/* Does Sky Skipper have the same filtering? */
-static const ay8910_interface ay8910_nl_config =
-{
- AY8910_RESISTOR_OUTPUT,
- AY8910_DEFAULT_LOADS,
- DEVCB_INPUT_PORT("DSW0"),
- DEVCB_NULL,
- DEVCB_NULL,
- DEVCB_DRIVER_MEMBER(popeye_state,popeye_portB_w)
-};
-
static MACHINE_CONFIG_START( skyskipr, popeye_state )
/* basic machine hardware */
MCFG_CPU_ADD("maincpu", Z80, XTAL_8MHz/2) /* 4 MHz */
@@ -489,7 +468,8 @@ static MACHINE_CONFIG_START( skyskipr, popeye_state )
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_SOUND_ADD("aysnd", AY8910, XTAL_8MHz/4)
- MCFG_SOUND_CONFIG(ay8910_config)
+ MCFG_AY8910_PORT_A_READ_CB(IOPORT("DSW0"))
+ MCFG_AY8910_PORT_B_WRITE_CB(WRITE8(popeye_state, popeye_portB_w))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.40)
MACHINE_CONFIG_END
@@ -500,7 +480,9 @@ static MACHINE_CONFIG_DERIVED( popeye, skyskipr )
MCFG_SOUND_MODIFY("aysnd")
MCFG_SOUND_ROUTES_RESET()
- MCFG_SOUND_CONFIG(ay8910_nl_config)
+ MCFG_AY8910_OUTPUT_TYPE(AY8910_RESISTOR_OUTPUT) /* Does Sky Skipper have the same filtering? */
+ MCFG_AY8910_PORT_A_READ_CB(IOPORT("DSW0"))
+ MCFG_AY8910_PORT_B_WRITE_CB(WRITE8(popeye_state, popeye_portB_w))
MCFG_SOUND_ROUTE_EX(0, "snd_nl", 1.0, 0)
MCFG_SOUND_ROUTE_EX(1, "snd_nl", 1.0, 1)
MCFG_SOUND_ROUTE_EX(2, "snd_nl", 1.0, 2)
diff --git a/src/mame/drivers/powerins.c b/src/mame/drivers/powerins.c
index 1cdf79c4274..bb41ed749d4 100644
--- a/src/mame/drivers/powerins.c
+++ b/src/mame/drivers/powerins.c
@@ -321,13 +321,6 @@ WRITE_LINE_MEMBER(powerins_state::irqhandler)
m_soundcpu->set_input_line(0, state ? ASSERT_LINE : CLEAR_LINE);
}
-static const ay8910_interface ay8910_config =
-{
- AY8910_LEGACY_OUTPUT,
- AY8910_DEFAULT_LOADS,
- DEVCB_NULL, DEVCB_NULL, DEVCB_NULL, DEVCB_NULL,
-};
-
static MACHINE_CONFIG_START( powerins, powerins_state )
/* basic machine hardware */
@@ -365,7 +358,6 @@ static MACHINE_CONFIG_START( powerins, powerins_state )
MCFG_SOUND_ADD("ym2203", YM2203, 12000000 / 8)
MCFG_YM2203_IRQ_HANDLER(WRITELINE(powerins_state, irqhandler))
- MCFG_YM2203_AY8910_INTF(&ay8910_config)
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 2.0)
MCFG_DEVICE_ADD("nmk112", NMK112, 0)
diff --git a/src/mame/drivers/proconn.c b/src/mame/drivers/proconn.c
index 93082ec1f98..50309875134 100644
--- a/src/mame/drivers/proconn.c
+++ b/src/mame/drivers/proconn.c
@@ -311,16 +311,6 @@ WRITE8_MEMBER(proconn_state::meter_w)
}
}
-static const ay8910_interface ay8910_config =
-{
- AY8910_LEGACY_OUTPUT,
- AY8910_DEFAULT_LOADS,
- DEVCB_NULL,
- DEVCB_NULL,
- DEVCB_DRIVER_MEMBER(proconn_state,meter_w),
-};
-
-
static const z80_daisy_config z80_daisy_chain[] =
{
{ "z80ctc" },
@@ -396,7 +386,7 @@ static MACHINE_CONFIG_START( proconn, proconn_state )
MCFG_DEFAULT_LAYOUT(layout_proconn)
MCFG_SOUND_ADD("aysnd", AY8910, 1000000) /* ?? Mhz */ // YM2149F on PC92?
- MCFG_SOUND_CONFIG(ay8910_config)
+ MCFG_AY8910_PORT_B_WRITE_CB(WRITE8(proconn_state, meter_w))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.33)
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/psikyo.c b/src/mame/drivers/psikyo.c
index 7024ccf9cb2..8fd3c8c9466 100644
--- a/src/mame/drivers/psikyo.c
+++ b/src/mame/drivers/psikyo.c
@@ -1062,6 +1062,7 @@ static MACHINE_CONFIG_START( sngkace, psikyo_state )
MCFG_SOUND_ADD("ymsnd", YM2610, XTAL_32MHz/4) /* verified on pcb */
MCFG_YM2610_IRQ_HANDLER(WRITELINE(psikyo_state, sound_irq))
+ MCFG_AY8910_OUTPUT_TYPE(AY8910_LEGACY_OUTPUT | AY8910_SINGLE_OUTPUT)
MCFG_SOUND_ROUTE(0, "lspeaker", 1.2)
MCFG_SOUND_ROUTE(0, "rspeaker", 1.2)
MCFG_SOUND_ROUTE(1, "lspeaker", 1.0)
@@ -1108,6 +1109,7 @@ static MACHINE_CONFIG_START( gunbird, psikyo_state )
MCFG_SOUND_ADD("ymsnd", YM2610, 8000000)
MCFG_YM2610_IRQ_HANDLER(WRITELINE(psikyo_state, sound_irq))
+ MCFG_AY8910_OUTPUT_TYPE(AY8910_LEGACY_OUTPUT | AY8910_SINGLE_OUTPUT)
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/psychic5.c b/src/mame/drivers/psychic5.c
index 7e2eaa15c36..ce8011e38de 100644
--- a/src/mame/drivers/psychic5.c
+++ b/src/mame/drivers/psychic5.c
@@ -648,13 +648,6 @@ WRITE_LINE_MEMBER(psychic5_state::irqhandler)
m_audiocpu->set_input_line(0, state ? ASSERT_LINE : CLEAR_LINE);
}
-static const ay8910_interface ay8910_config =
-{
- AY8910_LEGACY_OUTPUT,
- AY8910_DEFAULT_LOADS,
- DEVCB_NULL, DEVCB_NULL, DEVCB_NULL, DEVCB_NULL
-};
-
static MACHINE_CONFIG_START( psychic5, psychic5_state )
/* basic machine hardware */
@@ -688,7 +681,6 @@ static MACHINE_CONFIG_START( psychic5, psychic5_state )
MCFG_SOUND_ADD("ym1", YM2203, XTAL_12MHz/8)
MCFG_YM2203_IRQ_HANDLER(WRITELINE(psychic5_state, irqhandler))
- MCFG_YM2203_AY8910_INTF(&ay8910_config)
MCFG_SOUND_ROUTE(0, "mono", 0.15)
MCFG_SOUND_ROUTE(1, "mono", 0.15)
MCFG_SOUND_ROUTE(2, "mono", 0.15)
@@ -733,7 +725,6 @@ static MACHINE_CONFIG_START( bombsa, psychic5_state )
MCFG_SOUND_ADD("ym1", YM2203, XTAL_12MHz/8)
MCFG_YM2203_IRQ_HANDLER(WRITELINE(psychic5_state, irqhandler))
- MCFG_YM2203_AY8910_INTF(&ay8910_config)
MCFG_SOUND_ROUTE(0, "mono", 0.30)
MCFG_SOUND_ROUTE(1, "mono", 0.30)
MCFG_SOUND_ROUTE(2, "mono", 0.30)
diff --git a/src/mame/drivers/pushman.c b/src/mame/drivers/pushman.c
index dadfc98ca1d..8cb8c3c69c3 100644
--- a/src/mame/drivers/pushman.c
+++ b/src/mame/drivers/pushman.c
@@ -383,14 +383,6 @@ WRITE_LINE_MEMBER(pushman_state::irqhandler)
m_audiocpu->set_input_line(0, state ? ASSERT_LINE : CLEAR_LINE);
}
-static const ay8910_interface ay8910_config =
-{
- AY8910_LEGACY_OUTPUT,
- AY8910_DEFAULT_LOADS,
- DEVCB_NULL, DEVCB_NULL, DEVCB_NULL, DEVCB_NULL,
-};
-
-
void pushman_state::machine_start()
{
save_item(NAME(m_control));
@@ -447,7 +439,6 @@ static MACHINE_CONFIG_START( pushman, pushman_state )
MCFG_SOUND_ADD("ym1", YM2203, 2000000)
MCFG_YM2203_IRQ_HANDLER(WRITELINE(pushman_state, irqhandler))
- MCFG_YM2203_AY8910_INTF(&ay8910_config)
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.40)
MCFG_SOUND_ADD("ym2", YM2203, 2000000)
@@ -495,7 +486,6 @@ static MACHINE_CONFIG_START( bballs, pushman_state )
MCFG_SOUND_ADD("ym1", YM2203, 2000000)
MCFG_YM2203_IRQ_HANDLER(WRITELINE(pushman_state, irqhandler))
- MCFG_YM2203_AY8910_INTF(&ay8910_config)
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.40)
MCFG_SOUND_ADD("ym2", YM2203, 2000000)
diff --git a/src/mame/drivers/quizdna.c b/src/mame/drivers/quizdna.c
index 9dacfaf2ddf..b7273faeb1d 100644
--- a/src/mame/drivers/quizdna.c
+++ b/src/mame/drivers/quizdna.c
@@ -427,17 +427,6 @@ static GFXDECODE_START( quizdna )
GFXDECODE_END
-static const ay8910_interface ay8910_config =
-{
- AY8910_LEGACY_OUTPUT,
- AY8910_DEFAULT_LOADS,
- DEVCB_INPUT_PORT("DSW3"),
- DEVCB_INPUT_PORT("DSW2"),
- DEVCB_NULL,
- DEVCB_NULL
-};
-
-
static MACHINE_CONFIG_START( quizdna, quizdna_state )
/* basic machine hardware */
@@ -463,7 +452,8 @@ static MACHINE_CONFIG_START( quizdna, quizdna_state )
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_SOUND_ADD("ymsnd", YM2203, MCLK/4)
- MCFG_YM2203_AY8910_INTF(&ay8910_config)
+ MCFG_AY8910_PORT_A_READ_CB(IOPORT("DSW3"))
+ MCFG_AY8910_PORT_B_READ_CB(IOPORT("DSW2"))
MCFG_SOUND_ROUTE(0, "mono", 0.10)
MCFG_SOUND_ROUTE(1, "mono", 0.10)
MCFG_SOUND_ROUTE(2, "mono", 0.10)
diff --git a/src/mame/drivers/r2dtank.c b/src/mame/drivers/r2dtank.c
index 7289e3a1692..aebd8b349b5 100644
--- a/src/mame/drivers/r2dtank.c
+++ b/src/mame/drivers/r2dtank.c
@@ -201,29 +201,6 @@ WRITE8_MEMBER(r2dtank_state::AY8910_port_w)
}
-static const ay8910_interface ay8910_1_interface =
-{
- AY8910_LEGACY_OUTPUT,
- AY8910_DEFAULT_LOADS,
- DEVCB_INPUT_PORT("DSWB"),
- DEVCB_NULL,
- DEVCB_NULL,
- DEVCB_NULL
-};
-
-
-static const ay8910_interface ay8910_2_interface =
-{
- AY8910_LEGACY_OUTPUT,
- AY8910_DEFAULT_LOADS,
- DEVCB_INPUT_PORT("IN1"),
- DEVCB_INPUT_PORT("DSWA"),
- DEVCB_NULL,
- DEVCB_NULL
-};
-
-
-
/*************************************
*
* 74123
@@ -514,11 +491,12 @@ static MACHINE_CONFIG_START( r2dtank, r2dtank_state )
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_SOUND_ADD("ay1", AY8910, (4000000 / 4))
- MCFG_SOUND_CONFIG(ay8910_1_interface)
+ MCFG_AY8910_PORT_A_READ_CB(IOPORT("DSWB"))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25)
MCFG_SOUND_ADD("ay2", AY8910, (4000000 / 4))
- MCFG_SOUND_CONFIG(ay8910_2_interface)
+ MCFG_AY8910_PORT_A_READ_CB(IOPORT("IN1"))
+ MCFG_AY8910_PORT_B_READ_CB(IOPORT("DSWA"))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25)
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/re900.c b/src/mame/drivers/re900.c
index e8339bd863f..4b5b6fbb6eb 100644
--- a/src/mame/drivers/re900.c
+++ b/src/mame/drivers/re900.c
@@ -366,31 +366,6 @@ static INPUT_PORTS_START( bs94 )
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("Auditor") PORT_CODE(KEYCODE_9)
INPUT_PORTS_END
-
-/*************************
-* AY8910 Interfase *
-*************************/
-
-static const ay8910_interface ay8910_re900 =
-{
- AY8910_LEGACY_OUTPUT,
- AY8910_DEFAULT_LOADS,
- DEVCB_DRIVER_MEMBER(re900_state,re_psg_portA_r),
- DEVCB_DRIVER_MEMBER(re900_state,re_psg_portB_r),
- DEVCB_DRIVER_MEMBER(re900_state,re_mux_port_A_w),
- DEVCB_DRIVER_MEMBER(re900_state,re_mux_port_B_w)
-};
-
-static const ay8910_interface ay8910_bs94 =
-{
- AY8910_LEGACY_OUTPUT,
- AY8910_DEFAULT_LOADS,
- DEVCB_INPUT_PORT("IN0"),
- DEVCB_INPUT_PORT("IN1"),
- DEVCB_NULL,
- DEVCB_NULL
-};
-
/***************************
* Machine Driver *
***************************/
@@ -414,7 +389,10 @@ static MACHINE_CONFIG_START( re900, re900_state )
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_SOUND_ADD("ay_re900", AY8910, TMS_CLOCK) /* From TMS9128NL - Pin 37 (GROMCLK) */
- MCFG_SOUND_CONFIG(ay8910_re900)
+ MCFG_AY8910_PORT_A_READ_CB(READ8(re900_state, re_psg_portA_r))
+ MCFG_AY8910_PORT_B_READ_CB(READ8(re900_state, re_psg_portB_r))
+ MCFG_AY8910_PORT_A_WRITE_CB(WRITE8(re900_state, re_mux_port_A_w))
+ MCFG_AY8910_PORT_B_WRITE_CB(WRITE8(re900_state, re_mux_port_B_w))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.5)
MACHINE_CONFIG_END
@@ -422,7 +400,10 @@ static MACHINE_CONFIG_DERIVED( bs94, re900 )
/* sound hardware */
MCFG_SOUND_MODIFY("ay_re900")
- MCFG_SOUND_CONFIG(ay8910_bs94)
+ MCFG_AY8910_PORT_A_READ_CB(IOPORT("IN0"))
+ MCFG_AY8910_PORT_B_READ_CB(IOPORT("IN1"))
+ MCFG_AY8910_PORT_A_WRITE_CB(NULL)
+ MCFG_AY8910_PORT_B_WRITE_CB(NULL)
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/rgum.c b/src/mame/drivers/rgum.c
index 7e83db4c306..ea01d7c335f 100644
--- a/src/mame/drivers/rgum.c
+++ b/src/mame/drivers/rgum.c
@@ -234,16 +234,6 @@ static GFXDECODE_START( rgum )
GFXDECODE_END
-static const ay8910_interface ay8910_config =
-{
- AY8910_LEGACY_OUTPUT,
- AY8910_DEFAULT_LOADS,
- DEVCB_NULL,
- DEVCB_NULL,
- DEVCB_NULL,
- DEVCB_NULL
-};
-
static MACHINE_CONFIG_START( rgum, rgum_state )
/* basic machine hardware */
MCFG_CPU_ADD("maincpu", M65C02,24000000/16) /* ? MHz */
@@ -274,7 +264,6 @@ static MACHINE_CONFIG_START( rgum, rgum_state )
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_SOUND_ADD("aysnd", AY8910, 24000000/16) /* guessed to use the same xtal as the crtc */
- MCFG_SOUND_CONFIG(ay8910_config)
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50)
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/rmhaihai.c b/src/mame/drivers/rmhaihai.c
index f18c2a9e3af..63463470401 100644
--- a/src/mame/drivers/rmhaihai.c
+++ b/src/mame/drivers/rmhaihai.c
@@ -451,15 +451,6 @@ static GFXDECODE_START( themj )
GFXDECODE_END
-
-static const ay8910_interface ay8910_config =
-{
- AY8910_LEGACY_OUTPUT,
- AY8910_DEFAULT_LOADS,
- DEVCB_INPUT_PORT("DSW2"),
- DEVCB_INPUT_PORT("DSW1")
-};
-
static MACHINE_CONFIG_START( rmhaihai, rmhaihai_state )
/* basic machine hardware */
@@ -485,7 +476,8 @@ static MACHINE_CONFIG_START( rmhaihai, rmhaihai_state )
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_SOUND_ADD("aysnd", AY8910, 20000000/16)
- MCFG_SOUND_CONFIG(ay8910_config)
+ MCFG_AY8910_PORT_A_READ_CB(IOPORT("DSW2"))
+ MCFG_AY8910_PORT_B_READ_CB(IOPORT("DSW1"))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.30)
MCFG_SOUND_ADD("msm", MSM5205, 500000)
diff --git a/src/mame/drivers/route16.c b/src/mame/drivers/route16.c
index 531a7c6f65f..68c3591323d 100644
--- a/src/mame/drivers/route16.c
+++ b/src/mame/drivers/route16.c
@@ -553,18 +553,6 @@ static INPUT_PORTS_START( ttmahjng )
INPUT_PORTS_END
-
-static const ay8910_interface stratvox_ay8910_interface =
-{
- AY8910_LEGACY_OUTPUT,
- AY8910_DEFAULT_LOADS,
- DEVCB_NULL,
- DEVCB_NULL,
- DEVCB_DRIVER_MEMBER(route16_state,stratvox_sn76477_w), /* SN76477 commands (not used in Route 16?) */
- DEVCB_NULL
-};
-
-
static const sn76477_interface sn76477_intf =
{
RES_K(47), /* 4 noise_res */
@@ -642,7 +630,7 @@ static MACHINE_CONFIG_DERIVED( stratvox, route16 )
/* sound hardware */
MCFG_SOUND_MODIFY("ay8910")
- MCFG_SOUND_CONFIG(stratvox_ay8910_interface)
+ MCFG_AY8910_PORT_A_WRITE_CB(WRITE8(route16_state, stratvox_sn76477_w)) /* SN76477 commands (not used in Route 16?) */
MCFG_SOUND_ADD("snsnd", SN76477, 0)
MCFG_SOUND_CONFIG(sn76477_intf)
diff --git a/src/mame/drivers/royalmah.c b/src/mame/drivers/royalmah.c
index 94a46e4870c..c77a3f2d979 100644
--- a/src/mame/drivers/royalmah.c
+++ b/src/mame/drivers/royalmah.c
@@ -3213,14 +3213,6 @@ static INPUT_PORTS_START( mjvegasa )
INPUT_PORTS_END
-static const ay8910_interface ay8910_config =
-{
- AY8910_LEGACY_OUTPUT,
- AY8910_DEFAULT_LOADS,
- DEVCB_DRIVER_MEMBER(royalmah_state,royalmah_player_1_port_r),
- DEVCB_DRIVER_MEMBER(royalmah_state,royalmah_player_2_port_r)
-};
-
static MACHINE_CONFIG_START( royalmah, royalmah_state )
/* basic machine hardware */
@@ -3247,7 +3239,8 @@ static MACHINE_CONFIG_START( royalmah, royalmah_state )
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_SOUND_ADD("aysnd", AY8910, 18432000/12)
- MCFG_SOUND_CONFIG(ay8910_config)
+ MCFG_AY8910_PORT_A_READ_CB(READ8(royalmah_state, royalmah_player_1_port_r))
+ MCFG_AY8910_PORT_B_READ_CB(READ8(royalmah_state, royalmah_player_2_port_r))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.33)
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/sandscrp.c b/src/mame/drivers/sandscrp.c
index 736f6327306..198bf5cdc1d 100644
--- a/src/mame/drivers/sandscrp.c
+++ b/src/mame/drivers/sandscrp.c
@@ -469,17 +469,6 @@ WRITE_LINE_MEMBER(sandscrp_state::irqhandler)
m_audiocpu->set_input_line(0, state ? ASSERT_LINE : CLEAR_LINE);
}
-static const ay8910_interface ay8910_config =
-{
- AY8910_LEGACY_OUTPUT,
- AY8910_DEFAULT_LOADS,
- DEVCB_INPUT_PORT("DSW1"), /* Port A Read */
- DEVCB_INPUT_PORT("DSW2"), /* Port B Read */
- DEVCB_NULL, /* Port A Write */
- DEVCB_NULL, /* Port B Write */
-};
-
-
static MACHINE_CONFIG_START( sandscrp, sandscrp_state )
/* basic machine hardware */
@@ -528,7 +517,8 @@ static MACHINE_CONFIG_START( sandscrp, sandscrp_state )
MCFG_SOUND_ADD("ymsnd", YM2203, 4000000)
MCFG_YM2203_IRQ_HANDLER(WRITELINE(sandscrp_state, irqhandler))
- MCFG_YM2203_AY8910_INTF(&ay8910_config)
+ MCFG_AY8910_PORT_A_READ_CB(IOPORT("DSW1"))
+ MCFG_AY8910_PORT_B_READ_CB(IOPORT("DSW2"))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 0.25)
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.25)
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/sanremo.c b/src/mame/drivers/sanremo.c
index 5843ca17b3d..2c25c399d0c 100644
--- a/src/mame/drivers/sanremo.c
+++ b/src/mame/drivers/sanremo.c
@@ -332,20 +332,6 @@ static GFXDECODE_START( sanremo )
GFXDECODE_ENTRY( "gfx", 0, tilelayout, 0, 1 )
GFXDECODE_END
-/********************************************
-* Sound Interface *
-********************************************/
-
-static const ay8910_interface ay8910_config =
-{
- AY8910_LEGACY_OUTPUT,
- AY8910_DEFAULT_LOADS,
- DEVCB_INPUT_PORT("DSW"),
- DEVCB_NULL,
- DEVCB_NULL,
- DEVCB_NULL
-};
-
/*********************************************
* Machine Drivers *
@@ -385,7 +371,7 @@ static MACHINE_CONFIG_START( sanremo, sanremo_state )
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_SOUND_ADD("ay8910", AY8910, SND_CLOCK)
- MCFG_SOUND_CONFIG(ay8910_config)
+ MCFG_AY8910_PORT_A_READ_CB(IOPORT("DSW"))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.00)
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/scobra.c b/src/mame/drivers/scobra.c
index f733c68b7e5..82b67c2ef58 100644
--- a/src/mame/drivers/scobra.c
+++ b/src/mame/drivers/scobra.c
@@ -92,17 +92,6 @@ static GFXDECODE_START( scobra )
GFXDECODE_END
-
-static const ay8910_interface hustler_ay8910_interface =
-{
- AY8910_LEGACY_OUTPUT,
- AY8910_DEFAULT_LOADS,
- DEVCB_DRIVER_MEMBER(driver_device, soundlatch_byte_r),
- DEVCB_DRIVER_MEMBER(scramble_state, hustler_portB_r),
- DEVCB_NULL,
- DEVCB_NULL
-};
-
READ8_MEMBER(scobra_state::scobra_type2_ppi8255_0_r){ return m_ppi8255_0->read(space, offset >> 2); }
READ8_MEMBER(scobra_state::scobra_type2_ppi8255_1_r){ return m_ppi8255_1->read(space, offset >> 2); }
WRITE8_MEMBER(scobra_state::scobra_type2_ppi8255_0_w){ m_ppi8255_0->write(space, offset >> 2, data); }
@@ -713,17 +702,6 @@ static INPUT_PORTS_START( mimonsco )
INPUT_PORTS_END
-static const ay8910_interface scobra_ay8910_interface_2 =
-{
- AY8910_LEGACY_OUTPUT,
- AY8910_DEFAULT_LOADS,
- DEVCB_DRIVER_MEMBER(driver_device, soundlatch_byte_r),
- DEVCB_DRIVER_MEMBER(scramble_state, scramble_portB_r),
- DEVCB_NULL,
- DEVCB_NULL
-};
-
-
static MACHINE_CONFIG_START( type1, scobra_state )
/* basic machine hardware */
@@ -777,7 +755,8 @@ static MACHINE_CONFIG_START( type1, scobra_state )
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.16)
MCFG_SOUND_ADD("ay2", AY8910, 14318000/8)
- MCFG_SOUND_CONFIG(scobra_ay8910_interface_2)
+ MCFG_AY8910_PORT_A_READ_CB(READ8(driver_device, soundlatch_byte_r))
+ MCFG_AY8910_PORT_B_READ_CB(READ8(scramble_state, scramble_portB_r))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.16)
MACHINE_CONFIG_END
@@ -914,7 +893,8 @@ static MACHINE_CONFIG_START( hustler, scobra_state )
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_SOUND_ADD("aysnd", AY8910, 14318000/8)
- MCFG_SOUND_CONFIG(hustler_ay8910_interface)
+ MCFG_AY8910_PORT_A_READ_CB(READ8(driver_device, soundlatch_byte_r))
+ MCFG_AY8910_PORT_B_READ_CB(READ8(scramble_state, hustler_portB_r))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.33)
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/scramble.c b/src/mame/drivers/scramble.c
index 08276bfa40b..8cad6609f3c 100644
--- a/src/mame/drivers/scramble.c
+++ b/src/mame/drivers/scramble.c
@@ -1345,47 +1345,6 @@ static GFXDECODE_START( ad2083 )
GFXDECODE_END
-static const ay8910_interface scramble_ay8910_interface_2 =
-{
- AY8910_LEGACY_OUTPUT,
- AY8910_DEFAULT_LOADS,
- DEVCB_DRIVER_MEMBER(driver_device, soundlatch_byte_r),
- DEVCB_DRIVER_MEMBER(scramble_state, scramble_portB_r),
- DEVCB_NULL,
- DEVCB_NULL
-};
-
-static const ay8910_interface hotshock_ay8910_interface_2 =
-{
- AY8910_LEGACY_OUTPUT,
- AY8910_DEFAULT_LOADS,
- DEVCB_DRIVER_MEMBER(scramble_state, hotshock_soundlatch_r),
- DEVCB_DRIVER_MEMBER(scramble_state, scramble_portB_r),
- DEVCB_NULL,
- DEVCB_NULL
-};
-
-static const ay8910_interface triplep_ay8910_interface =
-{
- AY8910_LEGACY_OUTPUT,
- AY8910_DEFAULT_LOADS,
- DEVCB_NULL,
- DEVCB_NULL,
- DEVCB_NULL,
- DEVCB_NULL
-};
-
-static const ay8910_interface harem_ay8910_interface_3 =
-{
- AY8910_LEGACY_OUTPUT,
- AY8910_DEFAULT_LOADS,
- DEVCB_NULL, // Port A read
- DEVCB_NULL, // Port B read
- DEVCB_DRIVER_MEMBER(scramble_state, harem_portA_w), // Port A write
- DEVCB_DRIVER_MEMBER(scramble_state, harem_portB_w), // Port B write
-};
-
-
/**************************************************************************/
static MACHINE_CONFIG_START( scramble, scramble_state )
@@ -1442,7 +1401,8 @@ static MACHINE_CONFIG_START( scramble, scramble_state )
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.16)
MCFG_SOUND_ADD("8910.2", AY8910, 14318000/8)
- MCFG_SOUND_CONFIG(scramble_ay8910_interface_2)
+ MCFG_AY8910_PORT_A_READ_CB(READ8(driver_device, soundlatch_byte_r))
+ MCFG_AY8910_PORT_B_READ_CB(READ8(scramble_state, scramble_portB_r))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.16)
MACHINE_CONFIG_END
@@ -1564,7 +1524,8 @@ static MACHINE_CONFIG_DERIVED( hotshock, scramble )
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.33)
MCFG_SOUND_MODIFY("8910.2")
- MCFG_SOUND_CONFIG(hotshock_ay8910_interface_2)
+ MCFG_AY8910_PORT_A_READ_CB(READ8(scramble_state, hotshock_soundlatch_r))
+ MCFG_AY8910_PORT_B_READ_CB(READ8(scramble_state, scramble_portB_r))
MCFG_SOUND_ROUTES_RESET()
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.33)
MACHINE_CONFIG_END
@@ -1610,7 +1571,8 @@ static MACHINE_CONFIG_DERIVED( triplep, scramble )
/* sound hardware */
MCFG_SOUND_MODIFY("8910.1")
MCFG_SOUND_CLOCK(18432000/12) // triple punch/knock out ay clock is 1.535MHz, derived from main cpu xtal; verified on hardware
- MCFG_SOUND_CONFIG(triplep_ay8910_interface)
+
+
MCFG_SOUND_ROUTES_RESET()
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
@@ -1719,7 +1681,8 @@ static MACHINE_CONFIG_DERIVED( harem, scramble )
/* sound hardware */
MCFG_SOUND_ADD("8910.3", AY8910, 14318000/8)
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.16)
- MCFG_SOUND_CONFIG(harem_ay8910_interface_3)
+ MCFG_AY8910_PORT_A_WRITE_CB(WRITE8(scramble_state, harem_portA_w)) // Port A write
+ MCFG_AY8910_PORT_B_WRITE_CB(WRITE8(scramble_state, harem_portB_w)) // Port B write
MACHINE_CONFIG_END
/***************************************************************************
diff --git a/src/mame/drivers/segahang.c b/src/mame/drivers/segahang.c
index 8fd5fe34975..5600f4b7350 100644
--- a/src/mame/drivers/segahang.c
+++ b/src/mame/drivers/segahang.c
@@ -738,18 +738,6 @@ static INPUT_PORTS_START( enduror )
INPUT_PORTS_END
-
-//**************************************************************************
-// SOUND CONFIGURATIONS
-//**************************************************************************
-
-static const ay8910_interface ay8910_config =
-{
- AY8910_LEGACY_OUTPUT,
- AY8910_DEFAULT_LOADS,
- DEVCB_NULL, DEVCB_NULL, DEVCB_NULL, DEVCB_NULL
-};
-
//**************************************************************************
// GRAPHICS DECODING
//**************************************************************************
@@ -842,7 +830,6 @@ static MACHINE_CONFIG_FRAGMENT( sound_board_2203 )
MCFG_SOUND_ADD("ymsnd", YM2203, MASTER_CLOCK_8MHz/2)
MCFG_YM2203_IRQ_HANDLER(WRITELINE(segahang_state, sound_irq))
- MCFG_YM2203_AY8910_INTF(&ay8910_config)
MCFG_SOUND_ROUTE(0, "lspeaker", 0.13)
MCFG_SOUND_ROUTE(0, "rspeaker", 0.13)
MCFG_SOUND_ROUTE(1, "lspeaker", 0.13)
@@ -871,7 +858,6 @@ static MACHINE_CONFIG_FRAGMENT( sound_board_2203x2 )
MCFG_SOUND_ADD("ym1", YM2203, MASTER_CLOCK_8MHz/2)
MCFG_YM2203_IRQ_HANDLER(WRITELINE(segahang_state, sound_irq))
- MCFG_YM2203_AY8910_INTF(&ay8910_config)
MCFG_SOUND_ROUTE(0, "lspeaker", 0.13)
MCFG_SOUND_ROUTE(0, "rspeaker", 0.13)
MCFG_SOUND_ROUTE(1, "lspeaker", 0.13)
diff --git a/src/mame/drivers/seicross.c b/src/mame/drivers/seicross.c
index 4295aeefe37..a3875a7f839 100644
--- a/src/mame/drivers/seicross.c
+++ b/src/mame/drivers/seicross.c
@@ -362,17 +362,6 @@ static GFXDECODE_START( seicross )
GFXDECODE_END
-
-static const ay8910_interface ay8910_config =
-{
- AY8910_LEGACY_OUTPUT,
- AY8910_DEFAULT_LOADS,
- DEVCB_NULL,
- DEVCB_DRIVER_MEMBER(seicross_state,friskyt_portB_r),
- DEVCB_NULL,
- DEVCB_DRIVER_MEMBER(seicross_state,friskyt_portB_w)
-};
-
INTERRUPT_GEN_MEMBER(seicross_state::vblank_irq)
{
if(m_irq_mask)
@@ -412,7 +401,8 @@ static MACHINE_CONFIG_START( no_nvram, seicross_state )
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_SOUND_ADD("aysnd", AY8910, 1536000)
- MCFG_SOUND_CONFIG(ay8910_config)
+ MCFG_AY8910_PORT_B_READ_CB(READ8(seicross_state, friskyt_portB_r))
+ MCFG_AY8910_PORT_B_WRITE_CB(WRITE8(seicross_state, friskyt_portB_w))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25)
MCFG_DAC_ADD("dac")
diff --git a/src/mame/drivers/seta.c b/src/mame/drivers/seta.c
index 789177a5bd0..acdf9845bb6 100644
--- a/src/mame/drivers/seta.c
+++ b/src/mame/drivers/seta.c
@@ -7534,17 +7534,6 @@ TIMER_DEVICE_CALLBACK_MEMBER(seta_state::seta_sub_interrupt)
Thundercade
***************************************************************************/
-static const ay8910_interface ay8910_config =
-{
- AY8910_LEGACY_OUTPUT,
- AY8910_DEFAULT_LOADS,
- DEVCB_DRIVER_MEMBER(seta_state,dsw1_r), /* input A: DSW 1 */
- DEVCB_DRIVER_MEMBER(seta_state,dsw2_r), /* input B: DSW 2 */
- DEVCB_NULL,
- DEVCB_NULL
-};
-
-
TIMER_DEVICE_CALLBACK_MEMBER(seta_state::tndrcade_sub_interrupt)
{
int scanline = param;
@@ -7589,7 +7578,8 @@ static MACHINE_CONFIG_START( tndrcade, seta_state )
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
MCFG_SOUND_ADD("ym1", YM2203, 16000000/4) /* 4 MHz */
- MCFG_YM2203_AY8910_INTF(&ay8910_config)
+ MCFG_AY8910_PORT_A_READ_CB(READ8(seta_state, dsw1_r)) /* input A: DSW 1 */
+ MCFG_AY8910_PORT_B_READ_CB(READ8(seta_state, dsw2_r)) /* input B: DSW 2 */
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 0.35)
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.35)
diff --git a/src/mame/drivers/sfkick.c b/src/mame/drivers/sfkick.c
index 972f8dc4e9e..08fbb430105 100644
--- a/src/mame/drivers/sfkick.c
+++ b/src/mame/drivers/sfkick.c
@@ -455,13 +455,6 @@ WRITE_LINE_MEMBER(sfkick_state::irqhandler)
m_soundcpu->set_input_line_and_vector(0, state ? ASSERT_LINE : CLEAR_LINE, 0xff);
}
-static const ay8910_interface ay8910_config =
-{
- AY8910_LEGACY_OUTPUT,
- AY8910_DEFAULT_LOADS,
- DEVCB_NULL,DEVCB_NULL,DEVCB_NULL,DEVCB_NULL,
-};
-
static MACHINE_CONFIG_START( sfkick, sfkick_state )
MCFG_CPU_ADD("maincpu",Z80,MASTER_CLOCK/6)
@@ -494,7 +487,6 @@ static MACHINE_CONFIG_START( sfkick, sfkick_state )
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_SOUND_ADD("ym1", YM2203, MASTER_CLOCK/6)
MCFG_YM2203_IRQ_HANDLER(WRITELINE(sfkick_state, irqhandler))
- MCFG_YM2203_AY8910_INTF(&ay8910_config)
MCFG_SOUND_ROUTE(0, "mono", 0.25)
MCFG_SOUND_ROUTE(1, "mono", 0.25)
MCFG_SOUND_ROUTE(2, "mono", 0.25)
diff --git a/src/mame/drivers/shangha3.c b/src/mame/drivers/shangha3.c
index 91ccd4d8328..4b67b014b20 100644
--- a/src/mame/drivers/shangha3.c
+++ b/src/mame/drivers/shangha3.c
@@ -451,17 +451,6 @@ static GFXDECODE_START( shangha3 )
GFXDECODE_END
-
-static const ay8910_interface ay8910_config =
-{
- AY8910_LEGACY_OUTPUT,
- AY8910_DEFAULT_LOADS,
- DEVCB_INPUT_PORT("DSW1"),
- DEVCB_INPUT_PORT("DSW2"),
- DEVCB_NULL,
- DEVCB_NULL
-};
-
WRITE_LINE_MEMBER(shangha3_state::irqhandler)
{
m_audiocpu->set_input_line(INPUT_LINE_NMI, state);
@@ -496,7 +485,8 @@ static MACHINE_CONFIG_START( shangha3, shangha3_state )
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_SOUND_ADD("aysnd", AY8910, XTAL_48MHz/32) // 1.5MHz
- MCFG_SOUND_CONFIG(ay8910_config)
+ MCFG_AY8910_PORT_A_READ_CB(IOPORT("DSW1"))
+ MCFG_AY8910_PORT_B_READ_CB(IOPORT("DSW2"))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.30)
MCFG_OKIM6295_ADD("oki", XTAL_1_056MHz, OKIM6295_PIN7_HIGH) // pin 7 not verified
diff --git a/src/mame/drivers/shanghai.c b/src/mame/drivers/shanghai.c
index 6bad3906ec6..d48b5223e16 100644
--- a/src/mame/drivers/shanghai.c
+++ b/src/mame/drivers/shanghai.c
@@ -415,26 +415,6 @@ static INPUT_PORTS_START( shangha2 )
INPUT_PORTS_END
-
-static const ay8910_interface ay8910_config =
-{
- AY8910_LEGACY_OUTPUT,
- AY8910_DEFAULT_LOADS,
- DEVCB_INPUT_PORT("DSW1"),
- DEVCB_INPUT_PORT("DSW2"),
- DEVCB_NULL,
- DEVCB_NULL
-};
-
-
-static const ay8910_interface kothello_ay8910_config =
-{
- AY8910_LEGACY_OUTPUT,
- AY8910_DEFAULT_LOADS,
- DEVCB_INPUT_PORT("DSW"),
- DEVCB_NULL, DEVCB_NULL, DEVCB_NULL
-};
-
static MACHINE_CONFIG_START( shanghai, shanghai_state )
/* basic machine hardware */
@@ -462,7 +442,8 @@ static MACHINE_CONFIG_START( shanghai, shanghai_state )
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_SOUND_ADD("ymsnd", YM2203, XTAL_16MHz/4)
- MCFG_YM2203_AY8910_INTF(&ay8910_config)
+ MCFG_AY8910_PORT_A_READ_CB(IOPORT("DSW1"))
+ MCFG_AY8910_PORT_B_READ_CB(IOPORT("DSW2"))
MCFG_SOUND_ROUTE(0, "mono", 0.15)
MCFG_SOUND_ROUTE(1, "mono", 0.15)
MCFG_SOUND_ROUTE(2, "mono", 0.15)
@@ -496,7 +477,8 @@ static MACHINE_CONFIG_START( shangha2, shanghai_state )
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_SOUND_ADD("ymsnd", YM2203, XTAL_16MHz/4)
- MCFG_YM2203_AY8910_INTF(&ay8910_config)
+ MCFG_AY8910_PORT_A_READ_CB(IOPORT("DSW1"))
+ MCFG_AY8910_PORT_B_READ_CB(IOPORT("DSW2"))
MCFG_SOUND_ROUTE(0, "mono", 0.15)
MCFG_SOUND_ROUTE(1, "mono", 0.15)
MCFG_SOUND_ROUTE(2, "mono", 0.15)
@@ -535,7 +517,7 @@ static MACHINE_CONFIG_START( kothello, shanghai_state )
/* same as standard seibu ym2203, but "ym1" also reads "DSW" */
MCFG_SOUND_ADD("ym1", YM2203, XTAL_16MHz/4)
MCFG_YM2203_IRQ_HANDLER(DEVWRITELINE("seibu_sound", seibu_sound_device, ym2203_irqhandler))
- MCFG_YM2203_AY8910_INTF(&kothello_ay8910_config)
+ MCFG_AY8910_PORT_A_READ_CB(IOPORT("DSW"))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.15)
MCFG_SOUND_ADD("ym2", YM2203, XTAL_16MHz/4)
diff --git a/src/mame/drivers/shangkid.c b/src/mame/drivers/shangkid.c
index dafaf7f9147..6f35463e666 100644
--- a/src/mame/drivers/shangkid.c
+++ b/src/mame/drivers/shangkid.c
@@ -336,28 +336,6 @@ ADDRESS_MAP_END
/***************************************************************************************/
-static const ay8910_interface chinhero_ay8910_interface =
-{
- AY8910_LEGACY_OUTPUT,
- AY8910_DEFAULT_LOADS,
- DEVCB_NULL,
- DEVCB_NULL,
- DEVCB_DRIVER_MEMBER(shangkid_state,chinhero_ay8910_porta_w),
- DEVCB_DRIVER_MEMBER(shangkid_state,ay8910_portb_w)
-};
-
-
-static const ay8910_interface shangkid_ay8910_interface =
-{
- AY8910_LEGACY_OUTPUT,
- AY8910_DEFAULT_LOADS,
- DEVCB_NULL,
- DEVCB_NULL,
- DEVCB_DRIVER_MEMBER(shangkid_state,shangkid_ay8910_porta_w),
- DEVCB_DRIVER_MEMBER(shangkid_state,ay8910_portb_w)
-};
-
-
static MACHINE_CONFIG_START( chinhero, shangkid_state )
/* basic machine hardware */
@@ -398,7 +376,8 @@ static MACHINE_CONFIG_START( chinhero, shangkid_state )
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50)
MCFG_SOUND_ADD("aysnd", AY8910, XTAL_18_432MHz/12) /* verified on pcb */
- MCFG_SOUND_CONFIG(chinhero_ay8910_interface)
+ MCFG_AY8910_PORT_A_WRITE_CB(WRITE8(shangkid_state, chinhero_ay8910_porta_w))
+ MCFG_AY8910_PORT_B_WRITE_CB(WRITE8(shangkid_state, ay8910_portb_w))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.10)
MACHINE_CONFIG_END
@@ -422,7 +401,8 @@ static MACHINE_CONFIG_DERIVED( shangkid, chinhero )
MCFG_GFXDECODE_MODIFY("gfxdecode", shangkid)
MCFG_SOUND_MODIFY("aysnd")
- MCFG_SOUND_CONFIG(shangkid_ay8910_interface)
+ MCFG_AY8910_PORT_A_WRITE_CB(WRITE8(shangkid_state, shangkid_ay8910_porta_w))
+ MCFG_AY8910_PORT_B_WRITE_CB(WRITE8(shangkid_state, ay8910_portb_w))
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/shootout.c b/src/mame/drivers/shootout.c
index 44aa4120be4..ad29e5ed565 100644
--- a/src/mame/drivers/shootout.c
+++ b/src/mame/drivers/shootout.c
@@ -239,23 +239,6 @@ WRITE_LINE_MEMBER(shootout_state::shootout_snd2_irq)
m_maincpu->set_input_line(0, state);
}
-static const ay8910_interface ay8910_config =
-{
- AY8910_LEGACY_OUTPUT,
- AY8910_DEFAULT_LOADS,
- DEVCB_NULL, DEVCB_NULL, DEVCB_NULL, DEVCB_NULL
-};
-
-static const ay8910_interface ay8910_config2 =
-{
- AY8910_LEGACY_OUTPUT,
- AY8910_DEFAULT_LOADS,
- DEVCB_NULL,
- DEVCB_NULL,
- DEVCB_DRIVER_MEMBER(shootout_state, shootout_bankswitch_w),
- DEVCB_DRIVER_MEMBER(shootout_state, shootout_flipscreen_w)
-};
-
static MACHINE_CONFIG_START( shootout, shootout_state )
/* basic machine hardware */
@@ -283,7 +266,6 @@ static MACHINE_CONFIG_START( shootout, shootout_state )
MCFG_SOUND_ADD("ymsnd", YM2203, 1500000)
MCFG_YM2203_IRQ_HANDLER(WRITELINE(shootout_state, shootout_snd_irq))
- MCFG_YM2203_AY8910_INTF(&ay8910_config)
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50)
MACHINE_CONFIG_END
@@ -312,7 +294,8 @@ static MACHINE_CONFIG_START( shootouj, shootout_state )
MCFG_SOUND_ADD("ymsnd", YM2203, 1500000)
MCFG_YM2203_IRQ_HANDLER(WRITELINE(shootout_state, shootout_snd2_irq))
- MCFG_YM2203_AY8910_INTF(&ay8910_config2)
+ MCFG_AY8910_PORT_A_WRITE_CB(WRITE8(shootout_state, shootout_bankswitch_w))
+ MCFG_AY8910_PORT_B_WRITE_CB(WRITE8(shootout_state, shootout_flipscreen_w))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50)
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/sidearms.c b/src/mame/drivers/sidearms.c
index a527178265c..95c433cec8e 100644
--- a/src/mame/drivers/sidearms.c
+++ b/src/mame/drivers/sidearms.c
@@ -594,13 +594,6 @@ WRITE_LINE_MEMBER( sidearms_state::irqhandler )
m_audiocpu->set_input_line(0, state ? ASSERT_LINE : CLEAR_LINE);
}
-static const ay8910_interface ay8910_config =
-{
- AY8910_LEGACY_OUTPUT,
- AY8910_DEFAULT_LOADS,
- DEVCB_NULL, DEVCB_NULL, DEVCB_NULL, DEVCB_NULL,
-};
-
static MACHINE_CONFIG_START( sidearms, sidearms_state )
/* basic machine hardware */
@@ -633,7 +626,6 @@ static MACHINE_CONFIG_START( sidearms, sidearms_state )
MCFG_SOUND_ADD("ym1", YM2203, 4000000)
MCFG_YM2203_IRQ_HANDLER(WRITELINE(sidearms_state, irqhandler))
- MCFG_YM2203_AY8910_INTF(&ay8910_config)
MCFG_SOUND_ROUTE(0, "mono", 0.15)
MCFG_SOUND_ROUTE(1, "mono", 0.15)
MCFG_SOUND_ROUTE(2, "mono", 0.15)
@@ -679,7 +671,6 @@ static MACHINE_CONFIG_START( turtship, sidearms_state )
MCFG_SOUND_ADD("ym1", YM2203, 4000000)
MCFG_YM2203_IRQ_HANDLER(WRITELINE(sidearms_state, irqhandler))
- MCFG_YM2203_AY8910_INTF(&ay8910_config)
MCFG_SOUND_ROUTE(0, "mono", 0.15)
MCFG_SOUND_ROUTE(1, "mono", 0.15)
MCFG_SOUND_ROUTE(2, "mono", 0.15)
diff --git a/src/mame/drivers/skylncr.c b/src/mame/drivers/skylncr.c
index 763619cbfca..b20b7dd3e39 100644
--- a/src/mame/drivers/skylncr.c
+++ b/src/mame/drivers/skylncr.c
@@ -902,21 +902,6 @@ static INPUT_PORTS_START( sstar97 )
INPUT_PORTS_END
-/**********************************
-* AY-3-8910 Interface *
-**********************************/
-
-static const ay8910_interface ay8910_config =
-{
- AY8910_LEGACY_OUTPUT,
- AY8910_DEFAULT_LOADS,
- DEVCB_INPUT_PORT("DSW3"),
- DEVCB_INPUT_PORT("DSW4"),
- DEVCB_NULL,
- DEVCB_NULL
-};
-
-
// It runs in IM 0, thus needs an opcode on the data bus
INTERRUPT_GEN_MEMBER(skylncr_state::skylncr_vblank_interrupt)
{
@@ -964,7 +949,8 @@ static MACHINE_CONFIG_START( skylncr, skylncr_state )
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_SOUND_ADD("aysnd", AY8910, MASTER_CLOCK/8)
- MCFG_SOUND_CONFIG(ay8910_config)
+ MCFG_AY8910_PORT_A_READ_CB(IOPORT("DSW3"))
+ MCFG_AY8910_PORT_B_READ_CB(IOPORT("DSW4"))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/slapfght.c b/src/mame/drivers/slapfght.c
index 7f10406a51c..9849c46822c 100644
--- a/src/mame/drivers/slapfght.c
+++ b/src/mame/drivers/slapfght.c
@@ -963,28 +963,6 @@ static GFXDECODE_START( slapfght )
GFXDECODE_ENTRY( "gfx3", 0, spritelayout, 0, 16 )
GFXDECODE_END
-/**************************************************************************/
-
-static const ay8910_interface ay8910_interface_1 =
-{
- AY8910_LEGACY_OUTPUT,
- AY8910_DEFAULT_LOADS,
- DEVCB_INPUT_PORT("IN0"),
- DEVCB_INPUT_PORT("IN1"),
- DEVCB_NULL,
- DEVCB_NULL
-};
-
-static const ay8910_interface ay8910_interface_2 =
-{
- AY8910_LEGACY_OUTPUT,
- AY8910_DEFAULT_LOADS,
- DEVCB_INPUT_PORT("DSW1"),
- DEVCB_INPUT_PORT("DSW2"),
- DEVCB_NULL,
- DEVCB_NULL
-};
-
/***************************************************************************
@@ -1027,11 +1005,13 @@ static MACHINE_CONFIG_START( perfrman, slapfght_state )
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_SOUND_ADD("ay1", AY8910, XTAL_16MHz/8)
- MCFG_SOUND_CONFIG(ay8910_interface_1)
+ MCFG_AY8910_PORT_A_READ_CB(IOPORT("IN0"))
+ MCFG_AY8910_PORT_B_READ_CB(IOPORT("IN1"))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25)
MCFG_SOUND_ADD("ay2", AY8910, XTAL_16MHz/8)
- MCFG_SOUND_CONFIG(ay8910_interface_2)
+ MCFG_AY8910_PORT_A_READ_CB(IOPORT("DSW1"))
+ MCFG_AY8910_PORT_B_READ_CB(IOPORT("DSW2"))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25)
MACHINE_CONFIG_END
@@ -1073,11 +1053,13 @@ static MACHINE_CONFIG_START( tigerh, slapfght_state )
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_SOUND_ADD("ay1", AY8910, XTAL_36MHz/24) // 1.5MHz
- MCFG_SOUND_CONFIG(ay8910_interface_1)
+ MCFG_AY8910_PORT_A_READ_CB(IOPORT("IN0"))
+ MCFG_AY8910_PORT_B_READ_CB(IOPORT("IN1"))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25)
MCFG_SOUND_ADD("ay2", AY8910, XTAL_36MHz/24) // 1.5MHz
- MCFG_SOUND_CONFIG(ay8910_interface_2)
+ MCFG_AY8910_PORT_A_READ_CB(IOPORT("DSW1"))
+ MCFG_AY8910_PORT_B_READ_CB(IOPORT("DSW2"))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25)
MACHINE_CONFIG_END
@@ -1136,11 +1118,13 @@ static MACHINE_CONFIG_START( slapfigh, slapfght_state )
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_SOUND_ADD("ay1", AY8910, XTAL_36MHz/24) // 1.5MHz
- MCFG_SOUND_CONFIG(ay8910_interface_1)
+ MCFG_AY8910_PORT_A_READ_CB(IOPORT("IN0"))
+ MCFG_AY8910_PORT_B_READ_CB(IOPORT("IN1"))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25)
MCFG_SOUND_ADD("ay2", AY8910, XTAL_36MHz/24) // 1.5MHz
- MCFG_SOUND_CONFIG(ay8910_interface_2)
+ MCFG_AY8910_PORT_A_READ_CB(IOPORT("DSW1"))
+ MCFG_AY8910_PORT_B_READ_CB(IOPORT("DSW2"))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25)
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/slapshot.c b/src/mame/drivers/slapshot.c
index 3173bee068f..240085621fd 100644
--- a/src/mame/drivers/slapshot.c
+++ b/src/mame/drivers/slapshot.c
@@ -525,6 +525,7 @@ static MACHINE_CONFIG_START( slapshot, slapshot_state )
MCFG_SOUND_ADD("ymsnd", YM2610B, 16000000/2)
MCFG_YM2610_IRQ_HANDLER(WRITELINE(slapshot_state, irqhandler))
+ MCFG_AY8910_OUTPUT_TYPE(AY8910_LEGACY_OUTPUT | AY8910_SINGLE_OUTPUT)
MCFG_SOUND_ROUTE(0, "lspeaker", 0.25)
MCFG_SOUND_ROUTE(0, "rspeaker", 0.25)
MCFG_SOUND_ROUTE(1, "lspeaker", 1.0)
@@ -586,6 +587,7 @@ static MACHINE_CONFIG_START( opwolf3, slapshot_state )
MCFG_SOUND_ADD("ymsnd", YM2610B, 16000000/2)
MCFG_YM2610_IRQ_HANDLER(WRITELINE(slapshot_state, irqhandler))
+ MCFG_AY8910_OUTPUT_TYPE(AY8910_LEGACY_OUTPUT | AY8910_SINGLE_OUTPUT)
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/slotcarn.c b/src/mame/drivers/slotcarn.c
index d55d2915ad5..854a5baaa91 100644
--- a/src/mame/drivers/slotcarn.c
+++ b/src/mame/drivers/slotcarn.c
@@ -529,22 +529,6 @@ void slotcarn_state::machine_start()
save_pointer(NAME(m_ram_palette), RAM_PALETTE_SIZE);
}
-
-/*************************************
-* AY8910 Interface *
-*************************************/
-
-static const ay8910_interface scarn_ay8910_config =
-{
- AY8910_LEGACY_OUTPUT,
- AY8910_DEFAULT_LOADS,
- DEVCB_NULL,
- DEVCB_INPUT_PORT("DSW2"),
- DEVCB_NULL,
- DEVCB_NULL
-};
-
-
/***********************************
* Machine Driver *
***********************************/
@@ -588,7 +572,7 @@ static MACHINE_CONFIG_START( slotcarn, slotcarn_state )
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_SOUND_ADD("aysnd",AY8910, SND_CLOCK)
- MCFG_SOUND_CONFIG(scarn_ay8910_config)
+ MCFG_AY8910_PORT_B_READ_CB(IOPORT("DSW2"))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50)
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/sothello.c b/src/mame/drivers/sothello.c
index 93fc6f31490..ddffd7fa874 100644
--- a/src/mame/drivers/sothello.c
+++ b/src/mame/drivers/sothello.c
@@ -344,16 +344,6 @@ void sothello_state::machine_reset()
{
}
-static const ay8910_interface ay8910_config =
-{
- AY8910_LEGACY_OUTPUT,
- AY8910_DEFAULT_LOADS,
- DEVCB_INPUT_PORT("DSWA"),
- DEVCB_INPUT_PORT("DSWB"),
- DEVCB_NULL,
- DEVCB_NULL,
-};
-
static MACHINE_CONFIG_START( sothello, sothello_state )
/* basic machine hardware */
@@ -387,7 +377,8 @@ static MACHINE_CONFIG_START( sothello, sothello_state )
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_SOUND_ADD("ymsnd", YM2203, YM_CLOCK)
MCFG_YM2203_IRQ_HANDLER(WRITELINE(sothello_state, irqhandler))
- MCFG_YM2203_AY8910_INTF(&ay8910_config)
+ MCFG_AY8910_PORT_A_READ_CB(IOPORT("DSWA"))
+ MCFG_AY8910_PORT_B_READ_CB(IOPORT("DSWB"))
MCFG_SOUND_ROUTE(0, "mono", 0.25)
MCFG_SOUND_ROUTE(1, "mono", 0.25)
MCFG_SOUND_ROUTE(2, "mono", 0.25)
diff --git a/src/mame/drivers/speedatk.c b/src/mame/drivers/speedatk.c
index 5a871816bd6..a342e3871f3 100644
--- a/src/mame/drivers/speedatk.c
+++ b/src/mame/drivers/speedatk.c
@@ -293,16 +293,6 @@ WRITE8_MEMBER(speedatk_state::speedatk_output_w)
logerror("%02x\n",data);
}
-static const ay8910_interface ay8910_config =
-{
- AY8910_LEGACY_OUTPUT,
- AY8910_DEFAULT_LOADS,
- DEVCB_NULL,
- DEVCB_INPUT_PORT("DSW"),
- DEVCB_DRIVER_MEMBER(speedatk_state,speedatk_output_w),
- DEVCB_NULL
-};
-
static MACHINE_CONFIG_START( speedatk, speedatk_state )
MCFG_CPU_ADD("maincpu", Z80,MASTER_CLOCK/2) //divider is unknown
@@ -334,7 +324,8 @@ static MACHINE_CONFIG_START( speedatk, speedatk_state )
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_SOUND_ADD("aysnd", AY8910, MASTER_CLOCK/4) //divider is unknown
- MCFG_SOUND_CONFIG(ay8910_config)
+ MCFG_AY8910_PORT_B_READ_CB(IOPORT("DSW"))
+ MCFG_AY8910_PORT_A_WRITE_CB(WRITE8(speedatk_state, speedatk_output_w))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.5)
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/splash.c b/src/mame/drivers/splash.c
index 150de6ef881..82d8fd328f9 100644
--- a/src/mame/drivers/splash.c
+++ b/src/mame/drivers/splash.c
@@ -518,14 +518,6 @@ static MACHINE_CONFIG_START( splash, splash_state )
MACHINE_CONFIG_END
-static const ay8910_interface ay8910_config =
-{
- AY8910_LEGACY_OUTPUT,
- AY8910_DEFAULT_LOADS,
- DEVCB_NULL, DEVCB_NULL,
- DEVCB_NULL, DEVCB_NULL
-};
-
INTERRUPT_GEN_MEMBER(splash_state::roldfrog_interrupt)
{
m_vblank_irq = 1;
@@ -565,7 +557,6 @@ static MACHINE_CONFIG_START( roldfrog, splash_state )
MCFG_SOUND_ADD("ymsnd", YM2203, XTAL_24MHz / 8)
MCFG_YM2203_IRQ_HANDLER(WRITELINE(splash_state, ym_irq))
- MCFG_YM2203_AY8910_INTF(&ay8910_config)
MCFG_SOUND_ROUTE(0, "mono", 0.20)
MCFG_SOUND_ROUTE(1, "mono", 0.20)
MCFG_SOUND_ROUTE(2, "mono", 0.20)
diff --git a/src/mame/drivers/srmp2.c b/src/mame/drivers/srmp2.c
index 9bd8509f39c..8a2670f699d 100644
--- a/src/mame/drivers/srmp2.c
+++ b/src/mame/drivers/srmp2.c
@@ -1112,17 +1112,6 @@ INPUT_PORTS_END
***************************************************************************/
-static const ay8910_interface srmp2_ay8910_interface =
-{
- AY8910_LEGACY_OUTPUT,
- AY8910_DEFAULT_LOADS,
- DEVCB_INPUT_PORT("DSW2"),
- DEVCB_INPUT_PORT("DSW1"),
- DEVCB_NULL,
- DEVCB_NULL
-};
-
-
static const gfx_layout charlayout =
{
16, 16,
@@ -1183,7 +1172,8 @@ static MACHINE_CONFIG_START( srmp2, srmp2_state )
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_SOUND_ADD("aysnd", AY8910, 20000000/16)
- MCFG_SOUND_CONFIG(srmp2_ay8910_interface)
+ MCFG_AY8910_PORT_A_READ_CB(IOPORT("DSW2"))
+ MCFG_AY8910_PORT_B_READ_CB(IOPORT("DSW1"))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.40)
MCFG_SOUND_ADD("msm", MSM5205, 384000)
@@ -1229,7 +1219,8 @@ static MACHINE_CONFIG_START( srmp3, srmp2_state )
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_SOUND_ADD("aysnd", AY8910, 16000000/16)
- MCFG_SOUND_CONFIG(srmp2_ay8910_interface)
+ MCFG_AY8910_PORT_A_READ_CB(IOPORT("DSW2"))
+ MCFG_AY8910_PORT_B_READ_CB(IOPORT("DSW1"))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.20)
MCFG_SOUND_ADD("msm", MSM5205, 384000)
@@ -1282,7 +1273,8 @@ static MACHINE_CONFIG_START( mjyuugi, srmp2_state )
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_SOUND_ADD("aysnd", AY8910, 16000000/16)
- MCFG_SOUND_CONFIG(srmp2_ay8910_interface)
+ MCFG_AY8910_PORT_A_READ_CB(IOPORT("DSW2"))
+ MCFG_AY8910_PORT_B_READ_CB(IOPORT("DSW1"))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.20)
MCFG_SOUND_ADD("msm", MSM5205, 384000)
diff --git a/src/mame/drivers/sshangha.c b/src/mame/drivers/sshangha.c
index 1a86ff428a2..e1549e2dcb1 100644
--- a/src/mame/drivers/sshangha.c
+++ b/src/mame/drivers/sshangha.c
@@ -372,13 +372,6 @@ WRITE_LINE_MEMBER(sshangha_state::irqhandler)
m_audiocpu->set_input_line(0, state);
}
-static const ay8910_interface ay8910_config =
-{
- AY8910_LEGACY_OUTPUT,
- AY8910_DEFAULT_LOADS,
- DEVCB_NULL, DEVCB_NULL, DEVCB_NULL, DEVCB_NULL
-};
-
DECO16IC_BANK_CB_MEMBER(sshangha_state::bank_callback)
{
return (bank >> 4) * 0x1000;
@@ -440,7 +433,6 @@ static MACHINE_CONFIG_START( sshangha, sshangha_state )
MCFG_SOUND_ADD("ymsnd", YM2203, 16000000/4)
MCFG_YM2203_IRQ_HANDLER(WRITELINE(sshangha_state, irqhandler))
- MCFG_YM2203_AY8910_INTF(&ay8910_config)
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 0.33)
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.33)
diff --git a/src/mame/drivers/ssrj.c b/src/mame/drivers/ssrj.c
index d47872ce85b..24c4a937063 100644
--- a/src/mame/drivers/ssrj.c
+++ b/src/mame/drivers/ssrj.c
@@ -128,17 +128,6 @@ static GFXDECODE_START( ssrj )
GFXDECODE_ENTRY( "gfx1", 0, charlayout, 0, 0x10 )
GFXDECODE_END
-static const ay8910_interface ay8910_config =
-{
- AY8910_LEGACY_OUTPUT,
- AY8910_DEFAULT_LOADS,
- DEVCB_NULL, /* not used ? */
- DEVCB_INPUT_PORT("IN3"),
- DEVCB_NULL,
- DEVCB_NULL
-};
-
-
static MACHINE_CONFIG_START( ssrj, ssrj_state )
/* basic machine hardware */
@@ -165,7 +154,7 @@ static MACHINE_CONFIG_START( ssrj, ssrj_state )
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_SOUND_ADD("aysnd", AY8910, 8000000/5)
- MCFG_SOUND_CONFIG(ay8910_config)
+ MCFG_AY8910_PORT_B_READ_CB(IOPORT("IN3"))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.30)
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/stuntair.c b/src/mame/drivers/stuntair.c
index eecf8d3157a..5b59f3594e4 100644
--- a/src/mame/drivers/stuntair.c
+++ b/src/mame/drivers/stuntair.c
@@ -471,28 +471,6 @@ WRITE8_MEMBER(stuntair_state::ay8910_portb_w)
logerror("ay8910_portb_w: %02x\n", data);
}
-static const ay8910_interface ay8910_config =
-{
- AY8910_LEGACY_OUTPUT,
- AY8910_DEFAULT_LOADS,
- DEVCB_DRIVER_MEMBER(driver_device, soundlatch_byte_r),
- DEVCB_NULL,
- DEVCB_NULL,
- DEVCB_DRIVER_MEMBER(stuntair_state, ay8910_portb_w)
-};
-
-static const ay8910_interface ay8910_2_config =
-{
- AY8910_LEGACY_OUTPUT,
- AY8910_DEFAULT_LOADS,
- DEVCB_NULL,
- DEVCB_NULL,
- DEVCB_NULL,
- DEVCB_NULL
-};
-
-
-
/***************************************************************************
Machine Config
@@ -552,11 +530,11 @@ static MACHINE_CONFIG_START( stuntair, stuntair_state )
MCFG_SPEAKER_STANDARD_MONO("mono") // stereo?
MCFG_SOUND_ADD("ay1", AY8910, XTAL_18_432MHz/12)
- MCFG_SOUND_CONFIG(ay8910_config)
+ MCFG_AY8910_PORT_A_READ_CB(READ8(driver_device, soundlatch_byte_r))
+ MCFG_AY8910_PORT_B_WRITE_CB(WRITE8(stuntair_state, ay8910_portb_w))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50)
MCFG_SOUND_ADD("ay2", AY8910, XTAL_18_432MHz/12)
- MCFG_SOUND_CONFIG(ay8910_2_config)
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50)
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/suna16.c b/src/mame/drivers/suna16.c
index 6705386b3b7..791ee872c6b 100644
--- a/src/mame/drivers/suna16.c
+++ b/src/mame/drivers/suna16.c
@@ -956,14 +956,6 @@ WRITE8_MEMBER(suna16_state::bestbest_ay8910_port_a_w)
// ?
}
-static const ay8910_interface bestbest_ay8910_interface =
-{
- AY8910_LEGACY_OUTPUT,
- AY8910_DEFAULT_LOADS,
- DEVCB_NULL, DEVCB_NULL,
- DEVCB_DRIVER_MEMBER(suna16_state,bestbest_ay8910_port_a_w), DEVCB_NULL
-};
-
static MACHINE_CONFIG_START( bestbest, suna16_state )
/* basic machine hardware */
@@ -999,7 +991,7 @@ static MACHINE_CONFIG_START( bestbest, suna16_state )
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
MCFG_SOUND_ADD("aysnd", AY8910, XTAL_24MHz/16) /* 1.5MHz */
- MCFG_SOUND_CONFIG(bestbest_ay8910_interface)
+ MCFG_AY8910_PORT_A_WRITE_CB(WRITE8(suna16_state, bestbest_ay8910_port_a_w))
MCFG_SOUND_ROUTE(0, "lspeaker", 1.0)
MCFG_SOUND_ROUTE(1, "rspeaker", 1.0)
diff --git a/src/mame/drivers/suna8.c b/src/mame/drivers/suna8.c
index c947ee34d1b..8a99225ebff 100644
--- a/src/mame/drivers/suna8.c
+++ b/src/mame/drivers/suna8.c
@@ -1802,16 +1802,6 @@ WRITE_LINE_MEMBER(suna8_state::soundirq)
/* 1 x 24 MHz crystal */
-static const ay8910_interface hardhead_ay8910_interface =
-{
- AY8910_LEGACY_OUTPUT,
- AY8910_DEFAULT_LOADS,
- DEVCB_NULL,
- DEVCB_NULL,
- DEVCB_DRIVER_MEMBER(suna8_state, suna8_play_samples_w),
- DEVCB_DRIVER_MEMBER(suna8_state, suna8_samples_number_w)
-};
-
static const samples_interface suna8_samples_interface =
{
1,
@@ -1856,7 +1846,8 @@ static MACHINE_CONFIG_START( hardhead, suna8_state )
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 1.0)
MCFG_SOUND_ADD("aysnd", AY8910, SUNA8_MASTER_CLOCK / 16) /* verified on pcb */
- MCFG_SOUND_CONFIG(hardhead_ay8910_interface)
+ MCFG_AY8910_PORT_A_WRITE_CB(WRITE8(suna8_state, suna8_play_samples_w))
+ MCFG_AY8910_PORT_B_WRITE_CB(WRITE8(suna8_state, suna8_samples_number_w))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 0.30)
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.30)
@@ -1873,16 +1864,6 @@ MACHINE_CONFIG_END
/* 1 x 24 MHz crystal */
-static const ay8910_interface ay8910_config =
-{
- AY8910_LEGACY_OUTPUT,
- AY8910_DEFAULT_LOADS,
- DEVCB_NULL,
- DEVCB_NULL,
- DEVCB_DRIVER_MEMBER(suna8_state, rranger_play_samples_w),
- DEVCB_DRIVER_MEMBER(suna8_state, suna8_samples_number_w),
-};
-
/* 2203 + 8910 */
static MACHINE_CONFIG_START( rranger, suna8_state )
@@ -1916,7 +1897,8 @@ static MACHINE_CONFIG_START( rranger, suna8_state )
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
MCFG_SOUND_ADD("ym1", YM2203, SUNA8_MASTER_CLOCK / 6)
- MCFG_YM2203_AY8910_INTF(&ay8910_config)
+ MCFG_AY8910_PORT_A_WRITE_CB(WRITE8(suna8_state, rranger_play_samples_w))
+ MCFG_AY8910_PORT_B_WRITE_CB(WRITE8(suna8_state, suna8_samples_number_w))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 0.90)
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.90)
@@ -2042,16 +2024,6 @@ MACHINE_CONFIG_END
Star Fighter
***************************************************************************/
-static const ay8910_interface starfigh_ay8910_interface =
-{
- AY8910_LEGACY_OUTPUT,
- AY8910_DEFAULT_LOADS,
- DEVCB_NULL,
- DEVCB_NULL,
- DEVCB_DRIVER_MEMBER(suna8_state, suna8_play_samples_w),
- DEVCB_DRIVER_MEMBER(suna8_state, suna8_samples_number_w)
-};
-
static MACHINE_CONFIG_START( starfigh, suna8_state )
/* basic machine hardware */
@@ -2089,7 +2061,8 @@ static MACHINE_CONFIG_START( starfigh, suna8_state )
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 1.0)
MCFG_SOUND_ADD("aysnd", AY8910, SUNA8_MASTER_CLOCK / 16)
- MCFG_SOUND_CONFIG(starfigh_ay8910_interface)
+ MCFG_AY8910_PORT_A_WRITE_CB(WRITE8(suna8_state, suna8_play_samples_w))
+ MCFG_AY8910_PORT_B_WRITE_CB(WRITE8(suna8_state, suna8_samples_number_w))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 0.50)
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.50)
@@ -2139,7 +2112,8 @@ static MACHINE_CONFIG_START( sparkman, suna8_state )
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 1.0)
MCFG_SOUND_ADD("aysnd", AY8910, SUNA8_MASTER_CLOCK / 16)
- MCFG_SOUND_CONFIG(hardhead_ay8910_interface)
+ MCFG_AY8910_PORT_A_WRITE_CB(WRITE8(suna8_state, suna8_play_samples_w))
+ MCFG_AY8910_PORT_B_WRITE_CB(WRITE8(suna8_state, suna8_samples_number_w))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 0.30)
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 0.30)
diff --git a/src/mame/drivers/supdrapo.c b/src/mame/drivers/supdrapo.c
index a139f2045a3..2166afa9c9d 100644
--- a/src/mame/drivers/supdrapo.c
+++ b/src/mame/drivers/supdrapo.c
@@ -434,17 +434,6 @@ WRITE8_MEMBER(supdrapo_state::ay8910_outputb_w)
}
-static const ay8910_interface ay8910_config =
-{
- AY8910_LEGACY_OUTPUT,
- AY8910_DEFAULT_LOADS,
- DEVCB_NULL,
- DEVCB_NULL,
- DEVCB_DRIVER_MEMBER(supdrapo_state,ay8910_outputa_w),
- DEVCB_DRIVER_MEMBER(supdrapo_state,ay8910_outputb_w)
-};
-
-
/*********************************************************************
Machine Driver
**********************************************************************/
@@ -474,7 +463,8 @@ static MACHINE_CONFIG_START( supdrapo, supdrapo_state )
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_SOUND_ADD("aysnd", AY8910, SND_CLOCK) /* guess */
- MCFG_SOUND_CONFIG(ay8910_config)
+ MCFG_AY8910_PORT_A_WRITE_CB(WRITE8(supdrapo_state, ay8910_outputa_w))
+ MCFG_AY8910_PORT_B_WRITE_CB(WRITE8(supdrapo_state, ay8910_outputb_w))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50)
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/superqix.c b/src/mame/drivers/superqix.c
index dc67c53cb07..34219bfc746 100644
--- a/src/mame/drivers/superqix.c
+++ b/src/mame/drivers/superqix.c
@@ -915,66 +915,6 @@ static const samples_interface pbillian_samples_interface =
pbillian_sh_start
};
-static const ay8910_interface pbillian_ay8910_interface =
-{
- AY8910_LEGACY_OUTPUT,
- AY8910_DEFAULT_LOADS,
- DEVCB_DRIVER_MEMBER(superqix_state,pbillian_ay_port_a_r), /* port Aread */
- DEVCB_INPUT_PORT("SYSTEM"),
- DEVCB_NULL,
- DEVCB_NULL
-};
-
-static const ay8910_interface hotsmash_ay8910_interface =
-{
- AY8910_LEGACY_OUTPUT,
- AY8910_DEFAULT_LOADS,
- DEVCB_DRIVER_MEMBER(superqix_state,hotsmash_ay_port_a_r), /* port Aread */
- DEVCB_INPUT_PORT("SYSTEM"),
- DEVCB_NULL,
- DEVCB_NULL
-};
-
-static const ay8910_interface sqix_ay8910_interface_1 =
-{
- AY8910_LEGACY_OUTPUT,
- AY8910_DEFAULT_LOADS,
- DEVCB_INPUT_PORT("P1"),
- DEVCB_DRIVER_MEMBER(superqix_state,in4_mcu_r), /* port Bread */
- DEVCB_NULL,
- DEVCB_NULL
-};
-
-static const ay8910_interface sqix_ay8910_interface_2 =
-{
- AY8910_LEGACY_OUTPUT,
- AY8910_DEFAULT_LOADS,
- DEVCB_INPUT_PORT("DSW2"),
- DEVCB_DRIVER_MEMBER(superqix_state,sqix_from_mcu_r), /* port Bread */
- DEVCB_NULL, /* port Awrite */
- DEVCB_DRIVER_MEMBER(superqix_state,sqix_z80_mcu_w) /* port Bwrite */
-};
-
-static const ay8910_interface bootleg_ay8910_interface_1 =
-{
- AY8910_LEGACY_OUTPUT,
- AY8910_DEFAULT_LOADS,
- DEVCB_INPUT_PORT("P1"),
- DEVCB_INPUT_PORT("P2"),
- DEVCB_NULL,
- DEVCB_NULL
-};
-
-static const ay8910_interface bootleg_ay8910_interface_2 =
-{
- AY8910_LEGACY_OUTPUT,
- AY8910_DEFAULT_LOADS,
- DEVCB_INPUT_PORT("DSW2"),
- DEVCB_DRIVER_MEMBER(superqix_state,bootleg_in0_r), /* port Bread */
- DEVCB_NULL,
- DEVCB_NULL
-};
-
INTERRUPT_GEN_MEMBER(superqix_state::vblank_irq)
{
if(m_nmi_mask)
@@ -1015,7 +955,8 @@ static MACHINE_CONFIG_START( pbillian, superqix_state )
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_SOUND_ADD("aysnd", AY8910, 12000000/8)
- MCFG_SOUND_CONFIG(pbillian_ay8910_interface)
+ MCFG_AY8910_PORT_A_READ_CB(READ8(superqix_state, pbillian_ay_port_a_r)) /* port Aread */
+ MCFG_AY8910_PORT_B_READ_CB(IOPORT("SYSTEM"))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.30)
MCFG_SAMPLES_ADD("samples", pbillian_samples_interface)
@@ -1051,7 +992,8 @@ static MACHINE_CONFIG_START( hotsmash, superqix_state )
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_SOUND_ADD("aysnd", AY8910, 12000000/8)
- MCFG_SOUND_CONFIG(hotsmash_ay8910_interface)
+ MCFG_AY8910_PORT_A_READ_CB(READ8(superqix_state, hotsmash_ay_port_a_r)) /* port Aread */
+ MCFG_AY8910_PORT_B_READ_CB(IOPORT("SYSTEM"))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.30)
MCFG_SAMPLES_ADD("samples", pbillian_samples_interface)
@@ -1092,11 +1034,14 @@ static MACHINE_CONFIG_START( sqix, superqix_state )
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_SOUND_ADD("ay1", AY8910, 12000000/8)
- MCFG_SOUND_CONFIG(sqix_ay8910_interface_1)
+ MCFG_AY8910_PORT_A_READ_CB(IOPORT("P1"))
+ MCFG_AY8910_PORT_B_READ_CB(READ8(superqix_state, in4_mcu_r)) /* port Bread */
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25)
MCFG_SOUND_ADD("ay2", AY8910, 12000000/8)
- MCFG_SOUND_CONFIG(sqix_ay8910_interface_2)
+ MCFG_AY8910_PORT_A_READ_CB(IOPORT("DSW2"))
+ MCFG_AY8910_PORT_B_READ_CB(READ8(superqix_state, sqix_from_mcu_r)) /* port Bread */
+ MCFG_AY8910_PORT_B_WRITE_CB(WRITE8(superqix_state,sqix_z80_mcu_w)) /* port Bwrite */
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25)
MACHINE_CONFIG_END
@@ -1137,11 +1082,13 @@ static MACHINE_CONFIG_START( sqixbl, superqix_state )
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_SOUND_ADD("ay1", AY8910, 12000000/8)
- MCFG_SOUND_CONFIG(bootleg_ay8910_interface_1)
+ MCFG_AY8910_PORT_A_READ_CB(IOPORT("P1"))
+ MCFG_AY8910_PORT_B_READ_CB(IOPORT("P2"))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25)
MCFG_SOUND_ADD("ay2", AY8910, 12000000/8)
- MCFG_SOUND_CONFIG(bootleg_ay8910_interface_2)
+ MCFG_AY8910_PORT_A_READ_CB(IOPORT("DSW2"))
+ MCFG_AY8910_PORT_B_READ_CB(READ8(superqix_state, bootleg_in0_r)) /* port Bread */
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25)
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/superwng.c b/src/mame/drivers/superwng.c
index 89f898aab79..74bf70fda34 100644
--- a/src/mame/drivers/superwng.c
+++ b/src/mame/drivers/superwng.c
@@ -441,26 +441,6 @@ void superwng_state::machine_reset()
m_nmi_enable = 0;
}
-static const ay8910_interface ay8910_config_1 =
-{
- AY8910_LEGACY_OUTPUT,
- AY8910_DEFAULT_LOADS,
- DEVCB_DRIVER_MEMBER(superwng_state,superwng_sound_byte_r),
- DEVCB_NULL,
- DEVCB_NULL,
- DEVCB_NULL
-};
-
-static const ay8910_interface ay8910_config_2 =
-{
- AY8910_LEGACY_OUTPUT,
- AY8910_DEFAULT_LOADS,
- DEVCB_NULL,
- DEVCB_NULL,
- DEVCB_NULL,
- DEVCB_NULL
-};
-
static MACHINE_CONFIG_START( superwng, superwng_state )
/* basic machine hardware */
@@ -490,11 +470,10 @@ static MACHINE_CONFIG_START( superwng, superwng_state )
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_SOUND_ADD("ay1", AY8910, MASTER_CLOCK/12)
- MCFG_SOUND_CONFIG(ay8910_config_1)
+ MCFG_AY8910_PORT_A_READ_CB(READ8(superwng_state, superwng_sound_byte_r))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50)
MCFG_SOUND_ADD("ay2", AY8910, MASTER_CLOCK/12)
- MCFG_SOUND_CONFIG(ay8910_config_2)
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50)
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/suprgolf.c b/src/mame/drivers/suprgolf.c
index e2f2d1b8310..d8542d39c38 100644
--- a/src/mame/drivers/suprgolf.c
+++ b/src/mame/drivers/suprgolf.c
@@ -429,16 +429,6 @@ WRITE_LINE_MEMBER(suprgolf_state::irqhandler)
//m_maincpu->set_input_line(INPUT_LINE_NMI, state ? ASSERT_LINE : CLEAR_LINE);
}
-static const ay8910_interface ay8910_config =
-{
- AY8910_LEGACY_OUTPUT,
- AY8910_DEFAULT_LOADS,
- DEVCB_INPUT_PORT("DSW0"),
- DEVCB_INPUT_PORT("DSW1"),
- DEVCB_DRIVER_MEMBER(suprgolf_state,suprgolf_writeA),
- DEVCB_DRIVER_MEMBER(suprgolf_state,suprgolf_writeB),
-};
-
WRITE_LINE_MEMBER(suprgolf_state::adpcm_int)
{
m_msm->reset_w(0);
@@ -513,7 +503,10 @@ static MACHINE_CONFIG_START( suprgolf, suprgolf_state )
MCFG_SOUND_ADD("ymsnd", YM2203, MASTER_CLOCK/4) /* guess */
MCFG_YM2203_IRQ_HANDLER(WRITELINE(suprgolf_state, irqhandler))
- MCFG_YM2203_AY8910_INTF(&ay8910_config)
+ MCFG_AY8910_PORT_A_READ_CB(IOPORT("DSW0"))
+ MCFG_AY8910_PORT_B_READ_CB(IOPORT("DSW1"))
+ MCFG_AY8910_PORT_A_WRITE_CB(WRITE8(suprgolf_state, suprgolf_writeA))
+ MCFG_AY8910_PORT_B_WRITE_CB(WRITE8(suprgolf_state, suprgolf_writeB))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.5)
MCFG_SOUND_ADD("msm", MSM5205, XTAL_384kHz) /* guess */
diff --git a/src/mame/drivers/suprridr.c b/src/mame/drivers/suprridr.c
index ddc792bd077..284d66c2970 100644
--- a/src/mame/drivers/suprridr.c
+++ b/src/mame/drivers/suprridr.c
@@ -329,25 +329,6 @@ static GFXDECODE_START( suprridr )
GFXDECODE_END
-
-/*************************************
- *
- * Sound interfaces
- *
- *************************************/
-
-static const ay8910_interface ay8910_config =
-{
- AY8910_LEGACY_OUTPUT,
- AY8910_DEFAULT_LOADS,
- DEVCB_DRIVER_MEMBER(suprridr_state,sound_data_r),
- DEVCB_NULL,
- DEVCB_NULL,
- DEVCB_NULL
-};
-
-
-
/*************************************
*
* Machine driver
@@ -386,7 +367,7 @@ static MACHINE_CONFIG_START( suprridr, suprridr_state )
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25)
MCFG_SOUND_ADD("ay2", AY8910, XTAL_49_152MHz/32)
- MCFG_SOUND_CONFIG(ay8910_config)
+ MCFG_AY8910_PORT_A_READ_CB(READ8(suprridr_state, sound_data_r))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25)
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/suprslam.c b/src/mame/drivers/suprslam.c
index ad8e9968a9a..7c568b17a3b 100644
--- a/src/mame/drivers/suprslam.c
+++ b/src/mame/drivers/suprslam.c
@@ -336,6 +336,7 @@ static MACHINE_CONFIG_START( suprslam, suprslam_state )
MCFG_SOUND_ADD("ymsnd", YM2610, 8000000)
MCFG_YM2610_IRQ_HANDLER(WRITELINE(suprslam_state, irqhandler))
+ MCFG_AY8910_OUTPUT_TYPE(AY8910_LEGACY_OUTPUT | AY8910_SINGLE_OUTPUT)
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/tail2nos.c b/src/mame/drivers/tail2nos.c
index 938a670dedf..d55d0b67080 100644
--- a/src/mame/drivers/tail2nos.c
+++ b/src/mame/drivers/tail2nos.c
@@ -180,17 +180,6 @@ WRITE_LINE_MEMBER(tail2nos_state::irqhandler)
m_audiocpu->set_input_line(0, state ? ASSERT_LINE : CLEAR_LINE);
}
-static const ay8910_interface ay8910_config =
-{
- AY8910_LEGACY_OUTPUT | AY8910_SINGLE_OUTPUT,
- AY8910_DEFAULT_LOADS,
- DEVCB_NULL,
- DEVCB_NULL,
- DEVCB_NULL,
- DEVCB_DRIVER_MEMBER(tail2nos_state,sound_bankswitch_w)
-};
-
-
static const k051316_interface tail2nos_k051316_intf =
{
"gfx3", 2,
@@ -257,7 +246,8 @@ static MACHINE_CONFIG_START( tail2nos, tail2nos_state )
MCFG_SOUND_ADD("ymsnd", YM2608, XTAL_8MHz) /* verified on pcb */
MCFG_YM2608_IRQ_HANDLER(WRITELINE(tail2nos_state, irqhandler))
- MCFG_YM2608_AY8910_INTF(&ay8910_config)
+ MCFG_AY8910_OUTPUT_TYPE(AY8910_LEGACY_OUTPUT | AY8910_SINGLE_OUTPUT)
+ MCFG_AY8910_PORT_B_WRITE_CB(WRITE8(tail2nos_state, sound_bankswitch_w))
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 55a5c09a537..c563ad96038 100644
--- a/src/mame/drivers/taito_b.c
+++ b/src/mame/drivers/taito_b.c
@@ -1872,16 +1872,6 @@ WRITE_LINE_MEMBER(taitob_state::irqhandler)
m_audiocpu->set_input_line(0, state ? ASSERT_LINE : CLEAR_LINE);
}
-static const ay8910_interface ay8910_config =
-{
- AY8910_LEGACY_OUTPUT,
- AY8910_DEFAULT_LOADS,
- DEVCB_NULL,
- DEVCB_NULL,
- DEVCB_DRIVER_MEMBER(taitob_state, bankswitch_w),
- DEVCB_NULL,
-};
-
/*
Games that use the mb87078 are: pbobble, spacedx and qzshowby
schems are not available, but from the writes I guess that
@@ -1968,6 +1958,7 @@ static MACHINE_CONFIG_START( rastsag2, taitob_state )
MCFG_SOUND_ADD("ymsnd", YM2610, XTAL_16MHz/2) /* 8 MHz */
MCFG_YM2610_IRQ_HANDLER(WRITELINE(taitob_state, irqhandler))
+ MCFG_AY8910_OUTPUT_TYPE(AY8910_LEGACY_OUTPUT | AY8910_SINGLE_OUTPUT)
MCFG_SOUND_ROUTE(0, "mono", 0.25)
MCFG_SOUND_ROUTE(1, "mono", 1.0)
MCFG_SOUND_ROUTE(2, "mono", 1.0)
@@ -2024,7 +2015,7 @@ static MACHINE_CONFIG_START( masterw, taitob_state )
MCFG_SOUND_ADD("ymsnd", YM2203, XTAL_24MHz/8) /* 3 MHz */
MCFG_YM2203_IRQ_HANDLER(WRITELINE(taitob_state, irqhandler))
- MCFG_YM2203_AY8910_INTF(&ay8910_config)
+ MCFG_AY8910_PORT_A_WRITE_CB(WRITE8(taitob_state, bankswitch_w))
MCFG_SOUND_ROUTE(0, "mono", 0.25)
MCFG_SOUND_ROUTE(1, "mono", 0.25)
MCFG_SOUND_ROUTE(2, "mono", 0.25)
@@ -2099,6 +2090,7 @@ static MACHINE_CONFIG_START( ashura, taitob_state )
MCFG_SOUND_ADD("ymsnd", YM2610, XTAL_16MHz/2) /* 8 MHz */
MCFG_YM2610_IRQ_HANDLER(WRITELINE(taitob_state, irqhandler))
+ MCFG_AY8910_OUTPUT_TYPE(AY8910_LEGACY_OUTPUT | AY8910_SINGLE_OUTPUT)
MCFG_SOUND_ROUTE(0, "mono", 0.25)
MCFG_SOUND_ROUTE(1, "mono", 1.0)
MCFG_SOUND_ROUTE(2, "mono", 1.0)
@@ -2155,6 +2147,7 @@ static MACHINE_CONFIG_START( crimec, taitob_state )
MCFG_SOUND_ADD("ymsnd", YM2610, XTAL_16MHz/2) /* 8 MHz */
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)
@@ -2212,7 +2205,7 @@ static MACHINE_CONFIG_START( hitice, taitob_state )
MCFG_SOUND_ADD("ymsnd", YM2203, XTAL_24MHz/8) /* 3 MHz */
MCFG_YM2203_IRQ_HANDLER(WRITELINE(taitob_state, irqhandler))
- MCFG_YM2203_AY8910_INTF(&ay8910_config)
+ MCFG_AY8910_PORT_A_WRITE_CB(WRITE8(taitob_state, bankswitch_w))
MCFG_SOUND_ROUTE(0, "mono", 0.25)
MCFG_SOUND_ROUTE(1, "mono", 0.25)
MCFG_SOUND_ROUTE(2, "mono", 0.25)
@@ -2273,6 +2266,7 @@ static MACHINE_CONFIG_START( rambo3p, taitob_state )
MCFG_SOUND_ADD("ymsnd", YM2610, XTAL_16MHz/2) /* verified on pcb */
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)
@@ -2329,6 +2323,7 @@ static MACHINE_CONFIG_START( rambo3, taitob_state )
MCFG_SOUND_ADD("ymsnd", YM2610, XTAL_16MHz/2) /* 8 MHz verified on pcb */
MCFG_YM2610_IRQ_HANDLER(WRITELINE(taitob_state, irqhandler))
+ MCFG_AY8910_OUTPUT_TYPE(AY8910_LEGACY_OUTPUT | AY8910_SINGLE_OUTPUT)
MCFG_SOUND_ROUTE(0, "mono", 0.25)
MCFG_SOUND_ROUTE(1, "mono", 1.0)
MCFG_SOUND_ROUTE(2, "mono", 1.0)
@@ -2391,6 +2386,7 @@ static MACHINE_CONFIG_START( pbobble, taitob_state )
MCFG_SOUND_ADD("ymsnd", YM2610B, XTAL_16MHz/2) /* 8 MHz */
MCFG_YM2610_IRQ_HANDLER(WRITELINE(taitob_state, irqhandler))
+ MCFG_AY8910_OUTPUT_TYPE(AY8910_LEGACY_OUTPUT | AY8910_SINGLE_OUTPUT)
MCFG_SOUND_ROUTE(0, "mono", 0.25)
MCFG_SOUND_ROUTE(1, "mono", 1.0)
MCFG_SOUND_ROUTE(2, "mono", 1.0)
@@ -2453,6 +2449,7 @@ static MACHINE_CONFIG_START( spacedx, taitob_state )
MCFG_SOUND_ADD("ymsnd", YM2610, XTAL_16MHz/2) /* 8 MHz */
MCFG_YM2610_IRQ_HANDLER(WRITELINE(taitob_state, irqhandler))
+ MCFG_AY8910_OUTPUT_TYPE(AY8910_LEGACY_OUTPUT | AY8910_SINGLE_OUTPUT)
MCFG_SOUND_ROUTE(0, "mono", 0.25)
MCFG_SOUND_ROUTE(1, "mono", 1.0)
MCFG_SOUND_ROUTE(2, "mono", 1.0)
@@ -2509,6 +2506,7 @@ static MACHINE_CONFIG_START( spacedxo, taitob_state )
MCFG_SOUND_ADD("ymsnd", YM2610, XTAL_16MHz/2) /* 8 MHz */
MCFG_YM2610_IRQ_HANDLER(WRITELINE(taitob_state, irqhandler))
+ MCFG_AY8910_OUTPUT_TYPE(AY8910_LEGACY_OUTPUT | AY8910_SINGLE_OUTPUT)
MCFG_SOUND_ROUTE(0, "mono", 0.25)
MCFG_SOUND_ROUTE(1, "mono", 1.0)
MCFG_SOUND_ROUTE(2, "mono", 1.0)
@@ -2571,6 +2569,7 @@ static MACHINE_CONFIG_START( qzshowby, taitob_state )
MCFG_SOUND_ADD("ymsnd", YM2610B, 8000000)
MCFG_YM2610_IRQ_HANDLER(WRITELINE(taitob_state, irqhandler))
+ MCFG_AY8910_OUTPUT_TYPE(AY8910_LEGACY_OUTPUT | AY8910_SINGLE_OUTPUT)
MCFG_SOUND_ROUTE(0, "mono", 0.25)
MCFG_SOUND_ROUTE(1, "mono", 1.0)
MCFG_SOUND_ROUTE(2, "mono", 1.0)
@@ -2627,7 +2626,7 @@ static MACHINE_CONFIG_START( viofight, taitob_state )
MCFG_SOUND_ADD("ymsnd", YM2203, XTAL_24MHz/8) /* 3 MHz */
MCFG_YM2203_IRQ_HANDLER(WRITELINE(taitob_state, irqhandler))
- MCFG_YM2203_AY8910_INTF(&ay8910_config)
+ MCFG_AY8910_PORT_A_WRITE_CB(WRITE8(taitob_state, bankswitch_w))
MCFG_SOUND_ROUTE(0, "mono", 0.25)
MCFG_SOUND_ROUTE(1, "mono", 0.25)
MCFG_SOUND_ROUTE(2, "mono", 0.25)
@@ -2872,6 +2871,7 @@ static MACHINE_CONFIG_START( sbm, taitob_state )
MCFG_SOUND_ADD("ymsnd", YM2610B, 8000000)
MCFG_YM2610_IRQ_HANDLER(WRITELINE(taitob_state, irqhandler))
+ MCFG_AY8910_OUTPUT_TYPE(AY8910_LEGACY_OUTPUT | AY8910_SINGLE_OUTPUT)
MCFG_SOUND_ROUTE(0, "mono", 0.25)
MCFG_SOUND_ROUTE(1, "mono", 1.0)
MCFG_SOUND_ROUTE(2, "mono", 1.0)
@@ -2929,6 +2929,7 @@ static MACHINE_CONFIG_START( realpunc, taitob_state )
MCFG_SOUND_ADD("ymsnd", YM2610B, 8000000)
MCFG_YM2610_IRQ_HANDLER(WRITELINE(taitob_state, irqhandler))
+ MCFG_AY8910_OUTPUT_TYPE(AY8910_LEGACY_OUTPUT | AY8910_SINGLE_OUTPUT)
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 a0afb5349de..76093c80de8 100644
--- a/src/mame/drivers/taito_f2.c
+++ b/src/mame/drivers/taito_f2.c
@@ -2818,17 +2818,6 @@ WRITE8_MEMBER(taitof2_state::cameltrya_porta_w)
// Implement //
}
-static const ay8910_interface ay8910_config =
-{
- AY8910_LEGACY_OUTPUT,
- AY8910_DEFAULT_LOADS,
- DEVCB_NULL, /* portA read */
- DEVCB_NULL,
- DEVCB_DRIVER_MEMBER(taitof2_state,cameltrya_porta_w), /* portA write - not implemented */
- DEVCB_NULL, /* portB write */
-};
-
-
/***********************************************************
MACHINE DRIVERS
***********************************************************/
@@ -2875,6 +2864,7 @@ static MACHINE_CONFIG_START( taito_f2, taitof2_state )
MCFG_SOUND_ADD("ymsnd", YM2610, 24000000/3) /* Was 16000000/2, but only a 24Mhz OSC */
MCFG_YM2610_IRQ_HANDLER(WRITELINE(taitof2_state, irqhandler))
+ MCFG_AY8910_OUTPUT_TYPE(AY8910_LEGACY_OUTPUT | AY8910_SINGLE_OUTPUT)
MCFG_SOUND_ROUTE(0, "lspeaker", 0.25)
MCFG_SOUND_ROUTE(0, "rspeaker", 0.25)
MCFG_SOUND_ROUTE(1, "lspeaker", 1.0)
@@ -3709,7 +3699,7 @@ static MACHINE_CONFIG_START( cameltrya, taitof2_state )
MCFG_SOUND_ADD("ymsnd", YM2203, 24000000/8) /* verified on pcb */
MCFG_YM2203_IRQ_HANDLER(WRITELINE(taitof2_state, irqhandler))
- MCFG_YM2203_AY8910_INTF(&ay8910_config)
+ MCFG_AY8910_PORT_A_WRITE_CB(WRITE8(taitof2_state, cameltrya_porta_w)) /* portA write - not implemented */
MCFG_SOUND_ROUTE(0, "mono", 0.20)
MCFG_SOUND_ROUTE(1, "mono", 0.20)
MCFG_SOUND_ROUTE(2, "mono", 0.20)
diff --git a/src/mame/drivers/taito_h.c b/src/mame/drivers/taito_h.c
index 20baa4c0a37..234d296db44 100644
--- a/src/mame/drivers/taito_h.c
+++ b/src/mame/drivers/taito_h.c
@@ -692,6 +692,7 @@ static MACHINE_CONFIG_START( syvalion, taitoh_state )
MCFG_SOUND_ADD("ymsnd", YM2610, XTAL_8MHz)
MCFG_YM2610_IRQ_HANDLER(WRITELINE(taitoh_state, irqhandler))
+ MCFG_AY8910_OUTPUT_TYPE(AY8910_LEGACY_OUTPUT | AY8910_SINGLE_OUTPUT)
MCFG_SOUND_ROUTE(0, "mono", 0.25)
MCFG_SOUND_ROUTE(1, "mono", 1.0)
MCFG_SOUND_ROUTE(2, "mono", 1.0)
@@ -748,6 +749,7 @@ static MACHINE_CONFIG_START( recordbr, taitoh_state )
MCFG_SOUND_ADD("ymsnd", YM2610, XTAL_8MHz)
MCFG_YM2610_IRQ_HANDLER(WRITELINE(taitoh_state, irqhandler))
+ MCFG_AY8910_OUTPUT_TYPE(AY8910_LEGACY_OUTPUT | AY8910_SINGLE_OUTPUT)
MCFG_SOUND_ROUTE(0, "mono", 0.25)
MCFG_SOUND_ROUTE(1, "mono", 1.0)
MCFG_SOUND_ROUTE(2, "mono", 1.0)
@@ -812,6 +814,7 @@ static MACHINE_CONFIG_START( dleague, taitoh_state )
MCFG_SOUND_ADD("ymsnd", YM2610, XTAL_8MHz)
MCFG_YM2610_IRQ_HANDLER(WRITELINE(taitoh_state, irqhandler))
+ MCFG_AY8910_OUTPUT_TYPE(AY8910_LEGACY_OUTPUT | AY8910_SINGLE_OUTPUT)
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 34f226035b6..33f76bdbbf2 100644
--- a/src/mame/drivers/taito_l.c
+++ b/src/mame/drivers/taito_l.c
@@ -1750,36 +1750,6 @@ WRITE8_MEMBER(taitol_state::portA_w)
}
}
-static const ay8910_interface triple_ay8910_config =
-{
- AY8910_LEGACY_OUTPUT,
- AY8910_DEFAULT_LOADS,
- DEVCB_NULL,
- DEVCB_NULL,
- DEVCB_DRIVER_MEMBER(taitol_state,portA_w),
- DEVCB_NULL,
-};
-
-static const ay8910_interface champwr_ay8910_config =
-{
- AY8910_LEGACY_OUTPUT,
- AY8910_DEFAULT_LOADS,
- DEVCB_NULL,
- DEVCB_NULL,
- DEVCB_DRIVER_MEMBER(taitol_state,portA_w),
- DEVCB_DRIVER_MEMBER(taitol_state,champwr_msm5205_volume_w),
-};
-
-static const ay8910_interface single_ay8910_config =
-{
- AY8910_LEGACY_OUTPUT,
- AY8910_DEFAULT_LOADS,
- DEVCB_DRIVER_MEMBER(taitol_state,portA_r),
- DEVCB_DRIVER_MEMBER(taitol_state,portB_r),
- DEVCB_NULL,
- DEVCB_NULL
-};
-
static MACHINE_CONFIG_START( fhawk, taitol_state )
@@ -1822,7 +1792,7 @@ static MACHINE_CONFIG_START( fhawk, taitol_state )
MCFG_SOUND_ADD("ymsnd", YM2203, XTAL_12MHz/4) /* verified on pcb */
MCFG_YM2203_IRQ_HANDLER(WRITELINE(taitol_state,irqhandler))
- MCFG_YM2203_AY8910_INTF(&triple_ay8910_config)
+ MCFG_AY8910_PORT_A_WRITE_CB(WRITE8(taitol_state, portA_w))
MCFG_SOUND_ROUTE(0, "mono", 0.20)
MCFG_SOUND_ROUTE(1, "mono", 0.20)
MCFG_SOUND_ROUTE(2, "mono", 0.20)
@@ -1851,7 +1821,8 @@ static MACHINE_CONFIG_DERIVED( champwr, fhawk )
/* sound hardware */
MCFG_SOUND_MODIFY("ymsnd")
MCFG_YM2203_IRQ_HANDLER(WRITELINE(taitol_state,irqhandler))
- MCFG_YM2203_AY8910_INTF(&champwr_ay8910_config)
+ MCFG_AY8910_PORT_A_WRITE_CB(WRITE8(taitol_state, portA_w))
+ MCFG_AY8910_PORT_B_WRITE_CB(WRITE8(taitol_state, champwr_msm5205_volume_w))
MCFG_SOUND_ADD("msm", MSM5205, XTAL_384kHz)
MCFG_MSM5205_VCLK_CB(WRITELINE(taitol_state, champwr_msm5205_vck)) /* VCK function */
@@ -1878,6 +1849,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_YM2610_IRQ_HANDLER(WRITELINE(taitol_state, irqhandler))
+ MCFG_AY8910_OUTPUT_TYPE(AY8910_LEGACY_OUTPUT | AY8910_SINGLE_OUTPUT)
MCFG_SOUND_ROUTE(0, "mono", 0.25)
MCFG_SOUND_ROUTE(1, "mono", 1.0)
MCFG_SOUND_ROUTE(2, "mono", 1.0)
@@ -1967,7 +1939,8 @@ static MACHINE_CONFIG_START( plotting, taitol_state )
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_SOUND_ADD("ymsnd", YM2203, XTAL_13_33056MHz/4) /* verified on pcb */
- MCFG_YM2203_AY8910_INTF(&single_ay8910_config)
+ MCFG_AY8910_PORT_A_READ_CB(READ8(taitol_state, portA_r))
+ MCFG_AY8910_PORT_B_READ_CB(READ8(taitol_state, portB_r))
MCFG_SOUND_ROUTE(0, "mono", 0.20)
MCFG_SOUND_ROUTE(1, "mono", 0.20)
MCFG_SOUND_ROUTE(2, "mono", 0.20)
diff --git a/src/mame/drivers/taito_o.c b/src/mame/drivers/taito_o.c
index 322852655ae..d800e89c341 100644
--- a/src/mame/drivers/taito_o.c
+++ b/src/mame/drivers/taito_o.c
@@ -222,14 +222,6 @@ TIMER_DEVICE_CALLBACK_MEMBER(taitoo_state::parentj_interrupt)
m_maincpu->set_input_line(5, HOLD_LINE);
}
-static const ay8910_interface ay8910_config =
-{
- AY8910_LEGACY_OUTPUT,
- AY8910_DEFAULT_LOADS,
- DEVCB_INPUT_PORT("DSWA"),DEVCB_INPUT_PORT("DSWB"),
- DEVCB_NULL, DEVCB_NULL,
-};
-
void taitoo_state::machine_start()
{
}
@@ -264,7 +256,8 @@ static MACHINE_CONFIG_START( parentj, taitoo_state )
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_SOUND_ADD("ymsnd", YM2203, 2000000) /*?? MHz */
- MCFG_YM2203_AY8910_INTF(&ay8910_config)
+ MCFG_AY8910_PORT_A_READ_CB(IOPORT("DSWA"))
+ MCFG_AY8910_PORT_B_READ_CB(IOPORT("DSWB"))
MCFG_SOUND_ROUTE(0, "mono", 0.25)
MCFG_SOUND_ROUTE(0, "mono", 0.25)
MCFG_SOUND_ROUTE(1, "mono", 1.0)
diff --git a/src/mame/drivers/taito_x.c b/src/mame/drivers/taito_x.c
index ccd8ddb84b8..0ae800e4d3e 100644
--- a/src/mame/drivers/taito_x.c
+++ b/src/mame/drivers/taito_x.c
@@ -836,6 +836,7 @@ static MACHINE_CONFIG_START( superman, taitox_state )
MCFG_SOUND_ADD("ymsnd", YM2610, XTAL_16MHz/2) /* verified on pcb */
MCFG_YM2610_IRQ_HANDLER(WRITELINE(taitox_state, irqhandler))
+ MCFG_AY8910_OUTPUT_TYPE(AY8910_LEGACY_OUTPUT | AY8910_SINGLE_OUTPUT)
MCFG_SOUND_ROUTE(0, "lspeaker", 0.25)
MCFG_SOUND_ROUTE(0, "rspeaker", 0.25)
MCFG_SOUND_ROUTE(1, "lspeaker", 1.0)
@@ -930,6 +931,7 @@ static MACHINE_CONFIG_START( gigandes, taitox_state )
MCFG_SOUND_ADD("ymsnd", YM2610, 8000000)
MCFG_YM2610_IRQ_HANDLER(WRITELINE(taitox_state, irqhandler))
+ MCFG_AY8910_OUTPUT_TYPE(AY8910_LEGACY_OUTPUT | AY8910_SINGLE_OUTPUT)
MCFG_SOUND_ROUTE(0, "lspeaker", 0.25)
MCFG_SOUND_ROUTE(0, "rspeaker", 0.25)
MCFG_SOUND_ROUTE(1, "lspeaker", 1.0)
@@ -978,6 +980,7 @@ static MACHINE_CONFIG_START( ballbros, taitox_state )
MCFG_SOUND_ADD("ymsnd", YM2610, 8000000)
MCFG_YM2610_IRQ_HANDLER(WRITELINE(taitox_state, irqhandler))
+ MCFG_AY8910_OUTPUT_TYPE(AY8910_LEGACY_OUTPUT | AY8910_SINGLE_OUTPUT)
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 39bc2259ea1..1975bc3248c 100644
--- a/src/mame/drivers/taito_z.c
+++ b/src/mame/drivers/taito_z.c
@@ -3055,6 +3055,7 @@ static MACHINE_CONFIG_START( contcirc, taitoz_state )
MCFG_SOUND_ADD("ymsnd", YM2610, 16000000/2)
MCFG_YM2610_IRQ_HANDLER(WRITELINE(taitoz_state, irqhandler))
+ MCFG_AY8910_OUTPUT_TYPE(AY8910_LEGACY_OUTPUT | AY8910_SINGLE_OUTPUT)
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)
@@ -3134,6 +3135,7 @@ static MACHINE_CONFIG_START( chasehq, taitoz_state )
MCFG_SOUND_ADD("ymsnd", YM2610, 16000000/2)
MCFG_YM2610_IRQ_HANDLER(WRITELINE(taitoz_state, irqhandler))
+ MCFG_AY8910_OUTPUT_TYPE(AY8910_LEGACY_OUTPUT | AY8910_SINGLE_OUTPUT)
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)
@@ -3213,6 +3215,7 @@ static MACHINE_CONFIG_START( enforce, taitoz_state )
MCFG_SOUND_ADD("ymsnd", YM2610, 16000000/2)
MCFG_YM2610_IRQ_HANDLER(WRITELINE(taitoz_state, irqhandler))
+ MCFG_AY8910_OUTPUT_TYPE(AY8910_LEGACY_OUTPUT | AY8910_SINGLE_OUTPUT)
MCFG_SOUND_ROUTE(0, "lspeaker", 0.25)
MCFG_SOUND_ROUTE(0, "rspeaker", 0.25)
MCFG_SOUND_ROUTE(1, "2610.1.l", 20.0)
@@ -3287,6 +3290,7 @@ static MACHINE_CONFIG_START( bshark, taitoz_state )
MCFG_SOUND_ADD("ymsnd", YM2610, 16000000/2)
MCFG_YM2610_IRQ_HANDLER(WRITELINE(taitoz_state, irqhandlerb))
+ MCFG_AY8910_OUTPUT_TYPE(AY8910_LEGACY_OUTPUT | AY8910_SINGLE_OUTPUT)
MCFG_SOUND_ROUTE(0, "lspeaker", 0.25)
MCFG_SOUND_ROUTE(0, "rspeaker", 0.25)
MCFG_SOUND_ROUTE(1, "2610.1.l", 28.0)
@@ -3369,6 +3373,7 @@ static MACHINE_CONFIG_START( sci, taitoz_state )
MCFG_SOUND_ADD("ymsnd", YM2610, 16000000/2)
MCFG_YM2610_IRQ_HANDLER(WRITELINE(taitoz_state, irqhandler))
+ MCFG_AY8910_OUTPUT_TYPE(AY8910_LEGACY_OUTPUT | AY8910_SINGLE_OUTPUT)
MCFG_SOUND_ROUTE(0, "lspeaker", 0.25)
MCFG_SOUND_ROUTE(0, "rspeaker", 0.25)
MCFG_SOUND_ROUTE(1, "2610.1.l", 2.0)
@@ -3451,6 +3456,7 @@ static MACHINE_CONFIG_START( nightstr, taitoz_state )
MCFG_SOUND_ADD("ymsnd", YM2610, 16000000/2)
MCFG_YM2610_IRQ_HANDLER(WRITELINE(taitoz_state, irqhandler))
+ MCFG_AY8910_OUTPUT_TYPE(AY8910_LEGACY_OUTPUT | AY8910_SINGLE_OUTPUT)
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)
@@ -3530,6 +3536,7 @@ static MACHINE_CONFIG_START( aquajack, taitoz_state )
MCFG_SOUND_ADD("ymsnd", YM2610, 16000000/2)
MCFG_YM2610_IRQ_HANDLER(WRITELINE(taitoz_state, irqhandler))
+ MCFG_AY8910_OUTPUT_TYPE(AY8910_LEGACY_OUTPUT | AY8910_SINGLE_OUTPUT)
MCFG_SOUND_ROUTE(0, "lspeaker", 0.25)
MCFG_SOUND_ROUTE(0, "rspeaker", 0.25)
MCFG_SOUND_ROUTE(1, "2610.1.l", 2.0)
@@ -3604,6 +3611,7 @@ static MACHINE_CONFIG_START( spacegun, taitoz_state )
MCFG_SOUND_ADD("ymsnd", YM2610, 16000000/2)
MCFG_YM2610_IRQ_HANDLER(WRITELINE(taitoz_state, irqhandlerb))
+ MCFG_AY8910_OUTPUT_TYPE(AY8910_LEGACY_OUTPUT | AY8910_SINGLE_OUTPUT)
MCFG_SOUND_ROUTE(0, "lspeaker", 0.25)
MCFG_SOUND_ROUTE(0, "rspeaker", 0.25)
MCFG_SOUND_ROUTE(1, "2610.1.l", 8.0)
@@ -3678,6 +3686,7 @@ static MACHINE_CONFIG_START( dblaxle, taitoz_state )
MCFG_SOUND_ADD("ymsnd", YM2610, XTAL_32MHz/4)
MCFG_YM2610_IRQ_HANDLER(WRITELINE(taitoz_state, irqhandler))
+ MCFG_AY8910_OUTPUT_TYPE(AY8910_LEGACY_OUTPUT | AY8910_SINGLE_OUTPUT)
MCFG_SOUND_ROUTE(0, "lspeaker", 0.25)
MCFG_SOUND_ROUTE(0, "rspeaker", 0.25)
MCFG_SOUND_ROUTE(1, "2610.1.l", 8.0)
@@ -3755,6 +3764,7 @@ static MACHINE_CONFIG_START( racingb, taitoz_state )
MCFG_SOUND_ADD("ymsnd", YM2610, XTAL_32MHz/4)
MCFG_YM2610_IRQ_HANDLER(WRITELINE(taitoz_state, irqhandler))
+ MCFG_AY8910_OUTPUT_TYPE(AY8910_LEGACY_OUTPUT | AY8910_SINGLE_OUTPUT)
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 2743ce45d2e..a6ce18c011f 100644
--- a/src/mame/drivers/taitoair.c
+++ b/src/mame/drivers/taitoair.c
@@ -722,6 +722,7 @@ static MACHINE_CONFIG_START( airsys, taitoair_state )
MCFG_SOUND_ADD("ymsnd", YM2610, XTAL_16MHz / 2)
MCFG_YM2610_IRQ_HANDLER(WRITELINE(taitoair_state, irqhandler))
+ MCFG_AY8910_OUTPUT_TYPE(AY8910_LEGACY_OUTPUT | AY8910_SINGLE_OUTPUT)
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/taitosj.c b/src/mame/drivers/taitosj.c
index 33a34292175..d0e11798c01 100644
--- a/src/mame/drivers/taitosj.c
+++ b/src/mame/drivers/taitosj.c
@@ -1741,49 +1741,6 @@ WRITE8_MEMBER(taitosj_state::dac_vol_w)
m_dac->write_signed16(m_dac_out * m_dac_vol + 0x8000);
}
-
-static const ay8910_interface ay8910_interface_1 =
-{
- AY8910_LEGACY_OUTPUT,
- AY8910_DEFAULT_LOADS,
- DEVCB_INPUT_PORT("DSW2"),
- DEVCB_INPUT_PORT("DSW3"),
- DEVCB_NULL,
- DEVCB_NULL
-};
-
-static const ay8910_interface ay8910_interface_2 =
-{
- AY8910_LEGACY_OUTPUT,
- AY8910_DEFAULT_LOADS,
- DEVCB_NULL,
- DEVCB_NULL,
- DEVCB_DRIVER_MEMBER(taitosj_state,dac_out_w), /* port Awrite */
- DEVCB_DRIVER_MEMBER(taitosj_state,dac_vol_w) /* port Bwrite */
-};
-
-static const ay8910_interface ay8910_interface_3 =
-{
- AY8910_LEGACY_OUTPUT,
- AY8910_DEFAULT_LOADS,
- DEVCB_NULL,
- DEVCB_NULL,
- DEVCB_DRIVER_MEMBER(taitosj_state,input_port_4_f0_w),
- DEVCB_NULL
-};
-
-static const ay8910_interface ay8910_interface_4 =
-{
- AY8910_LEGACY_OUTPUT,
- AY8910_DEFAULT_LOADS,
- DEVCB_NULL,
- DEVCB_NULL,
- DEVCB_NULL,
- DEVCB_DRIVER_MEMBER(taitosj_state,taitosj_sndnmi_msk_w) /* port Bwrite */
-};
-
-
-
static MACHINE_CONFIG_START( nomcu, taitosj_state )
/* basic machine hardware */
@@ -1817,19 +1774,21 @@ static MACHINE_CONFIG_START( nomcu, taitosj_state )
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_SOUND_ADD("ay1", AY8910, 6000000/4)
- MCFG_SOUND_CONFIG(ay8910_interface_1)
+ MCFG_AY8910_PORT_A_READ_CB(IOPORT("DSW2"))
+ MCFG_AY8910_PORT_B_READ_CB(IOPORT("DSW3"))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.15)
MCFG_SOUND_ADD("ay2", AY8910, 6000000/4)
- MCFG_SOUND_CONFIG(ay8910_interface_2)
+ MCFG_AY8910_PORT_A_WRITE_CB(WRITE8(taitosj_state, dac_out_w)) /* port Awrite */
+ MCFG_AY8910_PORT_B_WRITE_CB(WRITE8(taitosj_state, dac_vol_w)) /* port Bwrite */
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.15)
MCFG_SOUND_ADD("ay3", AY8910, 6000000/4)
- MCFG_SOUND_CONFIG(ay8910_interface_3)
+ MCFG_AY8910_PORT_A_WRITE_CB(WRITE8(taitosj_state, input_port_4_f0_w))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.15)
MCFG_SOUND_ADD("ay4", AY8910, 6000000/4)
- MCFG_SOUND_CONFIG(ay8910_interface_4)
+ MCFG_AY8910_PORT_B_WRITE_CB(WRITE8(taitosj_state, taitosj_sndnmi_msk_w)) /* port Bwrite */
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.30)
MCFG_DAC_ADD("dac")
diff --git a/src/mame/drivers/tankbust.c b/src/mame/drivers/tankbust.c
index 4a3c5bf41e6..96f20cfd1f4 100644
--- a/src/mame/drivers/tankbust.c
+++ b/src/mame/drivers/tankbust.c
@@ -301,16 +301,6 @@ static GFXDECODE_START( tankbust )
GFXDECODE_ENTRY( "gfx3", 0, charlayout2, 0x60, 16 ) /* txt tilemap characters*/
GFXDECODE_END
-static const ay8910_interface ay8910_config =
-{
- AY8910_LEGACY_OUTPUT,
- AY8910_DEFAULT_LOADS,
- DEVCB_DRIVER_MEMBER(tankbust_state,tankbust_soundlatch_r),
- DEVCB_DRIVER_MEMBER(tankbust_state,tankbust_soundtimer_r),
- DEVCB_NULL,
- DEVCB_NULL
-};
-
void tankbust_state::machine_reset()
{
m_variable_data = 0x11;
@@ -356,7 +346,8 @@ static MACHINE_CONFIG_START( tankbust, tankbust_state )
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_SOUND_ADD("ay1", AY8910, XTAL_14_31818MHz/16) /* Verified on PCB */
- MCFG_SOUND_CONFIG(ay8910_config)
+ MCFG_AY8910_PORT_A_READ_CB(READ8(tankbust_state, tankbust_soundlatch_r))
+ MCFG_AY8910_PORT_B_READ_CB(READ8(tankbust_state, tankbust_soundtimer_r))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.10)
MCFG_SOUND_ADD("ay2", AY8910, XTAL_14_31818MHz/16) /* Verified on PCB */
diff --git a/src/mame/drivers/taotaido.c b/src/mame/drivers/taotaido.c
index eb93af9996f..c7bc0e39f9b 100644
--- a/src/mame/drivers/taotaido.c
+++ b/src/mame/drivers/taotaido.c
@@ -391,6 +391,7 @@ static MACHINE_CONFIG_START( taotaido, taotaido_state )
MCFG_SOUND_ADD("ymsnd", YM2610, 8000000)
MCFG_YM2610_IRQ_HANDLER(WRITELINE(taotaido_state, irqhandler))
+ MCFG_AY8910_OUTPUT_TYPE(AY8910_LEGACY_OUTPUT | AY8910_SINGLE_OUTPUT)
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/taxidriv.c b/src/mame/drivers/taxidriv.c
index de0088849ed..515a6b8d7e9 100644
--- a/src/mame/drivers/taxidriv.c
+++ b/src/mame/drivers/taxidriv.c
@@ -289,28 +289,6 @@ static GFXDECODE_START( taxidriv )
GFXDECODE_ENTRY( "gfx5", 0, charlayout2, 0, 1 )
GFXDECODE_END
-
-
-static const ay8910_interface ay8910_interface_1 =
-{
- AY8910_LEGACY_OUTPUT,
- AY8910_DEFAULT_LOADS,
- DEVCB_DRIVER_MEMBER(taxidriv_state,p8910_0a_r),
- DEVCB_NULL,
- DEVCB_NULL,
- DEVCB_DRIVER_MEMBER(taxidriv_state,p8910_0b_w)
-};
-
-static const ay8910_interface ay8910_interface_2 =
-{
- AY8910_LEGACY_OUTPUT,
- AY8910_DEFAULT_LOADS,
- DEVCB_DRIVER_MEMBER(taxidriv_state,p8910_1a_r),
- DEVCB_NULL,
- DEVCB_NULL,
- DEVCB_NULL
-};
-
PALETTE_INIT_MEMBER(taxidriv_state, taxidriv)
{
const UINT8 *color_prom = memregion("proms")->base();
@@ -399,11 +377,12 @@ static MACHINE_CONFIG_START( taxidriv, taxidriv_state )
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_SOUND_ADD("ay1", AY8910, 1250000)
- MCFG_SOUND_CONFIG(ay8910_interface_1)
+ MCFG_AY8910_PORT_A_READ_CB(READ8(taxidriv_state, p8910_0a_r))
+ MCFG_AY8910_PORT_B_WRITE_CB(WRITE8(taxidriv_state, p8910_0b_w))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25)
MCFG_SOUND_ADD("ay2", AY8910, 1250000)
- MCFG_SOUND_CONFIG(ay8910_interface_2)
+ MCFG_AY8910_PORT_A_READ_CB(READ8(taxidriv_state, p8910_1a_r))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25)
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/tehkanwc.c b/src/mame/drivers/tehkanwc.c
index db6bec13515..13802477966 100644
--- a/src/mame/drivers/tehkanwc.c
+++ b/src/mame/drivers/tehkanwc.c
@@ -614,28 +614,6 @@ static GFXDECODE_START( tehkanwc )
GFXDECODE_END
-
-static const ay8910_interface ay8910_interface_1 =
-{
- AY8910_LEGACY_OUTPUT,
- AY8910_DEFAULT_LOADS,
- DEVCB_NULL,
- DEVCB_NULL,
- DEVCB_DRIVER_MEMBER(tehkanwc_state,tehkanwc_portA_w),
- DEVCB_DRIVER_MEMBER(tehkanwc_state,tehkanwc_portB_w)
-};
-
-static const ay8910_interface ay8910_interface_2 =
-{
- AY8910_LEGACY_OUTPUT,
- AY8910_DEFAULT_LOADS,
- DEVCB_DRIVER_MEMBER(tehkanwc_state,tehkanwc_portA_r),
- DEVCB_DRIVER_MEMBER(tehkanwc_state,tehkanwc_portB_r),
- DEVCB_NULL,
- DEVCB_NULL
-};
-
-
static MACHINE_CONFIG_START( tehkanwc, tehkanwc_state )
/* basic machine hardware */
@@ -672,11 +650,13 @@ static MACHINE_CONFIG_START( tehkanwc, tehkanwc_state )
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_SOUND_ADD("ay1", AY8910, 1536000)
- MCFG_SOUND_CONFIG(ay8910_interface_1)
+ MCFG_AY8910_PORT_A_WRITE_CB(WRITE8(tehkanwc_state, tehkanwc_portA_w))
+ MCFG_AY8910_PORT_B_WRITE_CB(WRITE8(tehkanwc_state, tehkanwc_portB_w))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25)
MCFG_SOUND_ADD("ay2", AY8910, 1536000)
- MCFG_SOUND_CONFIG(ay8910_interface_2)
+ MCFG_AY8910_PORT_A_READ_CB(READ8(tehkanwc_state, tehkanwc_portA_r))
+ MCFG_AY8910_PORT_B_READ_CB(READ8(tehkanwc_state, tehkanwc_portB_r))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25)
MCFG_SOUND_ADD("msm", MSM5205, 384000)
diff --git a/src/mame/drivers/thedeep.c b/src/mame/drivers/thedeep.c
index e970070daa6..29ba5db1500 100644
--- a/src/mame/drivers/thedeep.c
+++ b/src/mame/drivers/thedeep.c
@@ -392,13 +392,6 @@ WRITE_LINE_MEMBER(thedeep_state::irqhandler)
m_audiocpu->set_input_line(0, state ? ASSERT_LINE : CLEAR_LINE);
}
-static const ay8910_interface ay8910_config =
-{
- AY8910_LEGACY_OUTPUT,
- AY8910_DEFAULT_LOADS,
- DEVCB_NULL, DEVCB_NULL, DEVCB_NULL, DEVCB_NULL
-};
-
TIMER_DEVICE_CALLBACK_MEMBER(thedeep_state::thedeep_interrupt)
{
int scanline = param;
@@ -471,7 +464,6 @@ static MACHINE_CONFIG_START( thedeep, thedeep_state )
MCFG_SOUND_ADD("ymsnd", YM2203, XTAL_12MHz/4) /* verified on pcb */
MCFG_YM2203_IRQ_HANDLER(WRITELINE(thedeep_state, irqhandler))
- MCFG_YM2203_AY8910_INTF(&ay8910_config)
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/thepit.c b/src/mame/drivers/thepit.c
index 672552c0220..c56392d8c20 100644
--- a/src/mame/drivers/thepit.c
+++ b/src/mame/drivers/thepit.c
@@ -692,16 +692,6 @@ static GFXDECODE_START( suprmous )
GFXDECODE_END
-static const ay8910_interface ay8910_config =
-{
- AY8910_LEGACY_OUTPUT,
- AY8910_DEFAULT_LOADS,
- DEVCB_DRIVER_MEMBER(driver_device, soundlatch_byte_r),
- DEVCB_NULL,
- DEVCB_NULL,
- DEVCB_NULL
-};
-
INTERRUPT_GEN_MEMBER(thepit_state::vblank_irq)
{
if(m_nmi_mask)
@@ -734,7 +724,7 @@ static MACHINE_CONFIG_START( thepit, thepit_state )
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_SOUND_ADD("ay1", AY8910, PIXEL_CLOCK/4)
- MCFG_SOUND_CONFIG(ay8910_config)
+ MCFG_AY8910_PORT_A_READ_CB(READ8(driver_device, soundlatch_byte_r))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25)
MCFG_SOUND_ADD("ay2", AY8910, PIXEL_CLOCK/4)
diff --git a/src/mame/drivers/tickee.c b/src/mame/drivers/tickee.c
index f29284b40ac..f5dc04c6674 100644
--- a/src/mame/drivers/tickee.c
+++ b/src/mame/drivers/tickee.c
@@ -729,36 +729,6 @@ static INPUT_PORTS_START( rapidfir )
PORT_BIT( 0xff, 0x80, IPT_LIGHTGUN_Y ) PORT_CROSSHAIR(Y, 1.0, 0.0, 0) PORT_SENSITIVITY(70) PORT_KEYDELTA(10) PORT_PLAYER(2)
INPUT_PORTS_END
-
-
-/*************************************
- *
- * Sound interfaces
- *
- *************************************/
-
-static const ay8910_interface ay8910_interface_1 =
-{
- AY8910_LEGACY_OUTPUT,
- AY8910_DEFAULT_LOADS,
- DEVCB_INPUT_PORT("DSW"),
- DEVCB_INPUT_PORT("IN1"),
- DEVCB_NULL,
- DEVCB_NULL
-};
-
-static const ay8910_interface ay8910_interface_2 =
-{
- AY8910_LEGACY_OUTPUT,
- AY8910_DEFAULT_LOADS,
- DEVCB_INPUT_PORT("IN0"),
- DEVCB_INPUT_PORT("IN2"),
- DEVCB_NULL,
- DEVCB_NULL
-};
-
-
-
/*************************************
*
* 34010 configuration
@@ -826,11 +796,13 @@ static MACHINE_CONFIG_START( tickee, tickee_state )
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_SOUND_ADD("ym1", YM2149, VIDEO_CLOCK/8)
- MCFG_SOUND_CONFIG(ay8910_interface_1)
+ MCFG_AY8910_PORT_A_READ_CB(IOPORT("DSW"))
+ MCFG_AY8910_PORT_B_READ_CB(IOPORT("IN1"))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50)
MCFG_SOUND_ADD("ym2", YM2149, VIDEO_CLOCK/8)
- MCFG_SOUND_CONFIG(ay8910_interface_2)
+ MCFG_AY8910_PORT_A_READ_CB(IOPORT("IN0"))
+ MCFG_AY8910_PORT_B_READ_CB(IOPORT("IN2"))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50)
MACHINE_CONFIG_END
@@ -894,7 +866,8 @@ static MACHINE_CONFIG_START( mouseatk, tickee_state )
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_SOUND_ADD("ym", YM2149, OKI_CLOCK)
- MCFG_SOUND_CONFIG(ay8910_interface_1)
+ MCFG_AY8910_PORT_A_READ_CB(IOPORT("DSW"))
+ MCFG_AY8910_PORT_B_READ_CB(IOPORT("IN1"))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50)
MCFG_OKIM6295_ADD("oki", OKI_CLOCK, OKIM6295_PIN7_HIGH)
diff --git a/src/mame/drivers/tigeroad.c b/src/mame/drivers/tigeroad.c
index 8f0cda93a66..b0378a198b4 100644
--- a/src/mame/drivers/tigeroad.c
+++ b/src/mame/drivers/tigeroad.c
@@ -496,14 +496,6 @@ WRITE_LINE_MEMBER(tigeroad_state::irqhandler)
m_audiocpu->set_input_line(0, state ? ASSERT_LINE : CLEAR_LINE);
}
-static const ay8910_interface ay8910_config =
-{
- AY8910_LEGACY_OUTPUT,
- AY8910_DEFAULT_LOADS,
- DEVCB_NULL, DEVCB_NULL, DEVCB_NULL, DEVCB_NULL,
-};
-
-
static MACHINE_CONFIG_START( tigeroad, tigeroad_state )
/* basic machine hardware */
@@ -539,7 +531,6 @@ static MACHINE_CONFIG_START( tigeroad, tigeroad_state )
MCFG_SOUND_ADD("ym1", YM2203, XTAL_3_579545MHz) /* verified on pcb */
MCFG_YM2203_IRQ_HANDLER(WRITELINE(tigeroad_state, irqhandler))
- MCFG_YM2203_AY8910_INTF(&ay8910_config)
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25)
MCFG_SOUND_ADD("ym2", YM2203, XTAL_3_579545MHz) /* verified on pcb */
diff --git a/src/mame/drivers/timelimt.c b/src/mame/drivers/timelimt.c
index 60e71f0e34c..3399176ab99 100644
--- a/src/mame/drivers/timelimt.c
+++ b/src/mame/drivers/timelimt.c
@@ -204,16 +204,6 @@ GFXDECODE_END
/***************************************************************************/
-static const ay8910_interface ay8910_config =
-{
- AY8910_LEGACY_OUTPUT,
- AY8910_DEFAULT_LOADS,
- DEVCB_DRIVER_MEMBER(driver_device, soundlatch_byte_r),
- DEVCB_NULL,
- DEVCB_NULL,
- DEVCB_NULL
-};
-
INTERRUPT_GEN_MEMBER(timelimt_state::timelimt_irq)
{
if ( m_nmi_enabled )
@@ -258,7 +248,7 @@ static MACHINE_CONFIG_START( timelimt, timelimt_state )
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25)
MCFG_SOUND_ADD("ay2", AY8910, 18432000/12)
- MCFG_SOUND_CONFIG(ay8910_config)
+ MCFG_AY8910_PORT_A_READ_CB(READ8(driver_device, soundlatch_byte_r))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25)
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/timeplt.c b/src/mame/drivers/timeplt.c
index f378a1c12a9..221a8cc00d2 100644
--- a/src/mame/drivers/timeplt.c
+++ b/src/mame/drivers/timeplt.c
@@ -105,16 +105,6 @@ WRITE8_MEMBER(timeplt_state::chkun_sound_w)
m_tc8830f->reset();
}
-static const ay8910_interface chkun_ay2_interface =
-{
- AY8910_LEGACY_OUTPUT,
- AY8910_DEFAULT_LOADS,
- DEVCB_NULL,
- DEVCB_NULL,
- DEVCB_DRIVER_MEMBER(timeplt_state,chkun_sound_w),
- DEVCB_NULL
-};
-
CUSTOM_INPUT_MEMBER(timeplt_state::chkun_hopper_status_r)
{
// temp workaround, needs hopper
@@ -510,8 +500,8 @@ static MACHINE_CONFIG_DERIVED( chkun, bikkuric )
/* sound hardware */
MCFG_SOUND_MODIFY("ay2")
- MCFG_SOUND_CONFIG(chkun_ay2_interface)
-
+ MCFG_AY8910_PORT_A_WRITE_CB(WRITE8(timeplt_state, chkun_sound_w))
+
MCFG_TC8830F_ADD("tc8830f", XTAL_512kHz)
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.10)
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/tnzs.c b/src/mame/drivers/tnzs.c
index cf90027c006..62c926078f0 100644
--- a/src/mame/drivers/tnzs.c
+++ b/src/mame/drivers/tnzs.c
@@ -1527,51 +1527,12 @@ static GFXDECODE_START( insectx )
GFXDECODE_END
-static const ay8910_interface ay8910_config =
-{
- AY8910_LEGACY_OUTPUT,
- AY8910_DEFAULT_LOADS,
- DEVCB_INPUT_PORT("DSWA"),
- DEVCB_INPUT_PORT("DSWB"),
- DEVCB_NULL,
- DEVCB_NULL
-};
-
-
/* handler called by the 2203 emulator when the internal timers cause an IRQ */
WRITE_LINE_MEMBER(tnzs_state::irqhandler)
{
m_audiocpu->set_input_line(INPUT_LINE_NMI, state ? ASSERT_LINE : CLEAR_LINE);
}
-static const ay8910_interface kageki_ay8910_config =
-{
- AY8910_LEGACY_OUTPUT,
- AY8910_DEFAULT_LOADS,
- DEVCB_DRIVER_MEMBER(tnzs_state,kageki_csport_r),
- DEVCB_NULL,
- DEVCB_NULL,
- DEVCB_DRIVER_MEMBER(tnzs_state,kageki_csport_w)
-};
-
-
-static const ay8910_interface tnzsb_ay8910_config =
-{
- AY8910_LEGACY_OUTPUT,
- AY8910_DEFAULT_LOADS,
- DEVCB_NULL, DEVCB_NULL, DEVCB_NULL, DEVCB_NULL
-};
-
-static const ay8910_interface kabukiz_ay8910_config =
-{
- AY8910_LEGACY_OUTPUT,
- AY8910_DEFAULT_LOADS,
- DEVCB_NULL,
- DEVCB_NULL,
- DEVCB_DRIVER_MEMBER(tnzs_state,kabukiz_sound_bank_w),
- DEVCB_DRIVER_MEMBER(tnzs_state,kabukiz_sample_w)
-};
-
static const samples_interface tnzs_samples_interface =
{
1,
@@ -1619,7 +1580,8 @@ static MACHINE_CONFIG_START( arknoid2, tnzs_state )
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_SOUND_ADD("ymsnd", YM2203, XTAL_12MHz/4) /* verified on pcb */
- MCFG_YM2203_AY8910_INTF(&ay8910_config)
+ MCFG_AY8910_PORT_A_READ_CB(IOPORT("DSWA"))
+ MCFG_AY8910_PORT_B_READ_CB(IOPORT("DSWB"))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.30)
MACHINE_CONFIG_END
@@ -1663,7 +1625,8 @@ static MACHINE_CONFIG_START( drtoppel, tnzs_state )
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_SOUND_ADD("ymsnd", YM2203, XTAL_12MHz/4)
- MCFG_YM2203_AY8910_INTF(&ay8910_config)
+ MCFG_AY8910_PORT_A_READ_CB(IOPORT("DSWA"))
+ MCFG_AY8910_PORT_B_READ_CB(IOPORT("DSWB"))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.30)
MACHINE_CONFIG_END
@@ -1709,7 +1672,8 @@ static MACHINE_CONFIG_START( tnzs, tnzs_state )
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_SOUND_ADD("ymsnd", YM2203, XTAL_12MHz/4)
- MCFG_YM2203_AY8910_INTF(&ay8910_config)
+ MCFG_AY8910_PORT_A_READ_CB(IOPORT("DSWA"))
+ MCFG_AY8910_PORT_B_READ_CB(IOPORT("DSWB"))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.30)
MACHINE_CONFIG_END
@@ -1752,7 +1716,8 @@ static MACHINE_CONFIG_START( insectx, tnzs_state )
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_SOUND_ADD("ymsnd", YM2203, XTAL_12MHz/4) /* verified on pcb */
- MCFG_YM2203_AY8910_INTF(&ay8910_config)
+ MCFG_AY8910_PORT_A_READ_CB(IOPORT("DSWA"))
+ MCFG_AY8910_PORT_B_READ_CB(IOPORT("DSWB"))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.30)
MACHINE_CONFIG_END
@@ -1795,7 +1760,8 @@ static MACHINE_CONFIG_START( kageki, tnzs_state )
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_SOUND_ADD("ymsnd", YM2203, XTAL_12MHz/4) /* verified on pcb */
- MCFG_YM2203_AY8910_INTF(&kageki_ay8910_config)
+ MCFG_AY8910_PORT_A_READ_CB(READ8(tnzs_state, kageki_csport_r))
+ MCFG_AY8910_PORT_B_WRITE_CB(WRITE8(tnzs_state, kageki_csport_w))
MCFG_SOUND_ROUTE(0, "mono", 0.15)
MCFG_SOUND_ROUTE(1, "mono", 0.15)
MCFG_SOUND_ROUTE(2, "mono", 0.15)
@@ -1849,7 +1815,6 @@ static MACHINE_CONFIG_START( tnzsb, tnzs_state )
MCFG_SOUND_ADD("ymsnd", YM2203, XTAL_12MHz/4) /* verified on pcb */
MCFG_YM2203_IRQ_HANDLER(WRITELINE(tnzs_state, irqhandler))
- MCFG_YM2203_AY8910_INTF(&tnzsb_ay8910_config)
MCFG_SOUND_ROUTE(0, "mono", 1.0)
MCFG_SOUND_ROUTE(1, "mono", 1.0)
MCFG_SOUND_ROUTE(2, "mono", 1.0)
@@ -1867,7 +1832,8 @@ static MACHINE_CONFIG_DERIVED( kabukiz, tnzsb )
MCFG_CPU_PROGRAM_MAP(kabukiz_cpu2_map)
MCFG_SOUND_MODIFY("ymsnd")
- MCFG_YM2203_AY8910_INTF(&kabukiz_ay8910_config)
+ MCFG_AY8910_PORT_A_WRITE_CB(WRITE8(tnzs_state, kabukiz_sound_bank_w))
+ MCFG_AY8910_PORT_B_WRITE_CB(WRITE8(tnzs_state, kabukiz_sample_w))
MCFG_DAC_ADD("dac")
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
diff --git a/src/mame/drivers/tonton.c b/src/mame/drivers/tonton.c
index 5a5fb720f38..4e15285c057 100644
--- a/src/mame/drivers/tonton.c
+++ b/src/mame/drivers/tonton.c
@@ -230,30 +230,6 @@ WRITE8_MEMBER(tonton_state::ay_bout_w)
logerror("AY8910: Port B out: %02X\n", data);
}
-
-/*************************************************
-* Sound Interfaces *
-*************************************************/
-
-static const ay8910_interface ay8910_intf =
-{
-/*
- AY8910: Port A out: FF
- AY8910: Port B out: FF
- AY8910: Port A out: FF
- AY8910: Port B out: FF
- AY8910: Port A out: 00
- AY8910: Port B out: 00
-*/
- AY8910_LEGACY_OUTPUT,
- AY8910_DEFAULT_LOADS,
- DEVCB_NULL, /* Seems unused */
- DEVCB_NULL, /* Seems unused */
- DEVCB_DRIVER_MEMBER(tonton_state,ay_aout_w), /* Write all bits twice, and then reset them at boot */
- DEVCB_DRIVER_MEMBER(tonton_state,ay_bout_w) /* Write all bits twice, and then reset them at boot */
-};
-
-
/*************************************************
* Machine Driver *
*************************************************/
@@ -288,7 +264,16 @@ static MACHINE_CONFIG_START( tonton, tonton_state )
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_SOUND_ADD("aysnd", YM2149, YM2149_CLOCK) /* Guess. According to other MSX2 based gambling games */
- MCFG_SOUND_CONFIG(ay8910_intf)
+ /*
+ AY8910: Port A out: FF
+ AY8910: Port B out: FF
+ AY8910: Port A out: FF
+ AY8910: Port B out: FF
+ AY8910: Port A out: 00
+ AY8910: Port B out: 00
+ */
+ MCFG_AY8910_PORT_A_WRITE_CB(WRITE8(tonton_state, ay_aout_w)) /* Write all bits twice, and then reset them at boot */
+ MCFG_AY8910_PORT_B_WRITE_CB(WRITE8(tonton_state, ay_bout_w)) /* Write all bits twice, and then reset them at boot */
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.70)
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/tubep.c b/src/mame/drivers/tubep.c
index 0ce71cbfce5..52c1a890607 100644
--- a/src/mame/drivers/tubep.c
+++ b/src/mame/drivers/tubep.c
@@ -847,44 +847,6 @@ static INPUT_PORTS_START( rjammer )
INPUT_PORTS_END
-
-/*************************************
- *
- * Sound definitions
- *
- *************************************/
-
-static const ay8910_interface ay8910_interface_1 =
-{
- AY8910_LEGACY_OUTPUT,
- AY8910_DEFAULT_LOADS,
- DEVCB_NULL,
- DEVCB_NULL,
- DEVCB_DRIVER_MEMBER(tubep_state,ay8910_portA_0_w), /* write port A */
- DEVCB_DRIVER_MEMBER(tubep_state,ay8910_portB_0_w) /* write port B */
-};
-
-static const ay8910_interface ay8910_interface_2 =
-{
- AY8910_LEGACY_OUTPUT,
- AY8910_DEFAULT_LOADS,
- DEVCB_NULL,
- DEVCB_NULL,
- DEVCB_DRIVER_MEMBER(tubep_state,ay8910_portA_1_w), /* write port A */
- DEVCB_DRIVER_MEMBER(tubep_state,ay8910_portB_1_w) /* write port B */
-};
-
-static const ay8910_interface ay8910_interface_3 =
-{
- AY8910_LEGACY_OUTPUT,
- AY8910_DEFAULT_LOADS,
- DEVCB_NULL,
- DEVCB_NULL,
- DEVCB_DRIVER_MEMBER(tubep_state,ay8910_portA_2_w), /* write port A */
- DEVCB_DRIVER_MEMBER(tubep_state,ay8910_portB_2_w) /* write port B */
-};
-
-
/*************************************
*
* Machine driver
@@ -932,15 +894,18 @@ static MACHINE_CONFIG_START( tubep, tubep_state )
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_SOUND_ADD("ay1", AY8910, 19968000 / 8 / 2)
- MCFG_SOUND_CONFIG(ay8910_interface_1)
+ MCFG_AY8910_PORT_A_WRITE_CB(WRITE8(tubep_state, ay8910_portA_0_w)) /* write port A */
+ MCFG_AY8910_PORT_B_WRITE_CB(WRITE8(tubep_state, ay8910_portB_0_w)) /* write port B */
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.10)
MCFG_SOUND_ADD("ay2", AY8910, 19968000 / 8 / 2)
- MCFG_SOUND_CONFIG(ay8910_interface_2)
+ MCFG_AY8910_PORT_A_WRITE_CB(WRITE8(tubep_state, ay8910_portA_1_w)) /* write port A */
+ MCFG_AY8910_PORT_B_WRITE_CB(WRITE8(tubep_state, ay8910_portB_1_w)) /* write port B */
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.10)
MCFG_SOUND_ADD("ay3", AY8910, 19968000 / 8 / 2)
- MCFG_SOUND_CONFIG(ay8910_interface_3)
+ MCFG_AY8910_PORT_A_WRITE_CB(WRITE8(tubep_state, ay8910_portA_2_w)) /* write port A */
+ MCFG_AY8910_PORT_B_WRITE_CB(WRITE8(tubep_state, ay8910_portB_2_w)) /* write port B */
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.10)
MACHINE_CONFIG_END
@@ -993,15 +958,18 @@ static MACHINE_CONFIG_START( rjammer, tubep_state )
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_SOUND_ADD("ay1", AY8910, 19968000 / 8 / 2)
- MCFG_SOUND_CONFIG(ay8910_interface_1)
+ MCFG_AY8910_PORT_A_WRITE_CB(WRITE8(tubep_state, ay8910_portA_0_w)) /* write port A */
+ MCFG_AY8910_PORT_B_WRITE_CB(WRITE8(tubep_state, ay8910_portB_0_w)) /* write port B */
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.10)
MCFG_SOUND_ADD("ay2", AY8910, 19968000 / 8 / 2)
- MCFG_SOUND_CONFIG(ay8910_interface_2)
+ MCFG_AY8910_PORT_A_WRITE_CB(WRITE8(tubep_state, ay8910_portA_1_w)) /* write port A */
+ MCFG_AY8910_PORT_B_WRITE_CB(WRITE8(tubep_state, ay8910_portB_1_w)) /* write port B */
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.10)
MCFG_SOUND_ADD("ay3", AY8910, 19968000 / 8 / 2)
- MCFG_SOUND_CONFIG(ay8910_interface_3)
+ MCFG_AY8910_PORT_A_WRITE_CB(WRITE8(tubep_state, ay8910_portA_2_w)) /* write port A */
+ MCFG_AY8910_PORT_B_WRITE_CB(WRITE8(tubep_state, ay8910_portB_2_w)) /* write port B */
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.10)
MCFG_SOUND_ADD("msm", MSM5205, 384000)
diff --git a/src/mame/drivers/twins.c b/src/mame/drivers/twins.c
index b7a2dea899c..a80c9b1e685 100644
--- a/src/mame/drivers/twins.c
+++ b/src/mame/drivers/twins.c
@@ -186,14 +186,6 @@ static INPUT_PORTS_START(twins)
INPUT_PORTS_END
-static const ay8910_interface ay8910_config =
-{
- AY8910_LEGACY_OUTPUT,
- AY8910_DEFAULT_LOADS,
- DEVCB_INPUT_PORT("P1"),
- DEVCB_INPUT_PORT("P2")
-};
-
static MACHINE_CONFIG_START( twins, twins_state )
/* basic machine hardware */
MCFG_CPU_ADD("maincpu", V30, 8000000)
@@ -218,7 +210,8 @@ static MACHINE_CONFIG_START( twins, twins_state )
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_SOUND_ADD("aysnd", AY8910, 2000000)
- MCFG_SOUND_CONFIG(ay8910_config)
+ MCFG_AY8910_PORT_A_READ_CB(IOPORT("P1"))
+ MCFG_AY8910_PORT_B_READ_CB(IOPORT("P2"))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
MACHINE_CONFIG_END
@@ -308,7 +301,8 @@ static MACHINE_CONFIG_START( twinsa, twins_state )
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_SOUND_ADD("aysnd", AY8910, XTAL_16MHz/8) /* verified on pcb */
- MCFG_SOUND_CONFIG(ay8910_config)
+ MCFG_AY8910_PORT_A_READ_CB(IOPORT("P1"))
+ MCFG_AY8910_PORT_B_READ_CB(IOPORT("P2"))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/tx1.c b/src/mame/drivers/tx1.c
index 5ba7dcf3890..bb6150dab9c 100644
--- a/src/mame/drivers/tx1.c
+++ b/src/mame/drivers/tx1.c
@@ -594,68 +594,6 @@ static ADDRESS_MAP_START( buggyboy_sound_io, AS_IO, 8, tx1_state )
AM_RANGE(0x80, 0x81) AM_DEVWRITE("ym2", ay8910_device, data_address_w)
ADDRESS_MAP_END
-
-/*************************************
- *
- * Sound Hardware
- *
- *************************************/
-
-static const ay8910_interface tx1_ay8910_interface =
-{
- AY8910_LEGACY_OUTPUT,
- AY8910_DEFAULT_LOADS,
- DEVCB_NULL,
- DEVCB_NULL,
- DEVCB_DEVICE_MEMBER("tx1", tx1_sound_device, ay8910_a_w),
- DEVCB_DEVICE_MEMBER("tx1", tx1_sound_device, ay8910_b_w),
-};
-
-
-static const ay8910_interface buggyboy_ym2149_interface_1 =
-{
- AY8910_LEGACY_OUTPUT,
- AY8910_DEFAULT_LOADS,
- DEVCB_NULL,
- DEVCB_NULL,
- DEVCB_DEVICE_MEMBER("buggyboy", buggyboy_sound_device, ym1_a_w),
- DEVCB_NULL,
-};
-
-static const ay8910_interface buggyboy_ym2149_interface_2 =
-{
- AY8910_LEGACY_OUTPUT,
- AY8910_DEFAULT_LOADS,
- DEVCB_NULL,
- DEVCB_NULL,
- DEVCB_DEVICE_MEMBER("buggyboy", buggyboy_sound_device, ym2_a_w),
- DEVCB_DEVICE_MEMBER("buggyboy", buggyboy_sound_device, ym2_b_w),
-};
-
-
-/* YM2149 IC19 */
-static const ay8910_interface buggybjr_ym2149_interface_1 =
-{
- AY8910_LEGACY_OUTPUT,
- AY8910_DEFAULT_LOADS,
- DEVCB_INPUT_PORT("YM2149_IC19_A"),
- DEVCB_INPUT_PORT("YM2149_IC19_B"),
- DEVCB_NULL,
- DEVCB_NULL,
-};
-
-/* YM2149 IC24 */
-static const ay8910_interface buggybjr_ym2149_interface_2 =
-{
- AY8910_LEGACY_OUTPUT,
- AY8910_DEFAULT_LOADS,
- DEVCB_NULL,
- DEVCB_NULL,
- DEVCB_DEVICE_MEMBER("buggyboy", buggyboy_sound_device, ym2_a_w),
- DEVCB_DEVICE_MEMBER("buggyboy", buggyboy_sound_device, ym2_b_w),
-};
-
-
/*************************************
*
* Machine driver
@@ -712,7 +650,8 @@ static MACHINE_CONFIG_START( tx1, tx1_state )
MCFG_SOUND_ADD("aysnd", AY8910, TX1_PIXEL_CLOCK / 8)
- MCFG_SOUND_CONFIG(tx1_ay8910_interface)
+ MCFG_AY8910_PORT_A_WRITE_CB(DEVWRITE8("tx1", tx1_sound_device, ay8910_a_w))
+ MCFG_AY8910_PORT_B_WRITE_CB(DEVWRITE8("tx1", tx1_sound_device, ay8910_b_w))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "frontleft", 0.1)
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "frontright", 0.1)
@@ -770,11 +709,12 @@ static MACHINE_CONFIG_START( buggyboy, tx1_state )
// MCFG_SPEAKER_STANDARD_STEREO("rearleft", "rearright")
MCFG_SOUND_ADD("ym1", YM2149, BUGGYBOY_ZCLK / 4)
- MCFG_SOUND_CONFIG(buggyboy_ym2149_interface_1)
+ MCFG_AY8910_PORT_A_WRITE_CB(DEVWRITE8("buggyboy", buggyboy_sound_device, ym1_a_w))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "frontleft", 0.15)
MCFG_SOUND_ADD("ym2", YM2149, BUGGYBOY_ZCLK / 4)
- MCFG_SOUND_CONFIG(buggyboy_ym2149_interface_2)
+ MCFG_AY8910_PORT_A_WRITE_CB(DEVWRITE8("buggyboy", buggyboy_sound_device, ym2_a_w))
+ MCFG_AY8910_PORT_B_WRITE_CB(DEVWRITE8("buggyboy", buggyboy_sound_device, ym2_b_w))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "frontright", 0.15)
MCFG_SOUND_ADD("buggyboy", BUGGYBOY, 0)
@@ -812,12 +752,14 @@ static MACHINE_CONFIG_START( buggybjr, tx1_state )
MCFG_SPEAKER_STANDARD_STEREO("frontleft", "frontright")
// MCFG_SPEAKER_STANDARD_STEREO("rearleft", "rearright")
- MCFG_SOUND_ADD("ym1", YM2149, BUGGYBOY_ZCLK / 4)
- MCFG_SOUND_CONFIG(buggybjr_ym2149_interface_1)
+ MCFG_SOUND_ADD("ym1", YM2149, BUGGYBOY_ZCLK / 4) /* YM2149 IC19 */
+ MCFG_AY8910_PORT_A_READ_CB(IOPORT("YM2149_IC19_A"))
+ MCFG_AY8910_PORT_B_READ_CB(IOPORT("YM2149_IC19_B"))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "frontleft", 0.15)
- MCFG_SOUND_ADD("ym2", YM2149, BUGGYBOY_ZCLK / 4)
- MCFG_SOUND_CONFIG(buggybjr_ym2149_interface_2)
+ MCFG_SOUND_ADD("ym2", YM2149, BUGGYBOY_ZCLK / 4) /* YM2149 IC24 */
+ MCFG_AY8910_PORT_A_WRITE_CB(DEVWRITE8("buggyboy", buggyboy_sound_device, ym2_a_w))
+ MCFG_AY8910_PORT_B_WRITE_CB(DEVWRITE8("buggyboy", buggyboy_sound_device, ym2_b_w))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "frontright", 0.15)
MCFG_SOUND_ADD("buggyboy", BUGGYBOY, 0)
diff --git a/src/mame/drivers/vastar.c b/src/mame/drivers/vastar.c
index 018c5503d88..64b794f8475 100644
--- a/src/mame/drivers/vastar.c
+++ b/src/mame/drivers/vastar.c
@@ -403,17 +403,6 @@ static GFXDECODE_START( vastar )
GFXDECODE_END
-
-static const ay8910_interface ay8910_config =
-{
- AY8910_LEGACY_OUTPUT,
- AY8910_DEFAULT_LOADS,
- DEVCB_INPUT_PORT("DSW1"),
- DEVCB_INPUT_PORT("DSW2"),
- DEVCB_NULL,
- DEVCB_NULL
-};
-
INTERRUPT_GEN_MEMBER(vastar_state::vblank_irq)
{
if(m_nmi_mask)
@@ -451,7 +440,8 @@ static MACHINE_CONFIG_START( vastar, vastar_state )
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_SOUND_ADD("aysnd", AY8910, XTAL_18_432MHz/12)
- MCFG_SOUND_CONFIG(ay8910_config)
+ MCFG_AY8910_PORT_A_READ_CB(IOPORT("DSW1"))
+ MCFG_AY8910_PORT_B_READ_CB(IOPORT("DSW2"))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50)
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/vectrex.c b/src/mame/drivers/vectrex.c
index ac417cc4113..7e6bd5792b8 100644
--- a/src/mame/drivers/vectrex.c
+++ b/src/mame/drivers/vectrex.c
@@ -84,18 +84,6 @@ static INPUT_PORTS_START(vectrex)
INPUT_PORTS_END
-
-
-static const ay8910_interface vectrex_ay8910_interface =
-{
- AY8910_LEGACY_OUTPUT,
- AY8910_DEFAULT_LOADS,
- DEVCB_INPUT_PORT("BUTTONS"),
- DEVCB_NULL,
- DEVCB_DRIVER_MEMBER(vectrex_state, vectrex_psg_port_w),
- DEVCB_NULL
-};
-
static MACHINE_CONFIG_START( vectrex, vectrex_state )
/* basic machine hardware */
MCFG_CPU_ADD("maincpu", M6809, XTAL_6MHz / 4)
@@ -115,7 +103,8 @@ static MACHINE_CONFIG_START( vectrex, vectrex_state )
MCFG_DAC_ADD("dac")
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50)
MCFG_SOUND_ADD("ay8912", AY8912, 1500000)
- MCFG_SOUND_CONFIG(vectrex_ay8910_interface)
+ MCFG_AY8910_PORT_A_READ_CB(IOPORT("BUTTONS"))
+ MCFG_AY8910_PORT_A_WRITE_CB(WRITE8(vectrex_state, vectrex_psg_port_w))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.20)
/* via */
diff --git a/src/mame/drivers/vega.c b/src/mame/drivers/vega.c
index 4d19eb34a20..349b48b3ee3 100644
--- a/src/mame/drivers/vega.c
+++ b/src/mame/drivers/vega.c
@@ -795,17 +795,6 @@ READ8_MEMBER(vega_state::randomizer )
return (ioport("IN1")->read()&7)|(machine().rand()&(~7));
}
-
-static const ay8910_interface ay8910_inf =
-{
- AY8910_LEGACY_OUTPUT,
- AY8910_DEFAULT_LOADS,
- DEVCB_DRIVER_MEMBER(vega_state, ay8910_pa_r),
- DEVCB_DRIVER_MEMBER(vega_state, ay8910_pb_r),
- DEVCB_DRIVER_MEMBER(vega_state, ay8910_pa_w),
- DEVCB_DRIVER_MEMBER(vega_state, ay8910_pb_w)
-};
-
void vega_state::machine_start()
{
}
@@ -852,7 +841,10 @@ static MACHINE_CONFIG_START( vega, vega_state )
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_SOUND_ADD("ay8910", AY8910, 1500000 )
- MCFG_SOUND_CONFIG(ay8910_inf)
+ MCFG_AY8910_PORT_A_READ_CB(READ8(vega_state, ay8910_pa_r))
+ MCFG_AY8910_PORT_B_READ_CB(READ8(vega_state, ay8910_pb_r))
+ MCFG_AY8910_PORT_A_WRITE_CB(WRITE8(vega_state, ay8910_pa_w))
+ MCFG_AY8910_PORT_B_WRITE_CB(WRITE8(vega_state, ay8910_pb_w))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50)
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/videopkr.c b/src/mame/drivers/videopkr.c
index 7a9a6945464..a55048bfc8d 100644
--- a/src/mame/drivers/videopkr.c
+++ b/src/mame/drivers/videopkr.c
@@ -1222,17 +1222,6 @@ void videopkr_state::machine_start()
machine().device<nvram_device>("nvram")->set_base(m_data_ram, sizeof(m_data_ram));
}
-static const ay8910_interface ay8910_config =
-{
- AY8910_LEGACY_OUTPUT,
- AY8910_DEFAULT_LOADS,
- /* no ports used */
- DEVCB_NULL,
- DEVCB_NULL,
- DEVCB_NULL,
- DEVCB_NULL
-};
-
/************************
* Machine Drivers *
************************/
@@ -1322,8 +1311,7 @@ static MACHINE_CONFIG_DERIVED( babypkr, videopkr )
MCFG_GFXDECODE_MODIFY("gfxdecode", videodad)
MCFG_VIDEO_START_OVERRIDE(videopkr_state,vidadcba)
- MCFG_SOUND_ADD("aysnd", AY8910, CPU_CLOCK / 6)
- MCFG_SOUND_CONFIG(ay8910_config)
+ MCFG_SOUND_ADD("aysnd", AY8910, CPU_CLOCK / 6) /* no ports used */
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.30)
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/vigilant.c b/src/mame/drivers/vigilant.c
index 77c25efb6ed..4df1ad1c28e 100644
--- a/src/mame/drivers/vigilant.c
+++ b/src/mame/drivers/vigilant.c
@@ -459,15 +459,6 @@ static GFXDECODE_START( kikcubic )
GFXDECODE_END
-
-static const ay8910_interface ay8910_config =
-{
- AY8910_LEGACY_OUTPUT,
- AY8910_DEFAULT_LOADS,
- DEVCB_NULL, DEVCB_NULL, DEVCB_NULL, DEVCB_NULL
-};
-
-
static MACHINE_CONFIG_START( vigilant, vigilant_state )
/* basic machine hardware */
@@ -542,7 +533,6 @@ static MACHINE_CONFIG_START( buccanrs, vigilant_state )
MCFG_SOUND_ADD("ym1", YM2203, 18432000/6)
MCFG_YM2203_IRQ_HANDLER(DEVWRITELINE("m72", m72_audio_device, ym2151_irq_handler))
- MCFG_YM2203_AY8910_INTF(&ay8910_config)
MCFG_SOUND_ROUTE(0, "lspeaker", 0.35)
MCFG_SOUND_ROUTE(0, "rspeaker", 0.35)
MCFG_SOUND_ROUTE(1, "lspeaker", 0.35)
diff --git a/src/mame/drivers/volfied.c b/src/mame/drivers/volfied.c
index 8c7bbc3a12a..afdd8074447 100644
--- a/src/mame/drivers/volfied.c
+++ b/src/mame/drivers/volfied.c
@@ -210,17 +210,6 @@ WRITE_LINE_MEMBER(volfied_state::irqhandler)
m_audiocpu->set_input_line(0, state ? ASSERT_LINE : CLEAR_LINE);
}
-static const ay8910_interface ay8910_config =
-{
- AY8910_LEGACY_OUTPUT,
- AY8910_DEFAULT_LOADS,
- DEVCB_INPUT_PORT("DSWA"),
- DEVCB_INPUT_PORT("DSWB"),
- DEVCB_NULL,
- DEVCB_NULL,
-};
-
-
/***********************************************************
MACHINE DRIVERS
***********************************************************/
@@ -270,7 +259,8 @@ static MACHINE_CONFIG_START( volfied, volfied_state )
MCFG_SOUND_ADD("ymsnd", YM2203, 4000000)
MCFG_YM2203_IRQ_HANDLER(WRITELINE(volfied_state, irqhandler))
- MCFG_YM2203_AY8910_INTF(&ay8910_config)
+ MCFG_AY8910_PORT_A_READ_CB(IOPORT("DSWA"))
+ MCFG_AY8910_PORT_B_READ_CB(IOPORT("DSWB"))
MCFG_SOUND_ROUTE(0, "mono", 0.15)
MCFG_SOUND_ROUTE(1, "mono", 0.15)
MCFG_SOUND_ROUTE(2, "mono", 0.15)
diff --git a/src/mame/drivers/vroulet.c b/src/mame/drivers/vroulet.c
index 0c1d2e89b43..7c0c4e4a014 100644
--- a/src/mame/drivers/vroulet.c
+++ b/src/mame/drivers/vroulet.c
@@ -250,18 +250,6 @@ static GFXDECODE_START( vroulet )
GFXDECODE_ENTRY( "gfx1", 0x0000, charlayout, 0, 32 )
GFXDECODE_END
-/* Sound Interface */
-
-static const ay8910_interface ay8910_config =
-{
- AY8910_LEGACY_OUTPUT,
- AY8910_DEFAULT_LOADS,
- DEVCB_INPUT_PORT("DSWA"),
- DEVCB_INPUT_PORT("DSWB"),
- DEVCB_NULL,
- DEVCB_NULL
-};
-
/* PPI8255 Interface */
WRITE8_MEMBER(vroulet_state::ppi8255_a_w){}// watchdog ?
@@ -305,7 +293,8 @@ static MACHINE_CONFIG_START( vroulet, vroulet_state )
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_SOUND_ADD("aysnd", AY8910, 2000000)
- MCFG_SOUND_CONFIG(ay8910_config)
+ MCFG_AY8910_PORT_A_READ_CB(IOPORT("DSWA"))
+ MCFG_AY8910_PORT_B_READ_CB(IOPORT("DSWB"))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25)
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/warriorb.c b/src/mame/drivers/warriorb.c
index d1e5ac643e7..67b15324864 100644
--- a/src/mame/drivers/warriorb.c
+++ b/src/mame/drivers/warriorb.c
@@ -506,6 +506,7 @@ static MACHINE_CONFIG_START( darius2d, warriorb_state )
MCFG_SOUND_ADD("ymsnd", YM2610, 16000000/2)
MCFG_YM2610_IRQ_HANDLER(WRITELINE(warriorb_state, irqhandler))
+ MCFG_AY8910_OUTPUT_TYPE(AY8910_LEGACY_OUTPUT | AY8910_SINGLE_OUTPUT)
MCFG_SOUND_ROUTE(0, "lspeaker", 0.25)
MCFG_SOUND_ROUTE(0, "rspeaker", 0.25)
MCFG_SOUND_ROUTE(1, "2610.1.l", 1.0)
@@ -595,6 +596,7 @@ static MACHINE_CONFIG_START( warriorb, warriorb_state )
MCFG_SOUND_ADD("ymsnd", YM2610, 16000000/2)
MCFG_YM2610_IRQ_HANDLER(WRITELINE(warriorb_state, irqhandler))
+ MCFG_AY8910_OUTPUT_TYPE(AY8910_LEGACY_OUTPUT | AY8910_SINGLE_OUTPUT)
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/wc90.c b/src/mame/drivers/wc90.c
index bfd0dcf9cb3..8e91db51ee0 100644
--- a/src/mame/drivers/wc90.c
+++ b/src/mame/drivers/wc90.c
@@ -295,13 +295,6 @@ WRITE_LINE_MEMBER(wc90_state::irqhandler)
m_audiocpu->set_input_line(0, state ? ASSERT_LINE : CLEAR_LINE);
}
-static const ay8910_interface ay8910_config =
-{
- AY8910_LEGACY_OUTPUT | AY8910_SINGLE_OUTPUT,
- AY8910_DEFAULT_LOADS,
- DEVCB_NULL, DEVCB_NULL, DEVCB_NULL, DEVCB_NULL
-};
-
static MACHINE_CONFIG_START( wc90, wc90_state )
/* basic machine hardware */
@@ -336,7 +329,7 @@ static MACHINE_CONFIG_START( wc90, wc90_state )
MCFG_SOUND_ADD("ymsnd", YM2608, XTAL_8MHz) /* verified on pcb */
MCFG_YM2608_IRQ_HANDLER(WRITELINE(wc90_state, irqhandler))
- MCFG_YM2608_AY8910_INTF(&ay8910_config)
+ MCFG_AY8910_OUTPUT_TYPE(AY8910_LEGACY_OUTPUT | AY8910_SINGLE_OUTPUT)
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/wc90b.c b/src/mame/drivers/wc90b.c
index d8cfba9486b..4a6567bf9fc 100644
--- a/src/mame/drivers/wc90b.c
+++ b/src/mame/drivers/wc90b.c
@@ -329,13 +329,6 @@ WRITE_LINE_MEMBER(wc90b_state::irqhandler)
//m_audiocpu->set_input_line(INPUT_LINE_NMI, state ? ASSERT_LINE : CLEAR_LINE);
}
-static const ay8910_interface ay8910_config =
-{
- AY8910_LEGACY_OUTPUT,
- AY8910_DEFAULT_LOADS,
- DEVCB_NULL, DEVCB_NULL, DEVCB_NULL, DEVCB_NULL
-};
-
WRITE_LINE_MEMBER(wc90b_state::adpcm_int)
{
m_toggle ^= 1;
@@ -383,7 +376,6 @@ static MACHINE_CONFIG_START( wc90b, wc90b_state )
MCFG_SOUND_ADD("ymsnd", YM2203, YM2203_CLOCK)
MCFG_YM2203_IRQ_HANDLER(WRITELINE(wc90b_state, irqhandler))
- MCFG_YM2203_AY8910_INTF(&ay8910_config)
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.20)
MCFG_SOUND_ADD("msm", MSM5205, MSM5205_CLOCK)
diff --git a/src/mame/drivers/welltris.c b/src/mame/drivers/welltris.c
index 0a2f85af086..746462c8f72 100644
--- a/src/mame/drivers/welltris.c
+++ b/src/mame/drivers/welltris.c
@@ -729,6 +729,7 @@ static MACHINE_CONFIG_START( welltris, welltris_state )
MCFG_SOUND_ADD("ymsnd", YM2610, 8000000)
MCFG_YM2610_IRQ_HANDLER(WRITELINE(welltris_state, irqhandler))
+ MCFG_AY8910_OUTPUT_TYPE(AY8910_LEGACY_OUTPUT | AY8910_SINGLE_OUTPUT)
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 15690550362..6227105cee6 100644
--- a/src/mame/drivers/wgp.c
+++ b/src/mame/drivers/wgp.c
@@ -981,6 +981,7 @@ static MACHINE_CONFIG_START( wgp, wgp_state )
MCFG_SOUND_ADD("ymsnd", YM2610, 16000000/2)
MCFG_YM2610_IRQ_HANDLER(WRITELINE(wgp_state, irqhandler))
+ MCFG_AY8910_OUTPUT_TYPE(AY8910_LEGACY_OUTPUT | AY8910_SINGLE_OUTPUT)
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/wink.c b/src/mame/drivers/wink.c
index d124bd167f7..3e7a8975669 100644
--- a/src/mame/drivers/wink.c
+++ b/src/mame/drivers/wink.c
@@ -325,16 +325,6 @@ READ8_MEMBER(wink_state::sound_r)
return m_sound_flag;
}
-static const ay8910_interface ay8912_interface =
-{
- AY8910_LEGACY_OUTPUT,
- AY8910_DEFAULT_LOADS,
- DEVCB_DRIVER_MEMBER(wink_state,sound_r),
- DEVCB_NULL,
- DEVCB_NULL,
- DEVCB_NULL
-};
-
//AY portA is fed by an input clock at 15625 Hz
INTERRUPT_GEN_MEMBER(wink_state::wink_sound)
{
@@ -377,7 +367,7 @@ static MACHINE_CONFIG_START( wink, wink_state )
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_SOUND_ADD("aysnd", AY8912, 12000000 / 8)
- MCFG_SOUND_CONFIG(ay8912_interface)
+ MCFG_AY8910_PORT_A_READ_CB(READ8(wink_state, sound_r))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/witch.c b/src/mame/drivers/witch.c
index a1c98e52b53..8c61a876179 100644
--- a/src/mame/drivers/witch.c
+++ b/src/mame/drivers/witch.c
@@ -487,26 +487,6 @@ WRITE8_MEMBER(witch_state::yscroll_w)
m_scrolly=data;
}
-static const ay8910_interface ay8910_config_1 =
-{
- AY8910_LEGACY_OUTPUT,
- AY8910_DEFAULT_LOADS,
- DEVCB_INPUT_PORT("YM_PortA"),
- DEVCB_INPUT_PORT("YM_PortB"),
- DEVCB_NULL,
- DEVCB_NULL
-};
-
-static const ay8910_interface ay8910_config_2 =
-{
- AY8910_LEGACY_OUTPUT,
- AY8910_DEFAULT_LOADS,
- DEVCB_NULL,
- DEVCB_NULL,
- DEVCB_DRIVER_MEMBER(witch_state,xscroll_w),
- DEVCB_DRIVER_MEMBER(witch_state,yscroll_w)
-};
-
static ADDRESS_MAP_START( map_main, AS_PROGRAM, 8, witch_state )
AM_RANGE(0x0000, UNBANKED_SIZE-1) AM_ROM
AM_RANGE(UNBANKED_SIZE, 0x7fff) AM_ROMBANK("bank1")
@@ -858,11 +838,13 @@ static MACHINE_CONFIG_START( witch, witch_state )
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0)
MCFG_SOUND_ADD("ym1", YM2203, YM2203_CLOCK) /* 3 MHz */
- MCFG_YM2203_AY8910_INTF(&ay8910_config_1)
+ MCFG_AY8910_PORT_A_READ_CB(IOPORT("YM_PortA"))
+ MCFG_AY8910_PORT_B_READ_CB(IOPORT("YM_PortB"))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.5)
MCFG_SOUND_ADD("ym2", YM2203, YM2203_CLOCK) /* 3 MHz */
- MCFG_YM2203_AY8910_INTF(&ay8910_config_2)
+ MCFG_AY8910_PORT_A_WRITE_CB(WRITE8(witch_state, xscroll_w))
+ MCFG_AY8910_PORT_B_WRITE_CB(WRITE8(witch_state, yscroll_w))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.5)
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/wyvernf0.c b/src/mame/drivers/wyvernf0.c
index 26d980e84a5..6a8fe99b5e4 100644
--- a/src/mame/drivers/wyvernf0.c
+++ b/src/mame/drivers/wyvernf0.c
@@ -594,26 +594,6 @@ GFXDECODE_END
***************************************************************************/
-static const ay8910_interface wyvernf0_ay8910_intf_1 =
-{
- AY8910_LEGACY_OUTPUT,
- AY8910_DEFAULT_LOADS,
- DEVCB_NULL,
- DEVCB_NULL,
- DEVCB_NULL,
- DEVCB_NULL
-};
-
-static const ay8910_interface wyvernf0_ay8910_intf_2 =
-{
- AY8910_LEGACY_OUTPUT,
- AY8910_DEFAULT_LOADS,
- DEVCB_NULL,
- DEVCB_NULL,
- DEVCB_NULL,
- DEVCB_NULL
-};
-
MACHINE_START_MEMBER(wyvernf0_state,wyvernf0)
{
UINT8 *ROM = memregion("rombank")->base();
@@ -682,12 +662,10 @@ static MACHINE_CONFIG_START( wyvernf0, wyvernf0_state )
// coin, fire, lift-off
MCFG_SOUND_ADD("ay1", YM2149, 3000000) // YM2149 clock ??, pin 26 ??
- MCFG_SOUND_CONFIG(wyvernf0_ay8910_intf_1)
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.5)
// lift-off, explosion (saucers), boss alarm
MCFG_SOUND_ADD("ay2", YM2149, 3000000) // YM2149 clock ??, pin 26 ??
- MCFG_SOUND_CONFIG(wyvernf0_ay8910_intf_2)
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.5)
// music
diff --git a/src/mame/drivers/xain.c b/src/mame/drivers/xain.c
index a68156453da..146066a87b2 100644
--- a/src/mame/drivers/xain.c
+++ b/src/mame/drivers/xain.c
@@ -555,13 +555,6 @@ WRITE_LINE_MEMBER(xain_state::irqhandler)
m_audiocpu->set_input_line(M6809_FIRQ_LINE, state ? ASSERT_LINE : CLEAR_LINE);
}
-static const ay8910_interface ay8910_config =
-{
- AY8910_LEGACY_OUTPUT,
- AY8910_DEFAULT_LOADS,
- DEVCB_NULL, DEVCB_NULL, DEVCB_NULL, DEVCB_NULL
-};
-
void xain_state::machine_start()
{
membank("bank1")->configure_entries(0, 2, memregion("maincpu")->base() + 0x4000, 0xc000);
@@ -604,7 +597,6 @@ static MACHINE_CONFIG_START( xsleena, xain_state )
MCFG_SOUND_ADD("ym1", YM2203, MCU_CLOCK)
MCFG_YM2203_IRQ_HANDLER(WRITELINE(xain_state, irqhandler))
- MCFG_YM2203_AY8910_INTF(&ay8910_config)
MCFG_SOUND_ROUTE(0, "mono", 0.50)
MCFG_SOUND_ROUTE(1, "mono", 0.50)
MCFG_SOUND_ROUTE(2, "mono", 0.50)
diff --git a/src/mame/drivers/xxmissio.c b/src/mame/drivers/xxmissio.c
index 72157105d14..4d247909568 100644
--- a/src/mame/drivers/xxmissio.c
+++ b/src/mame/drivers/xxmissio.c
@@ -253,26 +253,6 @@ GFXDECODE_END
/****************************************************************************/
-static const ay8910_interface ay8910_config_1 =
-{
- AY8910_LEGACY_OUTPUT,
- AY8910_DEFAULT_LOADS,
- DEVCB_INPUT_PORT("DSW1"),
- DEVCB_INPUT_PORT("DSW2"),
- DEVCB_NULL,
- DEVCB_NULL
-};
-
-static const ay8910_interface ay8910_config_2 =
-{
- AY8910_LEGACY_OUTPUT,
- AY8910_DEFAULT_LOADS,
- DEVCB_NULL,
- DEVCB_NULL,
- DEVCB_DRIVER_MEMBER(xxmissio_state, xxmissio_scroll_x_w),
- DEVCB_DRIVER_MEMBER(xxmissio_state, xxmissio_scroll_y_w)
-};
-
static MACHINE_CONFIG_START( xxmissio, xxmissio_state )
/* basic machine hardware */
@@ -305,14 +285,16 @@ static MACHINE_CONFIG_START( xxmissio, xxmissio_state )
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_SOUND_ADD("ym1", YM2203, 12000000/8)
- MCFG_YM2203_AY8910_INTF(&ay8910_config_1)
+ MCFG_AY8910_PORT_A_READ_CB(IOPORT("DSW1"))
+ MCFG_AY8910_PORT_B_READ_CB(IOPORT("DSW2"))
MCFG_SOUND_ROUTE(0, "mono", 0.15)
MCFG_SOUND_ROUTE(1, "mono", 0.15)
MCFG_SOUND_ROUTE(2, "mono", 0.15)
MCFG_SOUND_ROUTE(3, "mono", 0.40)
MCFG_SOUND_ADD("ym2", YM2203, 12000000/8)
- MCFG_YM2203_AY8910_INTF(&ay8910_config_2)
+ MCFG_AY8910_PORT_A_WRITE_CB(WRITE8(xxmissio_state, xxmissio_scroll_x_w))
+ MCFG_AY8910_PORT_B_WRITE_CB(WRITE8(xxmissio_state, xxmissio_scroll_y_w))
MCFG_SOUND_ROUTE(0, "mono", 0.15)
MCFG_SOUND_ROUTE(1, "mono", 0.15)
MCFG_SOUND_ROUTE(2, "mono", 0.15)
diff --git a/src/mame/drivers/zaccaria.c b/src/mame/drivers/zaccaria.c
index 763c0230d0e..51b7067b544 100644
--- a/src/mame/drivers/zaccaria.c
+++ b/src/mame/drivers/zaccaria.c
@@ -508,16 +508,6 @@ static GFXDECODE_START( zaccaria )
GFXDECODE_END
-static const ay8910_interface ay8910_config =
-{
- AY8910_LEGACY_OUTPUT,
- AY8910_DEFAULT_LOADS,
- DEVCB_NULL,
- DEVCB_DRIVER_MEMBER(driver_device, soundlatch2_byte_r),
- DEVCB_DRIVER_MEMBER(zaccaria_state,ay8910_port0a_w),
- DEVCB_NULL
-};
-
INTERRUPT_GEN_MEMBER(zaccaria_state::vblank_irq)
{
if(m_nmi_mask)
@@ -578,7 +568,8 @@ static MACHINE_CONFIG_START( zaccaria, zaccaria_state )
MCFG_SPEAKER_STANDARD_MONO("mono")
MCFG_SOUND_ADD("ay1", AY8910, XTAL_3_579545MHz/2) /* verified on pcb */
- MCFG_SOUND_CONFIG(ay8910_config)
+ MCFG_AY8910_PORT_B_READ_CB(READ8(driver_device, soundlatch_byte_r))
+ MCFG_AY8910_PORT_A_WRITE_CB(WRITE8(zaccaria_state, ay8910_port0a_w))
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.15)
MCFG_SOUND_ADD("ay2", AY8910, XTAL_3_579545MHz/2) /* verified on pcb */
diff --git a/src/mame/drivers/zn.c b/src/mame/drivers/zn.c
index e71c2e7661a..9fa08e60f9e 100644
--- a/src/mame/drivers/zn.c
+++ b/src/mame/drivers/zn.c
@@ -1153,6 +1153,7 @@ static MACHINE_CONFIG_DERIVED( coh1000ta, zn1_1mb_vram )
MCFG_SOUND_ADD("ymsnd", YM2610B, XTAL_16MHz/2)
MCFG_YM2610_IRQ_HANDLER(WRITELINE(zn_state, irqhandler))
+ MCFG_AY8910_OUTPUT_TYPE(AY8910_LEGACY_OUTPUT | AY8910_SINGLE_OUTPUT)
MCFG_SOUND_ROUTE(0, "lspeaker", 0.25)
MCFG_SOUND_ROUTE(0, "rspeaker", 0.25)
MCFG_SOUND_ROUTE(1, "lspeaker", 1.0)