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