diff options
-rw-r--r-- | src/mame/drivers/hh_tms1k.cpp | 40 | ||||
-rw-r--r-- | src/mame/layout/esoccer.lay | 45 |
2 files changed, 83 insertions, 2 deletions
diff --git a/src/mame/drivers/hh_tms1k.cpp b/src/mame/drivers/hh_tms1k.cpp index f049e9c1f4b..79a3d0c87d1 100644 --- a/src/mame/drivers/hh_tms1k.cpp +++ b/src/mame/drivers/hh_tms1k.cpp @@ -1633,6 +1633,10 @@ MACHINE_CONFIG_END * TMS1000NL MP0158 (die label same) * 2 7seg LEDs, 30 other LEDs, 1-bit sound + known releases: + - USA: Electronic Soccer, 2 versions (green bezel, transparent bezel) + - Germany: Fussball, with skill switch + ***************************************************************************/ class esoccer_state : public hh_tms1k_state @@ -1652,25 +1656,59 @@ public: void esoccer_state::prepare_display() { + // R8,R9 are 7segs + m_display_segmask[8] = m_display_segmask[9] = 0x7f; + display_matrix(7, 10, m_o, m_r); } WRITE16_MEMBER(esoccer_state::write_r) { + // R0-R2: input mux + m_inp_mux = data & 7; + + // R10: speaker out + m_speaker->level_w(data >> 10 & 1); + + // R0-R9: led select + m_r = data; + prepare_display(); } WRITE16_MEMBER(esoccer_state::write_o) { + // O0-O6: led state + m_o = data; + prepare_display(); } READ8_MEMBER(esoccer_state::read_k) { - return 0; + // K: multiplexed inputs + return read_inputs(3); } // config static INPUT_PORTS_START( esoccer ) + PORT_START("IN.0") // R0 + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_16WAY + PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_16WAY + PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_16WAY + PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_16WAY + + PORT_START("IN.1") // R1 + PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_DOWN ) PORT_COCKTAIL PORT_16WAY + PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_COCKTAIL PORT_16WAY + PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_COCKTAIL PORT_16WAY + PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_JOYSTICK_UP ) PORT_COCKTAIL PORT_16WAY + + PORT_START("IN.2") // R2 + PORT_CONFNAME( 0x03, 0x01, "Players" ) + PORT_CONFSETTING( 0x01, "1" ) // Auto + PORT_CONFSETTING( 0x02, "2" ) // Manual + PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_BUTTON1 ) + PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_COCKTAIL INPUT_PORTS_END static MACHINE_CONFIG_START( esoccer, esoccer_state ) diff --git a/src/mame/layout/esoccer.lay b/src/mame/layout/esoccer.lay index 9d3e4d2766a..eda9a9c9546 100644 --- a/src/mame/layout/esoccer.lay +++ b/src/mame/layout/esoccer.lay @@ -3,6 +3,10 @@ <!-- define elements --> + <element name="digit" defstate="0"> + <led7seg><color red="1.0" green="0.2" blue="0.23" /></led7seg> + </element> + <element name="led" defstate="0"> <disk state="0"><color red="0.2" green="0.04" blue="0.046" /></disk> <disk state="1"><color red="1.0" green="0.2" blue="0.23" /></disk> @@ -14,7 +18,46 @@ <view name="Internal Layout"> <bounds left="0" right="100" top="0" bottom="100" /> - <bezel name="0.0" element="led"><bounds x="1" y="1" width="1" height="1" /></bezel> + <bezel name="digit8" element="digit"><bounds x="0" y="0" width="10" height="15" /></bezel> + <bezel name="digit9" element="digit"><bounds x="20" y="0" width="10" height="15" /></bezel> + + <bezel name="0.0" element="led"><bounds x="0" y="20" width="1" height="1" /></bezel> + <bezel name="0.1" element="led"><bounds x="1" y="20" width="1" height="1" /></bezel> + <bezel name="0.2" element="led"><bounds x="2" y="20" width="1" height="1" /></bezel> + + <bezel name="1.0" element="led"><bounds x="0" y="21" width="1" height="1" /></bezel> + <bezel name="1.1" element="led"><bounds x="1" y="21" width="1" height="1" /></bezel> + <bezel name="1.2" element="led"><bounds x="2" y="21" width="1" height="1" /></bezel> + <bezel name="1.3" element="led"><bounds x="3" y="21" width="1" height="1" /></bezel> + + <bezel name="2.0" element="led"><bounds x="0" y="22" width="1" height="1" /></bezel> + <bezel name="2.1" element="led"><bounds x="1" y="22" width="1" height="1" /></bezel> + <bezel name="2.2" element="led"><bounds x="2" y="22" width="1" height="1" /></bezel> + <bezel name="2.3" element="led"><bounds x="3" y="22" width="1" height="1" /></bezel> + + <bezel name="3.0" element="led"><bounds x="0" y="23" width="1" height="1" /></bezel> + <bezel name="3.1" element="led"><bounds x="1" y="23" width="1" height="1" /></bezel> + <bezel name="3.2" element="led"><bounds x="2" y="23" width="1" height="1" /></bezel> + <bezel name="3.3" element="led"><bounds x="3" y="23" width="1" height="1" /></bezel> + + <bezel name="4.0" element="led"><bounds x="0" y="24" width="1" height="1" /></bezel> + <bezel name="4.1" element="led"><bounds x="1" y="24" width="1" height="1" /></bezel> + <bezel name="4.2" element="led"><bounds x="2" y="24" width="1" height="1" /></bezel> + <bezel name="4.3" element="led"><bounds x="3" y="24" width="1" height="1" /></bezel> + + <bezel name="5.0" element="led"><bounds x="0" y="25" width="1" height="1" /></bezel> + <bezel name="5.1" element="led"><bounds x="1" y="25" width="1" height="1" /></bezel> + <bezel name="5.2" element="led"><bounds x="2" y="25" width="1" height="1" /></bezel> + <bezel name="5.3" element="led"><bounds x="3" y="25" width="1" height="1" /></bezel> + + <bezel name="6.0" element="led"><bounds x="0" y="26" width="1" height="1" /></bezel> + <bezel name="6.1" element="led"><bounds x="1" y="26" width="1" height="1" /></bezel> + <bezel name="6.2" element="led"><bounds x="2" y="26" width="1" height="1" /></bezel> + <bezel name="6.3" element="led"><bounds x="3" y="26" width="1" height="1" /></bezel> + + <bezel name="7.0" element="led"><bounds x="0" y="27" width="1" height="1" /></bezel> + <bezel name="7.1" element="led"><bounds x="1" y="27" width="1" height="1" /></bezel> + <bezel name="7.2" element="led"><bounds x="2" y="27" width="1" height="1" /></bezel> </view> </mamelayout> |