diff options
Diffstat (limited to 'src/mame/drivers/pooyan.cpp')
-rw-r--r-- | src/mame/drivers/pooyan.cpp | 48 |
1 files changed, 46 insertions, 2 deletions
diff --git a/src/mame/drivers/pooyan.cpp b/src/mame/drivers/pooyan.cpp index faa5493408f..a7c3550867f 100644 --- a/src/mame/drivers/pooyan.cpp +++ b/src/mame/drivers/pooyan.cpp @@ -20,6 +20,7 @@ #include "machine/gen_latch.h" #include "machine/watchdog.h" #include "screen.h" +#include "speaker.h" #define MASTER_CLOCK XTAL_18_432MHz @@ -191,8 +192,18 @@ void pooyan_state::machine_start() save_item(NAME(m_irq_enable)); } +static ADDRESS_MAP_START( timeplt_sound_map, AS_PROGRAM, 8, timeplt_audio_device ) + AM_RANGE(0x0000, 0x2fff) AM_ROM + AM_RANGE(0x3000, 0x33ff) AM_MIRROR(0x0c00) AM_RAM + AM_RANGE(0x4000, 0x4000) AM_MIRROR(0x0fff) AM_DEVREADWRITE("ay1", ay8910_device, data_r, data_w) + AM_RANGE(0x5000, 0x5000) AM_MIRROR(0x0fff) AM_DEVWRITE("ay1", ay8910_device, address_w) + AM_RANGE(0x6000, 0x6000) AM_MIRROR(0x0fff) AM_DEVREADWRITE("ay2", ay8910_device, data_r, data_w) + AM_RANGE(0x7000, 0x7000) AM_MIRROR(0x0fff) AM_DEVWRITE("ay2", ay8910_device, address_w) + AM_RANGE(0x8000, 0xffff) AM_DEVWRITE("timeplt_audio", timeplt_audio_device, filter_w) +ADDRESS_MAP_END + -static MACHINE_CONFIG_START( pooyan ) +MACHINE_CONFIG_START(pooyan_state::pooyan) /* basic machine hardware */ MCFG_CPU_ADD("maincpu", Z80, MASTER_CLOCK/3/2) @@ -227,7 +238,40 @@ static MACHINE_CONFIG_START( pooyan ) MCFG_GENERIC_LATCH_8_ADD("soundlatch") - MCFG_FRAGMENT_ADD(timeplt_sound) + /* basic machine hardware */ + MCFG_CPU_ADD("tpsound",Z80,MASTER_CLOCK/8) + MCFG_CPU_PROGRAM_MAP(timeplt_sound_map) + + /* sound hardware */ + MCFG_SPEAKER_STANDARD_MONO("mono") + + MCFG_SOUND_ADD("timeplt_audio", TIMEPLT_AUDIO, 0) + + MCFG_SOUND_ADD("ay1", AY8910, MASTER_CLOCK/8) + MCFG_AY8910_PORT_A_READ_CB(DEVREAD8("soundlatch", generic_latch_8_device, read)) + MCFG_AY8910_PORT_B_READ_CB(DEVREAD8("timeplt_audio", timeplt_audio_device, portB_r)) + MCFG_SOUND_ROUTE(0, "filter.0.0", 0.60) + MCFG_SOUND_ROUTE(1, "filter.0.1", 0.60) + MCFG_SOUND_ROUTE(2, "filter.0.2", 0.60) + + MCFG_SOUND_ADD("ay2", AY8910, MASTER_CLOCK/8) + MCFG_SOUND_ROUTE(0, "filter.1.0", 0.60) + MCFG_SOUND_ROUTE(1, "filter.1.1", 0.60) + MCFG_SOUND_ROUTE(2, "filter.1.2", 0.60) + + MCFG_FILTER_RC_ADD("filter.0.0", 0) + MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) + MCFG_FILTER_RC_ADD("filter.0.1", 0) + MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) + MCFG_FILTER_RC_ADD("filter.0.2", 0) + MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) + + MCFG_FILTER_RC_ADD("filter.1.0", 0) + MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) + MCFG_FILTER_RC_ADD("filter.1.1", 0) + MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) + MCFG_FILTER_RC_ADD("filter.1.2", 0) + MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.0) MACHINE_CONFIG_END |