New working systems

-------------------
Basketbol (Elektronika) [hap, Milan Galcik]
This commit is contained in:
hap 2025-02-03 23:29:00 +01:00
parent 7274d211c9
commit 9ba5d7019e
4 changed files with 344 additions and 93 deletions

View File

@ -157,6 +157,8 @@ The MCUs used were not imported from Sharp, but cloned by USSR, renamed to
#include "hh_sm510_dualh.lh"
#include "hh_sm510_tripleh.lh"
#include "elbaskb.lh"
//#include "hh_sm510_test.lh" // common test-layout - use external artwork
#include "hh_sm500_test.lh" // "
@ -217,7 +219,7 @@ void hh_sm510_state::machine_reset()
// lcd panel - on lcd handhelds, usually not a generic x/y screen device
// deflicker here, especially needed for SM500/SM5A with the active shift register
TIMER_CALLBACK_MEMBER(hh_sm510_state::display_decay_tick)
void hh_sm510_state::update_display()
{
u8 z_mask = (1 << m_display_z_len) - 1;
u8 zx_len = 1 << (m_display_x_len + m_display_z_len);
@ -592,7 +594,7 @@ static INPUT_PORTS_START( gnw_ball )
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SELECT ) PORT_CHANGED_CB(input_changed) PORT_NAME("Time")
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_START2 ) PORT_CHANGED_CB(input_changed) PORT_NAME("Game B")
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_START1 ) PORT_CHANGED_CB(input_changed) PORT_NAME("Game A")
PORT_CONFNAME( 0x08, 0x00, "Invincibility (Cheat)") // factory test, unpopulated on PCB -- disable after boot
PORT_CONFNAME( 0x08, 0x00, "Invincibility (Cheat)" ) // factory test, unpopulated on PCB -- disable after boot
PORT_CONFSETTING( 0x00, DEF_STR( Off ) )
PORT_CONFSETTING( 0x08, DEF_STR( On ) )
@ -667,7 +669,7 @@ static INPUT_PORTS_START( gnw_flagman )
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNUSED )
PORT_START("B")
PORT_CONFNAME( 0x01, 0x01, "Infinite Lives (Cheat)") // factory test, unpopulated on PCB -- only works after power-on
PORT_CONFNAME( 0x01, 0x01, "Infinite Lives (Cheat)" ) // factory test, unpopulated on PCB -- only works after power-on
PORT_CONFSETTING( 0x01, DEF_STR( Off ) )
PORT_CONFSETTING( 0x00, DEF_STR( On ) )
@ -726,7 +728,7 @@ static INPUT_PORTS_START( gnw_vermin )
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SELECT ) PORT_CHANGED_CB(input_changed) PORT_NAME("Time")
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_START2 ) PORT_CHANGED_CB(input_changed) PORT_NAME("Game B")
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_START1 ) PORT_CHANGED_CB(input_changed) PORT_NAME("Game A")
PORT_CONFNAME( 0x08, 0x00, "Infinite Lives (Cheat)") // factory test, unpopulated on PCB -- disable after boot
PORT_CONFNAME( 0x08, 0x00, "Infinite Lives (Cheat)" ) // factory test, unpopulated on PCB -- disable after boot
PORT_CONFSETTING( 0x00, DEF_STR( Off ) )
PORT_CONFSETTING( 0x08, DEF_STR( On ) )
@ -793,7 +795,7 @@ static INPUT_PORTS_START( gnw_fires )
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SELECT ) PORT_CHANGED_CB(input_changed) PORT_NAME("Time")
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_START2 ) PORT_CHANGED_CB(input_changed) PORT_NAME("Game B")
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_START1 ) PORT_CHANGED_CB(input_changed) PORT_NAME("Game A")
PORT_CONFNAME( 0x08, 0x00, "Invincibility (Cheat)") // factory test, unpopulated on PCB -- disable after boot
PORT_CONFNAME( 0x08, 0x00, "Invincibility (Cheat)" ) // factory test, unpopulated on PCB -- disable after boot
PORT_CONFSETTING( 0x00, DEF_STR( Off ) )
PORT_CONFSETTING( 0x08, DEF_STR( On ) )
@ -870,7 +872,7 @@ static INPUT_PORTS_START( gnw_judge )
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNUSED )
PORT_START("B")
PORT_CONFNAME( 0x01, 0x01, "Increase Computer's Operation Time (Cheat)") // factory test, unpopulated on PCB -- only works after power-on
PORT_CONFNAME( 0x01, 0x01, "Increase Computer's Operation Time (Cheat)" ) // factory test, unpopulated on PCB -- only works after power-on
PORT_CONFSETTING( 0x01, DEF_STR( Off ) )
PORT_CONFSETTING( 0x00, DEF_STR( On ) )
@ -950,7 +952,7 @@ static INPUT_PORTS_START( gnw_manholeg )
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNUSED ) // display test?
PORT_START("BA")
PORT_CONFNAME( 0x01, 0x01, "Invincibility (Cheat)") // factory test, unpopulated on PCB
PORT_CONFNAME( 0x01, 0x01, "Invincibility (Cheat)" ) // factory test, unpopulated on PCB
PORT_CONFSETTING( 0x01, DEF_STR( Off ) )
PORT_CONFSETTING( 0x00, DEF_STR( On ) )
@ -1009,7 +1011,7 @@ static INPUT_PORTS_START( gnw_helmet )
PORT_BIT( 0x0f, IP_ACTIVE_HIGH, IPT_UNUSED )
PORT_START("IN.1") // R3
PORT_CONFNAME( 0x01, 0x00, "Invincibility (Cheat)") // factory test, unpopulated on PCB -- disable after boot
PORT_CONFNAME( 0x01, 0x00, "Invincibility (Cheat)" ) // factory test, unpopulated on PCB -- disable after boot
PORT_CONFSETTING( 0x00, DEF_STR( Off ) )
PORT_CONFSETTING( 0x01, DEF_STR( On ) )
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_UNUSED ) // same as 0x01?
@ -1088,7 +1090,7 @@ public:
static INPUT_PORTS_START( gnw_lion )
PORT_START("IN.0") // R2
PORT_CONFNAME( 0x01, 0x00, "Increase Speed (Cheat)") // factory test, unpopulated on PCB -- disable after boot
PORT_CONFNAME( 0x01, 0x00, "Increase Speed (Cheat)" ) // factory test, unpopulated on PCB -- disable after boot
PORT_CONFSETTING( 0x00, DEF_STR( Off ) )
PORT_CONFSETTING( 0x01, DEF_STR( On ) )
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_UNUSED ) // same as 0x01?
@ -1111,7 +1113,7 @@ static INPUT_PORTS_START( gnw_lion )
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNUSED ) // display test?
PORT_START("BA")
PORT_CONFNAME( 0x01, 0x01, "Infinite Lives (Cheat)") // factory test, unpopulated on PCB
PORT_CONFNAME( 0x01, 0x01, "Infinite Lives (Cheat)" ) // factory test, unpopulated on PCB
PORT_CONFSETTING( 0x01, DEF_STR( Off ) )
PORT_CONFSETTING( 0x00, DEF_STR( On ) )
@ -1166,7 +1168,7 @@ static INPUT_PORTS_START( gnw_pchute )
PORT_BIT( 0x0f, IP_ACTIVE_HIGH, IPT_UNUSED )
PORT_START("IN.1") // R3
PORT_CONFNAME( 0x01, 0x00, "Infinite Lives (Cheat)") // factory test, unpopulated on PCB -- disable after boot
PORT_CONFNAME( 0x01, 0x00, "Infinite Lives (Cheat)" ) // factory test, unpopulated on PCB -- disable after boot
PORT_CONFSETTING( 0x00, DEF_STR( Off ) )
PORT_CONFSETTING( 0x01, DEF_STR( On ) )
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_UNUSED ) // same as 0x01?
@ -1238,7 +1240,7 @@ public:
static INPUT_PORTS_START( gnw_octopus )
PORT_START("IN.0") // R2
PORT_CONFNAME( 0x01, 0x00, "Invincibility (Cheat)") // factory test, unpopulated on PCB
PORT_CONFNAME( 0x01, 0x00, "Invincibility (Cheat)" ) // factory test, unpopulated on PCB
PORT_CONFSETTING( 0x00, DEF_STR( Off ) )
PORT_CONFSETTING( 0x01, DEF_STR( On ) )
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_UNUSED ) // same as 0x01?
@ -1323,7 +1325,7 @@ public:
static INPUT_PORTS_START( gnw_popeye )
PORT_START("IN.0") // R2
PORT_CONFNAME( 0x01, 0x00, "Infinite Lives (Cheat)") // factory test, unpopulated on PCB
PORT_CONFNAME( 0x01, 0x00, "Infinite Lives (Cheat)" ) // factory test, unpopulated on PCB
PORT_CONFSETTING( 0x00, DEF_STR( Off ) )
PORT_CONFSETTING( 0x01, DEF_STR( On ) )
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_UNUSED ) // same as 0x01?
@ -1416,7 +1418,7 @@ static INPUT_PORTS_START( gnw_chef )
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SERVICE1 ) PORT_CHANGED_CB(acl_button) PORT_NAME("ACL")
PORT_START("BA")
PORT_CONFNAME( 0x01, 0x01, "Infinite Lives (Cheat)") // factory test, unpopulated on PCB -- only works after power-on
PORT_CONFNAME( 0x01, 0x01, "Infinite Lives (Cheat)" ) // factory test, unpopulated on PCB -- only works after power-on
PORT_CONFSETTING( 0x01, DEF_STR( Off ) )
PORT_CONFSETTING( 0x00, DEF_STR( On ) )
INPUT_PORTS_END
@ -1502,7 +1504,7 @@ static INPUT_PORTS_START( gnw_mmouse )
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SERVICE1 ) PORT_CHANGED_CB(acl_button) PORT_NAME("ACL")
PORT_START("BA")
PORT_CONFNAME( 0x01, 0x01, "Infinite Lives (Cheat)") // factory test, unpopulated on PCB -- only works after power-on
PORT_CONFNAME( 0x01, 0x01, "Infinite Lives (Cheat)" ) // factory test, unpopulated on PCB -- only works after power-on
PORT_CONFSETTING( 0x01, DEF_STR( Off ) )
PORT_CONFSETTING( 0x00, DEF_STR( On ) )
INPUT_PORTS_END
@ -1573,7 +1575,7 @@ public:
static INPUT_PORTS_START( gnw_fire )
PORT_START("IN.0") // R2
PORT_CONFNAME( 0x01, 0x00, "Infinite Lives (Cheat)") // factory test, unpopulated on PCB
PORT_CONFNAME( 0x01, 0x00, "Infinite Lives (Cheat)" ) // factory test, unpopulated on PCB
PORT_CONFSETTING( 0x00, DEF_STR( Off ) )
PORT_CONFSETTING( 0x01, DEF_STR( On ) )
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_UNUSED ) // same as 0x01?
@ -1675,12 +1677,12 @@ static INPUT_PORTS_START( gnw_tbridge )
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SERVICE1 ) PORT_CHANGED_CB(acl_button) PORT_NAME("ACL")
PORT_START("BA")
PORT_CONFNAME( 0x01, 0x01, "Increase Score (Cheat)") // factory test, unpopulated on PCB
PORT_CONFNAME( 0x01, 0x01, "Increase Score (Cheat)" ) // factory test, unpopulated on PCB
PORT_CONFSETTING( 0x01, DEF_STR( Off ) )
PORT_CONFSETTING( 0x00, DEF_STR( On ) )
PORT_START("B")
PORT_CONFNAME( 0x01, 0x01, "Infinite Lives (Cheat)") // "
PORT_CONFNAME( 0x01, 0x01, "Infinite Lives (Cheat)" ) // "
PORT_CONFSETTING( 0x01, DEF_STR( Off ) )
PORT_CONFSETTING( 0x00, DEF_STR( On ) )
INPUT_PORTS_END
@ -1744,12 +1746,12 @@ static INPUT_PORTS_START( gnw_fireatk )
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SERVICE1 ) PORT_CHANGED_CB(acl_button) PORT_NAME("ACL")
PORT_START("BA")
PORT_CONFNAME( 0x01, 0x01, "Increase Score (Cheat)") // factory test, unpopulated on PCB
PORT_CONFNAME( 0x01, 0x01, "Increase Score (Cheat)" ) // factory test, unpopulated on PCB
PORT_CONFSETTING( 0x01, DEF_STR( Off ) )
PORT_CONFSETTING( 0x00, DEF_STR( On ) )
PORT_START("B")
PORT_CONFNAME( 0x01, 0x01, "Infinite Lives (Cheat)") // "
PORT_CONFNAME( 0x01, 0x01, "Infinite Lives (Cheat)" ) // "
PORT_CONFSETTING( 0x01, DEF_STR( Off ) )
PORT_CONFSETTING( 0x00, DEF_STR( On ) )
INPUT_PORTS_END
@ -1813,12 +1815,12 @@ static INPUT_PORTS_START( gnw_stennis )
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SERVICE1 ) PORT_CHANGED_CB(acl_button) PORT_NAME("ACL")
PORT_START("BA")
PORT_CONFNAME( 0x01, 0x01, "Increase Score (Cheat)") // factory test, unpopulated on PCB
PORT_CONFNAME( 0x01, 0x01, "Increase Score (Cheat)" ) // factory test, unpopulated on PCB
PORT_CONFSETTING( 0x01, DEF_STR( Off ) )
PORT_CONFSETTING( 0x00, DEF_STR( On ) )
PORT_START("B")
PORT_CONFNAME( 0x01, 0x01, "Infinite Lives (Cheat)") // "
PORT_CONFNAME( 0x01, 0x01, "Infinite Lives (Cheat)" ) // "
PORT_CONFSETTING( 0x01, DEF_STR( Off ) )
PORT_CONFSETTING( 0x00, DEF_STR( On ) )
INPUT_PORTS_END
@ -1882,12 +1884,12 @@ static INPUT_PORTS_START( gnw_opanic )
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SERVICE1 ) PORT_CHANGED_CB(acl_button) PORT_NAME("ACL")
PORT_START("BA")
PORT_CONFNAME( 0x01, 0x01, "Increase Score (Cheat)") // factory test, unpopulated on PCB
PORT_CONFNAME( 0x01, 0x01, "Increase Score (Cheat)" ) // factory test, unpopulated on PCB
PORT_CONFSETTING( 0x01, DEF_STR( Off ) )
PORT_CONFSETTING( 0x00, DEF_STR( On ) )
PORT_START("B")
PORT_CONFNAME( 0x01, 0x01, "Infinite Lives (Cheat)") // "
PORT_CONFNAME( 0x01, 0x01, "Infinite Lives (Cheat)" ) // "
PORT_CONFSETTING( 0x01, DEF_STR( Off ) )
PORT_CONFSETTING( 0x00, DEF_STR( On ) )
INPUT_PORTS_END
@ -1958,7 +1960,7 @@ static INPUT_PORTS_START( gnw_dkong )
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SERVICE1 ) PORT_CHANGED_CB(acl_button) PORT_NAME("ACL")
PORT_START("B")
PORT_CONFNAME( 0x01, 0x01, "Infinite Lives (Cheat)") // factory test, unpopulated on PCB
PORT_CONFNAME( 0x01, 0x01, "Infinite Lives (Cheat)" ) // factory test, unpopulated on PCB
PORT_CONFSETTING( 0x01, DEF_STR( Off ) )
PORT_CONFSETTING( 0x00, DEF_STR( On ) )
INPUT_PORTS_END
@ -2025,7 +2027,7 @@ static INPUT_PORTS_START( gnw_mickdon )
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SERVICE1 ) PORT_CHANGED_CB(acl_button) PORT_NAME("ACL")
PORT_START("B")
PORT_CONFNAME( 0x01, 0x01, "Infinite Lives (Cheat)") // factory test, unpopulated on PCB
PORT_CONFNAME( 0x01, 0x01, "Infinite Lives (Cheat)" ) // factory test, unpopulated on PCB
PORT_CONFSETTING( 0x01, DEF_STR( Off ) )
PORT_CONFSETTING( 0x00, DEF_STR( On ) )
INPUT_PORTS_END
@ -2101,12 +2103,12 @@ static INPUT_PORTS_START( gnw_ghouse )
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SERVICE1 ) PORT_CHANGED_CB(acl_button) PORT_NAME("ACL")
PORT_START("BA")
PORT_CONFNAME( 0x01, 0x01, "Increase Score (Cheat)") // factory test, unpopulated on PCB
PORT_CONFNAME( 0x01, 0x01, "Increase Score (Cheat)" ) // factory test, unpopulated on PCB
PORT_CONFSETTING( 0x01, DEF_STR( Off ) )
PORT_CONFSETTING( 0x00, DEF_STR( On ) )
PORT_START("B")
PORT_CONFNAME( 0x01, 0x01, "Invincibility (Cheat)") // "
PORT_CONFNAME( 0x01, 0x01, "Invincibility (Cheat)" ) // "
PORT_CONFSETTING( 0x01, DEF_STR( Off ) )
PORT_CONFSETTING( 0x00, DEF_STR( On ) )
INPUT_PORTS_END
@ -2177,7 +2179,7 @@ static INPUT_PORTS_START( gnw_dkong2 )
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SERVICE1 ) PORT_CHANGED_CB(acl_button) PORT_NAME("ACL")
PORT_START("B")
PORT_CONFNAME( 0x01, 0x01, "Invincibility (Cheat)") // factory test, unpopulated on PCB
PORT_CONFNAME( 0x01, 0x01, "Invincibility (Cheat)" ) // factory test, unpopulated on PCB
PORT_CONFSETTING( 0x01, DEF_STR( Off ) )
PORT_CONFSETTING( 0x00, DEF_STR( On ) )
INPUT_PORTS_END
@ -2244,12 +2246,12 @@ static INPUT_PORTS_START( gnw_mario )
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SERVICE1 ) PORT_CHANGED_CB(acl_button) PORT_NAME("ACL")
PORT_START("BA")
PORT_CONFNAME( 0x01, 0x01, "Increase Score (Cheat)") // factory test, unpopulated on PCB
PORT_CONFNAME( 0x01, 0x01, "Increase Score (Cheat)" ) // factory test, unpopulated on PCB
PORT_CONFSETTING( 0x01, DEF_STR( Off ) )
PORT_CONFSETTING( 0x00, DEF_STR( On ) )
PORT_START("B")
PORT_CONFNAME( 0x01, 0x01, "Infinite Lives (Cheat)") // "
PORT_CONFNAME( 0x01, 0x01, "Infinite Lives (Cheat)" ) // "
PORT_CONFSETTING( 0x01, DEF_STR( Off ) )
PORT_CONFSETTING( 0x00, DEF_STR( On ) )
INPUT_PORTS_END
@ -2322,12 +2324,12 @@ static INPUT_PORTS_START( gnw_rshower )
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SERVICE1 ) PORT_CHANGED_CB(acl_button) PORT_NAME("ACL")
PORT_START("BA")
PORT_CONFNAME( 0x01, 0x01, "Increase Score (Cheat)") // factory test, unpopulated on PCB
PORT_CONFNAME( 0x01, 0x01, "Increase Score (Cheat)" ) // factory test, unpopulated on PCB
PORT_CONFSETTING( 0x01, DEF_STR( Off ) )
PORT_CONFSETTING( 0x00, DEF_STR( On ) )
PORT_START("B")
PORT_CONFNAME( 0x01, 0x01, "Infinite Lives (Cheat)") // "
PORT_CONFNAME( 0x01, 0x01, "Infinite Lives (Cheat)" ) // "
PORT_CONFSETTING( 0x01, DEF_STR( Off ) )
PORT_CONFSETTING( 0x00, DEF_STR( On ) )
INPUT_PORTS_END
@ -2394,12 +2396,12 @@ static INPUT_PORTS_START( gnw_lboat )
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SERVICE1 ) PORT_CHANGED_CB(acl_button) PORT_NAME("ACL")
PORT_START("BA")
PORT_CONFNAME( 0x01, 0x01, "Increase Score (Cheat)") // factory test, unpopulated on PCB
PORT_CONFNAME( 0x01, 0x01, "Increase Score (Cheat)" ) // factory test, unpopulated on PCB
PORT_CONFSETTING( 0x01, DEF_STR( Off ) )
PORT_CONFSETTING( 0x00, DEF_STR( On ) )
PORT_START("B")
PORT_CONFNAME( 0x01, 0x01, "Invincibility (Cheat)") // "
PORT_CONFNAME( 0x01, 0x01, "Invincibility (Cheat)" ) // "
PORT_CONFSETTING( 0x01, DEF_STR( Off ) )
PORT_CONFSETTING( 0x00, DEF_STR( On ) )
INPUT_PORTS_END
@ -2466,12 +2468,12 @@ static INPUT_PORTS_START( gnw_pinball )
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SERVICE1 ) PORT_CHANGED_CB(acl_button) PORT_NAME("ACL")
PORT_START("BA")
PORT_CONFNAME( 0x01, 0x01, "Increase Score (Cheat)") // factory test, unpopulated on PCB -- this one multiplies scoring factor
PORT_CONFNAME( 0x01, 0x01, "Increase Score (Cheat)" ) // factory test, unpopulated on PCB -- this one multiplies scoring factor
PORT_CONFSETTING( 0x01, DEF_STR( Off ) )
PORT_CONFSETTING( 0x00, DEF_STR( On ) )
PORT_START("B")
PORT_CONFNAME( 0x01, 0x01, "Infinite Lives (Cheat)") // "
PORT_CONFNAME( 0x01, 0x01, "Infinite Lives (Cheat)" ) // "
PORT_CONFSETTING( 0x01, DEF_STR( Off ) )
PORT_CONFSETTING( 0x00, DEF_STR( On ) )
INPUT_PORTS_END
@ -2609,12 +2611,12 @@ static INPUT_PORTS_START( gnw_squish )
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SERVICE1 ) PORT_CHANGED_CB(acl_button) PORT_NAME("ACL")
PORT_START("BA")
PORT_CONFNAME( 0x01, 0x01, "Bonus Life (Cheat)") // factory test, unpopulated on PCB
PORT_CONFNAME( 0x01, 0x01, "Bonus Life (Cheat)" ) // factory test, unpopulated on PCB
PORT_CONFSETTING( 0x01, DEF_STR( Off ) )
PORT_CONFSETTING( 0x00, DEF_STR( On ) )
PORT_START("B")
PORT_CONFNAME( 0x01, 0x01, "Infinite Lives (Cheat)") // "
PORT_CONFNAME( 0x01, 0x01, "Infinite Lives (Cheat)" ) // "
PORT_CONFSETTING( 0x01, DEF_STR( Off ) )
PORT_CONFSETTING( 0x00, DEF_STR( On ) )
INPUT_PORTS_END
@ -2681,12 +2683,12 @@ static INPUT_PORTS_START( gnw_bsweep )
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SERVICE1 ) PORT_CHANGED_CB(acl_button) PORT_NAME("ACL")
PORT_START("BA")
PORT_CONFNAME( 0x01, 0x01, "Infinite Lives (Cheat)") // factory test, unpopulated on PCB
PORT_CONFNAME( 0x01, 0x01, "Infinite Lives (Cheat)" ) // factory test, unpopulated on PCB
PORT_CONFSETTING( 0x01, DEF_STR( Off ) )
PORT_CONFSETTING( 0x00, DEF_STR( On ) )
PORT_START("B")
PORT_CONFNAME( 0x01, 0x01, "Level Skip (Cheat)") // " -- Controller keys skips level when activated
PORT_CONFNAME( 0x01, 0x01, "Level Skip (Cheat)" ) // " -- Controller keys skips level when activated
PORT_CONFSETTING( 0x01, DEF_STR( Off ) )
PORT_CONFSETTING( 0x00, DEF_STR( On ) )
INPUT_PORTS_END
@ -2755,12 +2757,12 @@ static INPUT_PORTS_START( gnw_sbuster )
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SERVICE1 ) PORT_CHANGED_CB(acl_button) PORT_NAME("ACL")
PORT_START("BA")
PORT_CONFNAME( 0x01, 0x01, "Increase Score (Cheat)") // factory test, unpopulated on PCB
PORT_CONFNAME( 0x01, 0x01, "Increase Score (Cheat)" ) // factory test, unpopulated on PCB
PORT_CONFSETTING( 0x01, DEF_STR( Off ) )
PORT_CONFSETTING( 0x00, DEF_STR( On ) )
PORT_START("B")
PORT_CONFNAME( 0x01, 0x01, "Invincibility (Cheat)") // "
PORT_CONFNAME( 0x01, 0x01, "Invincibility (Cheat)" ) // "
PORT_CONFSETTING( 0x01, DEF_STR( Off ) )
PORT_CONFSETTING( 0x00, DEF_STR( On ) )
INPUT_PORTS_END
@ -2834,12 +2836,12 @@ static INPUT_PORTS_START( gnw_gcliff )
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SERVICE1 ) PORT_CHANGED_CB(acl_button) PORT_NAME("ACL")
PORT_START("BA")
PORT_CONFNAME( 0x01, 0x01, "Invincibility (Cheat)") // factory test, unpopulated on PCB
PORT_CONFNAME( 0x01, 0x01, "Invincibility (Cheat)" ) // factory test, unpopulated on PCB
PORT_CONFSETTING( 0x01, DEF_STR( Off ) )
PORT_CONFSETTING( 0x00, DEF_STR( On ) )
PORT_START("B")
PORT_CONFNAME( 0x01, 0x01, "Level Skip (Cheat)") // " -- Left or right skips level when activated
PORT_CONFNAME( 0x01, 0x01, "Level Skip (Cheat)" ) // " -- Left or right skips level when activated
PORT_CONFSETTING( 0x01, DEF_STR( Off ) )
PORT_CONFSETTING( 0x00, DEF_STR( On ) )
INPUT_PORTS_END
@ -2913,12 +2915,12 @@ static INPUT_PORTS_START( gnw_zelda )
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SERVICE1 ) PORT_CHANGED_CB(acl_button) PORT_NAME("ACL")
PORT_START("BA")
PORT_CONFNAME( 0x01, 0x01, "Increase Score (Cheat)") // factory test, unpopulated on PCB
PORT_CONFNAME( 0x01, 0x01, "Increase Score (Cheat)" ) // factory test, unpopulated on PCB
PORT_CONFSETTING( 0x01, DEF_STR( Off ) )
PORT_CONFSETTING( 0x00, DEF_STR( On ) )
PORT_START("B")
PORT_CONFNAME( 0x01, 0x01, "Invincibility (Cheat)") // " -- Invincibility when playing on bottom screen only
PORT_CONFNAME( 0x01, 0x01, "Invincibility (Cheat)" ) // " -- Invincibility when playing on bottom screen only
PORT_CONFSETTING( 0x01, DEF_STR( Off ) )
PORT_CONFSETTING( 0x00, DEF_STR( On ) )
INPUT_PORTS_END
@ -2994,12 +2996,12 @@ static INPUT_PORTS_START( gnw_mariocmt )
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SERVICE1 ) PORT_CHANGED_CB(acl_button) PORT_NAME("ACL")
PORT_START("BA")
PORT_CONFNAME( 0x01, 0x01, "Increase Score (Cheat)") // factory test, unpopulated on PCB
PORT_CONFNAME( 0x01, 0x01, "Increase Score (Cheat)" ) // factory test, unpopulated on PCB
PORT_CONFSETTING( 0x01, DEF_STR( Off ) )
PORT_CONFSETTING( 0x00, DEF_STR( On ) )
PORT_START("B")
PORT_CONFNAME( 0x01, 0x01, "Infinite Lives (Cheat)") // "
PORT_CONFNAME( 0x01, 0x01, "Infinite Lives (Cheat)" ) // "
PORT_CONFSETTING( 0x01, DEF_STR( Off ) )
PORT_CONFSETTING( 0x00, DEF_STR( On ) )
INPUT_PORTS_END
@ -3080,12 +3082,12 @@ static INPUT_PORTS_START( gnw_snoopyp )
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SERVICE1 ) PORT_CHANGED_CB(acl_button) PORT_NAME("ACL")
PORT_START("BA")
PORT_CONFNAME( 0x01, 0x01, "Increase Score (Cheat)") // factory test, unpopulated on PCB
PORT_CONFNAME( 0x01, 0x01, "Increase Score (Cheat)" ) // factory test, unpopulated on PCB
PORT_CONFSETTING( 0x01, DEF_STR( Off ) )
PORT_CONFSETTING( 0x00, DEF_STR( On ) )
PORT_START("B")
PORT_CONFNAME( 0x01, 0x01, "Infinite Lives (Cheat)") // "
PORT_CONFNAME( 0x01, 0x01, "Infinite Lives (Cheat)" ) // "
PORT_CONFSETTING( 0x01, DEF_STR( Off ) )
PORT_CONFSETTING( 0x00, DEF_STR( On ) )
INPUT_PORTS_END
@ -3159,12 +3161,12 @@ static INPUT_PORTS_START( gnw_popeyep )
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SERVICE1 ) PORT_CHANGED_CB(acl_button) PORT_NAME("ACL")
PORT_START("BA")
PORT_CONFNAME( 0x01, 0x01, "Increase Score (Cheat)") // factory test, unpopulated on PCB
PORT_CONFNAME( 0x01, 0x01, "Increase Score (Cheat)" ) // factory test, unpopulated on PCB
PORT_CONFSETTING( 0x01, DEF_STR( Off ) )
PORT_CONFSETTING( 0x00, DEF_STR( On ) )
PORT_START("B")
PORT_CONFNAME( 0x01, 0x01, "Infinite Lives and Stronger Punch (Cheat)") // "
PORT_CONFNAME( 0x01, 0x01, "Infinite Lives and Stronger Punch (Cheat)" ) // "
PORT_CONFSETTING( 0x01, DEF_STR( Off ) )
PORT_CONFSETTING( 0x00, DEF_STR( On ) )
INPUT_PORTS_END
@ -3241,12 +3243,12 @@ static INPUT_PORTS_START( gnw_dkjrp )
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SERVICE1 ) PORT_CHANGED_CB(acl_button) PORT_NAME("ACL")
PORT_START("BA")
PORT_CONFNAME( 0x01, 0x01, "Increase Score (Cheat)") // factory test, unpopulated on PCB
PORT_CONFNAME( 0x01, 0x01, "Increase Score (Cheat)" ) // factory test, unpopulated on PCB
PORT_CONFSETTING( 0x01, DEF_STR( Off ) )
PORT_CONFSETTING( 0x00, DEF_STR( On ) )
PORT_START("B")
PORT_CONFNAME( 0x01, 0x01, "Infinite Lives (Cheat)") // "
PORT_CONFNAME( 0x01, 0x01, "Infinite Lives (Cheat)" ) // "
PORT_CONFSETTING( 0x01, DEF_STR( Off ) )
PORT_CONFSETTING( 0x00, DEF_STR( On ) )
INPUT_PORTS_END
@ -3313,12 +3315,12 @@ static INPUT_PORTS_START( gnw_mbaway )
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SERVICE1 ) PORT_CHANGED_CB(acl_button) PORT_NAME("ACL")
PORT_START("BA")
PORT_CONFNAME( 0x01, 0x01, "Invincibility (Cheat)") // factory test, unpopulated on PCB
PORT_CONFNAME( 0x01, 0x01, "Invincibility (Cheat)" ) // factory test, unpopulated on PCB
PORT_CONFSETTING( 0x01, DEF_STR( Off ) )
PORT_CONFSETTING( 0x00, DEF_STR( On ) )
PORT_START("B")
PORT_CONFNAME( 0x01, 0x01, "Infinite Lives (Cheat)") // "
PORT_CONFNAME( 0x01, 0x01, "Infinite Lives (Cheat)" ) // "
PORT_CONFSETTING( 0x01, DEF_STR( Off ) )
PORT_CONFSETTING( 0x00, DEF_STR( On ) )
INPUT_PORTS_END
@ -3395,12 +3397,12 @@ static INPUT_PORTS_START( gnw_mmousep )
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SERVICE1 ) PORT_CHANGED_CB(acl_button) PORT_NAME("ACL")
PORT_START("BA")
PORT_CONFNAME( 0x01, 0x01, "Increase Score (Cheat)") // factory test, unpopulated on PCB
PORT_CONFNAME( 0x01, 0x01, "Increase Score (Cheat)" ) // factory test, unpopulated on PCB
PORT_CONFSETTING( 0x01, DEF_STR( Off ) )
PORT_CONFSETTING( 0x00, DEF_STR( On ) )
PORT_START("B")
PORT_CONFNAME( 0x01, 0x01, "Infinite Lives (Cheat)") // "
PORT_CONFNAME( 0x01, 0x01, "Infinite Lives (Cheat)" ) // "
PORT_CONFSETTING( 0x01, DEF_STR( Off ) )
PORT_CONFSETTING( 0x00, DEF_STR( On ) )
INPUT_PORTS_END
@ -3489,12 +3491,12 @@ static INPUT_PORTS_START( gnw_dkjr )
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SERVICE1 ) PORT_CHANGED_CB(acl_button) PORT_NAME("ACL")
PORT_START("BA")
PORT_CONFNAME( 0x01, 0x01, "Increase Score (Cheat)") // factory test, unpopulated on PCB
PORT_CONFNAME( 0x01, 0x01, "Increase Score (Cheat)" ) // factory test, unpopulated on PCB
PORT_CONFSETTING( 0x01, DEF_STR( Off ) )
PORT_CONFSETTING( 0x00, DEF_STR( On ) )
PORT_START("B")
PORT_CONFNAME( 0x01, 0x01, "Invincibility (Cheat)") // "
PORT_CONFNAME( 0x01, 0x01, "Invincibility (Cheat)" ) // "
PORT_CONFSETTING( 0x01, DEF_STR( Off ) )
PORT_CONFSETTING( 0x00, DEF_STR( On ) )
INPUT_PORTS_END
@ -3559,12 +3561,12 @@ static INPUT_PORTS_START( gnw_mariocm )
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SERVICE1 ) PORT_CHANGED_CB(acl_button) PORT_NAME("ACL")
PORT_START("BA")
PORT_CONFNAME( 0x01, 0x01, "Increase Score (Cheat)") // factory test, unpopulated on PCB
PORT_CONFNAME( 0x01, 0x01, "Increase Score (Cheat)" ) // factory test, unpopulated on PCB
PORT_CONFSETTING( 0x01, DEF_STR( Off ) )
PORT_CONFSETTING( 0x00, DEF_STR( On ) )
PORT_START("B")
PORT_CONFNAME( 0x01, 0x01, "Infinite Lives (Cheat)") // "
PORT_CONFNAME( 0x01, 0x01, "Infinite Lives (Cheat)" ) // "
PORT_CONFSETTING( 0x01, DEF_STR( Off ) )
PORT_CONFSETTING( 0x00, DEF_STR( On ) )
INPUT_PORTS_END
@ -3632,12 +3634,12 @@ static INPUT_PORTS_START( gnw_manhole )
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SERVICE1 ) PORT_CHANGED_CB(acl_button) PORT_NAME("ACL")
PORT_START("BA")
PORT_CONFNAME( 0x01, 0x01, "Increase Score (Cheat)") // factory test, unpopulated on PCB
PORT_CONFNAME( 0x01, 0x01, "Increase Score (Cheat)" ) // factory test, unpopulated on PCB
PORT_CONFSETTING( 0x01, DEF_STR( Off ) )
PORT_CONFSETTING( 0x00, DEF_STR( On ) )
PORT_START("B")
PORT_CONFNAME( 0x01, 0x01, "Invincibility (Cheat)") // "
PORT_CONFNAME( 0x01, 0x01, "Invincibility (Cheat)" ) // "
PORT_CONFSETTING( 0x01, DEF_STR( Off ) )
PORT_CONFSETTING( 0x00, DEF_STR( On ) )
INPUT_PORTS_END
@ -3701,7 +3703,7 @@ static INPUT_PORTS_START( gnw_tfish )
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SERVICE1 ) PORT_CHANGED_CB(acl_button) PORT_NAME("ACL")
PORT_START("B")
PORT_CONFNAME( 0x01, 0x01, "Infinite Lives (Cheat)") // factory test, unpopulated on PCB
PORT_CONFNAME( 0x01, 0x01, "Infinite Lives (Cheat)" ) // factory test, unpopulated on PCB
PORT_CONFSETTING( 0x01, DEF_STR( Off ) )
PORT_CONFSETTING( 0x00, DEF_STR( On ) )
INPUT_PORTS_END
@ -3778,7 +3780,7 @@ static INPUT_PORTS_START( gnw_smb )
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SERVICE1 ) PORT_CHANGED_CB(acl_button) PORT_NAME("ACL")
PORT_START("B")
PORT_CONFNAME( 0x01, 0x01, "Infinite Lives (Cheat)") // factory test, unpopulated on PCB
PORT_CONFNAME( 0x01, 0x01, "Infinite Lives (Cheat)" ) // factory test, unpopulated on PCB
PORT_CONFSETTING( 0x01, DEF_STR( Off ) )
PORT_CONFSETTING( 0x00, DEF_STR( On ) )
INPUT_PORTS_END
@ -3875,7 +3877,7 @@ static INPUT_PORTS_START( gnw_climber )
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SERVICE1 ) PORT_CHANGED_CB(acl_button) PORT_NAME("ACL")
PORT_START("B")
PORT_CONFNAME( 0x01, 0x01, "Infinite Lives (Cheat)") // factory test, unpopulated on PCB
PORT_CONFNAME( 0x01, 0x01, "Infinite Lives (Cheat)" ) // factory test, unpopulated on PCB
PORT_CONFSETTING( 0x01, DEF_STR( Off ) )
PORT_CONFSETTING( 0x00, DEF_STR( On ) )
INPUT_PORTS_END
@ -3974,7 +3976,7 @@ static INPUT_PORTS_START( gnw_bfight )
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SERVICE1 ) PORT_CHANGED_CB(acl_button) PORT_NAME("ACL")
PORT_START("B")
PORT_CONFNAME( 0x01, 0x01, "Infinite Lives (Cheat)") // factory test, unpopulated on PCB
PORT_CONFNAME( 0x01, 0x01, "Infinite Lives (Cheat)" ) // factory test, unpopulated on PCB
PORT_CONFSETTING( 0x01, DEF_STR( Off ) )
PORT_CONFSETTING( 0x00, DEF_STR( On ) )
INPUT_PORTS_END
@ -4057,7 +4059,7 @@ static INPUT_PORTS_START( gnw_mariotj )
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SERVICE1 ) PORT_CHANGED_CB(acl_button) PORT_NAME("ACL")
PORT_START("B")
PORT_CONFNAME( 0x01, 0x01, "Infinite Lives (Cheat)") // factory test, unpopulated on PCB
PORT_CONFNAME( 0x01, 0x01, "Infinite Lives (Cheat)" ) // factory test, unpopulated on PCB
PORT_CONFSETTING( 0x01, DEF_STR( Off ) )
PORT_CONFSETTING( 0x00, DEF_STR( On ) )
INPUT_PORTS_END
@ -4124,12 +4126,12 @@ static INPUT_PORTS_START( gnw_ssparky )
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SERVICE1 ) PORT_CHANGED_CB(acl_button) PORT_NAME("ACL")
PORT_START("BA")
PORT_CONFNAME( 0x01, 0x01, "Increase Score (Cheat)") // factory test, unpopulated on PCB
PORT_CONFNAME( 0x01, 0x01, "Increase Score (Cheat)" ) // factory test, unpopulated on PCB
PORT_CONFSETTING( 0x01, DEF_STR( Off ) )
PORT_CONFSETTING( 0x00, DEF_STR( On ) )
PORT_START("B")
PORT_CONFNAME( 0x01, 0x01, "Infinite Lives (Cheat)") // "
PORT_CONFNAME( 0x01, 0x01, "Infinite Lives (Cheat)" ) // "
PORT_CONFSETTING( 0x01, DEF_STR( Off ) )
PORT_CONFSETTING( 0x00, DEF_STR( On ) )
INPUT_PORTS_END
@ -4193,12 +4195,12 @@ static INPUT_PORTS_START( gnw_cgrab )
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SERVICE1 ) PORT_CHANGED_CB(acl_button) PORT_NAME("ACL")
PORT_START("BA")
PORT_CONFNAME( 0x01, 0x01, "Do not release crabs (Cheat)") // factory test, unpopulated on PCB
PORT_CONFNAME( 0x01, 0x01, "Do not release crabs (Cheat)" ) // factory test, unpopulated on PCB
PORT_CONFSETTING( 0x01, DEF_STR( Off ) )
PORT_CONFSETTING( 0x00, DEF_STR( On ) )
PORT_START("B")
PORT_CONFNAME( 0x01, 0x01, "Infinite Lives (Cheat)") // "
PORT_CONFNAME( 0x01, 0x01, "Infinite Lives (Cheat)" ) // "
PORT_CONFSETTING( 0x01, DEF_STR( Off ) )
PORT_CONFSETTING( 0x00, DEF_STR( On ) )
INPUT_PORTS_END
@ -4289,12 +4291,12 @@ static INPUT_PORTS_START( gnw_boxing )
PORT_INCLUDE( microvs_shared )
PORT_START("BA")
PORT_CONFNAME( 0x01, 0x01, "P2 Decrease Health (Cheat)") // factory test, unpopulated on PCB
PORT_CONFNAME( 0x01, 0x01, "P2 Decrease Health (Cheat)" ) // factory test, unpopulated on PCB
PORT_CONFSETTING( 0x01, DEF_STR( Off ) )
PORT_CONFSETTING( 0x00, DEF_STR( On ) )
PORT_START("B")
PORT_CONFNAME( 0x01, 0x01, "P1 Infinite Health (Cheat)") // "
PORT_CONFNAME( 0x01, 0x01, "P1 Infinite Health (Cheat)" ) // "
PORT_CONFSETTING( 0x01, DEF_STR( Off ) )
PORT_CONFSETTING( 0x00, DEF_STR( On ) )
INPUT_PORTS_END
@ -4348,7 +4350,7 @@ static INPUT_PORTS_START( gnw_dkong3 )
PORT_INCLUDE( microvs_shared )
PORT_START("B")
PORT_CONFNAME( 0x01, 0x01, "P1 Infinite Lives (Cheat)") // factory test, unpopulated on PCB
PORT_CONFNAME( 0x01, 0x01, "P1 Infinite Lives (Cheat)" ) // factory test, unpopulated on PCB
PORT_CONFSETTING( 0x01, DEF_STR( Off ) )
PORT_CONFSETTING( 0x00, DEF_STR( On ) )
INPUT_PORTS_END
@ -4402,12 +4404,12 @@ static INPUT_PORTS_START( gnw_dkhockey )
PORT_INCLUDE( microvs_shared )
PORT_START("BA")
PORT_CONFNAME( 0x01, 0x01, "Any Goal Scores 10 Points (Cheat)") // factory test, unpopulated on PCB
PORT_CONFNAME( 0x01, 0x01, "Any Goal Scores 10 Points (Cheat)" ) // factory test, unpopulated on PCB
PORT_CONFSETTING( 0x01, DEF_STR( Off ) )
PORT_CONFSETTING( 0x00, DEF_STR( On ) )
PORT_START("B")
PORT_CONFNAME( 0x01, 0x01, "P2 Goals Scores No Points (Cheat)") // "
PORT_CONFNAME( 0x01, 0x01, "P2 Goals Scores No Points (Cheat)" ) // "
PORT_CONFSETTING( 0x01, DEF_STR( Off ) )
PORT_CONFSETTING( 0x00, DEF_STR( On ) )
INPUT_PORTS_END
@ -4485,7 +4487,7 @@ static INPUT_PORTS_START( bassmate )
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_SERVICE1 ) PORT_CHANGED_CB(acl_button) PORT_NAME("ACL")
PORT_START("BA")
PORT_CONFNAME( 0x01, 0x01, "Skip Compute Animation (Cheat)") // factory test, unpopulated on PCB
PORT_CONFNAME( 0x01, 0x01, "Skip Compute Animation (Cheat)" ) // factory test, unpopulated on PCB
PORT_CONFSETTING( 0x01, DEF_STR( Off ) )
PORT_CONFSETTING( 0x00, DEF_STR( On ) )
INPUT_PORTS_END
@ -4852,6 +4854,110 @@ ROM_END
/*******************************************************************************
Elektronika Баскетбол (Basketbol) (model ИМ-55)
* PCB label: ЕНСК.758726.002/3
* KB1013VK1-2 MCU
* 26 LEDs + 4 7seg LEDs, 1-bit sound
It's a LED game with an LCD driver MCU, that's unconventional.
*******************************************************************************/
class elbaskb_state : public hh_sm510_state
{
public:
elbaskb_state(const machine_config &mconfig, device_type type, const char *tag) :
hh_sm510_state(mconfig, type, tag),
m_digits(*this, "digit%u", 0U)
{ }
void elbaskb(machine_config &config);
protected:
virtual void machine_start() override ATTR_COLD;
virtual void update_display() override;
private:
output_finder<4> m_digits;
};
void elbaskb_state::machine_start()
{
hh_sm510_state::machine_start();
m_digits.resolve();
}
// handlers
void elbaskb_state::update_display()
{
hh_sm510_state::update_display();
// convert to digit segments
for (int i = 0; i < 4; i++)
{
u8 data = 0;
for (int seg = 0; seg < 7; seg++)
{
int x = ((i << 1) | (seg >> 2 ^ 1)) & 3;
int y = seg & 3;
int z = i >> 1 ^ 1;
data = data >> 1 | (m_out_x[x][y][z] ? 0x40 : 0);
}
m_digits[i] = data;
}
}
// inputs
static INPUT_PORTS_START( elbaskb )
PORT_START("IN.0") // R2
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_CHANGED_CB(input_changed) PORT_COCKTAIL
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_CHANGED_CB(input_changed) PORT_COCKTAIL
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_CHANGED_CB(input_changed) PORT_COCKTAIL
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_CHANGED_CB(input_changed) PORT_COCKTAIL // Отбор
PORT_START("IN.1") // R3
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_CHANGED_CB(input_changed)
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_CHANGED_CB(input_changed)
PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_CHANGED_CB(input_changed)
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_CHANGED_CB(input_changed) // Отбор
PORT_START("IN.2") // R4
PORT_BIT( 0x09, IP_ACTIVE_HIGH, IPT_UNUSED )
PORT_CONFNAME( 0x06, 0x02, DEF_STR( Difficulty ) ) PORT_CHANGED_CB(input_changed)
PORT_CONFSETTING( 0x02, "1" )
PORT_CONFSETTING( 0x04, "2" )
PORT_START("B")
PORT_CONFNAME( 0x01, 0x01, DEF_STR( Players ) )
PORT_CONFSETTING( 0x00, "1" )
PORT_CONFSETTING( 0x01, "2" )
INPUT_PORTS_END
// config
void elbaskb_state::elbaskb(machine_config &config)
{
sm5a_common(config, 0, 0); // КБ1013ВК1-2, R mask option ?
config.set_default_layout(layout_elbaskb);
}
// roms
ROM_START( elbaskb )
ROM_REGION( 0x800, "maincpu", 0 )
ROM_LOAD( "im-55.bin", 0x0000, 0x0740, CRC(006f82d0) SHA1(aca582dcb387345cd09a08e42a954c43430772fc) )
ROM_END
/*******************************************************************************
Konami Double Dribble (model BH001)
@ -11376,7 +11482,7 @@ static INPUT_PORTS_START( trsrescue )
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_SELECT ) PORT_CHANGED_CB(input_changed) PORT_NAME("Time")
PORT_START("B")
PORT_CONFNAME( 0x01, 0x01, "Infinite Lives (Cheat)") // factory test, unpopulated on PCB
PORT_CONFNAME( 0x01, 0x01, "Infinite Lives (Cheat)" ) // factory test, unpopulated on PCB
PORT_CONFSETTING( 0x01, DEF_STR( Off ) )
PORT_CONFSETTING( 0x00, DEF_STR( On ) )
@ -11456,12 +11562,12 @@ static INPUT_PORTS_START( trsgkeep )
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_SERVICE2 ) PORT_CHANGED_CB(input_changed) PORT_NAME("Alarm")
PORT_START("BA")
PORT_CONFNAME( 0x01, 0x01, "Infinite Lives (Cheat)") // factory test, unpopulated on PCB
PORT_CONFNAME( 0x01, 0x01, "Infinite Lives (Cheat)" ) // factory test, unpopulated on PCB
PORT_CONFSETTING( 0x01, DEF_STR( Off ) )
PORT_CONFSETTING( 0x00, DEF_STR( On ) )
PORT_START("B")
PORT_CONFNAME( 0x01, 0x01, "Increase Score (Cheat)") // factory test, unpopulated on PCB -- this one multiplies scoring factor with 10
PORT_CONFNAME( 0x01, 0x01, "Increase Score (Cheat)" ) // factory test, unpopulated on PCB -- this one multiplies scoring factor with 10
PORT_CONFSETTING( 0x01, DEF_STR( Off ) )
PORT_CONFSETTING( 0x00, DEF_STR( On ) )
@ -11522,7 +11628,7 @@ public:
static INPUT_PORTS_START( trspacmis )
PORT_START("IN.0") // R2
PORT_CONFNAME( 0x01, 0x00, "Invincibility (Cheat)") // factory test, unpopulated on PCB
PORT_CONFNAME( 0x01, 0x00, "Invincibility (Cheat)" ) // factory test, unpopulated on PCB
PORT_CONFSETTING( 0x00, DEF_STR( Off ) )
PORT_CONFSETTING( 0x01, DEF_STR( On ) )
PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_UNUSED ) // same as 0x01?
@ -11623,7 +11729,7 @@ static INPUT_PORTS_START( trdivadv )
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_SERVICE2 ) PORT_CHANGED_CB(input_changed) PORT_NAME("Alarm")
PORT_START("B")
PORT_CONFNAME( 0x01, 0x01, "Invincibility (Cheat)") // factory test, unpopulated on PCB
PORT_CONFNAME( 0x01, 0x01, "Invincibility (Cheat)" ) // factory test, unpopulated on PCB
PORT_CONFSETTING( 0x01, DEF_STR( Off ) )
PORT_CONFSETTING( 0x00, DEF_STR( On ) )
@ -11853,7 +11959,7 @@ SYST( 1984, gnw_dkhockey, 0, 0, gnw_dkhockey, gnw_dkhockey, gnw_d
// Nintendo G&W hardware licensed to other companies (not part of G&W series)
SYST( 1984, bassmate, 0, 0, bassmate, bassmate, bassmate_state, empty_init, "Telko / Nintendo", "Bassmate Computer", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK )
// Elektronika (mostly G&W clones)
// Elektronika (G&W clones)
SYST( 1988, taynyoke, gnw_octopus, 0, taynyoke, gnw_octopus, gnw_octopus_state, empty_init, "bootleg (Elektronika)", "Tayny okeana", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK )
SYST( 1989, vespovar, gnw_chef, 0, vespovar, gnw_chef, gnw_chef_state, empty_init, "bootleg (Elektronika)", "Vesyolyy povar", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK )
SYST( 1984, nupogodi, gnw_mmouse, 0, nupogodi, gnw_mmouse, nupogodi_state, empty_init, "bootleg (Elektronika)", "Nu, pogodi!", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK )
@ -11871,7 +11977,10 @@ SYST( 1992, atakaast, gnw_mmouse, 0, atakaast, gnw_mmouse, nupog
SYST( 19??, ecircus, gnw_mmouse, 0, ecircus, gnw_mmouse, nupogodi_state, empty_init, "bootleg (Elektronika)", "Circus (Elektronika)", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK )
SYST( 1991, naltair, gnw_mmouse, 0, vfutbol, naltair, nupogodi_state, empty_init, "bootleg (Nauchpribor)", "Altair (Nauchpribor)", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK | MACHINE_IMPERFECT_CONTROLS )
SYST( 1989, kosmicmt, gnw_fire, 0, kosmicmt, gnw_fire, gnw_fire_state, empty_init, "bootleg (Elektronika)", "Kosmicheskiy most", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK )
// Elektronika (original)
SYST( 1990, auslalom, 0, 0, auslalom, auslalom, auslalom_state, empty_init, "Elektronika", "Autoslalom", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK )
SYST( 199?, elbaskb, 0, 0, elbaskb, elbaskb, elbaskb_state, empty_init, "Elektronika", "Basketbol (Elektronika)", MACHINE_SUPPORTS_SAVE )
// Konami
SYST( 1989, kdribble, 0, 0, kdribble, kdribble, kdribble_state, empty_init, "Konami", "Double Dribble (handheld)", MACHINE_SUPPORTS_SAVE | MACHINE_REQUIRES_ARTWORK )

View File

@ -58,16 +58,18 @@ protected:
u8 read_inputs(int columns, int fixed = -1);
virtual void update_k_line();
virtual void sm510_lcd_segment_w(offs_t offset, u16 data);
virtual void sm500_lcd_segment_w(offs_t offset, u16 data);
virtual u8 input_r();
virtual void input_w(u8 data);
virtual void piezo_r1_w(u8 data);
virtual void piezo_r2_w(u8 data);
virtual void piezo_input_w(u8 data);
virtual void piezo2bit_r1_w(u8 data);
virtual void piezo2bit_input_w(u8 data);
virtual void machine_start() override ATTR_COLD;
virtual void machine_reset() override ATTR_COLD;
// display common
int m_decay_pivot = 8; // lcd segment off-to-on delay in 1kHz ticks (affects input lag)
int m_decay_len = 17; // lcd segment on-to-off delay in 1kHz ticks (lcd persistence)
@ -77,12 +79,13 @@ protected:
u32 m_display_state[0x20] = { }; // lcd segment data (max. 5-bit offset)
u8 m_display_decay[0x20][0x20] = { }; // (internal use)
void set_display_size(u8 x, u8 y, u8 z);
TIMER_CALLBACK_MEMBER(display_decay_tick);
emu_timer *m_display_decay_timer = nullptr;
virtual void update_display();
virtual void sm510_lcd_segment_w(offs_t offset, u16 data);
virtual void sm500_lcd_segment_w(offs_t offset, u16 data);
virtual void machine_start() override ATTR_COLD;
virtual void machine_reset() override ATTR_COLD;
void set_display_size(u8 x, u8 y, u8 z);
TIMER_CALLBACK_MEMBER(display_decay_tick) { update_display(); }
emu_timer *m_display_decay_timer = nullptr;
// machine configs
void mcfg_cpu_common(machine_config &config);

138
src/mame/layout/elbaskb.lay Normal file
View File

@ -0,0 +1,138 @@
<?xml version="1.0"?>
<!--
license:CC0-1.0
authors:hap
-->
<mamelayout version="2">
<!-- define elements -->
<element name="black"><rect><color red="0" green="0" blue="0" /></rect></element>
<element name="blackd"><disk><color red="0" green="0" blue="0" /></disk></element>
<element name="white"><rect><color red="0.8" green="0.8" blue="0.8" /></rect></element>
<element name="whited"><disk><color red="0.8" green="0.8" blue="0.8" /></disk></element>
<element name="text_l1" align="1"><text string="АУТ"><color red="0.1" green="0.3" blue="0.7" /></text></element>
<element name="text_l2" align="2"><text string="ПРОБЕЖКА"><color red="0.1" green="0.3" blue="0.7" /></text></element>
<element name="ledr" defstate="0">
<disk state="1"><color red="1.0" green="0.1" blue="0.15" /></disk>
<disk state="0"><color red="1.0" green="0.1" blue="0.15" alpha="0.12" /></disk>
</element>
<element name="ledg" defstate="0">
<disk state="1"><color red="0.15" green="1.0" blue="0.1" /></disk>
<disk state="0"><color red="0.15" green="1.0" blue="0.1" alpha="0.09" /></disk>
</element>
<element name="digit" defstate="0">
<led7seg><color red="1.0" green="0.1" blue="0.15" /></led7seg>
</element>
<element name="line7">
<image><data><![CDATA[
<svg xmlns="http://www.w3.org/2000/svg" version="1.1" width="100" height="100">
<rect width="200" height="2.75" x="0" y="0" transform="rotate(7.0)" fill="#cccccc" />
</svg>
]]></data></image>
</element>
<!-- half court background -->
<group name="bg">
<bounds x="0" y="0" width="50" height="50" />
<element ref="white"><bounds xc="20" y="10" width="26" height="35" /></element>
<element ref="black"><bounds xc="20" y="10" width="25.2" height="35" /></element>
<element ref="whited"><bounds xc="20" yc="20" width="23" height="23" /></element>
<element ref="blackd"><bounds xc="20" yc="20" width="22.2" height="22.2" /></element>
<element ref="white"><bounds xc="20" y="9" width="23" height="11.5" /></element>
<element ref="black"><bounds xc="20" y="9" width="22.2" height="11.5" /></element>
<element ref="line7"><bounds x="15" y="12.75" width="15" height="15" /><orientation rotate="90" flipx="yes" /></element>
<element ref="line7"><bounds x="10" y="12.75" width="15" height="15" /><orientation rotate="90" flipx="no" /></element>
<element ref="whited"><bounds xc="20" yc="27" width="6.5" height="6.5" /></element>
<element ref="blackd"><bounds xc="20" yc="27" width="5.7" height="5.7" /></element>
<element ref="white"><bounds xc="20" yc="27" width="6.0" height="0.4" /></element>
<element ref="whited"><bounds xc="20" yc="18.25" width="4.5" height="3" /></element>
<element ref="blackd"><bounds xc="20" yc="18.25" width="3.9" height="2.4" /></element>
<element ref="white"><bounds xc="20" y="8" width="26" height="8.25" /></element>
<element ref="black"><bounds xc="20" y="7.6" width="26" height="8.25" /></element>
</group>
<!-- 7seg panel -->
<group name="digits">
<element name="digit0" ref="digit"><bounds x="0" y="0" width="0.85" height="1" /></element>
<element name="digit1" ref="digit"><bounds x="1" y="0" width="0.85" height="1" /></element>
<element name="digit2" ref="digit"><bounds x="3" y="0" width="0.85" height="1" /></element>
<element name="digit3" ref="digit"><bounds x="4" y="0" width="0.85" height="1" /></element>
</group>
<!-- build screen -->
<view name="Internal Layout">
<bounds left="1.15" right="35" top="15.05" bottom="64.95" />
<!-- background -->
<group ref="bg"><bounds x="0" y="0" width="50" height="50" /></group>
<group ref="bg"><bounds x="0" y="30" width="50" height="50" /><orientation flipy="yes" /></group>
<element ref="whited"><bounds xc="20" yc="40" width="9" height="9" /></element>
<element ref="blackd"><bounds xc="20" yc="40" width="8.2" height="8.2" /></element>
<element ref="white"><bounds xc="20" yc="40" width="26" height="0.4" /></element>
<!-- leds top half -->
<element name="4.1.1" ref="ledr"><bounds xc="20" yc="18.25" width="1.4" height="1.4" /></element>
<element name="8.0.0" ref="ledg"><bounds xc="14.5" yc="22.5" width="1.4" height="1.4" /></element>
<element name="7.1.0" ref="ledg"><bounds xc="20" yc="25.5" width="1.4" height="1.4" /></element>
<element name="8.2.0" ref="ledg"><bounds xc="25.5" yc="22.5" width="1.4" height="1.4" /></element>
<element name="4.2.1" ref="ledr"><bounds xc="13" yc="25.5" width="1.4" height="1.4" /></element>
<element name="5.1.1" ref="ledr"><bounds xc="20" yc="28.5" width="1.4" height="1.4" /></element>
<element name="4.0.1" ref="ledr"><bounds xc="27" yc="25.5" width="1.4" height="1.4" /></element>
<element name="7.0.0" ref="ledg"><bounds xc="13.5" yc="33.25" width="1.4" height="1.4" /></element>
<element name="6.1.0" ref="ledg"><bounds xc="20" yc="37.875" width="1.4" height="1.4" /></element>
<element name="7.2.0" ref="ledg"><bounds xc="26.5" yc="33.25" width="1.4" height="1.4" /></element>
<element name="5.2.1" ref="ledr"><bounds xc="10.5" yc="36.25" width="1.4" height="1.4" /></element>
<element name="5.0.1" ref="ledr"><bounds xc="29.5" yc="36.25" width="1.4" height="1.4" /></element>
<!-- leds bottom half -->
<element name="4.1.0" ref="ledg"><bounds xc="20" yc="61.75" width="1.4" height="1.4" /></element>
<element name="8.2.1" ref="ledr"><bounds xc="14.5" yc="57.5" width="1.4" height="1.4" /></element>
<element name="7.1.1" ref="ledr"><bounds xc="20" yc="54.55" width="1.4" height="1.4" /></element>
<element name="8.0.1" ref="ledr"><bounds xc="25.5" yc="57.5" width="1.4" height="1.4" /></element>
<element name="4.0.0" ref="ledg"><bounds xc="13" yc="54.5" width="1.4" height="1.4" /></element>
<element name="5.1.0" ref="ledg"><bounds xc="20" yc="51.5" width="1.4" height="1.4" /></element>
<element name="4.2.0" ref="ledg"><bounds xc="27" yc="54.5" width="1.4" height="1.4" /></element>
<element name="7.2.1" ref="ledr"><bounds xc="13.5" yc="46.75" width="1.4" height="1.4" /></element>
<element name="6.1.1" ref="ledr"><bounds xc="20" yc="42.125" width="1.4" height="1.4" /></element>
<element name="7.0.1" ref="ledr"><bounds xc="26.5" yc="46.75" width="1.4" height="1.4" /></element>
<element name="5.0.0" ref="ledg"><bounds xc="10.5" yc="43.75" width="1.4" height="1.4" /></element>
<element name="5.2.0" ref="ledg"><bounds xc="29.5" yc="43.75" width="1.4" height="1.4" /></element>
<!-- left side -->
<group ref="digits"><bounds x="1.95" yc="40" width="4.25" height="17" /><orientation rotate="270" /></group>
<!-- right side -->
<element ref="text_l1"><bounds xc="34" y="8.75" width="1.4" height="30" /><orientation rotate="270" /></element>
<element name="2.3.1" ref="ledr"><bounds xc="34" yc="26" width="1.4" height="1.4" /></element>
<element ref="text_l2"><bounds xc="34" y="43.25" width="1.4" height="30" /><orientation rotate="270" /></element>
<element name="2.3.0" ref="ledr"><bounds xc="34" yc="54" width="1.4" height="1.4" /></element>
</view>
</mamelayout>

View File

@ -19294,6 +19294,7 @@ bassmate // Telko
biathlon // Elektronika
ecircus // Elektronika
ehockey // Elektronika
elbaskb // Elektronika
gnw_ball // Nintendo
gnw_bfight // Nintendo
gnw_bfightn // Nintendo