diff options
Diffstat (limited to 'src/mame/drivers/albazc.cpp')
-rw-r--r-- | src/mame/drivers/albazc.cpp | 20 |
1 files changed, 15 insertions, 5 deletions
diff --git a/src/mame/drivers/albazc.cpp b/src/mame/drivers/albazc.cpp index 48b5b9cf030..5c3d654c9c4 100644 --- a/src/mame/drivers/albazc.cpp +++ b/src/mame/drivers/albazc.cpp @@ -14,6 +14,8 @@ TODO: #include "emu.h" #include "cpu/z80/z80.h" +#include "machine/nvram.h" +#include "machine/ticket.h" #include "sound/ay8910.h" #include "screen.h" #include "speaker.h" @@ -28,7 +30,8 @@ public: m_spriteram3(*this, "spriteram3"), m_maincpu(*this, "maincpu"), m_gfxdecode(*this, "gfxdecode"), - m_palette(*this, "palette") { } + m_palette(*this, "palette"), + m_hopper(*this, "hopper") { } /* video-related */ required_shared_ptr<uint8_t> m_spriteram1; @@ -46,6 +49,7 @@ public: required_device<cpu_device> m_maincpu; required_device<gfxdecode_device> m_gfxdecode; required_device<palette_device> m_palette; + required_device<ticket_dispenser_device> m_hopper; }; @@ -141,6 +145,8 @@ WRITE8_MEMBER(albazc_state::hanaroku_out_1_w) 6 ? 7 ? */ + + m_hopper->motor_w(BIT(data, 0)); } WRITE8_MEMBER(albazc_state::hanaroku_out_2_w) @@ -177,7 +183,7 @@ static ADDRESS_MAP_START( hanaroku_map, AS_PROGRAM, 8, albazc_state ) AM_RANGE(0xa300, 0xa304) AM_WRITE(albazc_vregs_w) // ??? AM_RANGE(0xb000, 0xb000) AM_WRITENOP // ??? always 0x40 AM_RANGE(0xc000, 0xc3ff) AM_RAM // main ram - AM_RANGE(0xc400, 0xc4ff) AM_RAM // ??? + AM_RANGE(0xc400, 0xc4ff) AM_RAM AM_SHARE("nvram") AM_RANGE(0xd000, 0xd000) AM_DEVREAD("aysnd", ay8910_device, data_r) AM_RANGE(0xd000, 0xd001) AM_DEVWRITE("aysnd", ay8910_device, address_data_w) AM_RANGE(0xe000, 0xe000) AM_READ_PORT("IN0") AM_WRITE(hanaroku_out_0_w) @@ -209,10 +215,10 @@ static INPUT_PORTS_START( hanaroku ) PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_HANAFUDA_NO ) PORT_START("IN2") /* 0xe002 */ - PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_SERVICE3 ) PORT_NAME("Data Clear") + PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_MEMORY_RESET ) PORT_NAME("Data Clear") PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_TILT ) - PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_BUTTON9 ) PORT_NAME("Medal In") PORT_CODE(KEYCODE_I) - PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_BUTTON10 ) PORT_NAME("Pay Out") PORT_CODE(KEYCODE_O) + PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_READ_LINE_DEVICE_MEMBER("hopper", ticket_dispenser_device, line_r) // "Medal In" + PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_GAMBLE_PAYOUT ) PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_SERVICE1 ) PORT_NAME("Ext In 1") PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_SERVICE2 ) PORT_NAME("Ext In 2") PORT_BIT( 0xc0, IP_ACTIVE_LOW, IPT_UNUSED ) @@ -271,6 +277,10 @@ static MACHINE_CONFIG_START( hanaroku, albazc_state ) MCFG_CPU_PROGRAM_MAP(hanaroku_map) MCFG_CPU_VBLANK_INT_DRIVER("screen", albazc_state, irq0_line_hold) + MCFG_NVRAM_ADD_0FILL("nvram") + + MCFG_TICKET_DISPENSER_ADD("hopper", attotime::from_msec(50), TICKET_MOTOR_ACTIVE_HIGH, TICKET_STATUS_ACTIVE_HIGH ) + /* video hardware */ MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_REFRESH_RATE(60) |