From be80fc670527c90a00d788223653da5d0e9d8c13 Mon Sep 17 00:00:00 2001 From: hap Date: Thu, 20 Apr 2017 23:23:49 +0200 Subject: hh_sm510: added ACL button (nw) --- src/devices/cpu/sm510/sm510.h | 3 +++ src/mame/drivers/hh_sm510.cpp | 50 ++++++++++++++++++++++++++++++++++++------- src/mame/drivers/hh_tms1k.cpp | 1 + 3 files changed, 46 insertions(+), 8 deletions(-) diff --git a/src/devices/cpu/sm510/sm510.h b/src/devices/cpu/sm510/sm510.h index c364b9ceb1b..1fc5331f61a 100644 --- a/src/devices/cpu/sm510/sm510.h +++ b/src/devices/cpu/sm510/sm510.h @@ -48,6 +48,9 @@ #define MCFG_SM510_WRITE_SEGBS_CB(_devcb) \ devcb = &sm510_base_device::set_write_segbs_callback(*device, DEVCB_##_devcb); +// ACL input pin +#define SM510_INPUT_LINE_ACL INPUT_LINE_RESET + enum { SM510_PORT_SEGA = 0x00, diff --git a/src/mame/drivers/hh_sm510.cpp b/src/mame/drivers/hh_sm510.cpp index 183343167e8..d75d4a48e69 100644 --- a/src/mame/drivers/hh_sm510.cpp +++ b/src/mame/drivers/hh_sm510.cpp @@ -2,10 +2,11 @@ // copyright-holders:hap, Sean Riddle /*************************************************************************** - Sharp SM510 MCU x.. + Sharp SM510/SM511 handhelds. TODO: - - barnacles + - svg lcd screen backdrop (not supported in core) + - svg lcd screen for dm53, jr55 ***************************************************************************/ @@ -47,6 +48,7 @@ public: virtual void update_k_line(); virtual DECLARE_INPUT_CHANGED_MEMBER(input_changed); + virtual DECLARE_INPUT_CHANGED_MEMBER(acl_button); virtual DECLARE_READ8_MEMBER(input_r); virtual DECLARE_WRITE8_MEMBER(input_w); virtual DECLARE_WRITE8_MEMBER(piezo_r1_w); @@ -147,6 +149,12 @@ READ8_MEMBER(hh_sm510_state::input_r) return read_inputs(m_inp_lines); } +INPUT_CHANGED_MEMBER(hh_sm510_state::acl_button) +{ + // ACL button is directly tied to MCU ACL pin + m_maincpu->set_input_line(SM510_INPUT_LINE_ACL, newval ? ASSERT_LINE : CLEAR_LINE); +} + // other generic output handlers @@ -208,6 +216,9 @@ static INPUT_PORTS_START( ktopgun ) PORT_START("IN.2") PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_POWER_ON ) PORT_CHANGED_MEMBER(DEVICE_SELF, hh_sm510_state, input_changed, nullptr) PORT_BIT( 0x0e, IP_ACTIVE_HIGH, IPT_UNUSED ) + + PORT_START("ACL") + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SERVICE1 ) PORT_CHANGED_MEMBER(DEVICE_SELF, hh_sm510_state, acl_button, nullptr) PORT_NAME("All Clear") INPUT_PORTS_END static MACHINE_CONFIG_START( ktopgun, ktopgun_state ) @@ -243,6 +254,8 @@ MACHINE_CONFIG_END Konami Contra * PCB label BH002 * Sharp SM511 under epoxy (die label KMS73B, KMS773) + + Contra handheld is titled simply "C" in the USA. ***************************************************************************/ @@ -274,6 +287,9 @@ static INPUT_PORTS_START( kcontra ) PORT_START("IN.2") PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_POWER_ON ) PORT_CHANGED_MEMBER(DEVICE_SELF, hh_sm510_state, input_changed, nullptr) PORT_BIT( 0x0e, IP_ACTIVE_HIGH, IPT_UNUSED ) + + PORT_START("ACL") + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SERVICE1 ) PORT_CHANGED_MEMBER(DEVICE_SELF, hh_sm510_state, acl_button, nullptr) PORT_NAME("All Clear") INPUT_PORTS_END static MACHINE_CONFIG_START( kcontra, kcontra_state ) @@ -342,6 +358,9 @@ static INPUT_PORTS_START( ktmnt ) PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_CHANGED_MEMBER(DEVICE_SELF, hh_sm510_state, input_changed, nullptr) PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_BUTTON3 ) PORT_CHANGED_MEMBER(DEVICE_SELF, hh_sm510_state, input_changed, nullptr) PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_BUTTON4 ) PORT_CHANGED_MEMBER(DEVICE_SELF, hh_sm510_state, input_changed, nullptr) + + PORT_START("ACL") + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SERVICE1 ) PORT_CHANGED_MEMBER(DEVICE_SELF, hh_sm510_state, acl_button, nullptr) PORT_NAME("All Clear") INPUT_PORTS_END static MACHINE_CONFIG_START( ktmnt, ktmnt_state ) @@ -404,6 +423,9 @@ static INPUT_PORTS_START( kgradius ) PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_CHANGED_MEMBER(DEVICE_SELF, hh_sm510_state, input_changed, nullptr) PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_CHANGED_MEMBER(DEVICE_SELF, hh_sm510_state, input_changed, nullptr) PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNUSED ) + + PORT_START("ACL") + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SERVICE1 ) PORT_CHANGED_MEMBER(DEVICE_SELF, hh_sm510_state, acl_button, nullptr) PORT_NAME("All Clear") INPUT_PORTS_END static MACHINE_CONFIG_START( kgradius, kgradius_state ) @@ -455,17 +477,20 @@ public: // config static INPUT_PORTS_START( kloneran ) - PORT_START("IN.0") // S3? + PORT_START("IN.0") PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_CHANGED_MEMBER(DEVICE_SELF, hh_sm510_state, input_changed, nullptr) PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_CHANGED_MEMBER(DEVICE_SELF, hh_sm510_state, input_changed, nullptr) PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_UNUSED ) PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_CHANGED_MEMBER(DEVICE_SELF, hh_sm510_state, input_changed, nullptr) - PORT_START("IN.1") // S2? + PORT_START("IN.1") PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_POWER_OFF ) PORT_CHANGED_MEMBER(DEVICE_SELF, hh_sm510_state, input_changed, nullptr) PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_VOLUME_DOWN ) PORT_CHANGED_MEMBER(DEVICE_SELF, hh_sm510_state, input_changed, nullptr) PORT_NAME("Sound") PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_SELECT ) PORT_CHANGED_MEMBER(DEVICE_SELF, hh_sm510_state, input_changed, nullptr) PORT_NAME("Pause") PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_POWER_ON ) PORT_CHANGED_MEMBER(DEVICE_SELF, hh_sm510_state, input_changed, nullptr) + + PORT_START("ACL") + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SERVICE1 ) PORT_CHANGED_MEMBER(DEVICE_SELF, hh_sm510_state, acl_button, nullptr) PORT_NAME("All Clear") INPUT_PORTS_END static MACHINE_CONFIG_START( kloneran, kloneran_state ) @@ -527,7 +552,10 @@ static INPUT_PORTS_START( dm53 ) PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SELECT ) PORT_CHANGED_MEMBER(DEVICE_SELF, hh_sm510_state, input_changed, nullptr) PORT_NAME("Time") PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_START2 ) PORT_CHANGED_MEMBER(DEVICE_SELF, hh_sm510_state, input_changed, nullptr) PORT_NAME("Game B") PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_START1 ) PORT_CHANGED_MEMBER(DEVICE_SELF, hh_sm510_state, input_changed, nullptr) PORT_NAME("Game A") - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_SERVICE ) PORT_CHANGED_MEMBER(DEVICE_SELF, hh_sm510_state, input_changed, nullptr) PORT_NAME("Alarm") + PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_SERVICE2 ) PORT_CHANGED_MEMBER(DEVICE_SELF, hh_sm510_state, input_changed, nullptr) PORT_NAME("Alarm") + + PORT_START("ACL") + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SERVICE1 ) PORT_CHANGED_MEMBER(DEVICE_SELF, hh_sm510_state, acl_button, nullptr) PORT_NAME("ACL") INPUT_PORTS_END static MACHINE_CONFIG_START( dm53, dm53_state ) @@ -588,7 +616,10 @@ static INPUT_PORTS_START( jr55 ) PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SELECT ) PORT_CHANGED_MEMBER(DEVICE_SELF, hh_sm510_state, input_changed, nullptr) PORT_NAME("Time") PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_START2 ) PORT_CHANGED_MEMBER(DEVICE_SELF, hh_sm510_state, input_changed, nullptr) PORT_NAME("Game B") PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_START1 ) PORT_CHANGED_MEMBER(DEVICE_SELF, hh_sm510_state, input_changed, nullptr) PORT_NAME("Game A") - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_SERVICE ) PORT_CHANGED_MEMBER(DEVICE_SELF, hh_sm510_state, input_changed, nullptr) PORT_NAME("Alarm") + PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_SERVICE2 ) PORT_CHANGED_MEMBER(DEVICE_SELF, hh_sm510_state, input_changed, nullptr) PORT_NAME("Alarm") + + PORT_START("ACL") + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SERVICE1 ) PORT_CHANGED_MEMBER(DEVICE_SELF, hh_sm510_state, acl_button, nullptr) PORT_NAME("ACL") INPUT_PORTS_END static MACHINE_CONFIG_START( jr55, jr55_state ) @@ -619,7 +650,7 @@ MACHINE_CONFIG_END Nintendo Game & Watch: Boxing (model BX-301) * Sharp SM511 label BX-301 287C (die label KMS73B, KMS744) - Also known as Punch-Out!! in USA. + Also known as Punch-Out!! in the USA. ***************************************************************************/ @@ -668,7 +699,10 @@ static INPUT_PORTS_START( bx301 ) PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SELECT ) PORT_CHANGED_MEMBER(DEVICE_SELF, hh_sm510_state, input_changed, nullptr) PORT_NAME("Time") PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_START2 ) PORT_CHANGED_MEMBER(DEVICE_SELF, hh_sm510_state, input_changed, nullptr) PORT_NAME("Game B") PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_START1 ) PORT_CHANGED_MEMBER(DEVICE_SELF, hh_sm510_state, input_changed, nullptr) PORT_NAME("Game A") - PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_SERVICE ) PORT_CHANGED_MEMBER(DEVICE_SELF, hh_sm510_state, input_changed, nullptr) PORT_NAME("Alarm") + PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_SERVICE2 ) PORT_CHANGED_MEMBER(DEVICE_SELF, hh_sm510_state, input_changed, nullptr) PORT_NAME("Alarm") + + PORT_START("ACL") + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SERVICE1 ) PORT_CHANGED_MEMBER(DEVICE_SELF, hh_sm510_state, acl_button, nullptr) PORT_NAME("ACL") INPUT_PORTS_END static MACHINE_CONFIG_START( bx301, bx301_state ) diff --git a/src/mame/drivers/hh_tms1k.cpp b/src/mame/drivers/hh_tms1k.cpp index 52b8f1fe680..72bfed7e738 100644 --- a/src/mame/drivers/hh_tms1k.cpp +++ b/src/mame/drivers/hh_tms1k.cpp @@ -1792,6 +1792,7 @@ static MACHINE_CONFIG_START( quizwizc, quizwizc_state ) /* cartridge */ MCFG_GENERIC_CARTSLOT_ADD("cartslot", generic_plain_slot, "quizwiz_cart") + MCFG_GENERIC_MANDATORY MCFG_GENERIC_LOAD(quizwizc_state, cartridge) MCFG_SOFTWARE_LIST_ADD("cart_list", "quizwiz") MACHINE_CONFIG_END -- cgit v1.2.3