summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
-rw-r--r--src/mame/drivers/hh_cop400.cpp100
-rw-r--r--src/mame/drivers/hh_tms1k.cpp170
-rw-r--r--src/mame/layout/h2hbaskbc.lay (renamed from src/mame/layout/h2hbaskb.lay)0
-rw-r--r--src/mame/layout/h2hhockey.lay114
-rw-r--r--src/mame/layout/h2hhockeyc.lay129
-rw-r--r--src/mame/layout/h2hsoccerc.lay (renamed from src/mame/layout/h2hsoccer.lay)0
-rw-r--r--src/mame/mame.lst7
7 files changed, 404 insertions, 116 deletions
diff --git a/src/mame/drivers/hh_cop400.cpp b/src/mame/drivers/hh_cop400.cpp
index 27c40aa9fe1..c64148690f7 100644
--- a/src/mame/drivers/hh_cop400.cpp
+++ b/src/mame/drivers/hh_cop400.cpp
@@ -6,7 +6,7 @@
mostly LED electronic games/toys.
TODO:
- - why does h2hbaskb(and clones) need a workaround on writing L pins?
+ - why does h2hbaskbc(and clones) need a workaround on writing L pins?
- plus1: which sensor position is which colour?
- vidchal: Add screen and gun cursor with brightness detection callback,
and softwarelist for the video tapes. We'd also need a VHS player device.
@@ -32,9 +32,9 @@
#include "einvaderc.lh"
#include "funjacks.lh" // clickable
#include "funrlgl.lh"
-#include "h2hbaskb.lh"
-#include "h2hhockey.lh"
-#include "h2hsoccer.lh"
+#include "h2hbaskbc.lh"
+#include "h2hhockeyc.lh"
+#include "h2hsoccerc.lh"
#include "lchicken.lh" // clickable
#include "lightfgt.lh" // clickable
#include "mdallas.lh"
@@ -346,16 +346,16 @@ MACHINE_CONFIG_END
the same, only differing on game time. The PCB is pre-configured on G1+IN2
and IN3 to select the game.
- An earlier revision of this runs on TMS1000. Model numbers are the same.
- From the outside, an easy way to spot the difference is the Start/Display
- button: TMS1000 version button label is D, COP420 label is a *.
+ An earlier revision of this runs on TMS1000, see hh_tms1k.cpp driver. Model
+ numbers are the same. From the outside, an easy way to spot the difference is
+ the Start/Display button: TMS1000 version button label is D, COP420 one is a *.
***************************************************************************/
-class h2hbaskb_state : public hh_cop400_state
+class h2hbaskbc_state : public hh_cop400_state
{
public:
- h2hbaskb_state(const machine_config &mconfig, device_type type, const char *tag)
+ h2hbaskbc_state(const machine_config &mconfig, device_type type, const char *tag)
: hh_cop400_state(mconfig, type, tag)
{ }
@@ -363,27 +363,27 @@ public:
DECLARE_WRITE8_MEMBER(write_g);
DECLARE_WRITE8_MEMBER(write_l);
DECLARE_READ8_MEMBER(read_in);
- void h2hsoccer(machine_config &config);
- void h2hbaskb(machine_config &config);
- void h2hhockey(machine_config &config);
+ void h2hsoccerc(machine_config &config);
+ void h2hbaskbc(machine_config &config);
+ void h2hhockeyc(machine_config &config);
};
// handlers
-WRITE8_MEMBER(h2hbaskb_state::write_d)
+WRITE8_MEMBER(h2hbaskbc_state::write_d)
{
// D: led select
m_d = data & 0xf;
}
-WRITE8_MEMBER(h2hbaskb_state::write_g)
+WRITE8_MEMBER(h2hbaskbc_state::write_g)
{
// G: led select, input mux
m_inp_mux = data;
m_g = data & 0xf;
}
-WRITE8_MEMBER(h2hbaskb_state::write_l)
+WRITE8_MEMBER(h2hbaskbc_state::write_l)
{
// D2,D3 double as multiplexer
u16 mask = ((m_d >> 2 & 1) * 0x00ff) | ((m_d >> 3 & 1) * 0xff00);
@@ -398,7 +398,7 @@ WRITE8_MEMBER(h2hbaskb_state::write_l)
display_matrix(7, 16, 0, 0);
}
-READ8_MEMBER(h2hbaskb_state::read_in)
+READ8_MEMBER(h2hbaskbc_state::read_in)
{
// IN: multiplexed inputs
return read_inputs(4, 7) | (m_inp_matrix[4]->read() & 8);
@@ -406,7 +406,7 @@ READ8_MEMBER(h2hbaskb_state::read_in)
// config
-static INPUT_PORTS_START( h2hbaskb )
+static INPUT_PORTS_START( h2hbaskbc )
PORT_START("IN.0") // G0 port IN
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_16WAY PORT_NAME("P1 Pass CW") // clockwise
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_16WAY PORT_NAME("P1 Pass CCW") // counter-clockwise
@@ -437,8 +437,8 @@ static INPUT_PORTS_START( h2hbaskb )
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_SPECIAL )
INPUT_PORTS_END
-static INPUT_PORTS_START( h2hhockey )
- PORT_INCLUDE( h2hbaskb )
+static INPUT_PORTS_START( h2hhockeyc )
+ PORT_INCLUDE( h2hbaskbc )
PORT_MODIFY("IN.3")
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON2 ) PORT_COCKTAIL PORT_NAME("P2 Goalie Right")
@@ -448,26 +448,26 @@ static INPUT_PORTS_START( h2hhockey )
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_SPECIAL )
INPUT_PORTS_END
-static INPUT_PORTS_START( h2hsoccer )
- PORT_INCLUDE( h2hhockey )
+static INPUT_PORTS_START( h2hsoccerc )
+ PORT_INCLUDE( h2hhockeyc )
PORT_MODIFY("IN.1")
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_SPECIAL )
INPUT_PORTS_END
-MACHINE_CONFIG_START(h2hbaskb_state::h2hbaskb)
+MACHINE_CONFIG_START(h2hbaskbc_state::h2hbaskbc)
/* basic machine hardware */
MCFG_CPU_ADD("maincpu", COP420, 850000) // approximation - RC osc. R=43K, C=101pF
MCFG_COP400_CONFIG(COP400_CKI_DIVISOR_8, COP400_CKO_OSCILLATOR_OUTPUT, false) // guessed
- MCFG_COP400_WRITE_D_CB(WRITE8(h2hbaskb_state, write_d))
- MCFG_COP400_WRITE_G_CB(WRITE8(h2hbaskb_state, write_g))
- MCFG_COP400_WRITE_L_CB(WRITE8(h2hbaskb_state, write_l))
- MCFG_COP400_READ_IN_CB(READ8(h2hbaskb_state, read_in))
+ MCFG_COP400_WRITE_D_CB(WRITE8(h2hbaskbc_state, write_d))
+ MCFG_COP400_WRITE_G_CB(WRITE8(h2hbaskbc_state, write_g))
+ MCFG_COP400_WRITE_L_CB(WRITE8(h2hbaskbc_state, write_l))
+ MCFG_COP400_READ_IN_CB(READ8(h2hbaskbc_state, read_in))
MCFG_COP400_WRITE_SO_CB(DEVWRITELINE("speaker", speaker_sound_device, level_w))
MCFG_TIMER_DRIVER_ADD_PERIODIC("display_decay", hh_cop400_state, display_decay_tick, attotime::from_msec(1))
- MCFG_DEFAULT_LAYOUT(layout_h2hbaskb)
+ MCFG_DEFAULT_LAYOUT(layout_h2hbaskbc)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -475,16 +475,16 @@ MACHINE_CONFIG_START(h2hbaskb_state::h2hbaskb)
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25)
MACHINE_CONFIG_END
-MACHINE_CONFIG_DERIVED(h2hbaskb_state::h2hhockey, h2hbaskb)
+MACHINE_CONFIG_DERIVED(h2hbaskbc_state::h2hhockeyc, h2hbaskbc)
/* basic machine hardware */
- MCFG_DEFAULT_LAYOUT(layout_h2hhockey)
+ MCFG_DEFAULT_LAYOUT(layout_h2hhockeyc)
MACHINE_CONFIG_END
-MACHINE_CONFIG_DERIVED(h2hbaskb_state::h2hsoccer, h2hbaskb)
+MACHINE_CONFIG_DERIVED(h2hbaskbc_state::h2hsoccerc, h2hbaskbc)
/* basic machine hardware */
- MCFG_DEFAULT_LAYOUT(layout_h2hsoccer)
+ MCFG_DEFAULT_LAYOUT(layout_h2hsoccerc)
MACHINE_CONFIG_END
@@ -1831,17 +1831,17 @@ ROM_START( ctstein )
ROM_END
-ROM_START( h2hbaskb )
+ROM_START( h2hbaskbc )
ROM_REGION( 0x0400, "maincpu", 0 )
ROM_LOAD( "cop420l-nmy", 0x0000, 0x0400, CRC(87152509) SHA1(acdb869b65d49b3b9855a557ed671cbbb0f61e2c) )
ROM_END
-ROM_START( h2hhockey ) // dumped from Basketball
+ROM_START( h2hhockeyc ) // dumped from Basketball
ROM_REGION( 0x0400, "maincpu", 0 )
ROM_LOAD( "cop420l-nmy", 0x0000, 0x0400, CRC(87152509) SHA1(acdb869b65d49b3b9855a557ed671cbbb0f61e2c) )
ROM_END
-ROM_START( h2hsoccer ) // dumped from Basketball
+ROM_START( h2hsoccerc ) // dumped from Basketball
ROM_REGION( 0x0400, "maincpu", 0 )
ROM_LOAD( "cop420l-nmy", 0x0000, 0x0400, CRC(87152509) SHA1(acdb869b65d49b3b9855a557ed671cbbb0f61e2c) )
ROM_END
@@ -1917,30 +1917,30 @@ ROM_END
-// YEAR NAME PARENT CMP MACHINE INPUT STATE INIT COMPANY, FULLNAME, FLAGS
-CONS( 1979, ctstein, 0, 0, ctstein, ctstein, ctstein_state, 0, "Castle Toy", "Einstein (Castle Toy)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK )
+// YEAR NAME PARENT COMP MACHINE INPUT STATE INIT COMPANY, FULLNAME, FLAGS
+CONS( 1979, ctstein, 0, 0, ctstein, ctstein, ctstein_state, 0, "Castle Toy", "Einstein (Castle Toy)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK )
-CONS( 1980, h2hbaskb, 0, 0, h2hbaskb, h2hbaskb, h2hbaskb_state, 0, "Coleco", "Head to Head: Electronic Basketball (COP420L version)", MACHINE_SUPPORTS_SAVE )
-CONS( 1980, h2hhockey, h2hbaskb, 0, h2hhockey, h2hhockey, h2hbaskb_state, 0, "Coleco", "Head to Head: Electronic Hockey (COP420L version)", MACHINE_SUPPORTS_SAVE )
-CONS( 1980, h2hsoccer, h2hbaskb, 0, h2hsoccer, h2hsoccer, h2hbaskb_state, 0, "Coleco", "Head to Head: Electronic Soccer (COP420L version)", MACHINE_SUPPORTS_SAVE )
+CONS( 1980, h2hbaskbc, 0, 0, h2hbaskbc, h2hbaskbc, h2hbaskbc_state, 0, "Coleco", "Head to Head: Electronic Basketball (COP420L version)", MACHINE_SUPPORTS_SAVE )
+CONS( 1980, h2hhockeyc, h2hhockey, 0, h2hhockeyc, h2hhockeyc, h2hbaskbc_state, 0, "Coleco", "Head to Head: Electronic Hockey (COP420L version)", MACHINE_SUPPORTS_SAVE )
+CONS( 1980, h2hsoccerc, 0, 0, h2hsoccerc, h2hsoccerc, h2hbaskbc_state, 0, "Coleco", "Head to Head: Electronic Soccer (COP420L version)", MACHINE_SUPPORTS_SAVE )
-CONS( 1981, einvaderc, einvader, 0, einvaderc, einvaderc, einvaderc_state, 0, "Entex", "Space Invader (Entex, COP444L version)", MACHINE_SUPPORTS_SAVE )
+CONS( 1981, einvaderc, einvader, 0, einvaderc, einvaderc, einvaderc_state, 0, "Entex", "Space Invader (Entex, COP444L version)", MACHINE_SUPPORTS_SAVE )
-CONS( 1980, unkeinv, 0, 0, unkeinv, unkeinv, unkeinv_state, 0, "Gordon Barlow Design", "unknown electronic Space Invaders game (patent)", MACHINE_SUPPORTS_SAVE )
+CONS( 1980, unkeinv, 0, 0, unkeinv, unkeinv, unkeinv_state, 0, "Gordon Barlow Design", "unknown electronic Space Invaders game (patent)", MACHINE_SUPPORTS_SAVE )
-CONS( 1980, lchicken, 0, 0, lchicken, lchicken, lchicken_state, 0, "LJN", "I Took a Lickin' From a Chicken", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK | MACHINE_MECHANICAL )
+CONS( 1980, lchicken, 0, 0, lchicken, lchicken, lchicken_state, 0, "LJN", "I Took a Lickin' From a Chicken", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK | MACHINE_MECHANICAL )
-CONS( 1979, funjacks, 0, 0, funjacks, funjacks, funjacks_state, 0, "Mattel", "Funtronics: Jacks", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK )
-CONS( 1979, funrlgl, 0, 0, funrlgl, funrlgl, funrlgl_state, 0, "Mattel", "Funtronics: Red Light Green Light", MACHINE_SUPPORTS_SAVE )
-CONS( 1981, mdallas, 0, 0, mdallas, mdallas, mdallas_state, 0, "Mattel", "Dalla$ (J.R. handheld)", MACHINE_SUPPORTS_SAVE ) // ***
+CONS( 1979, funjacks, 0, 0, funjacks, funjacks, funjacks_state, 0, "Mattel", "Funtronics: Jacks", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK )
+CONS( 1979, funrlgl, 0, 0, funrlgl, funrlgl, funrlgl_state, 0, "Mattel", "Funtronics: Red Light Green Light", MACHINE_SUPPORTS_SAVE )
+CONS( 1981, mdallas, 0, 0, mdallas, mdallas, mdallas_state, 0, "Mattel", "Dalla$ (J.R. handheld)", MACHINE_SUPPORTS_SAVE ) // ***
-CONS( 1980, plus1, 0, 0, plus1, plus1, plus1_state, 0, "Milton Bradley", "Plus One", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_CONTROLS ) // ***
-CONS( 1981, lightfgt, 0, 0, lightfgt, lightfgt, lightfgt_state, 0, "Milton Bradley", "Electronic Lightfight - The Games of Dueling Lights", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK )
-CONS( 1982, bship82, bship, 0, bship82, bship82, bship82_state, 0, "Milton Bradley", "Electronic Battleship (1982 version)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) // ***
+CONS( 1980, plus1, 0, 0, plus1, plus1, plus1_state, 0, "Milton Bradley", "Plus One", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_CONTROLS ) // ***
+CONS( 1981, lightfgt, 0, 0, lightfgt, lightfgt, lightfgt_state, 0, "Milton Bradley", "Electronic Lightfight - The Games of Dueling Lights", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK )
+CONS( 1982, bship82, bship, 0, bship82, bship82, bship82_state, 0, "Milton Bradley", "Electronic Battleship (1982 version)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK ) // ***
-CONS( 1978, qkracer, 0, 0, qkracer, qkracer, qkracer_state, 0, "National Semiconductor", "QuizKid Racer (COP420 version)", MACHINE_SUPPORTS_SAVE | MACHINE_NO_SOUND_HW )
+CONS( 1978, qkracer, 0, 0, qkracer, qkracer, qkracer_state, 0, "National Semiconductor", "QuizKid Racer (COP420 version)", MACHINE_SUPPORTS_SAVE | MACHINE_NO_SOUND_HW )
-CONS( 1987, vidchal, 0, 0, vidchal, vidchal, vidchal_state, 0, "Select Merchandise", "Video Challenger", MACHINE_SUPPORTS_SAVE | MACHINE_NOT_WORKING )
+CONS( 1987, vidchal, 0, 0, vidchal, vidchal, vidchal_state, 0, "Select Merchandise", "Video Challenger", MACHINE_SUPPORTS_SAVE | MACHINE_NOT_WORKING )
// ***: As far as MAME is concerned, the game is emulated fine. But for it to be playable, it requires interaction
// with other, unemulatable, things eg. game board/pieces, playing cards, pen & paper, etc.
diff --git a/src/mame/drivers/hh_tms1k.cpp b/src/mame/drivers/hh_tms1k.cpp
index 4a2984d7e37..6f2b33cc9b3 100644
--- a/src/mame/drivers/hh_tms1k.cpp
+++ b/src/mame/drivers/hh_tms1k.cpp
@@ -70,7 +70,7 @@
@MP3300 TMS1000 1979, Milton Bradley Simon (Rev F)
@MP3301A TMS1000 1979, Milton Bradley Big Trak
*MP3320A TMS1000 1980, Coleco Head to Head: Electronic Basketball
- *MP3321A TMS1000 1980, Coleco Head to Head: Electronic Hockey
+ @MP3321A TMS1000 1980, Coleco Head to Head: Electronic Hockey
@M32001 TMS1000 1981, Coleco Quiz Wiz Challenger (note: MP3398, MP3399, M3200x?)
*M32018 TMS1000 1990, unknown device (have decap/dump)
M32045B TMS1000 1983, Chrysler Electronic Voice Alert (11-function) -> eva.cpp
@@ -143,6 +143,7 @@
- finish bshipb SN76477 sound
- improve elecbowl driver
- is alphie(patent) the same as the final version?
+ - h2hhockey R9 timing is wrong: passing seems too slow, and in-game clock too fast
***************************************************************************/
@@ -201,6 +202,7 @@
#include "h2hbaseb.lh"
#include "h2hboxing.lh"
#include "h2hfootb.lh"
+#include "h2hhockey.lh"
#include "horseran.lh"
#include "lostreas.lh" // clickable
#include "matchnum.lh" // clickable
@@ -1064,7 +1066,7 @@ MACHINE_CONFIG_END
/***************************************************************************
- Coleco Zodiac - The Astrology Computer
+ Coleco Zodiac - The Astrology Computer (model 2110)
* TMS1100 MP3435 (no decap)
* 8-digit 7seg display, 12 other LEDs, 1-bit sound
@@ -1242,7 +1244,7 @@ MACHINE_CONFIG_END
/***************************************************************************
- Coleco Electronic Quarterback
+ Coleco Electronic Quarterback (model 2120)
* TMS1100NLL MP3415 (die label same)
* 9-digit LED grid, 1-bit sound
@@ -1357,7 +1359,7 @@ MACHINE_CONFIG_END
/***************************************************************************
- Coleco Head to Head: Electronic Football
+ Coleco Head to Head: Electronic Football (model 2140)
* TMS1100NLLE (rev. E!) MP3460 (die label same)
* 2*SN75492N LED display drivers, 9-digit LED grid, 1-bit sound
@@ -1475,7 +1477,150 @@ MACHINE_CONFIG_END
/***************************************************************************
- Coleco Head to Head: Electronic Baseball
+ Coleco Head to Head: Electronic Hockey (model 2160)
+ * TMS1000NLL E MP3321A (die label 1000E MP3321A)
+ * 2-digit 7seg LED display, LED grid display, 1-bit sound
+
+ Unlike the COP420 version(see hh_cop400.cpp driver), each game has its own MCU.
+
+***************************************************************************/
+
+class h2hhockey_state : public hh_tms1k_state
+{
+public:
+ h2hhockey_state(const machine_config &mconfig, device_type type, const char *tag)
+ : hh_tms1k_state(mconfig, type, tag),
+ m_cap_empty_timer(*this, "cap_empty")
+ { }
+
+ required_device<timer_device> m_cap_empty_timer;
+ TIMER_DEVICE_CALLBACK_MEMBER(cap_empty_callback);
+ bool m_cap;
+
+ void prepare_display();
+ DECLARE_WRITE16_MEMBER(write_r);
+ DECLARE_WRITE16_MEMBER(write_o);
+ DECLARE_READ8_MEMBER(read_k);
+ void h2hhockey(machine_config &config);
+
+protected:
+ virtual void machine_start() override;
+};
+
+// handlers
+
+TIMER_DEVICE_CALLBACK_MEMBER(h2hhockey_state::cap_empty_callback)
+{
+ if (~m_r & 0x200)
+ m_cap = false;
+}
+
+void h2hhockey_state::prepare_display()
+{
+ // R6,R7 are commons for R0-R5
+ u16 sel = 0;
+ if (m_r & 0x40) sel |= (m_r & 0x3f);
+ if (m_r & 0x80) sel |= (m_r & 0x3f) << 6;
+
+ set_display_segmask(0xc0, 0x7f);
+ display_matrix(7, 6+6, m_o, sel);
+}
+
+WRITE16_MEMBER(h2hhockey_state::write_r)
+{
+ // R0-R3: input mux
+ m_inp_mux = (data & 0xf);
+
+ // R8: speaker out
+ m_speaker->level_w(data >> 8 & 1);
+
+ // R9: K8 and 15uF cap to V- (used as timer)
+ if (data & 0x200)
+ m_cap = true;
+ else if (m_r & 0x200) // falling edge
+ m_cap_empty_timer->adjust(attotime::from_msec(28)); // not accurate
+
+ // R0-R7: led select
+ m_r = data;
+ prepare_display();
+}
+
+WRITE16_MEMBER(h2hhockey_state::write_o)
+{
+ // O1-O7: led data
+ m_o = data >> 1 & 0x7f;
+ prepare_display();
+}
+
+READ8_MEMBER(h2hhockey_state::read_k)
+{
+ // K1-K4: multiplexed inputs, K8: R9 and capacitor
+ return (read_inputs(4) & 7) | (m_cap ? 8 : 0);
+}
+
+// config
+
+static INPUT_PORTS_START( h2hhockey )
+ PORT_START("IN.0") // R0
+ PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_16WAY PORT_NAME("P1 Pass CW") // clockwise
+ PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_16WAY PORT_NAME("P1 Pass CCW") // counter-clockwise
+ PORT_CONFNAME( 0x04, 0x00, DEF_STR( Players ) )
+ PORT_CONFSETTING( 0x00, "1" )
+ PORT_CONFSETTING( 0x04, "2" )
+
+ PORT_START("IN.1") // R1
+ PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_NAME("P1 Shoot")
+ PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_START ) PORT_NAME("Start/Display")
+ PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_UNUSED )
+
+ PORT_START("IN.2") // R2
+ PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT ) PORT_COCKTAIL PORT_16WAY PORT_NAME("P2 Defense Right")
+ PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT ) PORT_COCKTAIL PORT_16WAY PORT_NAME("P2 Defense Left")
+ PORT_CONFNAME( 0x04, 0x00, DEF_STR( Difficulty ) )
+ PORT_CONFSETTING( 0x00, "1" )
+ PORT_CONFSETTING( 0x04, "2" )
+
+ PORT_START("IN.3") // R3
+ PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_COCKTAIL PORT_NAME("P2 Goalie Right")
+ PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_COCKTAIL PORT_NAME("P2 Goalie Left")
+ PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_UNUSED )
+INPUT_PORTS_END
+
+void h2hhockey_state::machine_start()
+{
+ hh_tms1k_state::machine_start();
+
+ // zerofill/register for savestates
+ m_cap = false;
+ save_item(NAME(m_cap));
+}
+
+MACHINE_CONFIG_START(h2hhockey_state::h2hhockey)
+
+ /* basic machine hardware */
+ MCFG_CPU_ADD("maincpu", TMS1000, 375000) // approximation - RC osc. R=43K, C=100pF
+ MCFG_TMS1XXX_READ_K_CB(READ8(h2hhockey_state, read_k))
+ MCFG_TMS1XXX_WRITE_R_CB(WRITE16(h2hhockey_state, write_r))
+ MCFG_TMS1XXX_WRITE_O_CB(WRITE16(h2hhockey_state, write_o))
+
+ MCFG_TIMER_DRIVER_ADD("cap_empty", h2hhockey_state, cap_empty_callback)
+
+ MCFG_TIMER_DRIVER_ADD_PERIODIC("display_decay", hh_tms1k_state, display_decay_tick, attotime::from_msec(1))
+ MCFG_DEFAULT_LAYOUT(layout_h2hhockey)
+
+ /* 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
+
+
+
+
+
+/***************************************************************************
+
+ Coleco Head to Head: Electronic Baseball (model 2180)
* PCB labels Coleco rev C 73891/2
* TMS1170NLN MP1525-N2 (die label MP1525)
* 9-digit cyan VFD display, and other LEDs behind bezel, 1-bit sound
@@ -1614,7 +1759,7 @@ MACHINE_CONFIG_END
/***************************************************************************
- Coleco Head to Head: Electronic Boxing
+ Coleco Head to Head: Electronic Boxing (model 2190)
* TMS1100NLL M34018-N2 (die label M34018)
* 2-digit 7seg LED display, LED grid display, 1-bit sound
@@ -8643,6 +8788,7 @@ WRITE16_MEMBER(ss7in1_state::write_o)
READ8_MEMBER(ss7in1_state::read_k)
{
+ // K: multiplexed inputs
return read_inputs(4);
}
@@ -9421,6 +9567,17 @@ ROM_START( h2hfootb )
ROM_END
+ROM_START( h2hhockey )
+ ROM_REGION( 0x0400, "maincpu", 0 )
+ ROM_LOAD( "mp3321a", 0x0000, 0x0400, CRC(e974e604) SHA1(ed740c98ce96ad70ee5237eccae1f54a75ad8100) )
+
+ ROM_REGION( 867, "maincpu:mpla", 0 )
+ ROM_LOAD( "tms1000_common1_micro.pla", 0, 867, CRC(4becec19) SHA1(3c8a9be0f00c88c81f378b76886c39b10304f330) )
+ ROM_REGION( 365, "maincpu:opla", 0 )
+ ROM_LOAD( "tms1000_h2hhockey_output.pla", 0, 365, CRC(9d1a91e1) SHA1(96303eb22375129b0dfbfcd823c8ca5b919511bc) )
+ROM_END
+
+
ROM_START( h2hbaseb )
ROM_REGION( 0x0800, "maincpu", 0 )
ROM_LOAD( "mp1525", 0x0000, 0x0800, CRC(b5d6bf9b) SHA1(2cc9f35f077c1209c46d16ec853af87e4725c2fd) )
@@ -10164,6 +10321,7 @@ CONS( 1978, amaztron, 0, 0, amaztron, amaztron, amaztron_state, 0,
COMP( 1979, zodiac, 0, 0, zodiac, zodiac, zodiac_state, 0, "Coleco", "Zodiac - The Astrology Computer", MACHINE_SUPPORTS_SAVE )
CONS( 1978, cqback, 0, 0, cqback, cqback, cqback_state, 0, "Coleco", "Electronic Quarterback", MACHINE_SUPPORTS_SAVE )
CONS( 1980, h2hfootb, 0, 0, h2hfootb, h2hfootb, h2hfootb_state, 0, "Coleco", "Head to Head: Electronic Football", MACHINE_SUPPORTS_SAVE )
+CONS( 1980, h2hhockey, 0, 0, h2hhockey, h2hhockey, h2hhockey_state, 0, "Coleco", "Head to Head: Electronic Hockey (TMS1000 version)", MACHINE_SUPPORTS_SAVE )
CONS( 1980, h2hbaseb, 0, 0, h2hbaseb, h2hbaseb, h2hbaseb_state, 0, "Coleco", "Head to Head: Electronic Baseball", MACHINE_SUPPORTS_SAVE )
CONS( 1981, h2hboxing, 0, 0, h2hboxing, h2hboxing, h2hboxing_state, 0, "Coleco", "Head to Head: Electronic Boxing", MACHINE_SUPPORTS_SAVE )
CONS( 1981, quizwizc, 0, 0, quizwizc, quizwizc, quizwizc_state, 0, "Coleco", "Quiz Wiz Challenger", MACHINE_SUPPORTS_SAVE ) // ***
diff --git a/src/mame/layout/h2hbaskb.lay b/src/mame/layout/h2hbaskbc.lay
index a4d2c9e019c..a4d2c9e019c 100644
--- a/src/mame/layout/h2hbaskb.lay
+++ b/src/mame/layout/h2hbaskbc.lay
diff --git a/src/mame/layout/h2hhockey.lay b/src/mame/layout/h2hhockey.lay
index ab54c6e4cf2..ac67e33f840 100644
--- a/src/mame/layout/h2hhockey.lay
+++ b/src/mame/layout/h2hhockey.lay
@@ -39,8 +39,8 @@
<bezel element="static_white"><bounds x="33" y="14" width="18" height="12.1" /></bezel>
<bezel element="static_black"><bounds x="34" y="15" width="16" height="12.1" /></bezel>
- <bezel name="digit1" element="digit"><bounds x="36" y="16" width="6" height="9" /></bezel>
- <bezel name="digit0" element="digit"><bounds x="42" y="16" width="6" height="9" /></bezel>
+ <bezel name="digit7" element="digit"><bounds x="36" y="16" width="6" height="9" /></bezel>
+ <bezel name="digit6" element="digit"><bounds x="42" y="16" width="6" height="9" /></bezel>
<bezel element="static_white"><bounds x="25" y="26" width="100" height="2" /></bezel>
<bezel element="static_white"><bounds x="60" y="7" width="30" height="30" /></bezel>
@@ -49,81 +49,81 @@
<bezel element="static_black"><bounds x="24" y="27" width="102" height="30" /></bezel>
<bezel element="disk_white"><bounds x="72" y="10" width="6" height="6" /></bezel>
- <bezel name="13.0" element="led"><bounds x="73" y="11" width="4" height="4" /></bezel>
+ <bezel name="5.0" element="led"><bounds x="73" y="11" width="4" height="4" /></bezel>
<bezel element="text_score1"><bounds x="62" y="10" width="10" height="6" /></bezel>
<bezel element="text_score2"><bounds x="78" y="10" width="10" height="6" /></bezel>
- <bezel name="3.0" element="led"><bounds x="62" y="21" width="4" height="4" /></bezel>
- <bezel name="3.1" element="led"><bounds x="67" y="25" width="4" height="4" /></bezel>
- <bezel name="3.2" element="led"><bounds x="73" y="26" width="4" height="4" /></bezel>
- <bezel name="3.3" element="led"><bounds x="79" y="25" width="4" height="4" /></bezel>
- <bezel name="3.4" element="led"><bounds x="84" y="21" width="4" height="4" /></bezel>
+ <bezel name="9.0" element="led"><bounds x="62" y="21" width="4" height="4" /></bezel>
+ <bezel name="9.1" element="led"><bounds x="67" y="25" width="4" height="4" /></bezel>
+ <bezel name="9.2" element="led"><bounds x="73" y="26" width="4" height="4" /></bezel>
+ <bezel name="9.3" element="led"><bounds x="79" y="25" width="4" height="4" /></bezel>
+ <bezel name="9.4" element="led"><bounds x="84" y="21" width="4" height="4" /></bezel>
<!-- men -->
<bezel element="disk_white"><bounds x="72" y="54" width="6" height="6" /></bezel>
- <bezel name="8.0" element="led"><bounds x="73" y="55" width="4" height="4" /></bezel>
+ <bezel name="0.0" element="led"><bounds x="73" y="55" width="4" height="4" /></bezel>
<bezel element="disk_white"><bounds x="35" y="47" width="6" height="6" /></bezel>
- <bezel name="5.0" element="led"><bounds x="36" y="48" width="4" height="4" /></bezel>
+ <bezel name="11.0" element="led"><bounds x="36" y="48" width="4" height="4" /></bezel>
<bezel element="disk_white"><bounds x="109" y="47" width="6" height="6" /></bezel>
- <bezel name="9.0" element="led"><bounds x="110" y="48" width="4" height="4" /></bezel>
+ <bezel name="1.0" element="led"><bounds x="110" y="48" width="4" height="4" /></bezel>
<bezel element="disk_white"><bounds x="55" y="74" width="6" height="6" /></bezel>
- <bezel name="4.0" element="led"><bounds x="56" y="75" width="4" height="4" /></bezel>
+ <bezel name="10.0" element="led"><bounds x="56" y="75" width="4" height="4" /></bezel>
<bezel element="text_home"><bounds x="52" y="80.5" width="12" height="3" /></bezel>
<bezel element="disk_white"><bounds x="89" y="74" width="6" height="6" /></bezel>
- <bezel name="10.0" element="led"><bounds x="90" y="75" width="4" height="4" /></bezel>
+ <bezel name="2.0" element="led"><bounds x="90" y="75" width="4" height="4" /></bezel>
<bezel element="text_away"><bounds x="86" y="80.5" width="12" height="3" /></bezel>
<!-- small leds -->
- <bezel name="11.1" element="led"><bounds x="57.1" y="29.1" width="1" height="1" /></bezel>
- <bezel name="11.2" element="led"><bounds x="52.7" y="33.7" width="1" height="1" /></bezel>
- <bezel name="11.3" element="led"><bounds x="48.3" y="38.3" width="1" height="1" /></bezel> <!-- unpopulated, but is used -->
- <bezel name="2.0" element="ledr"><bounds x="44.6" y="40.6" width="4" height="1" /></bezel>
- <bezel name="11.4" element="led"><bounds x="43.9" y="42.9" width="1" height="1" /></bezel>
-
- <bezel name="12.1" element="led"><bounds x="74.5" y="34" width="1" height="1" /></bezel>
- <bezel name="12.2" element="led"><bounds x="74.5" y="39" width="1" height="1" /></bezel>
- <bezel name="12.3" element="led"><bounds x="74.5" y="44" width="1" height="1" /></bezel> <!-- unpopulated, but is used -->
- <bezel name="2.2" element="ledr"><bounds x="73" y="46.5" width="4" height="1" /></bezel>
- <bezel name="12.4" element="led"><bounds x="74.5" y="49" width="1" height="1" /></bezel>
-
- <bezel name="13.1" element="led"><bounds x="91.9" y="29.1" width="1" height="1" /></bezel>
- <bezel name="13.2" element="led"><bounds x="96.3" y="33.7" width="1" height="1" /></bezel>
- <bezel name="13.3" element="led"><bounds x="100.7" y="38.3" width="1" height="1" /></bezel> <!-- unpopulated, but is used -->
- <bezel name="2.4" element="ledr"><bounds x="101.4" y="40.6" width="4" height="1" /></bezel>
- <bezel name="13.4" element="led"><bounds x="105.1" y="42.9" width="1" height="1" /></bezel>
-
- <bezel name="5.1" element="led"><bounds x="45.6" y="50.9" width="1" height="1" /></bezel>
- <bezel name="5.2" element="led"><bounds x="52.2" y="52.3" width="1" height="1" /></bezel>
- <bezel name="2.1" element="ledr"><bounds x="55.5" y="51.5" width="1" height="4" /></bezel>
- <bezel name="5.3" element="led"><bounds x="58.8" y="53.7" width="1" height="1" /></bezel> <!-- unpopulated, but is used -->
- <bezel name="5.4" element="led"><bounds x="65.4" y="55.1" width="1" height="1" /></bezel>
-
- <bezel name="8.4" element="led"><bounds x="103.4" y="50.9" width="1" height="1" /></bezel>
- <bezel name="8.3" element="led"><bounds x="96.8" y="52.3" width="1" height="1" /></bezel>
- <bezel name="2.3" element="ledr"><bounds x="93.5" y="51.5" width="1" height="4" /></bezel>
- <bezel name="8.2" element="led"><bounds x="90.2" y="53.7" width="1" height="1" /></bezel> <!-- unpopulated, but is used -->
- <bezel name="8.1" element="led"><bounds x="83.6" y="55.1" width="1" height="1" /></bezel>
-
- <bezel name="4.4" element="led"><bounds x="42.7" y="56.1" width="1" height="1" /></bezel>
- <bezel name="4.3" element="led"><bounds x="45.9" y="60.7" width="1" height="1" /></bezel>
- <bezel name="4.2" element="led"><bounds x="49.1" y="65.3" width="1" height="1" /></bezel>
- <bezel name="4.1" element="led"><bounds x="52.3" y="69.9" width="1" height="1" /></bezel>
-
- <bezel name="10.4" element="led"><bounds x="65.5" y="76.5" width="1" height="1" /></bezel>
- <bezel name="10.3" element="led"><bounds x="71.5" y="76.5" width="1" height="1" /></bezel>
- <bezel name="10.2" element="led"><bounds x="77.5" y="76.5" width="1" height="1" /></bezel>
- <bezel name="10.1" element="led"><bounds x="83.5" y="76.5" width="1" height="1" /></bezel>
-
- <bezel name="9.1" element="led"><bounds x="107.3" y="56.1" width="1" height="1" /></bezel>
- <bezel name="9.2" element="led"><bounds x="104.1" y="60.7" width="1" height="1" /></bezel>
- <bezel name="9.3" element="led"><bounds x="100.9" y="65.3" width="1" height="1" /></bezel>
- <bezel name="9.4" element="led"><bounds x="97.7" y="69.9" width="1" height="1" /></bezel>
+ <bezel name="3.1" element="led"><bounds x="57.1" y="29.1" width="1" height="1" /></bezel>
+ <bezel name="3.2" element="led"><bounds x="52.7" y="33.7" width="1" height="1" /></bezel>
+ <bezel name="3.3" element="led"><bounds x="48.3" y="38.3" width="1" height="1" /></bezel>
+ <bezel name="8.0" element="ledr"><bounds x="44.6" y="40.6" width="4" height="1" /></bezel>
+ <bezel name="3.4" element="led"><bounds x="43.9" y="42.9" width="1" height="1" /></bezel>
+
+ <bezel name="4.1" element="led"><bounds x="74.5" y="34" width="1" height="1" /></bezel>
+ <bezel name="4.2" element="led"><bounds x="74.5" y="39" width="1" height="1" /></bezel>
+ <bezel name="4.3" element="led"><bounds x="74.5" y="44" width="1" height="1" /></bezel>
+ <bezel name="8.2" element="ledr"><bounds x="73" y="46.5" width="4" height="1" /></bezel>
+ <bezel name="4.4" element="led"><bounds x="74.5" y="49" width="1" height="1" /></bezel>
+
+ <bezel name="5.1" element="led"><bounds x="91.9" y="29.1" width="1" height="1" /></bezel>
+ <bezel name="5.2" element="led"><bounds x="96.3" y="33.7" width="1" height="1" /></bezel>
+ <bezel name="5.3" element="led"><bounds x="100.7" y="38.3" width="1" height="1" /></bezel>
+ <bezel name="8.4" element="ledr"><bounds x="101.4" y="40.6" width="4" height="1" /></bezel>
+ <bezel name="5.4" element="led"><bounds x="105.1" y="42.9" width="1" height="1" /></bezel>
+
+ <bezel name="11.1" element="led"><bounds x="45.6" y="50.9" width="1" height="1" /></bezel>
+ <bezel name="11.2" element="led"><bounds x="52.2" y="52.3" width="1" height="1" /></bezel>
+ <bezel name="8.1" element="ledr"><bounds x="55.5" y="51.5" width="1" height="4" /></bezel>
+ <bezel name="11.3" element="led"><bounds x="58.8" y="53.7" width="1" height="1" /></bezel>
+ <bezel name="11.4" element="led"><bounds x="65.4" y="55.1" width="1" height="1" /></bezel>
+
+ <bezel name="0.4" element="led"><bounds x="103.4" y="50.9" width="1" height="1" /></bezel>
+ <bezel name="0.3" element="led"><bounds x="96.8" y="52.3" width="1" height="1" /></bezel>
+ <bezel name="8.3" element="ledr"><bounds x="93.5" y="51.5" width="1" height="4" /></bezel>
+ <bezel name="0.2" element="led"><bounds x="90.2" y="53.7" width="1" height="1" /></bezel>
+ <bezel name="0.1" element="led"><bounds x="83.6" y="55.1" width="1" height="1" /></bezel>
+
+ <bezel name="10.4" element="led"><bounds x="42.7" y="56.1" width="1" height="1" /></bezel>
+ <bezel name="10.3" element="led"><bounds x="45.9" y="60.7" width="1" height="1" /></bezel>
+ <bezel name="10.2" element="led"><bounds x="49.1" y="65.3" width="1" height="1" /></bezel>
+ <bezel name="10.1" element="led"><bounds x="52.3" y="69.9" width="1" height="1" /></bezel>
+
+ <bezel name="2.4" element="led"><bounds x="65.5" y="76.5" width="1" height="1" /></bezel>
+ <bezel name="2.3" element="led"><bounds x="71.5" y="76.5" width="1" height="1" /></bezel>
+ <bezel name="2.2" element="led"><bounds x="77.5" y="76.5" width="1" height="1" /></bezel>
+ <bezel name="2.1" element="led"><bounds x="83.5" y="76.5" width="1" height="1" /></bezel>
+
+ <bezel name="1.1" element="led"><bounds x="107.3" y="56.1" width="1" height="1" /></bezel>
+ <bezel name="1.2" element="led"><bounds x="104.1" y="60.7" width="1" height="1" /></bezel>
+ <bezel name="1.3" element="led"><bounds x="100.9" y="65.3" width="1" height="1" /></bezel>
+ <bezel name="1.4" element="led"><bounds x="97.7" y="69.9" width="1" height="1" /></bezel>
</view>
</mamelayout>
diff --git a/src/mame/layout/h2hhockeyc.lay b/src/mame/layout/h2hhockeyc.lay
new file mode 100644
index 00000000000..ab54c6e4cf2
--- /dev/null
+++ b/src/mame/layout/h2hhockeyc.lay
@@ -0,0 +1,129 @@
+<?xml version="1.0"?>
+<mamelayout version="2">
+
+<!-- define elements -->
+
+ <element name="static_blue"><rect><color red="0.25" green="0.65" blue="0.8" /></rect></element>
+ <element name="static_black"><rect><color red="0.0" green="0.0" blue="0.0" /></rect></element>
+ <element name="static_white"><rect><color red="0.85" green="0.85" blue="0.85" /></rect></element>
+ <element name="disk_white"><disk><color red="0.85" green="0.85" blue="0.85" /></disk></element>
+ <element name="disk_black"><disk><color red="0.0" green="0.0" blue="0.0" /></disk></element>
+
+ <element name="digit" defstate="0">
+ <led7seg><color red="1.0" green="0.20" blue="0.22" /></led7seg>
+ </element>
+
+ <element name="led" defstate="0">
+ <disk state="0"><color red="0.14" green="0.02" blue="0.03" /></disk>
+ <disk state="1"><color red="1.0" green="0.20" blue="0.22" /></disk>
+ </element>
+ <element name="ledr" defstate="0">
+ <rect state="0"><color red="0.14" green="0.02" blue="0.03" /></rect>
+ <rect state="1"><color red="1.0" green="0.20" blue="0.22" /></rect>
+ </element>
+
+ <element name="text_score1"><text string="S C"><color red="0.85" green="0.85" blue="0.85" /></text></element>
+ <element name="text_score2"><text string="R E"><color red="0.85" green="0.85" blue="0.85" /></text></element>
+ <element name="text_home"><text string="HOME"><color red="0.85" green="0.85" blue="0.85" /></text></element>
+ <element name="text_away"><text string="AWAY"><color red="0.85" green="0.85" blue="0.85" /></text></element>
+
+
+<!-- build screen -->
+
+ <view name="Internal Layout">
+ <bounds left="26" right="124" top="5" bottom="85.5" />
+
+ <!-- field, goal -->
+
+ <bezel element="static_blue"><bounds x="25" y="4" width="100" height="22.1" /></bezel>
+ <bezel element="static_white"><bounds x="33" y="14" width="18" height="12.1" /></bezel>
+ <bezel element="static_black"><bounds x="34" y="15" width="16" height="12.1" /></bezel>
+
+ <bezel name="digit1" element="digit"><bounds x="36" y="16" width="6" height="9" /></bezel>
+ <bezel name="digit0" element="digit"><bounds x="42" y="16" width="6" height="9" /></bezel>
+
+ <bezel element="static_white"><bounds x="25" y="26" width="100" height="2" /></bezel>
+ <bezel element="static_white"><bounds x="60" y="7" width="30" height="30" /></bezel>
+ <bezel element="static_black"><bounds x="61" y="8" width="28" height="30.1" /></bezel>
+ <bezel element="static_white"><bounds x="60.5" y="18" width="29" height="1" /></bezel>
+ <bezel element="static_black"><bounds x="24" y="27" width="102" height="30" /></bezel>
+
+ <bezel element="disk_white"><bounds x="72" y="10" width="6" height="6" /></bezel>
+ <bezel name="13.0" element="led"><bounds x="73" y="11" width="4" height="4" /></bezel>
+ <bezel element="text_score1"><bounds x="62" y="10" width="10" height="6" /></bezel>
+ <bezel element="text_score2"><bounds x="78" y="10" width="10" height="6" /></bezel>
+
+ <bezel name="3.0" element="led"><bounds x="62" y="21" width="4" height="4" /></bezel>
+ <bezel name="3.1" element="led"><bounds x="67" y="25" width="4" height="4" /></bezel>
+ <bezel name="3.2" element="led"><bounds x="73" y="26" width="4" height="4" /></bezel>
+ <bezel name="3.3" element="led"><bounds x="79" y="25" width="4" height="4" /></bezel>
+ <bezel name="3.4" element="led"><bounds x="84" y="21" width="4" height="4" /></bezel>
+
+ <!-- men -->
+
+ <bezel element="disk_white"><bounds x="72" y="54" width="6" height="6" /></bezel>
+ <bezel name="8.0" element="led"><bounds x="73" y="55" width="4" height="4" /></bezel>
+
+ <bezel element="disk_white"><bounds x="35" y="47" width="6" height="6" /></bezel>
+ <bezel name="5.0" element="led"><bounds x="36" y="48" width="4" height="4" /></bezel>
+
+ <bezel element="disk_white"><bounds x="109" y="47" width="6" height="6" /></bezel>
+ <bezel name="9.0" element="led"><bounds x="110" y="48" width="4" height="4" /></bezel>
+
+ <bezel element="disk_white"><bounds x="55" y="74" width="6" height="6" /></bezel>
+ <bezel name="4.0" element="led"><bounds x="56" y="75" width="4" height="4" /></bezel>
+ <bezel element="text_home"><bounds x="52" y="80.5" width="12" height="3" /></bezel>
+
+ <bezel element="disk_white"><bounds x="89" y="74" width="6" height="6" /></bezel>
+ <bezel name="10.0" element="led"><bounds x="90" y="75" width="4" height="4" /></bezel>
+ <bezel element="text_away"><bounds x="86" y="80.5" width="12" height="3" /></bezel>
+
+ <!-- small leds -->
+
+ <bezel name="11.1" element="led"><bounds x="57.1" y="29.1" width="1" height="1" /></bezel>
+ <bezel name="11.2" element="led"><bounds x="52.7" y="33.7" width="1" height="1" /></bezel>
+ <bezel name="11.3" element="led"><bounds x="48.3" y="38.3" width="1" height="1" /></bezel> <!-- unpopulated, but is used -->
+ <bezel name="2.0" element="ledr"><bounds x="44.6" y="40.6" width="4" height="1" /></bezel>
+ <bezel name="11.4" element="led"><bounds x="43.9" y="42.9" width="1" height="1" /></bezel>
+
+ <bezel name="12.1" element="led"><bounds x="74.5" y="34" width="1" height="1" /></bezel>
+ <bezel name="12.2" element="led"><bounds x="74.5" y="39" width="1" height="1" /></bezel>
+ <bezel name="12.3" element="led"><bounds x="74.5" y="44" width="1" height="1" /></bezel> <!-- unpopulated, but is used -->
+ <bezel name="2.2" element="ledr"><bounds x="73" y="46.5" width="4" height="1" /></bezel>
+ <bezel name="12.4" element="led"><bounds x="74.5" y="49" width="1" height="1" /></bezel>
+
+ <bezel name="13.1" element="led"><bounds x="91.9" y="29.1" width="1" height="1" /></bezel>
+ <bezel name="13.2" element="led"><bounds x="96.3" y="33.7" width="1" height="1" /></bezel>
+ <bezel name="13.3" element="led"><bounds x="100.7" y="38.3" width="1" height="1" /></bezel> <!-- unpopulated, but is used -->
+ <bezel name="2.4" element="ledr"><bounds x="101.4" y="40.6" width="4" height="1" /></bezel>
+ <bezel name="13.4" element="led"><bounds x="105.1" y="42.9" width="1" height="1" /></bezel>
+
+ <bezel name="5.1" element="led"><bounds x="45.6" y="50.9" width="1" height="1" /></bezel>
+ <bezel name="5.2" element="led"><bounds x="52.2" y="52.3" width="1" height="1" /></bezel>
+ <bezel name="2.1" element="ledr"><bounds x="55.5" y="51.5" width="1" height="4" /></bezel>
+ <bezel name="5.3" element="led"><bounds x="58.8" y="53.7" width="1" height="1" /></bezel> <!-- unpopulated, but is used -->
+ <bezel name="5.4" element="led"><bounds x="65.4" y="55.1" width="1" height="1" /></bezel>
+
+ <bezel name="8.4" element="led"><bounds x="103.4" y="50.9" width="1" height="1" /></bezel>
+ <bezel name="8.3" element="led"><bounds x="96.8" y="52.3" width="1" height="1" /></bezel>
+ <bezel name="2.3" element="ledr"><bounds x="93.5" y="51.5" width="1" height="4" /></bezel>
+ <bezel name="8.2" element="led"><bounds x="90.2" y="53.7" width="1" height="1" /></bezel> <!-- unpopulated, but is used -->
+ <bezel name="8.1" element="led"><bounds x="83.6" y="55.1" width="1" height="1" /></bezel>
+
+ <bezel name="4.4" element="led"><bounds x="42.7" y="56.1" width="1" height="1" /></bezel>
+ <bezel name="4.3" element="led"><bounds x="45.9" y="60.7" width="1" height="1" /></bezel>
+ <bezel name="4.2" element="led"><bounds x="49.1" y="65.3" width="1" height="1" /></bezel>
+ <bezel name="4.1" element="led"><bounds x="52.3" y="69.9" width="1" height="1" /></bezel>
+
+ <bezel name="10.4" element="led"><bounds x="65.5" y="76.5" width="1" height="1" /></bezel>
+ <bezel name="10.3" element="led"><bounds x="71.5" y="76.5" width="1" height="1" /></bezel>
+ <bezel name="10.2" element="led"><bounds x="77.5" y="76.5" width="1" height="1" /></bezel>
+ <bezel name="10.1" element="led"><bounds x="83.5" y="76.5" width="1" height="1" /></bezel>
+
+ <bezel name="9.1" element="led"><bounds x="107.3" y="56.1" width="1" height="1" /></bezel>
+ <bezel name="9.2" element="led"><bounds x="104.1" y="60.7" width="1" height="1" /></bezel>
+ <bezel name="9.3" element="led"><bounds x="100.9" y="65.3" width="1" height="1" /></bezel>
+ <bezel name="9.4" element="led"><bounds x="97.7" y="69.9" width="1" height="1" /></bezel>
+
+ </view>
+</mamelayout>
diff --git a/src/mame/layout/h2hsoccer.lay b/src/mame/layout/h2hsoccerc.lay
index 569eb129d59..569eb129d59 100644
--- a/src/mame/layout/h2hsoccer.lay
+++ b/src/mame/layout/h2hsoccerc.lay
diff --git a/src/mame/mame.lst b/src/mame/mame.lst
index 13e8fe3e27f..4929abf3823 100644
--- a/src/mame/mame.lst
+++ b/src/mame/mame.lst
@@ -14681,9 +14681,9 @@ ctstein // Castle Toy
einvaderc // Entex
funjacks // Mattel
funrlgl // Mattel
-h2hbaskb // Coleco
-h2hhockey // Coleco
-h2hsoccer // Coleco
+h2hbaskbc // Coleco
+h2hhockeyc // Coleco
+h2hsoccerc // Coleco
lchicken // LJN
lightfgt // Milton Bradley
mdallas // Mattel
@@ -14843,6 +14843,7 @@ gpoker // Gakken
h2hbaseb // Coleco
h2hboxing // Coleco
h2hfootb // Coleco
+h2hhockey // Coleco
horseran // Mattel
lostreas // Parker Bros
matchnum // A-One LSI