summaryrefslogtreecommitdiffstatshomepage
path: root/src/mame/drivers/pooyan.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mame/drivers/pooyan.cpp')
-rw-r--r--src/mame/drivers/pooyan.cpp48
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