summaryrefslogtreecommitdiffstatshomepage
path: root/src/mame/drivers/segacoin.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/mame/drivers/segacoin.c')
-rw-r--r--src/mame/drivers/segacoin.c142
1 files changed, 142 insertions, 0 deletions
diff --git a/src/mame/drivers/segacoin.c b/src/mame/drivers/segacoin.c
new file mode 100644
index 00000000000..6a34018ef1b
--- /dev/null
+++ b/src/mame/drivers/segacoin.c
@@ -0,0 +1,142 @@
+// license:BSD-3-Clause
+// copyright-holders:hap
+/***************************************************************************
+
+ Sega Z80 Coin Pusher hardware
+
+ 1992 - Western Dream
+ * 2 x Z80 (prg, sound), 3 x YM3438 (6ch), ..
+ Hexagon shaped cab, with a toy train riding circles in the top compartment.
+ 6 players, each with a coin pusher, and a LED roulette on the back panel.
+
+ more...
+
+
+TODO:
+- everything
+
+***************************************************************************/
+
+#include "emu.h"
+#include "cpu/z80/z80.h"
+//#include "sound/2612intf.h"
+
+
+class segacoin_state : public driver_device
+{
+public:
+ segacoin_state(const machine_config &mconfig, device_type type, const char *tag)
+ : driver_device(mconfig, type, tag),
+ m_maincpu(*this, "maincpu"),
+ m_audiocpu(*this, "audiocpu")
+ { }
+
+ required_device<cpu_device> m_maincpu;
+ required_device<cpu_device> m_audiocpu;
+};
+
+
+/***************************************************************************
+
+ I/O
+
+***************************************************************************/
+
+/* Memory maps */
+
+static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8, segacoin_state )
+ AM_RANGE(0x0000, 0x7fff) AM_ROM
+ AM_RANGE(0xe000, 0xffff) AM_RAM
+ADDRESS_MAP_END
+
+static ADDRESS_MAP_START( main_portmap, AS_IO, 8, segacoin_state )
+ ADDRESS_MAP_UNMAP_HIGH
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
+ADDRESS_MAP_END
+
+
+static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8, segacoin_state )
+ AM_RANGE(0x0000, 0x7fff) AM_ROM
+ AM_RANGE(0xe000, 0xffff) AM_RAM
+ADDRESS_MAP_END
+
+static ADDRESS_MAP_START( sound_portmap, AS_IO, 8, segacoin_state )
+ ADDRESS_MAP_UNMAP_HIGH
+ ADDRESS_MAP_GLOBAL_MASK(0xff)
+ADDRESS_MAP_END
+
+
+
+/***************************************************************************
+
+ Inputs
+
+***************************************************************************/
+
+static INPUT_PORTS_START( westdrm )
+ // just some test stuff
+ PORT_START("IN0")
+ PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP )
+ PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN )
+ PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT )
+ PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT )
+ PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 )
+ PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_BUTTON2 )
+ PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_BUTTON3 )
+ PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_BUTTON4 )
+
+ PORT_START("IN1")
+ PORT_DIPUNKNOWN_DIPLOC( 0x01, 0x01, "SW1:1" )
+ PORT_DIPUNKNOWN_DIPLOC( 0x02, 0x02, "SW1:2" )
+ PORT_DIPUNKNOWN_DIPLOC( 0x04, 0x04, "SW1:3" )
+ PORT_DIPUNKNOWN_DIPLOC( 0x08, 0x08, "SW1:4" )
+ PORT_DIPUNKNOWN_DIPLOC( 0x10, 0x10, "SW1:5" )
+ PORT_DIPUNKNOWN_DIPLOC( 0x20, 0x20, "SW1:6" )
+ PORT_DIPUNKNOWN_DIPLOC( 0x40, 0x40, "SW1:7" )
+ PORT_DIPUNKNOWN_DIPLOC( 0x80, 0x80, "SW1:8" )
+INPUT_PORTS_END
+
+
+
+/***************************************************************************
+
+ Machine Config
+
+***************************************************************************/
+
+static MACHINE_CONFIG_START( westdrm, segacoin_state )
+
+ /* basic machine hardware */
+ MCFG_CPU_ADD("maincpu", Z80, 8000000) // clock frequency unknown
+ MCFG_CPU_PROGRAM_MAP(main_map)
+ MCFG_CPU_IO_MAP(main_portmap)
+
+ MCFG_CPU_ADD("audiocpu", Z80, 8000000) // clock frequency unknown
+ MCFG_CPU_PROGRAM_MAP(sound_map)
+ MCFG_CPU_IO_MAP(sound_portmap)
+
+ /* no video! */
+
+ /* sound hardware */
+ //..
+MACHINE_CONFIG_END
+
+
+
+/***************************************************************************
+
+ Game drivers
+
+***************************************************************************/
+
+ROM_START( westdrm )
+ ROM_REGION( 0x10000, "maincpu", 0 )
+ ROM_LOAD( "epr-15151a.bin", 0x00000, 0x10000, CRC(b0911826) SHA1(77435d2b9c78275f2c21db994d2203528e69fe1f) )
+
+ ROM_REGION( 0x10000, "audiocpu", 0 )
+ ROM_LOAD( "epr-15152.bin", 0x00000, 0x10000, CRC(565d6559) SHA1(2c7d961b6dc5020994cbd005efbfd27ccf59569d) ) // mostly empty
+ ROM_IGNORE( 0x10000 )
+ROM_END
+
+
+GAME (1992, westdrm, 0, westdrm, westdrm, driver_device, 0, ROT0, "Sega", "Western Dream", GAME_IS_SKELETON_MECHANICAL )