summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
author hap <happppp@users.noreply.github.com>2020-03-30 23:57:57 +0200
committer hap <happppp@users.noreply.github.com>2020-03-30 23:58:12 +0200
commit3f1e8ad0ca010fe24ab5e119fdfe415270d9f4b0 (patch)
tree1ce412b8283c1a27c485ec2bd56579033d31e527
parent73c1c3400f60164740feadc39cf987a5ac53a9e7 (diff)
New working machines
-------------------- Quickfire [hap, Sean Riddle]
-rw-r--r--src/mame/drivers/fidel_elite.cpp20
-rw-r--r--src/mame/drivers/hh_tms1k.cpp129
-rw-r--r--src/mame/layout/qfire.lay111
-rw-r--r--src/mame/mame.lst1
4 files changed, 246 insertions, 15 deletions
diff --git a/src/mame/drivers/fidel_elite.cpp b/src/mame/drivers/fidel_elite.cpp
index 526d214073b..ae76bd2e52e 100644
--- a/src/mame/drivers/fidel_elite.cpp
+++ b/src/mame/drivers/fidel_elite.cpp
@@ -46,7 +46,7 @@ it doesn't have the 8255 PPI, but has more RAM(7*TMM2016P). Some were released a
3.6MHz instead of 4MHz, perhaps due to hardware instability? Opening module PC16 was
included by default, this module is the same as CB16 but at different form factor.
-Elite Avant Garde (models 6081,6088,6089) is on the same hardware as EAS.
+Elite Avant Garde (models 6081,6088,6089) is on similar hardware as EAS.
Fidelity Elite Private Line were EAS/EAG conversions released by Fidelity Deutschland.
The "Elite Privat" was probably for the local market and the "Private Line" for export.
@@ -503,12 +503,12 @@ void eag_state::eag2100(machine_config &config)
ROM_START( feasbu )
ROM_REGION( 0x10000, "mainmap", 0 )
- ROM_LOAD("eli_bu.6", 0x8000, 0x0800, CRC(93dcc23b) SHA1(2eb8c5a85e566948bc256d6b1804694e6b0ffa6f) ) // ST M27C64A, unknown label
+ ROM_LOAD("mh_6", 0x8000, 0x0800, CRC(93dcc23b) SHA1(2eb8c5a85e566948bc256d6b1804694e6b0ffa6f) ) // ST M27C64A
ROM_CONTINUE( 0x9000, 0x0800 )
ROM_CONTINUE( 0x8800, 0x0800 )
ROM_CONTINUE( 0x9800, 0x0800 )
- ROM_LOAD("101-1052a02.5", 0xc000, 0x2000, CRC(859d69f1) SHA1(a8b057683369e2387f22fc7e916b6f3c75d44b21) ) // Mostek MK36C63N-5
- ROM_LOAD("101-1052a01.4", 0xe000, 0x2000, CRC(571a33a7) SHA1(43b110cf0918caf16643178f401e58b2dc73894f) ) // Mostek MK36C63N-5
+ ROM_LOAD("101-1052a02", 0xc000, 0x2000, CRC(859d69f1) SHA1(a8b057683369e2387f22fc7e916b6f3c75d44b21) ) // Mostek MK36C63N-5
+ ROM_LOAD("101-1052a01", 0xe000, 0x2000, CRC(571a33a7) SHA1(43b110cf0918caf16643178f401e58b2dc73894f) ) // Mostek MK36C63N-5
// speech ROM
ROM_DEFAULT_BIOS("en")
@@ -533,15 +533,15 @@ ROM_END
ROM_START( feasgla )
ROM_REGION( 0x10000, "mainmap", 0 )
- ROM_LOAD("4,0_8.6", 0x8000, 0x0800, CRC(32784e2d) SHA1(dae060a5c49cc1993a78db293cd80464adfd892d) )
+ ROM_LOAD("4,0_8_6", 0x8000, 0x0800, CRC(32784e2d) SHA1(dae060a5c49cc1993a78db293cd80464adfd892d) )
ROM_CONTINUE( 0x9000, 0x0800 )
ROM_CONTINUE( 0x8800, 0x0800 )
ROM_CONTINUE( 0x9800, 0x0800 )
- ROM_LOAD("c.5", 0xc000, 0x0800, CRC(ddb80412) SHA1(b1d9435d9a71b8eb241a2169bfbaa0499f510769) )
+ ROM_LOAD("c_5", 0xc000, 0x0800, CRC(ddb80412) SHA1(b1d9435d9a71b8eb241a2169bfbaa0499f510769) )
ROM_CONTINUE( 0xd000, 0x0800 )
ROM_CONTINUE( 0xc800, 0x0800 )
ROM_CONTINUE( 0xd800, 0x0800 )
- ROM_LOAD("4,0_e.4", 0xe000, 0x0800, CRC(62a5305a) SHA1(a361bd9a54b903d7b0fbacabe55ea5ccbbc1dc51) )
+ ROM_LOAD("4,0_e_4", 0xe000, 0x0800, CRC(62a5305a) SHA1(a361bd9a54b903d7b0fbacabe55ea5ccbbc1dc51) )
ROM_CONTINUE( 0xf000, 0x0800 )
ROM_CONTINUE( 0xe800, 0x0800 )
ROM_CONTINUE( 0xf800, 0x0800 )
@@ -569,15 +569,15 @@ ROM_END
ROM_START( feasglaa )
ROM_REGION( 0x10000, "mainmap", 0 )
- ROM_LOAD("eli_gla.6", 0x8000, 0x0800, CRC(2fdddb4f) SHA1(6da0a328a45462f285ae6a0756f97c5a43148f97) )
+ ROM_LOAD("p6", 0x8000, 0x0800, CRC(2fdddb4f) SHA1(6da0a328a45462f285ae6a0756f97c5a43148f97) )
ROM_CONTINUE( 0x9000, 0x0800 )
ROM_CONTINUE( 0x8800, 0x0800 )
ROM_CONTINUE( 0x9800, 0x0800 )
- ROM_LOAD("eli_gla.5", 0xc000, 0x0800, CRC(f094e625) SHA1(fef84c6a3da504aac15988ec9af94417e5fedfbd) )
+ ROM_LOAD("p5", 0xc000, 0x0800, CRC(f094e625) SHA1(fef84c6a3da504aac15988ec9af94417e5fedfbd) )
ROM_CONTINUE( 0xd000, 0x0800 )
ROM_CONTINUE( 0xc800, 0x0800 )
ROM_CONTINUE( 0xd800, 0x0800 )
- ROM_LOAD("eli_gla.4", 0xe000, 0x0800, CRC(5f6845d1) SHA1(684eb16faf36a49560e5a73b55fd0022dc090e35) )
+ ROM_LOAD("p4", 0xe000, 0x0800, CRC(5f6845d1) SHA1(684eb16faf36a49560e5a73b55fd0022dc090e35) )
ROM_CONTINUE( 0xf000, 0x0800 )
ROM_CONTINUE( 0xe800, 0x0800 )
ROM_CONTINUE( 0xf800, 0x0800 )
diff --git a/src/mame/drivers/hh_tms1k.cpp b/src/mame/drivers/hh_tms1k.cpp
index 5f8fe1a09d7..7d410e81c2e 100644
--- a/src/mame/drivers/hh_tms1k.cpp
+++ b/src/mame/drivers/hh_tms1k.cpp
@@ -72,7 +72,7 @@
@MP3208 TMS1000 1977, Milton Bradley Electronic Battleship (1977, model 4750B)
@MP3226 TMS1000 1978, Milton Bradley Simon (Rev A)
*MP3232 TMS1000 1979, Fonas 2-Player Baseball (no "MP" on chip label)
- *MP3260 TMS1000 1979, Electroplay Quickfire
+ @MP3260 TMS1000 1979, Electroplay Quickfire
@MP3300 TMS1000 1979, Milton Bradley Simon (Rev F)
@MP3301A TMS1000 1979, Milton Bradley Big Trak
@MP3320A TMS1000 1979, Coleco Head to Head: Electronic Basketball
@@ -223,6 +223,7 @@
#include "mmerlin.lh" // clickable
#include "monkeysee.lh"
#include "phpball.lh"
+#include "qfire.lh" // clickable
#include "quizwizc.lh"
#include "raisedvl.lh"
#include "simon.lh" // clickable
@@ -2282,7 +2283,7 @@ ROM_START( quizwizc )
ROM_LOAD( "m32001", 0x0000, 0x0400, CRC(053657eb) SHA1(38c84f7416f79aa679f434a3d35df54cd9aa528a) )
ROM_REGION( 867, "maincpu:mpla", 0 )
- ROM_LOAD( "tms1000_common3_micro.pla", 0, 867, CRC(80912d0a) SHA1(7ae5293ed4d93f5b7a64d43fe30c3639f39fbe5a) )
+ ROM_LOAD( "tms1000_common4_micro.pla", 0, 867, CRC(80912d0a) SHA1(7ae5293ed4d93f5b7a64d43fe30c3639f39fbe5a) )
ROM_REGION( 365, "maincpu:opla", 0 )
ROM_LOAD( "tms1000_quizwizc_output.pla", 0, 365, CRC(475b7053) SHA1(8f61bf736eb41d7029a6b165cc0a184ba0a70a2a) )
ROM_END
@@ -3148,6 +3149,122 @@ ROM_END
/***************************************************************************
+ Electroplay Quickfire
+ * TMS1000NLL MP3260 (die label same)
+ * 2 7seg LEDs, 5 lamps, 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.
+ Although the game seems mostly playable without having to use the gun trigger
+
+***************************************************************************/
+
+class qfire_state : public hh_tms1k_state
+{
+public:
+ qfire_state(const machine_config &mconfig, device_type type, const char *tag) :
+ hh_tms1k_state(mconfig, type, tag)
+ { }
+
+ DECLARE_WRITE16_MEMBER(write_r);
+ DECLARE_WRITE16_MEMBER(write_o);
+ DECLARE_READ8_MEMBER(read_k);
+ void qfire(machine_config &config);
+};
+
+// handlers
+
+WRITE16_MEMBER(qfire_state::write_r)
+{
+ // R1,R2,R5: input mux
+ m_inp_mux = (data >> 1 & 3) | (data >> 3 & 4);
+
+ // R3,R4,R6-R8: leds (direct)
+ m_display->write_row(2, (data >> 3 & 3) | (data >> 4 & 0x1c));
+ m_display->update();
+
+ // R9: speaker out
+ m_speaker->level_w(data >> 9 & 1);
+}
+
+WRITE16_MEMBER(qfire_state::write_o)
+{
+ // O0: 1st digit "1"
+ // O1-O7: 2nd digit segments
+ m_display->write_row(0, (data & 1) ? 6 : 0);
+ m_display->write_row(1, data >> 1 & 0x7f);
+ m_display->update();
+}
+
+READ8_MEMBER(qfire_state::read_k)
+{
+ // K: multiplexed inputs
+ return read_inputs(3);
+}
+
+// config
+
+static INPUT_PORTS_START( qfire )
+ PORT_START("IN.0") // R1
+ PORT_CONFNAME( 0x0f, 0x00, "Game" )
+ PORT_CONFSETTING( 0x00, "1" )
+ PORT_CONFSETTING( 0x08, "2" )
+ PORT_CONFSETTING( 0x04, "3" )
+ PORT_CONFSETTING( 0x02, "4" )
+ PORT_CONFSETTING( 0x01, "5" )
+ PORT_CONFSETTING( 0x06, "6" )
+
+ PORT_START("IN.1") // R2
+ PORT_CONFNAME( 0x07, 0x04, DEF_STR( Difficulty ) )
+ PORT_CONFSETTING( 0x04, "A" )
+ PORT_CONFSETTING( 0x02, "B" )
+ PORT_CONFSETTING( 0x01, "C" )
+ PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_UNUSED )
+
+ PORT_START("IN.2") // R5
+ PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("Lightsensor 1")
+ PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("Lightsensor 2")
+ PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("Lightsensor 3")
+ PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_BUTTON1 ) // lightgun trigger, also turns on lightgun lamp
+INPUT_PORTS_END
+
+void qfire_state::qfire(machine_config &config)
+{
+ /* basic machine hardware */
+ TMS1000(config, m_maincpu, 375000); // approximation - RC osc. R=39K, C=47pF
+ m_maincpu->k().set(FUNC(qfire_state::read_k));
+ m_maincpu->r().set(FUNC(qfire_state::write_r));
+ m_maincpu->o().set(FUNC(qfire_state::write_o));
+
+ /* video hardware */
+ PWM_DISPLAY(config, m_display).set_size(3, 7);
+ m_display->set_segmask(3, 0x7f);
+ config.set_default_layout(layout_qfire);
+
+ /* sound hardware */
+ SPEAKER(config, "mono").front_center();
+ SPEAKER_SOUND(config, m_speaker);
+ m_speaker->add_route(ALL_OUTPUTS, "mono", 0.25);
+}
+
+// roms
+
+ROM_START( qfire )
+ ROM_REGION( 0x0400, "maincpu", 0 )
+ ROM_LOAD( "mp3260", 0x0000, 0x0400, CRC(f6e28376) SHA1(6129584c55a1629b458694cdc97edccb77ab00ba) )
+
+ ROM_REGION( 867, "maincpu:mpla", 0 )
+ ROM_LOAD( "tms1000_common3_micro.pla", 0, 867, CRC(52f7c1f1) SHA1(dbc2634dcb98eac173ad0209df487cad413d08a5) )
+ ROM_REGION( 365, "maincpu:opla", 0 )
+ ROM_LOAD( "tms1000_qfire_output.pla", 0, 365, CRC(8f7668a9) SHA1(c8faeff0f88bfea8f032ce5bc583f049e8930c11) )
+ROM_END
+
+
+
+
+
+/***************************************************************************
+
Entex (Electronic) Soccer
* TMS1000NL MP0158 (die label same)
* 2 7seg LEDs, 30 other LEDs, 1-bit sound
@@ -7006,7 +7123,7 @@ ROM_START( simon )
ROM_LOAD( "tms1000.u1", 0x0000, 0x0400, CRC(9961719d) SHA1(35dddb018a8a2b31f377ab49c1f0cb76951b81c0) )
ROM_REGION( 867, "maincpu:mpla", 0 )
- ROM_LOAD( "tms1000_simon_micro.pla", 0, 867, CRC(52f7c1f1) SHA1(dbc2634dcb98eac173ad0209df487cad413d08a5) )
+ ROM_LOAD( "tms1000_common3_micro.pla", 0, 867, CRC(52f7c1f1) SHA1(dbc2634dcb98eac173ad0209df487cad413d08a5) )
ROM_REGION( 365, "maincpu:opla", 0 ) // unused
ROM_LOAD( "tms1000_simon_output.pla", 0, 365, CRC(2943c71b) SHA1(bd5bb55c57e7ba27e49c645937ec1d4e67506601) )
ROM_END
@@ -7016,7 +7133,7 @@ ROM_START( simonf )
ROM_LOAD( "mp3300", 0x0000, 0x0400, CRC(b9fcf93a) SHA1(45960e4242a08495f2a99fc5d44728eabd93cd9f) )
ROM_REGION( 867, "maincpu:mpla", 0 )
- ROM_LOAD( "tms1000_simon_micro.pla", 0, 867, CRC(52f7c1f1) SHA1(dbc2634dcb98eac173ad0209df487cad413d08a5) )
+ ROM_LOAD( "tms1000_common3_micro.pla", 0, 867, CRC(52f7c1f1) SHA1(dbc2634dcb98eac173ad0209df487cad413d08a5) )
ROM_REGION( 365, "maincpu:opla", 0 ) // unused
ROM_LOAD( "tms1000_simon_output.pla", 0, 365, CRC(2943c71b) SHA1(bd5bb55c57e7ba27e49c645937ec1d4e67506601) )
ROM_END
@@ -7369,7 +7486,7 @@ ROM_START( bigtrak )
ROM_LOAD( "mp3301a", 0x0000, 0x0400, CRC(1351bcdd) SHA1(68865389c25b541c09a742be61f8fb6488134d4e) )
ROM_REGION( 867, "maincpu:mpla", 0 )
- ROM_LOAD( "tms1000_common3_micro.pla", 0, 867, CRC(80912d0a) SHA1(7ae5293ed4d93f5b7a64d43fe30c3639f39fbe5a) )
+ ROM_LOAD( "tms1000_common4_micro.pla", 0, 867, CRC(80912d0a) SHA1(7ae5293ed4d93f5b7a64d43fe30c3639f39fbe5a) )
ROM_REGION( 365, "maincpu:opla", 0 )
ROM_LOAD( "tms1000_bigtrak_output.pla", 0, 365, CRC(63be45f6) SHA1(918e38a223152db883c1a6f7acf56e87d7074734) )
ROM_END
@@ -12306,6 +12423,8 @@ CONS( 1979, cnfball, 0, 0, cnfball, cnfball, cnfball_state, emp
CONS( 1979, cnfball2, 0, 0, cnfball2, cnfball2, cnfball2_state, empty_init, "Conic", "Electronic Football II (Conic)", MACHINE_SUPPORTS_SAVE )
CONS( 1979, eleciq, 0, 0, eleciq, eleciq, eleciq_state, empty_init, "Conic", "Electronic I.Q.", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK )
+CONS( 1979, qfire, 0, 0, qfire, qfire, qfire_state, empty_init, "Electroplay", "Quickfire", MACHINE_SUPPORTS_SAVE | MACHINE_CLICKABLE_ARTWORK )
+
CONS( 1979, esoccer, 0, 0, esoccer, esoccer, esoccer_state, empty_init, "Entex", "Electronic Soccer (Entex)", MACHINE_SUPPORTS_SAVE )
CONS( 1979, ebball, 0, 0, ebball, ebball, ebball_state, empty_init, "Entex", "Electronic Baseball (Entex)", MACHINE_SUPPORTS_SAVE )
CONS( 1979, ebball2, 0, 0, ebball2, ebball2, ebball2_state, empty_init, "Entex", "Electronic Baseball 2 (Entex)", MACHINE_SUPPORTS_SAVE )
diff --git a/src/mame/layout/qfire.lay b/src/mame/layout/qfire.lay
new file mode 100644
index 00000000000..8bd183d544e
--- /dev/null
+++ b/src/mame/layout/qfire.lay
@@ -0,0 +1,111 @@
+<?xml version="1.0"?>
+<!--
+license:CC0
+-->
+<mamelayout version="2">
+
+<!-- define elements -->
+
+ <element name="whited"><disk><color red="0.85" green="0.85" blue="0.85" /></disk></element>
+ <element name="blackd"><disk><color red="0" green="0" blue="0" /></disk></element>
+ <element name="redd"><disk><color red="0.8" green="0.14" blue="0.16" /></disk></element>
+ <element name="greend"><disk><color red="0.15" green="0.8" blue="0.1" /></disk></element>
+ <element name="yellowd"><disk><color red="0.8" green="0.78" blue="0.1" /></disk></element>
+ <element name="black"><rect><color red="0" green="0" blue="0" /></rect></element>
+ <element name="gray"><rect><color red="0.16" green="0.15" blue="0.15" /></rect></element>
+
+ <element name="text_skill"><text string="SKILL:"><color red="0.85" green="0.85" blue="0.85" /></text></element>
+ <element name="text_game"><text string="GAME:"><color red="0.85" green="0.85" blue="0.85" /></text></element>
+ <element name="text_sw"><text string="&#x25ba;"><color red="0.8" green="0.14" blue="0.16" /></text></element>
+
+ <element name="switch_skill" defstate="0">
+ <text state="0x04" string="A" align="2"><color red="0.85" green="0.85" blue="0.85" /></text>
+ <text state="0x02" string="B" align="2"><color red="0.85" green="0.85" blue="0.85" /></text>
+ <text state="0x01" string="C" align="2"><color red="0.85" green="0.85" blue="0.85" /></text>
+ </element>
+
+ <element name="switch_game" defstate="0">
+ <text state="0x00" string="1" align="2"><color red="0.85" green="0.85" blue="0.85" /></text>
+ <text state="0x08" string="2" align="2"><color red="0.85" green="0.85" blue="0.85" /></text>
+ <text state="0x04" string="3" align="2"><color red="0.85" green="0.85" blue="0.85" /></text>
+ <text state="0x02" string="4" align="2"><color red="0.85" green="0.85" blue="0.85" /></text>
+ <text state="0x01" string="5" align="2"><color red="0.85" green="0.85" blue="0.85" /></text>
+ <text state="0x06" string="6" align="2"><color red="0.85" green="0.85" blue="0.85" /></text>
+ </element>
+
+ <element name="hl" defstate="0">
+ <disk state="1"><color red="1" green="1" blue="1" /></disk>
+ </element>
+
+ <element name="ledr" defstate="0">
+ <disk state="0"><color red="0.2" green="0.04" blue="0.05" /></disk>
+ <disk state="1"><color red="1.0" green="0.2" blue="0.23" /></disk>
+ </element>
+ <element name="ledg" defstate="0">
+ <disk state="0"><color red="0.05" green="0.2" blue="0.04" /></disk>
+ <disk state="1"><color red="0.23" green="1.0" blue="0.2" /></disk>
+ </element>
+ <element name="ledy" defstate="0">
+ <disk state="0"><color red="0.2" green="0.18" blue="0.04" /></disk>
+ <disk state="1"><color red="1.0" green="0.9" blue="0.2" /></disk>
+ </element>
+
+ <element name="digit" defstate="0">
+ <led7seg><color red="1.0" green="0.2" blue="0.23" /></led7seg>
+ </element>
+
+
+<!-- build screen -->
+
+ <view name="Internal Layout">
+ <bounds left="47" right="161" top="34" bottom="121" />
+
+ <!-- targets -->
+ <bezel element="yellowd"><bounds x="51" y="38" width="28" height="28" /></bezel>
+ <bezel element="whited"><bounds x="53" y="40" width="24" height="24" /></bezel>
+ <bezel element="black"><bounds x="53" y="51.75" width="24" height="0.5" /></bezel>
+ <bezel element="black"><bounds x="64.75" y="40" width="0.5" height="24" /></bezel>
+ <bezel element="blackd"><bounds x="63" y="50" width="4" height="4" /></bezel>
+ <bezel element="hl" inputtag="IN.2" inputmask="0x01"><bounds x="62" y="49" width="6" height="6" /><color alpha="0.25" /></bezel>
+ <bezel element="whited"><bounds x="63" y="75" width="4" height="4" /></bezel>
+ <bezel element="yellowd"><bounds x="63.625" y="75.625" width="2.75" height="2.75" /></bezel>
+ <bezel name="2.2" element="ledy"><bounds x="64.25" y="76.25" width="1.5" height="1.5" /></bezel>
+
+ <bezel element="redd"><bounds x="90" y="60" width="28" height="28" /></bezel>
+ <bezel element="whited"><bounds x="92" y="62" width="24" height="24" /></bezel>
+ <bezel element="black"><bounds x="92" y="73.75" width="24" height="0.5" /></bezel>
+ <bezel element="black"><bounds x="103.75" y="62" width="0.5" height="24" /></bezel>
+ <bezel element="blackd"><bounds x="102" y="72" width="4" height="4" /></bezel>
+ <bezel element="hl" inputtag="IN.2" inputmask="0x02"><bounds x="101" y="71" width="6" height="6" /><color alpha="0.25" /></bezel>
+ <bezel element="whited"><bounds x="102" y="47" width="4" height="4" /></bezel>
+ <bezel element="redd"><bounds x="102.625" y="47.625" width="2.75" height="2.75" /></bezel>
+ <bezel name="2.3" element="ledr"><bounds x="103.25" y="48.25" width="1.5" height="1.5" /></bezel>
+
+ <bezel element="greend"><bounds x="129" y="38" width="28" height="28" /></bezel>
+ <bezel element="whited"><bounds x="131" y="40" width="24" height="24" /></bezel>
+ <bezel element="black"><bounds x="131" y="51.75" width="24" height="0.5" /></bezel>
+ <bezel element="black"><bounds x="142.75" y="40" width="0.5" height="24" /></bezel>
+ <bezel element="blackd"><bounds x="141" y="50" width="4" height="4" /></bezel>
+ <bezel element="hl" inputtag="IN.2" inputmask="0x04"><bounds x="140" y="49" width="6" height="6" /><color alpha="0.25" /></bezel>
+ <bezel element="whited"><bounds x="141" y="75" width="4" height="4" /></bezel>
+ <bezel element="greend"><bounds x="141.625" y="75.625" width="2.75" height="2.75" /></bezel>
+ <bezel name="2.4" element="ledg"><bounds x="142.25" y="76.25" width="1.5" height="1.5" /></bezel>
+
+ <!-- score panel -->
+ <bezel element="gray"><bounds x="86" y="100" width="36" height="0.5" /></bezel>
+
+ <bezel name="digit0" element="digit"><bounds x="100" y="104" width="4" height="6" /></bezel>
+ <bezel name="digit1" element="digit"><bounds x="104" y="104" width="4" height="6" /></bezel>
+
+ <bezel name="2.0" element="ledr"><bounds x="90" y="106.25" width="1.5" height="1.5" /></bezel>
+ <bezel name="2.1" element="ledy"><bounds x="116.5" y="106.25" width="1.5" height="1.5" /></bezel>
+
+ <bezel element="text_game"><bounds x="85" y="115" width="8" height="2.5" /></bezel>
+ <bezel element="text_sw"><bounds x="93" y="115" width="2.5" height="2.5" /></bezel>
+ <bezel element="switch_game" inputtag="IN.0" inputmask="0x0f" inputraw="1"><bounds x="93" y="115" width="4" height="2.5" /></bezel>
+
+ <bezel element="text_skill"><bounds x="110" y="115" width="8" height="2.5" /></bezel>
+ <bezel element="text_sw"><bounds x="118" y="115" width="2.5" height="2.5" /></bezel>
+ <bezel element="switch_skill" inputtag="IN.1" inputmask="0x07" inputraw="1"><bounds x="118" y="115" width="4" height="2.5" /></bezel>
+ </view>
+</mamelayout>
diff --git a/src/mame/mame.lst b/src/mame/mame.lst
index 15b530508e5..3461e7d9670 100644
--- a/src/mame/mame.lst
+++ b/src/mame/mame.lst
@@ -15936,6 +15936,7 @@ merlin // Parker Bros
mmerlin // Parker Bros
monkeysee // Tandy Radio Shack
phpball // Tomy
+qfire // Electroplay
quizwizc // Coleco
raisedvl // Entex
simon // Milton Bradley