summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
author hap <happppp@users.noreply.github.com>2018-03-30 00:24:31 +0200
committer hap <happppp@users.noreply.github.com>2018-03-30 00:24:48 +0200
commita24c5554445b44f9f0b81e077710fc80d98f65c9 (patch)
tree451aa9130afea5b580bb8bcf91e6f9fd5e4fb0c3
parent71f9ff71d1c54483083d6ae919b93c59f48fd167 (diff)
New working machine added
----------- Home Alone (Tiger handheld) [hap, Sean Riddle] Home Alone 2 - Lost in New York (Tiger handheld) [hap, Sean Riddle] Transformers - Generation 2 (Tiger handheld) [hap, Sean Riddle] Independence Day (Tiger handheld) [hap, Sean Riddle]
-rw-r--r--src/mame/drivers/hh_sm510.cpp434
-rw-r--r--src/mame/mame.lst4
2 files changed, 436 insertions, 2 deletions
diff --git a/src/mame/drivers/hh_sm510.cpp b/src/mame/drivers/hh_sm510.cpp
index 41b3c43f123..a9c3c5b37ea 100644
--- a/src/mame/drivers/hh_sm510.cpp
+++ b/src/mame/drivers/hh_sm510.cpp
@@ -2150,14 +2150,20 @@ class tgaiden_state : public hh_sm510_state
{
public:
tgaiden_state(const machine_config &mconfig, device_type type, const char *tag)
- : hh_sm510_state(mconfig, type, tag)
+ : hh_sm510_state(mconfig, type, tag),
+ m_led_out(*this, "led")
{
m_inp_lines = 5;
m_inp_fixed = 5;
}
+ output_finder<> m_led_out;
+
DECLARE_WRITE8_MEMBER(write_r);
void tgaiden(machine_config &config);
+
+protected:
+ virtual void machine_start() override;
};
// handlers
@@ -2168,7 +2174,7 @@ WRITE8_MEMBER(tgaiden_state::write_r)
piezo_r1_w(space, 0, data & 1);
// R2: led
- output().set_lamp_value(0, data >> 1 & 1);
+ m_led_out = data >> 1 & 1;
}
// config
@@ -2210,6 +2216,14 @@ static INPUT_PORTS_START( tgaiden )
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
+void tgaiden_state::machine_start()
+{
+ hh_sm510_state::machine_start();
+
+ // resolve handlers
+ m_led_out.resolve();
+}
+
MACHINE_CONFIG_START(tgaiden_state::tgaiden)
/* basic machine hardware */
@@ -3754,6 +3768,101 @@ MACHINE_CONFIG_END
/***************************************************************************
+ Tiger Home Alone (model 78-???)
+ * Sharp SM510 under epoxy (die label MC7)
+ * lcd screen with custom segments, 1-bit sound
+
+***************************************************************************/
+
+class thalone_state : public hh_sm510_state
+{
+public:
+ thalone_state(const machine_config &mconfig, device_type type, const char *tag)
+ : hh_sm510_state(mconfig, type, tag)
+ {
+ m_inp_lines = 6;
+ m_inp_fixed = 6;
+ }
+
+ void thalone(machine_config &config);
+};
+
+// config
+
+static INPUT_PORTS_START( thalone )
+ PORT_START("IN.0") // S1
+ PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_CHANGED_MEMBER(DEVICE_SELF, hh_sm510_state, input_changed, nullptr)
+ PORT_BIT( 0x0b, IP_ACTIVE_HIGH, IPT_UNUSED )
+
+ PORT_START("IN.1") // S2
+ PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_CHANGED_MEMBER(DEVICE_SELF, hh_sm510_state, input_changed, nullptr)
+ PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_CHANGED_MEMBER(DEVICE_SELF, hh_sm510_state, input_changed, nullptr)
+ PORT_BIT( 0x09, IP_ACTIVE_HIGH, IPT_UNUSED )
+
+ PORT_START("IN.2") // S3
+ PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_CHANGED_MEMBER(DEVICE_SELF, hh_sm510_state, input_changed, nullptr)
+ PORT_BIT( 0x0d, IP_ACTIVE_HIGH, IPT_UNUSED )
+
+ PORT_START("IN.3") // S4
+ PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_BUTTON3 ) PORT_CHANGED_MEMBER(DEVICE_SELF, hh_sm510_state, input_changed, nullptr) PORT_NAME("Trap Right")
+ PORT_BIT( 0x0d, IP_ACTIVE_HIGH, IPT_UNUSED )
+
+ PORT_START("IN.4") // S5
+ PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_CHANGED_MEMBER(DEVICE_SELF, hh_sm510_state, input_changed, nullptr) PORT_NAME("Climb")
+ PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_CHANGED_MEMBER(DEVICE_SELF, hh_sm510_state, input_changed, nullptr) PORT_NAME("Trap Left")
+ PORT_BIT( 0x0c, IP_ACTIVE_HIGH, IPT_UNUSED )
+
+ PORT_START("IN.5") // S6
+ PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SELECT ) PORT_CHANGED_MEMBER(DEVICE_SELF, hh_sm510_state, input_changed, nullptr) PORT_NAME("Pause")
+ PORT_BIT( 0x0e, IP_ACTIVE_HIGH, IPT_UNUSED )
+
+ PORT_START("IN.6") // GND!
+ PORT_BIT( 0x07, IP_ACTIVE_HIGH, IPT_UNUSED )
+ PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_START ) PORT_CHANGED_MEMBER(DEVICE_SELF, hh_sm510_state, input_changed, nullptr) PORT_NAME("Power On/Start")
+
+ PORT_START("BA")
+ PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_VOLUME_DOWN ) PORT_NAME("Sound")
+
+ PORT_START("B")
+ PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_POWER_OFF )
+
+ 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
+
+MACHINE_CONFIG_START(thalone_state::thalone)
+
+ /* basic machine hardware */
+ MCFG_CPU_ADD("maincpu", SM510, 32.768_kHz_XTAL)
+ MCFG_SM510_R_MASK_OPTION(SM510_R_CONTROL_OUTPUT)
+ MCFG_SM510_WRITE_SEGS_CB(WRITE16(hh_sm510_state, sm510_lcd_segment_w))
+ MCFG_SM510_READ_K_CB(READ8(hh_sm510_state, input_r))
+ MCFG_SM510_WRITE_S_CB(WRITE8(hh_sm510_state, input_w))
+ MCFG_SM510_WRITE_R_CB(WRITE8(hh_sm510_state, piezo_r1_w))
+ MCFG_SM510_READ_BA_CB(IOPORT("BA"))
+ MCFG_SM510_READ_B_CB(IOPORT("B"))
+
+ /* video hardware */
+ MCFG_SCREEN_SVG_ADD("screen", "svg")
+ MCFG_SCREEN_REFRESH_RATE(50)
+ MCFG_SCREEN_SIZE(1448, 1080)
+ MCFG_SCREEN_VISIBLE_AREA(0, 1448-1, 0, 1080-1)
+
+ MCFG_TIMER_DRIVER_ADD_PERIODIC("display_decay", hh_sm510_state, display_decay_tick, attotime::from_msec(1))
+ MCFG_DEFAULT_LAYOUT(layout_svg)
+
+ /* sound hardware */
+ MCFG_SPEAKER_STANDARD_MONO("mono")
+ MCFG_SOUND_ADD("speaker", SPEAKER_SOUND, 0)
+ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25)
+MACHINE_CONFIG_END
+
+
+
+
+
+/***************************************************************************
+
Tiger X-Men - Project X (model 78-504)
* Sharp SM510 under epoxy (die label MD3)
* lcd screen with custom segments, 1-bit sound
@@ -3845,6 +3954,101 @@ MACHINE_CONFIG_END
/***************************************************************************
+ Tiger Home Alone 2 - Lost in New York (model 78-506)
+ * Sharp SM510 under epoxy (die label MD7)
+ * lcd screen with custom segments, 1-bit sound
+
+***************************************************************************/
+
+class thalone2_state : public hh_sm510_state
+{
+public:
+ thalone2_state(const machine_config &mconfig, device_type type, const char *tag)
+ : hh_sm510_state(mconfig, type, tag)
+ {
+ m_inp_lines = 6;
+ m_inp_fixed = 6;
+ }
+
+ void thalone2(machine_config &config);
+};
+
+// config
+
+static INPUT_PORTS_START( thalone2 )
+ PORT_START("IN.0") // S1
+ PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_CHANGED_MEMBER(DEVICE_SELF, hh_sm510_state, input_changed, nullptr)
+ PORT_BIT( 0x0b, IP_ACTIVE_HIGH, IPT_UNUSED )
+
+ PORT_START("IN.1") // S2
+ PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_CHANGED_MEMBER(DEVICE_SELF, hh_sm510_state, input_changed, nullptr)
+ PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_CHANGED_MEMBER(DEVICE_SELF, hh_sm510_state, input_changed, nullptr)
+ PORT_BIT( 0x09, IP_ACTIVE_HIGH, IPT_UNUSED )
+
+ PORT_START("IN.2") // S3
+ PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_CHANGED_MEMBER(DEVICE_SELF, hh_sm510_state, input_changed, nullptr)
+ PORT_BIT( 0x0d, IP_ACTIVE_HIGH, IPT_UNUSED )
+
+ PORT_START("IN.3") // S4
+ PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_BUTTON3 ) PORT_CHANGED_MEMBER(DEVICE_SELF, hh_sm510_state, input_changed, nullptr) PORT_NAME("Trap/Flash Right")
+ PORT_BIT( 0x0d, IP_ACTIVE_HIGH, IPT_UNUSED )
+
+ PORT_START("IN.4") // S5
+ PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_CHANGED_MEMBER(DEVICE_SELF, hh_sm510_state, input_changed, nullptr) PORT_NAME("Climb/Pick")
+ PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_CHANGED_MEMBER(DEVICE_SELF, hh_sm510_state, input_changed, nullptr) PORT_NAME("Trap/Flash Left")
+ PORT_BIT( 0x0c, IP_ACTIVE_HIGH, IPT_UNUSED )
+
+ PORT_START("IN.5") // S6
+ PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SELECT ) PORT_CHANGED_MEMBER(DEVICE_SELF, hh_sm510_state, input_changed, nullptr) PORT_NAME("Pause")
+ PORT_BIT( 0x0e, IP_ACTIVE_HIGH, IPT_UNUSED )
+
+ PORT_START("IN.6") // GND!
+ PORT_BIT( 0x07, IP_ACTIVE_HIGH, IPT_UNUSED )
+ PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_START ) PORT_CHANGED_MEMBER(DEVICE_SELF, hh_sm510_state, input_changed, nullptr) PORT_NAME("Power On/Start")
+
+ PORT_START("BA")
+ PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_VOLUME_DOWN ) PORT_NAME("Sound")
+
+ PORT_START("B")
+ PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_POWER_OFF )
+
+ 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
+
+MACHINE_CONFIG_START(thalone2_state::thalone2)
+
+ /* basic machine hardware */
+ MCFG_CPU_ADD("maincpu", SM510, 32.768_kHz_XTAL)
+ MCFG_SM510_R_MASK_OPTION(SM510_R_CONTROL_OUTPUT)
+ MCFG_SM510_WRITE_SEGS_CB(WRITE16(hh_sm510_state, sm510_lcd_segment_w))
+ MCFG_SM510_READ_K_CB(READ8(hh_sm510_state, input_r))
+ MCFG_SM510_WRITE_S_CB(WRITE8(hh_sm510_state, input_w))
+ MCFG_SM510_WRITE_R_CB(WRITE8(hh_sm510_state, piezo_r1_w))
+ MCFG_SM510_READ_BA_CB(IOPORT("BA"))
+ MCFG_SM510_READ_B_CB(IOPORT("B"))
+
+ /* video hardware */
+ MCFG_SCREEN_SVG_ADD("screen", "svg")
+ MCFG_SCREEN_REFRESH_RATE(50)
+ MCFG_SCREEN_SIZE(1454, 1080)
+ MCFG_SCREEN_VISIBLE_AREA(0, 1454-1, 0, 1080-1)
+
+ MCFG_TIMER_DRIVER_ADD_PERIODIC("display_decay", hh_sm510_state, display_decay_tick, attotime::from_msec(1))
+ MCFG_DEFAULT_LAYOUT(layout_svg)
+
+ /* sound hardware */
+ MCFG_SPEAKER_STANDARD_MONO("mono")
+ MCFG_SOUND_ADD("speaker", SPEAKER_SOUND, 0)
+ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25)
+MACHINE_CONFIG_END
+
+
+
+
+
+/***************************************************************************
+
Tiger Sonic The Hedgehog (model 78-513)
* Sharp SM511 under epoxy (die label KMS73B, N71)
* lcd screen with custom segments, 2-bit sound
@@ -4748,6 +4952,101 @@ MACHINE_CONFIG_END
/***************************************************************************
+ Tiger Transformers - Generation 2 (model 78-541)
+ * Sharp SM510 under epoxy (die label MG2)
+ * lcd screen with custom segments, 1-bit sound
+
+***************************************************************************/
+
+class ttransf2_state : public hh_sm510_state
+{
+public:
+ ttransf2_state(const machine_config &mconfig, device_type type, const char *tag)
+ : hh_sm510_state(mconfig, type, tag)
+ {
+ m_inp_lines = 6;
+ m_inp_fixed = 6;
+ }
+
+ void ttransf2(machine_config &config);
+};
+
+// config
+
+static INPUT_PORTS_START( ttransf2 )
+ PORT_START("IN.0") // S1
+ PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_CHANGED_MEMBER(DEVICE_SELF, hh_sm510_state, input_changed, nullptr)
+ PORT_BIT( 0x0b, IP_ACTIVE_HIGH, IPT_UNUSED )
+
+ PORT_START("IN.1") // S2
+ PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_CHANGED_MEMBER(DEVICE_SELF, hh_sm510_state, input_changed, nullptr)
+ PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_CHANGED_MEMBER(DEVICE_SELF, hh_sm510_state, input_changed, nullptr)
+ PORT_BIT( 0x09, IP_ACTIVE_HIGH, IPT_UNUSED )
+
+ PORT_START("IN.2") // S3
+ PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_CHANGED_MEMBER(DEVICE_SELF, hh_sm510_state, input_changed, nullptr)
+ PORT_BIT( 0x0d, IP_ACTIVE_HIGH, IPT_UNUSED )
+
+ PORT_START("IN.3") // S4
+ PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON3 ) PORT_CHANGED_MEMBER(DEVICE_SELF, hh_sm510_state, input_changed, nullptr) PORT_NAME("Attack")
+ PORT_BIT( 0x0e, IP_ACTIVE_HIGH, IPT_UNUSED )
+
+ PORT_START("IN.4") // S5
+ PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_CHANGED_MEMBER(DEVICE_SELF, hh_sm510_state, input_changed, nullptr) PORT_NAME("Call")
+ PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_CHANGED_MEMBER(DEVICE_SELF, hh_sm510_state, input_changed, nullptr) PORT_NAME("Transform")
+ PORT_BIT( 0x0c, IP_ACTIVE_HIGH, IPT_UNUSED )
+
+ PORT_START("IN.5") // S6
+ PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SELECT ) PORT_CHANGED_MEMBER(DEVICE_SELF, hh_sm510_state, input_changed, nullptr) PORT_NAME("Pause")
+ PORT_BIT( 0x0e, IP_ACTIVE_HIGH, IPT_UNUSED )
+
+ PORT_START("IN.6") // GND!
+ PORT_BIT( 0x07, IP_ACTIVE_HIGH, IPT_UNUSED )
+ PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_START ) PORT_CHANGED_MEMBER(DEVICE_SELF, hh_sm510_state, input_changed, nullptr) PORT_NAME("Power On/Start")
+
+ PORT_START("BA")
+ PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_VOLUME_DOWN ) PORT_NAME("Sound")
+
+ PORT_START("B")
+ PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_POWER_OFF )
+
+ 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
+
+MACHINE_CONFIG_START(ttransf2_state::ttransf2)
+
+ /* basic machine hardware */
+ MCFG_CPU_ADD("maincpu", SM510, 32.768_kHz_XTAL)
+ MCFG_SM510_R_MASK_OPTION(SM510_R_CONTROL_OUTPUT)
+ MCFG_SM510_WRITE_SEGS_CB(WRITE16(hh_sm510_state, sm510_lcd_segment_w))
+ MCFG_SM510_READ_K_CB(READ8(hh_sm510_state, input_r))
+ MCFG_SM510_WRITE_S_CB(WRITE8(hh_sm510_state, input_w))
+ MCFG_SM510_WRITE_R_CB(WRITE8(hh_sm510_state, piezo_r1_w))
+ MCFG_SM510_READ_BA_CB(IOPORT("BA"))
+ MCFG_SM510_READ_B_CB(IOPORT("B"))
+
+ /* video hardware */
+ MCFG_SCREEN_SVG_ADD("screen", "svg")
+ MCFG_SCREEN_REFRESH_RATE(50)
+ MCFG_SCREEN_SIZE(1476, 1080)
+ MCFG_SCREEN_VISIBLE_AREA(0, 1476-1, 0, 1080-1)
+
+ MCFG_TIMER_DRIVER_ADD_PERIODIC("display_decay", hh_sm510_state, display_decay_tick, attotime::from_msec(1))
+ MCFG_DEFAULT_LAYOUT(layout_svg)
+
+ /* sound hardware */
+ MCFG_SPEAKER_STANDARD_MONO("mono")
+ MCFG_SOUND_ADD("speaker", SPEAKER_SOUND, 0)
+ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25)
+MACHINE_CONFIG_END
+
+
+
+
+
+/***************************************************************************
+
Tiger Mortal Kombat (model 78-553)
* Sharp SM510 under epoxy (die label MG6)
* lcd screen with custom segments, 1-bit sound
@@ -5418,6 +5717,97 @@ MACHINE_CONFIG_END
/***************************************************************************
+ Tiger Independence Day (model 78-???)
+ * Sharp SM510 under epoxy (die label 10 16)
+ * lcd screen with custom segments, 1-bit sound
+
+***************************************************************************/
+
+class tinday_state : public hh_sm510_state
+{
+public:
+ tinday_state(const machine_config &mconfig, device_type type, const char *tag)
+ : hh_sm510_state(mconfig, type, tag)
+ {
+ m_inp_lines = 5;
+ m_inp_fixed = 5;
+ }
+
+ void tinday(machine_config &config);
+};
+
+// config
+
+static INPUT_PORTS_START( tinday )
+ PORT_START("IN.0") // S1
+ PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_CHANGED_MEMBER(DEVICE_SELF, hh_sm510_state, input_changed, nullptr) PORT_NAME("Shield")
+ PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_CHANGED_MEMBER(DEVICE_SELF, hh_sm510_state, input_changed, nullptr) PORT_NAME("Fire")
+ PORT_BIT( 0x0a, IP_ACTIVE_HIGH, IPT_UNUSED )
+
+ PORT_START("IN.1") // S2
+ PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_CHANGED_MEMBER(DEVICE_SELF, hh_sm510_state, input_changed, nullptr)
+ PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_CHANGED_MEMBER(DEVICE_SELF, hh_sm510_state, input_changed, nullptr)
+ PORT_BIT( 0x09, IP_ACTIVE_HIGH, IPT_UNUSED )
+
+ PORT_START("IN.2") // S3
+ PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_CHANGED_MEMBER(DEVICE_SELF, hh_sm510_state, input_changed, nullptr) PORT_NAME("Alert")
+ PORT_BIT( 0x0d, IP_ACTIVE_HIGH, IPT_UNUSED )
+
+ PORT_START("IN.3") // S4
+ PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_CHANGED_MEMBER(DEVICE_SELF, hh_sm510_state, input_changed, nullptr) PORT_NAME("Velocity")
+ PORT_BIT( 0x0d, IP_ACTIVE_HIGH, IPT_UNUSED )
+
+ PORT_START("IN.4") // S5
+ PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SELECT ) PORT_CHANGED_MEMBER(DEVICE_SELF, hh_sm510_state, input_changed, nullptr) PORT_NAME("Pause")
+ PORT_BIT( 0x0e, IP_ACTIVE_HIGH, IPT_UNUSED )
+
+ PORT_START("IN.5") // GND!
+ PORT_BIT( 0x07, IP_ACTIVE_HIGH, IPT_UNUSED )
+ PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_START ) PORT_CHANGED_MEMBER(DEVICE_SELF, hh_sm510_state, input_changed, nullptr) PORT_NAME("Power On/Start")
+
+ PORT_START("BA")
+ PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_VOLUME_DOWN ) PORT_NAME("Sound")
+
+ PORT_START("B")
+ PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_POWER_OFF )
+
+ 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
+
+MACHINE_CONFIG_START(tinday_state::tinday)
+
+ /* basic machine hardware */
+ MCFG_CPU_ADD("maincpu", SM510, 32.768_kHz_XTAL)
+ MCFG_SM510_R_MASK_OPTION(SM510_R_CONTROL_OUTPUT)
+ MCFG_SM510_WRITE_SEGS_CB(WRITE16(hh_sm510_state, sm510_lcd_segment_w))
+ MCFG_SM510_READ_K_CB(READ8(hh_sm510_state, input_r))
+ MCFG_SM510_WRITE_S_CB(WRITE8(hh_sm510_state, input_w))
+ MCFG_SM510_WRITE_R_CB(WRITE8(hh_sm510_state, piezo_r1_w))
+ MCFG_SM510_READ_BA_CB(IOPORT("BA"))
+ MCFG_SM510_READ_B_CB(IOPORT("B"))
+
+ /* video hardware */
+ MCFG_SCREEN_SVG_ADD("screen", "svg")
+ MCFG_SCREEN_REFRESH_RATE(50)
+ MCFG_SCREEN_SIZE(1463, 1080)
+ MCFG_SCREEN_VISIBLE_AREA(0, 1463-1, 0, 1080-1)
+
+ MCFG_TIMER_DRIVER_ADD_PERIODIC("display_decay", hh_sm510_state, display_decay_tick, attotime::from_msec(1))
+ MCFG_DEFAULT_LAYOUT(layout_svg)
+
+ /* sound hardware */
+ MCFG_SPEAKER_STANDARD_MONO("mono")
+ MCFG_SOUND_ADD("speaker", SPEAKER_SOUND, 0)
+ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25)
+MACHINE_CONFIG_END
+
+
+
+
+
+/***************************************************************************
+
Tiger Space Jam (model 78-621)
* Sharp SM510 under epoxy (die label KMS10, 23)
* lcd screen with custom segments, 1-bit sound
@@ -6153,6 +6543,15 @@ ROM_START( taddams )
ROM_END
+ROM_START( thalone )
+ ROM_REGION( 0x1000, "maincpu", 0 )
+ ROM_LOAD( "mc7", 0x0000, 0x1000, CRC(eceda335) SHA1(20c9ffcf914db61aba03716fe146bac42873ac82) )
+
+ ROM_REGION( 494235, "svg", 0)
+ ROM_LOAD( "thalone.svg", 0, 494235, CRC(0e32df1d) SHA1(1fff1d37a5fe66d4f59d12af3ce67665c0049800) )
+ROM_END
+
+
ROM_START( txmenpx )
ROM_REGION( 0x1000, "maincpu", 0 )
ROM_LOAD( "md3", 0x0000, 0x1000, CRC(11c2b09a) SHA1(f94b1e3e60f002398b39c98946469dd1a6aa8e77) )
@@ -6162,6 +6561,15 @@ ROM_START( txmenpx )
ROM_END
+ROM_START( thalone2 )
+ ROM_REGION( 0x1000, "maincpu", 0 )
+ ROM_LOAD( "md7", 0x0000, 0x1000, CRC(ac8a21e9) SHA1(9024f74e34056f90b7dbf439300797183f74eb00) )
+
+ ROM_REGION( 748886, "svg", 0)
+ ROM_LOAD( "thalone2.svg", 0, 748886, CRC(a5d8898e) SHA1(de8fae0169a3797a46b5c81d9b556df636a5674e) )
+ROM_END
+
+
ROM_START( tsonic )
ROM_REGION( 0x1000, "maincpu", 0 )
ROM_LOAD( "n71.program", 0x0000, 0x1000, CRC(44cafd68) SHA1(bf8d0ab88d153fabc688ffec19959209ca79c3db) )
@@ -6249,6 +6657,15 @@ ROM_START( tnmarebc )
ROM_END
+ROM_START( ttransf2 )
+ ROM_REGION( 0x1000, "maincpu", 0 )
+ ROM_LOAD( "mg2", 0x0000, 0x1000, CRC(65c0f456) SHA1(b1bc3887c5088b3fe359585658e5c5236c09af9e) )
+
+ ROM_REGION( 727662, "svg", 0)
+ ROM_LOAD( "ttransf2.svg", 0, 727662, CRC(52fd5ea1) SHA1(35ae9fe2cea14ee4c591df0458fed478c9feb044) )
+ROM_END
+
+
ROM_START( tmkombat )
ROM_REGION( 0x1000, "maincpu", 0 )
ROM_LOAD( "mg6", 0x0000, 0x1000, CRC(f6375dc7) SHA1(a711199c2623979f19c11067ebfff9355256c2c3) )
@@ -6312,6 +6729,15 @@ ROM_START( tgoldeye )
ROM_END
+ROM_START( tinday )
+ ROM_REGION( 0x1000, "maincpu", 0 )
+ ROM_LOAD( "10_16", 0x0000, 0x1000, CRC(77c2c2f7) SHA1(06326b26d0f6757180724ba0bdeb4110cc7e29d6) )
+
+ ROM_REGION( 1162672, "svg", 0)
+ ROM_LOAD( "tinday.svg", 0, 1162672, CRC(9b9a8047) SHA1(2aeaa71a54cf897d2a5d91133c733613ca229aae) )
+ROM_END
+
+
ROM_START( tsjam )
ROM_REGION( 0x1000, "maincpu", 0 )
ROM_LOAD( "10_23", 0x0000, 0x1000, CRC(6eaabfbd) SHA1(f0ecbd6f65fe72ce2d8a452685be2e77a63fc9f0) )
@@ -6393,7 +6819,9 @@ CONS( 1991, tbtoads, 0, 0, tbtoads, tbtoads, tbtoads_state,
CONS( 1991, thook, 0, 0, thook, thook, thook_state, 0, "Tiger Electronics", "Hook (handheld)", MACHINE_SUPPORTS_SAVE )
CONS( 1992, tbttf, 0, 0, tbttf, tbttf, tbttf_state, 0, "Tiger Electronics", "Back to the Future (handheld)", MACHINE_SUPPORTS_SAVE )
CONS( 1992, taddams, 0, 0, taddams, taddams, taddams_state, 0, "Tiger Electronics", "The Addams Family (handheld)", MACHINE_SUPPORTS_SAVE )
+CONS( 1992, thalone, 0, 0, thalone, thalone, thalone_state, 0, "Tiger Electronics", "Home Alone (handheld)", MACHINE_SUPPORTS_SAVE )
CONS( 1993, txmenpx, 0, 0, txmenpx, txmenpx, txmenpx_state, 0, "Tiger Electronics", "X-Men - Project X (handheld)", MACHINE_SUPPORTS_SAVE )
+CONS( 1992, thalone2, 0, 0, thalone2, thalone2, thalone2_state, 0, "Tiger Electronics", "Home Alone 2 - Lost in New York (handheld)", MACHINE_SUPPORTS_SAVE )
CONS( 1992, tsonic, 0, 0, tsonic, tsonic, tsonic_state, 0, "Tiger Electronics (licensed from Sega)", "Sonic The Hedgehog (handheld)", MACHINE_SUPPORTS_SAVE )
CONS( 1992, trobocop3, 0, 0, trobocop3, trobocop3, trobocop3_state, 0, "Tiger Electronics", "Robocop 3 (handheld)", MACHINE_SUPPORTS_SAVE )
CONS( 1993, tdummies, 0, 0, tdummies, tdummies, tdummies_state, 0, "Tiger Electronics", "The Incredible Crash Dummies (handheld)", MACHINE_SUPPORTS_SAVE )
@@ -6403,6 +6831,7 @@ CONS( 1993, tsonic2, 0, 0, tsonic2, tsonic2, tsonic2_state,
CONS( 1993, tsddragon, 0, 0, tsddragon, tsddragon, tsddragon_state, 0, "Tiger Electronics (licensed from Technos)", "Super Double Dragon (handheld)", MACHINE_SUPPORTS_SAVE )
CONS( 1993, tdennis, 0, 0, tdennis, tdennis, tdennis_state, 0, "Tiger Electronics", "Dennis the Menace (handheld)", MACHINE_SUPPORTS_SAVE )
CONS( 1993, tnmarebc, 0, 0, tnmarebc, tnmarebc, tnmarebc_state, 0, "Tiger Electronics", "Nightmare Before Christmas (handheld)", MACHINE_SUPPORTS_SAVE ) // note: title has no "The"
+CONS( 1993, ttransf2, 0, 0, ttransf2, ttransf2, ttransf2_state, 0, "Tiger Electronics", "Transformers - Generation 2 (handheld)", MACHINE_SUPPORTS_SAVE )
CONS( 1993, tmkombat, 0, 0, tmkombat, tmkombat, tmkombat_state, 0, "Tiger Electronics (licensed from Midway)", "Mortal Kombat (handheld)", MACHINE_SUPPORTS_SAVE )
CONS( 1994, tshadow, 0, 0, tshadow, tshadow, tshadow_state, 0, "Tiger Electronics", "The Shadow (handheld)", MACHINE_SUPPORTS_SAVE )
CONS( 1994, tskelwarr, 0, 0, tskelwarr, tskelwarr, tskelwarr_state, 0, "Tiger Electronics", "Skeleton Warriors - The Dark Crusade (handheld)", MACHINE_SUPPORTS_SAVE )
@@ -6410,6 +6839,7 @@ CONS( 1995, tbatfor, 0, 0, tbatfor, tbatfor, tbatfor_state,
CONS( 1995, tjdredd, 0, 0, tjdredd, tjdredd, tjdredd_state, 0, "Tiger Electronics", "Judge Dredd (handheld)", MACHINE_SUPPORTS_SAVE )
CONS( 1995, tapollo13, 0, 0, tapollo13, tapollo13, tapollo13_state, 0, "Tiger Electronics", "Apollo 13 (handheld)", MACHINE_SUPPORTS_SAVE )
CONS( 1995, tgoldeye, 0, 0, tgoldeye, tgoldeye, tgoldeye_state, 0, "Tiger Electronics", "007: GoldenEye (handheld)", MACHINE_SUPPORTS_SAVE )
+CONS( 1996, tinday, 0, 0, tinday, tinday, tinday_state, 0, "Tiger Electronics", "Independence Day (handheld)", MACHINE_SUPPORTS_SAVE )
CONS( 1996, tsjam, 0, 0, tsjam, tsjam, tsjam_state, 0, "Tiger Electronics", "Space Jam (handheld)", MACHINE_SUPPORTS_SAVE )
CONS( 1983, tigarden, 0, 0, tigarden, tigarden, tigarden_state, 0, "Tronica", "Thief in Garden", MACHINE_SUPPORTS_SAVE )
diff --git a/src/mame/mame.lst b/src/mame/mame.lst
index d8097a57494..10bc28417c9 100644
--- a/src/mame/mame.lst
+++ b/src/mame/mame.lst
@@ -14834,8 +14834,11 @@ tgaiden // Tiger
tgaunt // Tiger
tgoldeye // Tiger
tgoldnaxe // Tiger
+thalone // Tiger
+thalone2 // Tiger
thook // Tiger
tigarden // Tronica
+tinday // Tiger
tjdredd // Tiger
tjpark // Tiger
tkarnov // Tiger
@@ -14857,6 +14860,7 @@ tsonic2 // Tiger
tspidman // Tiger
tstrider // Tiger
tswampt // Tiger
+ttransf2 // Tiger
tvindictr // Tiger
txmenpx // Tiger