summaryrefslogtreecommitdiffstats
path: root/src/mame/drivers/exidy.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mame/drivers/exidy.cpp')
-rw-r--r--src/mame/drivers/exidy.cpp22
1 files changed, 19 insertions, 3 deletions
diff --git a/src/mame/drivers/exidy.cpp b/src/mame/drivers/exidy.cpp
index cd723f659e6..08435cc607c 100644
--- a/src/mame/drivers/exidy.cpp
+++ b/src/mame/drivers/exidy.cpp
@@ -15,6 +15,9 @@
* Hard Hat
* Fax and Fax 2
+ TODO:
+ * check whether games besides Venture have coin counter outputs
+
Known bugs:
* none at this time
@@ -206,6 +209,7 @@ public:
void pepper2(machine_config &config);
DECLARE_CUSTOM_INPUT_MEMBER(intsource_coins_r);
+ DECLARE_INPUT_CHANGED_MEMBER(coin_count_w);
protected:
virtual void machine_start() override;
@@ -438,10 +442,21 @@ CUSTOM_INPUT_MEMBER(teetert_state::teetert_input_r)
}
+/*************************************
+ *
+ * Special inputs
+ *
+ *************************************/
+
+INPUT_CHANGED_MEMBER(exidy_state::coin_count_w)
+{
+ machine().bookkeeping().coin_counter_w(param, newval);
+}
+
/*************************************
*
- * Bankswitcher
+ * Bank switching
*
*************************************/
@@ -462,6 +477,7 @@ void exidy_state::mtrap_ocl_w(uint8_t data) // Mouse Trap (possibly others) set
output().set_value("led1", !BIT(data, 4));
}
+
/*************************************
*
* Main CPU memory handlers
@@ -819,7 +835,7 @@ INPUT_PORTS_END
static INPUT_PORTS_START( venture )
PORT_START("DSW")
- PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_COIN2 )
+ PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_COIN2 ) PORT_CHANGED_MEMBER(DEVICE_SELF, exidy_state, coin_count_w, 1)
PORT_DIPNAME( 0x06, 0x00, DEF_STR( Bonus_Life ) ) PORT_DIPLOCATION("SW1:2,3")
PORT_DIPSETTING( 0x00, "20000" )
PORT_DIPSETTING( 0x02, "30000" )
@@ -847,7 +863,7 @@ static INPUT_PORTS_START( venture )
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_BUTTON1 )
PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN ) PORT_8WAY
- PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN1 )
+ PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_COIN1 ) PORT_CHANGED_MEMBER(DEVICE_SELF, exidy_state, coin_count_w, 0)
PORT_START("INTSOURCE")
/*