diff --git a/src/mame/handheld/hh_tms1k.cpp b/src/mame/handheld/hh_tms1k.cpp
index 94105f2d446..d1d29633de1 100644
--- a/src/mame/handheld/hh_tms1k.cpp
+++ b/src/mame/handheld/hh_tms1k.cpp
@@ -134,7 +134,7 @@ on Joerg Woerner's datamath.org: http://www.datamath.org/IC_List.htm
@MP3206 TMS1000 1978, Concept 2000 Mr. Mus-I-Cal (model 560)
@MP3207 TMS1000 1978, Concept 2000 Lite 'n Learn: Electronic Organ (model 554)
@MP3208 TMS1000 1978, Milton Bradley Electronic Battleship (1977, model 4750B)
- *MP3209 TMS1000 1978, Kenner Star Wars: Electronic Laser Battle Game
+ @MP3209 TMS1000 1978, Kenner Star Wars: Electronic Laser Battle Game
@MP3226 TMS1000 1978, Milton Bradley Simon (Rev A)
*MP3228 TMS1000 1979, Texas Instruments OEM melody chip
*MP3232 TMS1000 1979, Fonas 2 Player Baseball (no "MP" on chip label)
@@ -323,6 +323,7 @@ on Joerg Woerner's datamath.org: http://www.datamath.org/IC_List.htm
#include "ssimon.lh" // clickable
#include "ssports4.lh"
#include "starwbc.lh" // clickable
+#include "starwlb.lh" // clickable
#include "stopthief.lh" // clickable
#include "subwars.lh"
#include "t3in1sa.lh"
@@ -2151,7 +2152,7 @@ ROM_END
/*******************************************************************************
Coleco Electronic Quarterback (model 2120)
- * TMS1100NLL MP3415 (die label same)
+ * TMS1100NLL MP3415 (die label: 1100B, MP3415)
* 9-digit LED grid, 1-bit sound
known releases:
@@ -2280,7 +2281,7 @@ ROM_END
/*******************************************************************************
Coleco Head to Head: Electronic Football (model 2140)
- * TMS1100NLLE (rev. E!) MP3460 (die label same)
+ * TMS1100NLLE (rev. E!) MP3460 (die label: 1100E, MP3460)
* 2*SN75492N LED display drivers, 9-digit LED grid, 1-bit sound
LED electronic football game. To distinguish between offense and defense,
@@ -3692,7 +3693,7 @@ ROM_END
Conic Electronic Multisport
* PCB label: CONIC 101-027(1979), or CONIC 101-021 REV A(1980, with DS8871N)
- * TMS1000 MP0168 (die label same)
+ * TMS1000 MP0168 (die label: 1000B, MP0168)
* 2 7seg LEDs, 33 other LEDs, 1-bit sound
This handheld includes 3 games: Basketball, Ice Hockey, Soccer.
@@ -3822,7 +3823,7 @@ ROM_END
/*******************************************************************************
Conic Electronic Football
- * TMS1000 MP0170 (die label same)
+ * TMS1000 MP0170 (die label: 1000B, MP0170)
* DS8874N, 3*9 LED array, 7 7seg LEDs, 1-bit sound
This is a clone of Mattel Football. Apparently Mattel tried to keep imports
@@ -4253,8 +4254,9 @@ ROM_END
/*******************************************************************************
Electroplay Quickfire
- * TMS1000NLL MP3260 (die label same)
- * 2 7seg LEDs, 5 lamps, 3 lightsensors, lightgun
+ * TMS1000NLL MP3260 (die label: 1000C, MP3260)
+ * 2 7seg LEDs, 5 lamps, 1-bit sound
+ * 3 lightsensors, lightgun
To play it in MAME, either use the clickable artwork with -mouse, or set
button 1 to "Z or X or C" and each lightsensor to one of those keys.
@@ -4288,7 +4290,7 @@ void qfire_state::write_r(u32 data)
m_display->write_row(2, (data >> 3 & 3) | (data >> 4 & 0x1c));
// R9: speaker out
- m_speaker->level_w(data >> 9 & 1);
+ m_speaker->level_w(BIT(data, 9));
}
void qfire_state::write_o(u16 data)
@@ -7252,6 +7254,120 @@ ROM_END
+/*******************************************************************************
+
+ Star Wars: Electronic Laser Battle Game (model 40090)
+ * TMS1000NLL MP3209 (die label: 1000C, MP3209)
+ * 12 LEDs, 1 lamp, 1-bit sound
+
+ known releases:
+ - USA: Star Wars: Electronic Laser Battle Game, published by Kenner
+ - France: La Guerre des Etoiles: Bataille Spatiale Électronique, published by Meccano
+
+*******************************************************************************/
+
+class starwlb_state : public hh_tms1k_state
+{
+public:
+ starwlb_state(const machine_config &mconfig, device_type type, const char *tag) :
+ hh_tms1k_state(mconfig, type, tag)
+ { }
+
+ void starwlb(machine_config &config);
+
+private:
+ void update_display();
+ void write_r(u32 data);
+ void write_o(u16 data);
+ u8 read_k();
+};
+
+// handlers
+
+void starwlb_state::update_display()
+{
+ m_display->matrix(1, (m_r & 0x7ff) | (m_o << 4 & 0x800) | (m_o << 10 & 0x1000));
+}
+
+void starwlb_state::write_r(u32 data)
+{
+ // R0-R10: leds
+ m_r = data;
+ update_display();
+}
+
+void starwlb_state::write_o(u16 data)
+{
+ // O0,O1: input mux
+ m_inp_mux = data & 3;
+
+ // O3-O6(tied together): speaker out (actually only writes 0x0 or 0xf)
+ m_speaker->level_w(population_count_32(data >> 3 & 0xf));
+
+ // O2: lamp
+ // O7: one more led
+ m_o = data;
+ update_display();
+}
+
+u8 starwlb_state::read_k()
+{
+ // K: multiplexed inputs
+ return read_inputs(2);
+}
+
+// inputs
+
+static INPUT_PORTS_START( starwlb )
+ PORT_START("IN.0") // O0
+ PORT_BIT( 0x03, IP_ACTIVE_HIGH, IPT_UNUSED )
+ PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_NAME("P1 Button B")
+ PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_NAME("P1 Button F")
+
+ PORT_START("IN.1") // O1
+ PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_COCKTAIL PORT_NAME("P2 Button B")
+ PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_COCKTAIL PORT_NAME("P2 Button F")
+ PORT_BIT( 0x0c, IP_ACTIVE_HIGH, IPT_UNUSED )
+INPUT_PORTS_END
+
+// config
+
+void starwlb_state::starwlb(machine_config &config)
+{
+ // basic machine hardware
+ TMS1000(config, m_maincpu, 350000); // approximation - RC osc. R=33K, C=100pF
+ m_maincpu->read_k().set(FUNC(starwlb_state::read_k));
+ m_maincpu->write_r().set(FUNC(starwlb_state::write_r));
+ m_maincpu->write_o().set(FUNC(starwlb_state::write_o));
+
+ // video hardware
+ PWM_DISPLAY(config, m_display).set_size(1, 13);
+ config.set_default_layout(layout_starwlb);
+
+ // sound hardware
+ SPEAKER(config, "mono").front_center();
+ SPEAKER_SOUND(config, m_speaker);
+ static const double speaker_levels[5] = { 0.0, 1.0/4.0, 2.0/4.0, 3.0/4.0, 1.0 };
+ m_speaker->set_levels(5, speaker_levels);
+ m_speaker->add_route(ALL_OUTPUTS, "mono", 0.25);
+}
+
+// roms
+
+ROM_START( starwlb )
+ ROM_REGION( 0x0400, "maincpu", 0 )
+ ROM_LOAD( "mp3209", 0x0000, 0x0400, CRC(99628f9c) SHA1(5db191462521c4ae0b6955b31d5e8c6de65dd6a0) )
+
+ 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_starwlb_output.pla", 0, 365, CRC(80a2d158) SHA1(8c74ca6af5d76425ff451bb5140a8dd2cfde850a) )
+ROM_END
+
+
+
+
+
/*******************************************************************************
Kenner Star Wars: Electronic Battle Command Game (model 40370)
@@ -16417,6 +16533,7 @@ SYST( 1981, fxmcr165, 0, 0, fxmcr165, fxmcr165, fxmcr165_state,
SYST( 1979, elecdet, 0, 0, elecdet, elecdet, elecdet_state, empty_init, "Ideal Toy Corporation", "Electronic Detective", MACHINE_SUPPORTS_SAVE ) // ***
+SYST( 1978, starwlb, 0, 0, starwlb, starwlb, starwlb_state, empty_init, "Kenner", "Star Wars: Electronic Laser Battle Game", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK )
SYST( 1979, starwbc, 0, 0, starwbc, starwbc, starwbc_state, empty_init, "Kenner", "Star Wars: Electronic Battle Command Game", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK )
SYST( 1979, starwbcp, starwbc, 0, starwbc, starwbc, starwbc_state, empty_init, "Kenner", "Star Wars: Electronic Battle Command Game (patent)", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK )
SYST( 1980, liveafb, 0, 0, liveafb, liveafb, liveafb_state, empty_init, "Kenner", "Live Action Football", MACHINE_SUPPORTS_SAVE )
diff --git a/src/mame/layout/starwbc.lay b/src/mame/layout/starwbc.lay
index 1543ce5abb0..522b2dffefb 100644
--- a/src/mame/layout/starwbc.lay
+++ b/src/mame/layout/starwbc.lay
@@ -35,14 +35,14 @@ license:CC0-1.0
-
+
-
+
diff --git a/src/mame/layout/starwlb.lay b/src/mame/layout/starwlb.lay
new file mode 100644
index 00000000000..ffc7f50180c
--- /dev/null
+++ b/src/mame/layout/starwlb.lay
@@ -0,0 +1,124 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/mame/mame.lst b/src/mame/mame.lst
index 791f3ec24a1..f3b479ada09 100755
--- a/src/mame/mame.lst
+++ b/src/mame/mame.lst
@@ -18991,6 +18991,7 @@ ssimon // Milton Bradley
ssports4 // US Games
starwbc // Kenner
starwbcp // Kenner (patent)
+starwlb // Kenner
stopthief // Parker Bros
stopthiefp // Parker Bros (patent)
subwars // Tiger Electronics