mirror of
https://github.com/holub/mame
synced 2025-05-05 05:53:05 +03:00
hh_sm510: added ACL button (nw)
This commit is contained in:
parent
9f932f5ced
commit
be80fc6705
@ -48,6 +48,9 @@
|
|||||||
#define MCFG_SM510_WRITE_SEGBS_CB(_devcb) \
|
#define MCFG_SM510_WRITE_SEGBS_CB(_devcb) \
|
||||||
devcb = &sm510_base_device::set_write_segbs_callback(*device, DEVCB_##_devcb);
|
devcb = &sm510_base_device::set_write_segbs_callback(*device, DEVCB_##_devcb);
|
||||||
|
|
||||||
|
// ACL input pin
|
||||||
|
#define SM510_INPUT_LINE_ACL INPUT_LINE_RESET
|
||||||
|
|
||||||
enum
|
enum
|
||||||
{
|
{
|
||||||
SM510_PORT_SEGA = 0x00,
|
SM510_PORT_SEGA = 0x00,
|
||||||
|
@ -2,10 +2,11 @@
|
|||||||
// copyright-holders:hap, Sean Riddle
|
// copyright-holders:hap, Sean Riddle
|
||||||
/***************************************************************************
|
/***************************************************************************
|
||||||
|
|
||||||
Sharp SM510 MCU x..
|
Sharp SM510/SM511 handhelds.
|
||||||
|
|
||||||
TODO:
|
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 void update_k_line();
|
||||||
virtual DECLARE_INPUT_CHANGED_MEMBER(input_changed);
|
virtual DECLARE_INPUT_CHANGED_MEMBER(input_changed);
|
||||||
|
virtual DECLARE_INPUT_CHANGED_MEMBER(acl_button);
|
||||||
virtual DECLARE_READ8_MEMBER(input_r);
|
virtual DECLARE_READ8_MEMBER(input_r);
|
||||||
virtual DECLARE_WRITE8_MEMBER(input_w);
|
virtual DECLARE_WRITE8_MEMBER(input_w);
|
||||||
virtual DECLARE_WRITE8_MEMBER(piezo_r1_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);
|
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
|
// other generic output handlers
|
||||||
|
|
||||||
@ -208,6 +216,9 @@ static INPUT_PORTS_START( ktopgun )
|
|||||||
PORT_START("IN.2")
|
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( 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_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
|
INPUT_PORTS_END
|
||||||
|
|
||||||
static MACHINE_CONFIG_START( ktopgun, ktopgun_state )
|
static MACHINE_CONFIG_START( ktopgun, ktopgun_state )
|
||||||
@ -243,6 +254,8 @@ MACHINE_CONFIG_END
|
|||||||
Konami Contra
|
Konami Contra
|
||||||
* PCB label BH002
|
* PCB label BH002
|
||||||
* Sharp SM511 under epoxy (die label KMS73B, KMS773)
|
* 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_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( 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_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
|
INPUT_PORTS_END
|
||||||
|
|
||||||
static MACHINE_CONFIG_START( kcontra, kcontra_state )
|
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( 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( 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_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
|
INPUT_PORTS_END
|
||||||
|
|
||||||
static MACHINE_CONFIG_START( ktmnt, ktmnt_state )
|
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( 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( 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_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
|
INPUT_PORTS_END
|
||||||
|
|
||||||
static MACHINE_CONFIG_START( kgradius, kgradius_state )
|
static MACHINE_CONFIG_START( kgradius, kgradius_state )
|
||||||
@ -455,17 +477,20 @@ public:
|
|||||||
// config
|
// config
|
||||||
|
|
||||||
static INPUT_PORTS_START( kloneran )
|
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( 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( 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( 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_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( 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( 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( 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_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
|
INPUT_PORTS_END
|
||||||
|
|
||||||
static MACHINE_CONFIG_START( kloneran, kloneran_state )
|
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( 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( 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( 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
|
INPUT_PORTS_END
|
||||||
|
|
||||||
static MACHINE_CONFIG_START( dm53, dm53_state )
|
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( 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( 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( 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
|
INPUT_PORTS_END
|
||||||
|
|
||||||
static MACHINE_CONFIG_START( jr55, jr55_state )
|
static MACHINE_CONFIG_START( jr55, jr55_state )
|
||||||
@ -619,7 +650,7 @@ MACHINE_CONFIG_END
|
|||||||
Nintendo Game & Watch: Boxing (model BX-301)
|
Nintendo Game & Watch: Boxing (model BX-301)
|
||||||
* Sharp SM511 label BX-301 287C (die label KMS73B, KMS744)
|
* 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( 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( 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( 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
|
INPUT_PORTS_END
|
||||||
|
|
||||||
static MACHINE_CONFIG_START( bx301, bx301_state )
|
static MACHINE_CONFIG_START( bx301, bx301_state )
|
||||||
|
@ -1792,6 +1792,7 @@ static MACHINE_CONFIG_START( quizwizc, quizwizc_state )
|
|||||||
|
|
||||||
/* cartridge */
|
/* cartridge */
|
||||||
MCFG_GENERIC_CARTSLOT_ADD("cartslot", generic_plain_slot, "quizwiz_cart")
|
MCFG_GENERIC_CARTSLOT_ADD("cartslot", generic_plain_slot, "quizwiz_cart")
|
||||||
|
MCFG_GENERIC_MANDATORY
|
||||||
MCFG_GENERIC_LOAD(quizwizc_state, cartridge)
|
MCFG_GENERIC_LOAD(quizwizc_state, cartridge)
|
||||||
MCFG_SOFTWARE_LIST_ADD("cart_list", "quizwiz")
|
MCFG_SOFTWARE_LIST_ADD("cart_list", "quizwiz")
|
||||||
MACHINE_CONFIG_END
|
MACHINE_CONFIG_END
|
||||||
|
Loading…
Reference in New Issue
Block a user