summaryrefslogtreecommitdiffstatshomepage
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/mame/drivers/fidelz80.cpp4
-rw-r--r--src/mame/drivers/hh_cop400.cpp143
-rw-r--r--src/mame/drivers/hh_hmcs40.cpp30
-rw-r--r--src/mame/drivers/hh_melps4.cpp2
-rw-r--r--src/mame/drivers/hh_pic16.cpp11
-rw-r--r--src/mame/drivers/hh_tms1k.cpp77
-rw-r--r--src/mame/drivers/hh_ucom4.cpp21
-rw-r--r--src/mame/drivers/novagf8.cpp2
-rw-r--r--src/mame/layout/unkeinv.lay195
-rw-r--r--src/mame/mame.lst1
10 files changed, 336 insertions, 150 deletions
diff --git a/src/mame/drivers/fidelz80.cpp b/src/mame/drivers/fidelz80.cpp
index 2ba6ac7200f..b85022c7c0f 100644
--- a/src/mame/drivers/fidelz80.cpp
+++ b/src/mame/drivers/fidelz80.cpp
@@ -1250,7 +1250,7 @@ static INPUT_PORTS_START( vcc_base )
PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("H8") PORT_CODE(KEYCODE_8) PORT_CODE(KEYCODE_8_PAD) PORT_CODE(KEYCODE_H)
PORT_START("RESET") // is not on matrix IN.0 d0
- PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("RE") PORT_CODE(KEYCODE_R) PORT_CHANGED_MEMBER(DEVICE_SELF, fidelz80_state, reset_button, 0)
+ PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("RE") PORT_CODE(KEYCODE_R) PORT_CHANGED_MEMBER(DEVICE_SELF, fidelz80_state, reset_button, nullptr)
INPUT_PORTS_END
static INPUT_PORTS_START( cc10 )
@@ -1388,7 +1388,7 @@ static INPUT_PORTS_START( vbrc )
PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_4_PAD) PORT_NAME("Clubs")
PORT_START("RESET") // is not on matrix IN.7 d0
- PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_R) PORT_CHANGED_MEMBER(DEVICE_SELF, fidelz80_state, reset_button, 0) PORT_NAME("RE")
+ PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_R) PORT_CHANGED_MEMBER(DEVICE_SELF, fidelz80_state, reset_button, nullptr) PORT_NAME("RE")
INPUT_PORTS_END
diff --git a/src/mame/drivers/hh_cop400.cpp b/src/mame/drivers/hh_cop400.cpp
index 06b2149be0b..c350cef5f82 100644
--- a/src/mame/drivers/hh_cop400.cpp
+++ b/src/mame/drivers/hh_cop400.cpp
@@ -35,6 +35,7 @@
#include "lightfgt.lh" // clickable
#include "mdallas.lh"
#include "qkracer.lh"
+#include "unkeinv.lh"
//#include "hh_cop400_test.lh" // common test-layout - use external artwork
@@ -284,7 +285,6 @@ READ8_MEMBER(ctstein_state::read_l)
return read_inputs(3) << 4 | 0xf;
}
-
// config
static INPUT_PORTS_START( ctstein )
@@ -396,7 +396,6 @@ READ8_MEMBER(h2hbaskb_state::read_in)
return (read_inputs(4) & 7) | (m_inp_matrix[4]->read() & 8);
}
-
// config
static INPUT_PORTS_START( h2hbaskb )
@@ -559,7 +558,6 @@ WRITE8_MEMBER(einvaderc_state::write_l)
prepare_display();
}
-
// config
static INPUT_PORTS_START( einvaderc )
@@ -604,6 +602,129 @@ MACHINE_CONFIG_END
/***************************************************************************
+ Gordon Barlow Design electronic Space Invaders game (unreleased, from patent US4345764)
+ * COP421 (likely a development chip)
+ * 36+9 LEDs, 1-bit sound
+
+ This game is presumedly unreleased. The title is unknown, the patent simply names
+ it "Hand-held electronic game". There is no mass-manufacture company assigned
+ to it either. The game seems unfinished(no scorekeeping, some bugs), and the design
+ is very complex. Player ship and bullets are on a moving "wand", a 2-way mirror
+ makes it appear on the same plane as the enemies and barriers.
+
+***************************************************************************/
+
+class unkeinv_state : public hh_cop400_state
+{
+public:
+ unkeinv_state(const machine_config &mconfig, device_type type, const char *tag)
+ : hh_cop400_state(mconfig, type, tag)
+ { }
+
+ void prepare_display();
+ DECLARE_WRITE8_MEMBER(write_g);
+ DECLARE_WRITE8_MEMBER(write_d);
+ DECLARE_WRITE8_MEMBER(write_l);
+ DECLARE_READ8_MEMBER(read_l);
+
+ DECLARE_INPUT_CHANGED_MEMBER(position_changed);
+};
+
+// handlers
+
+void unkeinv_state::prepare_display()
+{
+ display_matrix(8+8, 8+12, m_g << 4 | m_d, m_l, false);
+
+ // positional led row is on L6,L7
+ u16 wand = m_display_state[7] << 8 | m_display_state[6];
+ m_display_state[8 + m_inp_matrix[1]->read()] = wand;
+ display_update();
+}
+
+WRITE8_MEMBER(unkeinv_state::write_g)
+{
+ // G0-G3: led select part
+ // G2,G3: input mux
+ m_g = ~data & 0xf;
+ prepare_display();
+}
+
+WRITE8_MEMBER(unkeinv_state::write_d)
+{
+ // D0-D3: led select part
+ m_d = ~data & 0xf;
+ prepare_display();
+}
+
+WRITE8_MEMBER(unkeinv_state::write_l)
+{
+ // L0-L7: led data
+ m_l = ~data & 0xff;
+ prepare_display();
+}
+
+READ8_MEMBER(unkeinv_state::read_l)
+{
+ u8 ret = 0xff;
+
+ // L0-L5+G2: positional odd
+ // L0-L5+G3: positional even
+ u8 pos = m_inp_matrix[1]->read();
+ if (m_g & 4 && pos & 1)
+ ret ^= (1 << (pos >> 1));
+ if (m_g & 8 && ~pos & 1)
+ ret ^= (1 << (pos >> 1));
+
+ // L7+G3: fire button
+ if (m_g & 8 && m_inp_matrix[0]->read())
+ ret ^= 0x80;
+
+ return ret & ~m_l;
+}
+
+// config
+
+INPUT_CHANGED_MEMBER(unkeinv_state::position_changed)
+{
+ prepare_display();
+}
+
+static INPUT_PORTS_START( unkeinv )
+ PORT_START("IN.0")
+ PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON1 )
+
+ PORT_START("IN.1")
+ PORT_BIT( 0x0f, 0x00, IPT_POSITIONAL ) PORT_POSITIONS(12) PORT_SENSITIVITY(10) PORT_KEYDELTA(1) PORT_CENTERDELTA(0) PORT_CHANGED_MEMBER(DEVICE_SELF, unkeinv_state, position_changed, nullptr)
+INPUT_PORTS_END
+
+static MACHINE_CONFIG_START( unkeinv )
+
+ /* basic machine hardware */
+ MCFG_CPU_ADD("maincpu", COP421, 850000) // frequency guessed
+ MCFG_COP400_CONFIG(COP400_CKI_DIVISOR_4, COP400_CKO_OSCILLATOR_OUTPUT, false) // guessed
+ MCFG_COP400_WRITE_G_CB(WRITE8(unkeinv_state, write_g))
+ MCFG_COP400_WRITE_D_CB(WRITE8(unkeinv_state, write_d))
+ MCFG_COP400_WRITE_L_CB(WRITE8(unkeinv_state, write_l))
+ MCFG_COP400_READ_L_CB(READ8(unkeinv_state, read_l))
+ MCFG_COP400_READ_L_TRISTATE_CB(CONSTANT(0xff))
+ 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_unkeinv)
+
+ /* 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
+
+
+
+
+
+/***************************************************************************
+
LJN I Took a Lickin' From a Chicken
* COP421 MCU label ~/005 COP421-NJC/N
* 11 leds, 1-bit sound, motor to a chicken on a spring
@@ -690,7 +811,6 @@ READ_LINE_MEMBER(lchicken_state::read_si)
return m_so;
}
-
// config
static INPUT_PORTS_START( lchicken )
@@ -818,7 +938,6 @@ READ8_MEMBER(funjacks_state::read_g)
return m_inp_matrix[3]->read() | (m_g & 2);
}
-
// config
static INPUT_PORTS_START( funjacks )
@@ -916,7 +1035,6 @@ WRITE8_MEMBER(funrlgl_state::write_g)
m_speaker->level_w(data >> 3 & 1);
}
-
// config
static INPUT_PORTS_START( funrlgl )
@@ -1023,7 +1141,6 @@ READ8_MEMBER(mdallas_state::read_in)
return read_inputs(6) & 0xf;
}
-
// config
/* physical button layout and labels is like this:
@@ -1140,7 +1257,6 @@ READ8_MEMBER(plus1_state::read_l)
return m_inp_matrix[1]->read() & m_l;
}
-
// config
static INPUT_PORTS_START( plus1 )
@@ -1251,7 +1367,6 @@ READ8_MEMBER(lightfgt_state::read_g)
return read_inputs(5);
}
-
// config
static INPUT_PORTS_START( lightfgt )
@@ -1358,7 +1473,6 @@ WRITE_LINE_MEMBER(bship82_state::write_so)
display_matrix(1, 1, state, 1);
}
-
// config
static INPUT_PORTS_START( bship82 )
@@ -1537,7 +1651,6 @@ WRITE_LINE_MEMBER(qkracer_state::write_sk)
prepare_display();
}
-
// config
static INPUT_PORTS_START( qkracer )
@@ -1630,6 +1743,12 @@ ROM_START( einvaderc )
ROM_END
+ROM_START( unkeinv )
+ ROM_REGION( 0x0400, "maincpu", 0 )
+ ROM_LOAD( "cop421_us4345764", 0x0000, 0x0400, CRC(0068c3a3) SHA1(4e5fd566a5a26c066cc14623a9bd01e109ebf797) ) // typed in from patent US4345764, good print quality
+ROM_END
+
+
ROM_START( lchicken )
ROM_REGION( 0x0400, "maincpu", 0 )
ROM_LOAD( "cop421-njc_n", 0x0000, 0x0400, CRC(319e7985) SHA1(9714327518f65ebefe38ac7911bed2b9b9c77307) )
@@ -1688,6 +1807,8 @@ CONS( 1980, h2hsoccer, h2hbaskb, 0, h2hsoccer, h2hsoccer, h2hbaskb_state, 0, "C
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, 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 )
diff --git a/src/mame/drivers/hh_hmcs40.cpp b/src/mame/drivers/hh_hmcs40.cpp
index 5f70d409338..2d40ce9e66f 100644
--- a/src/mame/drivers/hh_hmcs40.cpp
+++ b/src/mame/drivers/hh_hmcs40.cpp
@@ -400,7 +400,6 @@ READ8_MEMBER(bambball_state::input_r)
return read_inputs(4);
}
-
// config
static INPUT_PORTS_START( bambball )
@@ -516,7 +515,6 @@ READ8_MEMBER(bmboxing_state::input_r)
return read_inputs(4);
}
-
// config
/* physical button layout and labels is like this:
@@ -663,7 +661,6 @@ void bfriskyt_state::update_int1()
set_interrupt(1, read_inputs(5));
}
-
// config
static INPUT_PORTS_START( bfriskyt )
@@ -781,7 +778,6 @@ READ16_MEMBER(packmon_state::input_r)
return read_inputs(5) & 0x20;
}
-
// config
static INPUT_PORTS_START( packmon )
@@ -905,7 +901,6 @@ void msthawk_state::update_int0()
set_interrupt(0, read_inputs(6));
}
-
// config
static INPUT_PORTS_START( msthawk )
@@ -1028,7 +1023,6 @@ void bzaxxon_state::update_int1()
set_interrupt(1, read_inputs(4));
}
-
// config
static INPUT_PORTS_START( bzaxxon )
@@ -1148,7 +1142,6 @@ void zackman_state::update_int0()
set_interrupt(0, read_inputs(4));
}
-
// config
static INPUT_PORTS_START( zackman )
@@ -1269,7 +1262,6 @@ void bpengo_state::update_int0()
set_interrupt(0, read_inputs(4));
}
-
// config
static INPUT_PORTS_START( bpengo )
@@ -1397,7 +1389,6 @@ void bbtime_state::update_int0()
set_interrupt(0, read_inputs(5));
}
-
// config
static INPUT_PORTS_START( bbtime )
@@ -1502,7 +1493,6 @@ WRITE16_MEMBER(bdoramon_state::grid_w)
plate_w(space, 4, data & 0xf);
}
-
// config
static INPUT_PORTS_START( bdoramon )
@@ -1602,7 +1592,6 @@ WRITE16_MEMBER(bultrman_state::grid_w)
plate_w(space, 4, data & (1 << offset) & 7);
}
-
// config
static INPUT_PORTS_START( bultrman )
@@ -1694,7 +1683,6 @@ WRITE16_MEMBER(machiman_state::grid_w)
prepare_display();
}
-
// config
static INPUT_PORTS_START( machiman )
@@ -1823,7 +1811,6 @@ WRITE16_MEMBER(pairmtch_state::speaker_w)
m_maincpu->set_input_line(0, (data & 2) ? ASSERT_LINE : CLEAR_LINE);
}
-
// config
static INPUT_PORTS_START( pairmtch )
@@ -1949,7 +1936,6 @@ READ16_MEMBER(alnattck_state::input_r)
return read_inputs(7) & 0x20;
}
-
// config
static INPUT_PORTS_START( alnattck )
@@ -2080,7 +2066,6 @@ WRITE16_MEMBER(cdkong_state::grid_w)
prepare_display();
}
-
// config
static INPUT_PORTS_START( cdkong )
@@ -2207,7 +2192,6 @@ READ8_MEMBER(cgalaxn_state::input_r)
return read_inputs(2);
}
-
// config
static INPUT_PORTS_START( cgalaxn )
@@ -2333,7 +2317,6 @@ READ8_MEMBER(cpacman_state::input_r)
return read_inputs(3);
}
-
// config
static INPUT_PORTS_START( cpacman )
@@ -2450,7 +2433,6 @@ READ8_MEMBER(cmspacmn_state::input_r)
return read_inputs(3);
}
-
// config
static INPUT_PORTS_START( cmspacmn )
@@ -2575,7 +2557,6 @@ READ16_MEMBER(sag_state::input_r)
return read_inputs(6) << 13;
}
-
// config
static INPUT_PORTS_START( sag )
@@ -2702,7 +2683,6 @@ READ8_MEMBER(egalaxn2_state::input_r)
return read_inputs(4);
}
-
// config
static INPUT_PORTS_START( egalaxn2 )
@@ -2938,7 +2918,6 @@ READ8_MEMBER(eturtles_state::cop_ack_r)
return m_d & 1;
}
-
// config
static INPUT_PORTS_START( eturtles )
@@ -3061,7 +3040,6 @@ READ8_MEMBER(estargte_state::cop_data_r)
return m_r[0] | (m_d << 7 & 0x80);
}
-
// config
static INPUT_PORTS_START( estargte )
@@ -3192,7 +3170,6 @@ READ16_MEMBER(ghalien_state::input_r)
return read_inputs(7) & 0x8000;
}
-
// config
static INPUT_PORTS_START( ghalien )
@@ -3316,7 +3293,6 @@ void gckong_state::update_int1()
set_interrupt(1, read_inputs(4));
}
-
// config
static INPUT_PORTS_START( gckong )
@@ -3438,7 +3414,6 @@ void gdigdug_state::update_int1()
set_interrupt(1, read_inputs(5));
}
-
// config
static INPUT_PORTS_START( gdigdug )
@@ -3562,7 +3537,6 @@ READ8_MEMBER(mwcbaseb_state::input_r)
return read_inputs(7);
}
-
// config
/* physical button layout and labels is like this:
@@ -3704,7 +3678,6 @@ WRITE16_MEMBER(pbqbert_state::grid_w)
plate_w(space, 7, data >> 8 & 1);
}
-
// config
static INPUT_PORTS_START( pbqbert )
@@ -3816,7 +3789,6 @@ void kingman_state::update_int0()
set_interrupt(0, read_inputs(4));
}
-
// config
static INPUT_PORTS_START( kingman )
@@ -3937,7 +3909,6 @@ void tmtron_state::update_int1()
set_interrupt(1, read_inputs(4));
}
-
// config
static INPUT_PORTS_START( tmtron )
@@ -4039,7 +4010,6 @@ WRITE16_MEMBER(vinvader_state::grid_w)
plate_w(space, 3 + hmcs40_cpu_device::PORT_R1X, data >> 4 & 7);
}
-
// config
static INPUT_PORTS_START( vinvader )
diff --git a/src/mame/drivers/hh_melps4.cpp b/src/mame/drivers/hh_melps4.cpp
index 9dbdd384e1c..d1f05423a54 100644
--- a/src/mame/drivers/hh_melps4.cpp
+++ b/src/mame/drivers/hh_melps4.cpp
@@ -274,7 +274,6 @@ READ16_MEMBER(cfrogger_state::input_r)
return (m_inp_matrix[2]->read() & 8) | (read_inputs(2) & 3);
}
-
// config
static INPUT_PORTS_START( cfrogger )
@@ -389,7 +388,6 @@ READ16_MEMBER(gjungler_state::input_r)
return (m_inp_matrix[2]->read() & 0xc) | (read_inputs(2) & 3);
}
-
// config
static INPUT_PORTS_START( gjungler )
diff --git a/src/mame/drivers/hh_pic16.cpp b/src/mame/drivers/hh_pic16.cpp
index d7e03652bfa..8607192872f 100644
--- a/src/mame/drivers/hh_pic16.cpp
+++ b/src/mame/drivers/hh_pic16.cpp
@@ -334,7 +334,6 @@ WRITE8_MEMBER(touchme_state::write_c)
update_speaker();
}
-
// config
static INPUT_PORTS_START( touchme )
@@ -442,7 +441,6 @@ WRITE8_MEMBER(pabball_state::write_c)
prepare_display();
}
-
// config
static INPUT_PORTS_START( pabball )
@@ -538,7 +536,6 @@ WRITE8_MEMBER(melodym_state::write_c)
m_speaker->level_w(~data >> 7 & 1);
}
-
// config
static INPUT_PORTS_START( melodym )
@@ -671,7 +668,6 @@ WRITE8_MEMBER(maniac_state::write_c)
update_speaker();
}
-
// config
static INPUT_PORTS_START( maniac )
@@ -790,7 +786,6 @@ WRITE8_MEMBER(leboom_state::write_c)
m_speaker->level_w(data >> 6 & 1);
}
-
// config
static INPUT_PORTS_START( leboom )
@@ -925,7 +920,6 @@ WRITE8_MEMBER(tbaskb_state::write_c)
prepare_display();
}
-
// config
static INPUT_PORTS_START( tbaskb )
@@ -1046,7 +1040,6 @@ WRITE8_MEMBER(rockpin_state::write_d)
prepare_display();
}
-
// config
static INPUT_PORTS_START( rockpin )
@@ -1152,7 +1145,6 @@ WRITE8_MEMBER(hccbaskb_state::write_c)
prepare_display();
}
-
// config
static INPUT_PORTS_START( hccbaskb )
@@ -1274,7 +1266,6 @@ WRITE8_MEMBER(ttfball_state::write_c)
prepare_display();
}
-
// config
static INPUT_PORTS_START( ttfball )
@@ -1413,7 +1404,6 @@ WRITE8_MEMBER(uspbball_state::write_d)
prepare_display();
}
-
// config
static INPUT_PORTS_START( uspbball )
@@ -1533,7 +1523,6 @@ WRITE8_MEMBER(us2pfball_state::write_d)
prepare_display();
}
-
// config
static INPUT_PORTS_START( us2pfball )
diff --git a/src/mame/drivers/hh_tms1k.cpp b/src/mame/drivers/hh_tms1k.cpp
index 7b9a29e3e8d..fd6e3753c9e 100644
--- a/src/mame/drivers/hh_tms1k.cpp
+++ b/src/mame/drivers/hh_tms1k.cpp
@@ -14,7 +14,7 @@
- tispeak: TI Speak & Spell series gen. 1
Let's use this driver for a list of known devices and their serials,
- excluding TI's own products(they didn't use "MP" codes).
+ excluding most of TI's own products(they normally didn't use "MP" codes).
serial device etc.
--------------------------------------------------------------------
@@ -37,6 +37,7 @@
@MP0919 TMS1000 1979, Tiger Copy Cat (model 7-520)
@MP0920 TMS1000 1979, Entex Space Battle (6004)
@MP0923 TMS1000 1979, Entex Baseball 2 (6002)
+ *MP1022 TMS1100 1979, Texas Instruments unknown thermostat
@MP1030 TMS1100 1980, APF Mathemagician
@MP1133 TMS1470 1979, Kosmos Astro
@MP1180 TMS1100 1980, Tomy Power House Pinball
@@ -101,6 +102,7 @@
M34047 TMS1100 1982, MicroVision cartridge: Super Blockbuster
@M34078A TMS1100 1983, Milton Bradley Electronic Arcade Mania
@MP4486A TMS1000C 1983, Vulcan XL 25
+ *MP6061 TMS0970 1979, Texas Instruments Electronic Digital Thermostat
@MP6100A TMS0980 1979, Ideal Electronic Detective
@MP6101B TMS0980 1979, Parker Brothers Stop Thief
*MP6361 ? 1983, Defender Strikes (? note: VFD-capable)
@@ -480,7 +482,6 @@ READ8_MEMBER(matchnum_state::read_k)
return read_inputs(6);
}
-
// config
static INPUT_PORTS_START( matchnum )
@@ -609,7 +610,6 @@ READ8_MEMBER(arrball_state::read_k)
return read_inputs(1);
}
-
// config
static INPUT_PORTS_START( arrball )
@@ -717,7 +717,6 @@ READ8_MEMBER(mathmagi_state::read_k)
return read_inputs(6);
}
-
// config
/* physical button layout and labels is like this:
@@ -879,7 +878,6 @@ READ8_MEMBER(bcheetah_state::read_k)
return read_inputs(5);
}
-
// config
static INPUT_PORTS_START( bcheetah )
@@ -992,7 +990,6 @@ READ8_MEMBER(amaztron_state::read_k)
return k & 0xf;
}
-
// config
static INPUT_PORTS_START( amaztron )
@@ -1117,7 +1114,6 @@ READ8_MEMBER(zodiac_state::read_k)
return read_inputs(6);
}
-
// config
/* The physical button layout and labels are like this:
@@ -1300,7 +1296,6 @@ READ8_MEMBER(cqback_state::read_k)
return read_rotated_inputs(5);
}
-
// config
static INPUT_PORTS_START( cqback )
@@ -1414,7 +1409,6 @@ READ8_MEMBER(h2hfootb_state::read_k)
return read_rotated_inputs(9);
}
-
// config
static INPUT_PORTS_START( h2hfootb )
@@ -1537,7 +1531,6 @@ READ8_MEMBER(h2hbaseb_state::read_k)
return m_inp_matrix[4]->read() | read_inputs(4);
}
-
// config
static INPUT_PORTS_START( h2hbaseb )
@@ -1666,7 +1659,6 @@ READ8_MEMBER(h2hboxing_state::read_k)
return read_inputs(5);
}
-
// config
static INPUT_PORTS_START( h2hboxing )
@@ -1821,7 +1813,6 @@ READ8_MEMBER(quizwizc_state::read_k)
return read_inputs(6) | ((m_r & m_pinout) ? 1 : 0);
}
-
// config
static INPUT_PORTS_START( quizwizc )
@@ -1997,7 +1988,6 @@ READ8_MEMBER(tc4_state::read_k)
return read_inputs(6) | ((m_r & 0x200) ? m_pinout : 0);
}
-
// config
static INPUT_PORTS_START( tc4 )
@@ -2139,7 +2129,6 @@ READ8_MEMBER(cnbaskb_state::read_k)
return read_inputs(3);
}
-
// config
static INPUT_PORTS_START( cnbaskb )
@@ -2248,7 +2237,6 @@ READ8_MEMBER(cmsport_state::read_k)
return read_inputs(3);
}
-
// config
static INPUT_PORTS_START( cmsport )
@@ -2375,7 +2363,6 @@ READ8_MEMBER(cnfball_state::read_k)
return read_inputs(2) | (m_r << 3 & 8);
}
-
// config
static INPUT_PORTS_START( cnfball )
@@ -2488,7 +2475,6 @@ READ8_MEMBER(cnfball2_state::read_k)
return read_inputs(3);
}
-
// config
static INPUT_PORTS_START( cnfball2 )
@@ -2615,7 +2601,6 @@ READ8_MEMBER(eleciq_state::read_k)
return read_inputs(7);
}
-
// config
static INPUT_PORTS_START( eleciq )
@@ -2659,7 +2644,7 @@ static INPUT_PORTS_START( eleciq )
PORT_BIT( 0x0e, IP_ACTIVE_HIGH, IPT_UNUSED )
PORT_START("RESET")
- PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_R) PORT_NAME("Reset") PORT_CHANGED_MEMBER(DEVICE_SELF, eleciq_state, reset_button, 0)
+ PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYPAD ) PORT_CODE(KEYCODE_R) PORT_NAME("Reset") PORT_CHANGED_MEMBER(DEVICE_SELF, eleciq_state, reset_button, nullptr)
INPUT_PORTS_END
INPUT_CHANGED_MEMBER(eleciq_state::reset_button)
@@ -2749,7 +2734,6 @@ READ8_MEMBER(esoccer_state::read_k)
return read_inputs(3);
}
-
// config
static INPUT_PORTS_START( esoccer )
@@ -2874,7 +2858,6 @@ READ8_MEMBER(ebball_state::read_k)
return m_inp_matrix[5]->read() | read_inputs(5);
}
-
// config
static INPUT_PORTS_START( ebball )
@@ -3003,7 +2986,6 @@ READ8_MEMBER(ebball2_state::read_k)
return read_inputs(4);
}
-
// config
static INPUT_PORTS_START( ebball2 )
@@ -3149,7 +3131,6 @@ READ8_MEMBER(ebball3_state::read_k)
return read_inputs(3);
}
-
// config
/* physical button layout and labels is like this:
@@ -3302,7 +3283,6 @@ READ8_MEMBER(esbattle_state::read_k)
return read_inputs(2);
}
-
// config
static INPUT_PORTS_START( esbattle )
@@ -3398,7 +3378,6 @@ WRITE16_MEMBER(einvader_state::write_o)
prepare_display();
}
-
// config
static INPUT_PORTS_START( einvader )
@@ -3511,7 +3490,6 @@ READ8_MEMBER(efootb4_state::read_k)
return read_inputs(5);
}
-
// config
static INPUT_PORTS_START( efootb4 )
@@ -3639,7 +3617,6 @@ READ8_MEMBER(ebaskb2_state::read_k)
return read_inputs(4);
}
-
// config
static INPUT_PORTS_START( ebaskb2 )
@@ -3770,7 +3747,6 @@ READ8_MEMBER(raisedvl_state::read_k)
return read_inputs(2) & 0xf;
}
-
// config
static INPUT_PORTS_START( raisedvl )
@@ -3907,7 +3883,6 @@ READ8_MEMBER(f2pbball_state::read_k)
return read_inputs(3);
}
-
// config
static INPUT_PORTS_START( f2pbball )
@@ -3932,7 +3907,7 @@ static INPUT_PORTS_START( f2pbball )
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_BUTTON4 ) PORT_COCKTAIL PORT_NAME("P2 Fast")
PORT_START("RESET")
- PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON5 ) PORT_NAME("P1 Reset") PORT_CHANGED_MEMBER(DEVICE_SELF, f2pbball_state, reset_button, 0)
+ PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON5 ) PORT_NAME("P1 Reset") PORT_CHANGED_MEMBER(DEVICE_SELF, f2pbball_state, reset_button, nullptr)
INPUT_PORTS_END
INPUT_CHANGED_MEMBER(f2pbball_state::reset_button)
@@ -4028,7 +4003,6 @@ READ8_MEMBER(f3in1_state::read_k)
return read_inputs(4);
}
-
// config
static INPUT_PORTS_START( f3in1 )
@@ -4167,7 +4141,6 @@ READ8_MEMBER(gpoker_state::read_k)
return read_inputs(7);
}
-
// config
/* physical button layout and labels is like this:
@@ -4276,7 +4249,6 @@ WRITE16_MEMBER(gjackpot_state::write_r)
m_inp_mux = (data & 0x3f) | (data >> 4 & 0x40);
}
-
// config
/* physical button layout and labels is like this:
@@ -4421,7 +4393,6 @@ READ8_MEMBER(ginv1000_state::read_k)
return m_inp_matrix[2]->read() | read_inputs(2);
}
-
// config
static INPUT_PORTS_START( ginv1000 )
@@ -4546,7 +4517,6 @@ READ8_MEMBER(ginv2000_state::read_k)
return m_inp_matrix[2]->read() | read_inputs(2);
}
-
// config
static INPUT_PORTS_START( ginv2000 )
@@ -4677,7 +4647,6 @@ READ8_MEMBER(fxmcr165_state::read_k)
return read_inputs(5);
}
-
// config
/* physical button layout and labels is like this:
@@ -4796,7 +4765,6 @@ READ8_MEMBER(elecdet_state::read_k)
return m_inp_matrix[4]->read() | read_inputs(4);
}
-
// config
/* physical button layout and labels is like this:
@@ -4931,7 +4899,6 @@ READ8_MEMBER(starwbc_state::read_k)
return read_inputs(5);
}
-
// config
/* physical button layout and labels is like this:
@@ -5052,7 +5019,6 @@ READ8_MEMBER(astro_state::read_k)
return read_inputs(8);
}
-
// config
static INPUT_PORTS_START( astro )
@@ -5220,7 +5186,6 @@ READ8_MEMBER(elecbowl_state::read_k)
return read_inputs(4);
}
-
// config
static INPUT_PORTS_START( elecbowl )
@@ -5361,7 +5326,6 @@ READ8_MEMBER(horseran_state::read_k)
return read_inputs(8);
}
-
// config
/* physical button layout and labels is like this:
@@ -5491,7 +5455,6 @@ READ8_MEMBER(mdndclab_state::read_k)
return read_inputs(18);
}
-
// config
static INPUT_PORTS_START( mdndclab )
@@ -5685,7 +5648,6 @@ READ8_MEMBER(comp4_state::read_k)
return read_inputs(3);
}
-
// config
static INPUT_PORTS_START( comp4 )
@@ -5781,7 +5743,6 @@ READ8_MEMBER(bship_state::read_k)
return m_inp_matrix[11]->read() | read_inputs(11);
}
-
// config
static INPUT_PORTS_START( bship )
@@ -5956,7 +5917,6 @@ READ8_MEMBER(bshipb_state::read_k)
return m_inp_matrix[11]->read() | read_inputs(11);
}
-
// config
// buttons are same as bship set
@@ -6048,7 +6008,6 @@ READ8_MEMBER(simon_state::read_k)
return read_inputs(4);
}
-
// config
static INPUT_PORTS_START( simon )
@@ -6150,7 +6109,6 @@ READ8_MEMBER(ssimon_state::read_k)
return read_inputs(6);
}
-
// config
static INPUT_PORTS_START( ssimon )
@@ -6331,7 +6289,6 @@ READ8_MEMBER(bigtrak_state::read_k)
return read_inputs(7) | (sensor_state() ? 8 : 0);
}
-
// config
/* physical button layout and labels is like this:
@@ -6573,7 +6530,6 @@ READ8_MEMBER(mbdtower_state::read_k)
return read_inputs(3) | ((!m_sensor_blind && sensor_led_on()) ? 8 : 0);
}
-
// config
/* physical button layout and labels is like this:
@@ -6705,7 +6661,6 @@ READ8_MEMBER(arcmania_state::read_k)
return read_inputs(3);
}
-
// config
/* physical button layout and labels is like this:
@@ -6815,7 +6770,6 @@ READ8_MEMBER(cnsector_state::read_k)
return read_inputs(5);
}
-
// config
/* physical button layout and labels is like this:
@@ -6946,7 +6900,6 @@ READ8_MEMBER(merlin_state::read_k)
return read_inputs(4);
}
-
// config
static INPUT_PORTS_START( merlin )
@@ -7031,7 +6984,6 @@ public:
// handlers: uses the ones in merlin_state
-
// config
static INPUT_PORTS_START( mmerlin )
@@ -7118,7 +7070,6 @@ READ8_MEMBER(stopthief_state::read_k)
return m_inp_matrix[2]->read() | read_inputs(2);
}
-
// config
/* physical button layout and labels is like this:
@@ -7242,7 +7193,6 @@ READ8_MEMBER(bankshot_state::read_k)
return read_inputs(2);
}
-
// config
/* physical button layout and labels is like this:
@@ -7371,7 +7321,6 @@ READ8_MEMBER(splitsec_state::read_k)
return read_inputs(2);
}
-
// config
static INPUT_PORTS_START( splitsec )
@@ -7458,7 +7407,6 @@ READ8_MEMBER(lostreas_state::read_k)
return read_inputs(4);
}
-
// config
/* physical button layout and labels is like this:
@@ -7597,7 +7545,6 @@ READ8_MEMBER(alphie_state::read_k)
return read_rotated_inputs(6);
}
-
// config
static const ioport_value alphie_armpos_table[5] = { 0x01, 0x02, 0x04, 0x08, 0x10 };
@@ -7715,7 +7662,6 @@ READ8_MEMBER(tcfball_state::read_k)
return read_inputs(3);
}
-
// config
static INPUT_PORTS_START( tcfball )
@@ -7784,7 +7730,6 @@ public:
// handlers: uses the ones in tcfball_state
-
// config
static INPUT_PORTS_START( tcfballa )
@@ -7897,7 +7842,6 @@ READ8_MEMBER(tandy12_state::read_k)
return read_inputs(5);
}
-
// config
/* physical button layout and labels is like this:
@@ -8040,7 +7984,6 @@ READ8_MEMBER(monkeysee_state::read_k)
return read_inputs(5);
}
-
// config
static INPUT_PORTS_START( monkeysee )
@@ -8162,7 +8105,6 @@ READ8_MEMBER(speechp_state::read_k)
return m_inp_matrix[10]->read() | (read_inputs(10) & 7);
}
-
// config
static INPUT_PORTS_START( speechp )
@@ -8295,7 +8237,6 @@ READ8_MEMBER(timaze_state::read_k)
return read_inputs(1);
}
-
// config
static INPUT_PORTS_START( timaze )
@@ -8375,7 +8316,6 @@ READ8_MEMBER(copycat_state::read_k)
return read_inputs(4);
}
-
// config
static INPUT_PORTS_START( copycat )
@@ -8473,7 +8413,6 @@ WRITE16_MEMBER(copycatm2_state::write_o)
m_speaker->level_w((data & 1) | (data >> 5 & 2));
}
-
// config
static INPUT_PORTS_START( copycatm2 )
@@ -8544,7 +8483,6 @@ WRITE16_MEMBER(ditto_state::write_o)
m_speaker->level_w(data >> 5 & 3);
}
-
// config
static INPUT_PORTS_START( ditto )
@@ -8640,7 +8578,6 @@ READ8_MEMBER(ss7in1_state::read_k)
return read_inputs(4);
}
-
// config
static INPUT_PORTS_START( ss7in1 )
@@ -8815,7 +8752,6 @@ READ8_MEMBER(tbreakup_state::read_k)
return (m_inp_matrix[2]->read() & 4) | (read_inputs(2) & 8);
}
-
// config
static INPUT_PORTS_START( tbreakup )
@@ -8977,7 +8913,6 @@ READ8_MEMBER(phpball_state::read_k)
return m_inp_matrix[1]->read() | read_inputs(1);
}
-
// config
static INPUT_PORTS_START( phpball )
@@ -9078,7 +9013,6 @@ READ8_MEMBER(ssports4_state::read_k)
return read_inputs(6);
}
-
// config
static INPUT_PORTS_START( ssports4 )
@@ -9225,7 +9159,6 @@ READ8_MEMBER(xl25_state::read_k)
return read_inputs(10);
}
-
// config
static INPUT_PORTS_START( xl25 )
diff --git a/src/mame/drivers/hh_ucom4.cpp b/src/mame/drivers/hh_ucom4.cpp
index 9da39ecb103..5faf57763bb 100644
--- a/src/mame/drivers/hh_ucom4.cpp
+++ b/src/mame/drivers/hh_ucom4.cpp
@@ -309,7 +309,6 @@ WRITE8_MEMBER(ufombs_state::speaker_w)
m_speaker->level_w(data & 3);
}
-
// config
static INPUT_PORTS_START( ufombs )
@@ -432,7 +431,6 @@ READ8_MEMBER(ssfball_state::input_b_r)
return m_inp_matrix[2]->read() | read_inputs(2);
}
-
// config
/* physical button layout and labels is like this:
@@ -578,7 +576,6 @@ READ8_MEMBER(bmsoccer_state::input_a_r)
return read_inputs(2);
}
-
// config
static INPUT_PORTS_START( bmsoccer )
@@ -694,7 +691,6 @@ WRITE8_MEMBER(bmsafari_state::speaker_w)
m_speaker->level_w(data & 1);
}
-
// config
static INPUT_PORTS_START( bmsafari )
@@ -810,7 +806,6 @@ READ8_MEMBER(splasfgt_state::input_b_r)
return read_inputs(4);
}
-
// config
/* physical button layout and labels is like this:
@@ -949,7 +944,6 @@ WRITE8_MEMBER(bcclimbr_state::plate_w)
prepare_display();
}
-
// config
static INPUT_PORTS_START( bcclimbr )
@@ -1054,7 +1048,6 @@ READ8_MEMBER(tactix_state::input_r)
return read_inputs(5);
}
-
// config
static INPUT_PORTS_START( tactix )
@@ -1167,7 +1160,6 @@ WRITE8_MEMBER(invspace_state::plate_w)
prepare_display();
}
-
// config
static INPUT_PORTS_START( invspace )
@@ -1268,7 +1260,6 @@ WRITE8_MEMBER(efball_state::plate_w)
prepare_display();
}
-
// config
static INPUT_PORTS_START( efball )
@@ -1382,7 +1373,6 @@ WRITE8_MEMBER(galaxy2_state::plate_w)
prepare_display();
}
-
// config
static INPUT_PORTS_START( galaxy2 )
@@ -1499,7 +1489,6 @@ WRITE8_MEMBER(astrocmd_state::plate_w)
prepare_display();
}
-
// config
static INPUT_PORTS_START( astrocmd )
@@ -1595,7 +1584,6 @@ WRITE8_MEMBER(edracula_state::plate_w)
display_matrix(18, 8, m_plate, m_grid);
}
-
// config
static INPUT_PORTS_START( edracula )
@@ -1684,7 +1672,6 @@ WRITE8_MEMBER(mcompgin_state::lcd_w)
m_lcd->write_clock(data >> 1 & 1);
}
-
// config
static INPUT_PORTS_START( mcompgin )
@@ -1779,7 +1766,6 @@ WRITE8_MEMBER(mvbfree_state::speaker_w)
m_speaker->level_w(data & 1);
}
-
// config
static INPUT_PORTS_START( mvbfree )
@@ -1884,7 +1870,6 @@ READ8_MEMBER(grobot9_state::input_r)
return read_inputs(5);
}
-
// config
static INPUT_PORTS_START( grobot9 )
@@ -1993,7 +1978,6 @@ WRITE8_MEMBER(tccombat_state::plate_w)
prepare_display();
}
-
// config
static INPUT_PORTS_START( tccombat )
@@ -2104,7 +2088,6 @@ READ8_MEMBER(tmtennis_state::input_r)
return ~read_inputs(2) >> (offset*4);
}
-
// config
/* Pro-Tennis physical button layout and labels is like this:
@@ -2255,7 +2238,6 @@ WRITE8_MEMBER(tmpacman_state::plate_w)
prepare_display();
}
-
// config
static INPUT_PORTS_START( tmpacman )
@@ -2359,7 +2341,6 @@ WRITE8_MEMBER(tmscramb_state::plate_w)
prepare_display();
}
-
// config
static INPUT_PORTS_START( tmscramb )
@@ -2462,7 +2443,6 @@ WRITE8_MEMBER(tcaveman_state::plate_w)
prepare_display();
}
-
// config
static INPUT_PORTS_START( tcaveman )
@@ -2567,7 +2547,6 @@ READ8_MEMBER(alnchase_state::input_r)
return read_inputs(2);
}
-
// config
/* physical button layout and labels is like this:
diff --git a/src/mame/drivers/novagf8.cpp b/src/mame/drivers/novagf8.cpp
index ac93f104f49..c8474d2c3c9 100644
--- a/src/mame/drivers/novagf8.cpp
+++ b/src/mame/drivers/novagf8.cpp
@@ -170,7 +170,7 @@ static INPUT_PORTS_START( delta1 )
PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_ENTER) PORT_CODE(KEYCODE_ENTER_PAD) PORT_NAME("Enter")
PORT_START("RESET") // not on matrix
- PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_N) PORT_CHANGED_MEMBER(DEVICE_SELF, novagf8_state, reset_button, 0) PORT_NAME("New Game")
+ PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_N) PORT_CHANGED_MEMBER(DEVICE_SELF, novagf8_state, reset_button, nullptr) PORT_NAME("New Game")
INPUT_PORTS_END
diff --git a/src/mame/layout/unkeinv.lay b/src/mame/layout/unkeinv.lay
new file mode 100644
index 00000000000..071b37f75a9
--- /dev/null
+++ b/src/mame/layout/unkeinv.lay
@@ -0,0 +1,195 @@
+<?xml version="1.0"?>
+<mamelayout version="2">
+
+<!-- define elements -->
+
+ <element name="ledy" defstate="0">
+ <disk state="0"><color red="0.07" green="0.06" blue="0.02" /></disk>
+ <disk state="1"><color red="1.0" green="0.95" blue="0.2" /></disk>
+ </element>
+ <element name="ledg" defstate="0">
+ <disk state="0"><color red="0.023" green="0.1" blue="0.02" /></disk>
+ <disk state="1"><color red="0.23" green="1.0" blue="0.2" /></disk>
+ </element>
+ <element name="ledr" defstate="0">
+ <disk state="0"><color red="0.1" green="0.02" blue="0.023" /></disk>
+ <disk state="1"><color red="1.0" green="0.2" blue="0.23" /></disk>
+ </element>
+
+
+<!-- build screen -->
+
+ <view name="Internal Layout">
+ <bounds left="-0.5" right="18" top="-0.5" bottom="26.5" />
+
+ <!-- invaders -->
+
+ <bezel name="0.0" element="ledy"><bounds x="0" y="0" width="1" height="1" /></bezel>
+ <bezel name="0.1" element="ledy"><bounds x="0" y="3" width="1" height="1" /></bezel>
+ <bezel name="0.2" element="ledy"><bounds x="0" y="6" width="1" height="1" /></bezel>
+ <bezel name="0.3" element="ledy"><bounds x="0" y="9" width="1" height="1" /></bezel>
+ <bezel name="0.4" element="ledy"><bounds x="0" y="12" width="1" height="1" /></bezel>
+
+ <bezel name="1.0" element="ledy"><bounds x="3" y="0" width="1" height="1" /></bezel>
+ <bezel name="1.1" element="ledy"><bounds x="3" y="3" width="1" height="1" /></bezel>
+ <bezel name="1.2" element="ledy"><bounds x="3" y="6" width="1" height="1" /></bezel>
+ <bezel name="1.3" element="ledy"><bounds x="3" y="9" width="1" height="1" /></bezel>
+ <bezel name="1.4" element="ledy"><bounds x="3" y="12" width="1" height="1" /></bezel>
+
+ <bezel name="2.0" element="ledy"><bounds x="6" y="0" width="1" height="1" /></bezel>
+ <bezel name="2.1" element="ledy"><bounds x="6" y="3" width="1" height="1" /></bezel>
+ <bezel name="2.2" element="ledy"><bounds x="6" y="6" width="1" height="1" /></bezel>
+ <bezel name="2.3" element="ledy"><bounds x="6" y="9" width="1" height="1" /></bezel>
+ <bezel name="2.4" element="ledy"><bounds x="6" y="12" width="1" height="1" /></bezel>
+
+ <bezel name="3.0" element="ledy"><bounds x="9" y="0" width="1" height="1" /></bezel>
+ <bezel name="3.1" element="ledy"><bounds x="9" y="3" width="1" height="1" /></bezel>
+ <bezel name="3.2" element="ledy"><bounds x="9" y="6" width="1" height="1" /></bezel>
+ <bezel name="3.3" element="ledy"><bounds x="9" y="9" width="1" height="1" /></bezel>
+ <bezel name="3.4" element="ledy"><bounds x="9" y="12" width="1" height="1" /></bezel>
+
+ <bezel name="4.0" element="ledy"><bounds x="12" y="0" width="1" height="1" /></bezel>
+ <bezel name="4.1" element="ledy"><bounds x="12" y="3" width="1" height="1" /></bezel>
+ <bezel name="4.2" element="ledy"><bounds x="12" y="6" width="1" height="1" /></bezel>
+ <bezel name="4.3" element="ledy"><bounds x="12" y="9" width="1" height="1" /></bezel>
+ <bezel name="4.4" element="ledy"><bounds x="12" y="12" width="1" height="1" /></bezel>
+
+ <bezel name="5.0" element="ledy"><bounds x="15" y="0" width="1" height="1" /></bezel>
+ <bezel name="5.1" element="ledy"><bounds x="15" y="3" width="1" height="1" /></bezel>
+ <bezel name="5.2" element="ledy"><bounds x="15" y="6" width="1" height="1" /></bezel>
+ <bezel name="5.3" element="ledy"><bounds x="15" y="9" width="1" height="1" /></bezel>
+ <bezel name="5.4" element="ledy"><bounds x="15" y="12" width="1" height="1" /></bezel>
+
+ <!-- barriers -->
+
+ <bezel name="0.5" element="ledg"><bounds x="1.5" y="18" width="1" height="1" /></bezel>
+ <bezel name="1.5" element="ledg"><bounds x="4.5" y="18" width="1" height="1" /></bezel>
+ <bezel name="2.5" element="ledg"><bounds x="7.5" y="18" width="1" height="1" /></bezel>
+ <bezel name="3.5" element="ledg"><bounds x="10.5" y="18" width="1" height="1" /></bezel>
+ <bezel name="4.5" element="ledg"><bounds x="13.5" y="18" width="1" height="1" /></bezel>
+ <bezel name="5.5" element="ledg"><bounds x="16.5" y="18" width="1" height="1" /></bezel>
+
+ <!-- wand -->
+
+ <bezel name="8.8" element="ledr"><bounds x="0" y="1" width="1" height="1" /></bezel>
+ <bezel name="8.9" element="ledr"><bounds x="0" y="4" width="1" height="1" /></bezel>
+ <bezel name="8.10" element="ledr"><bounds x="0" y="7" width="1" height="1" /></bezel>
+ <bezel name="8.11" element="ledr"><bounds x="0" y="10" width="1" height="1" /></bezel>
+ <bezel name="8.0" element="ledr"><bounds x="0" y="13" width="1" height="1" /></bezel>
+ <bezel name="8.1" element="ledr"><bounds x="0" y="16" width="1" height="1" /></bezel>
+ <bezel name="8.2" element="ledr"><bounds x="0" y="19" width="1" height="1" /></bezel>
+ <bezel name="8.3" element="ledr"><bounds x="0" y="22" width="1" height="1" /></bezel>
+ <bezel name="8.4" element="ledr"><bounds x="0" y="25" width="1" height="1" /></bezel>
+
+ <bezel name="9.8" element="ledr"><bounds x="1.5" y="1" width="1" height="1" /></bezel>
+ <bezel name="9.9" element="ledr"><bounds x="1.5" y="4" width="1" height="1" /></bezel>
+ <bezel name="9.10" element="ledr"><bounds x="1.5" y="7" width="1" height="1" /></bezel>
+ <bezel name="9.11" element="ledr"><bounds x="1.5" y="10" width="1" height="1" /></bezel>
+ <bezel name="9.0" element="ledr"><bounds x="1.5" y="13" width="1" height="1" /></bezel>
+ <bezel name="9.1" element="ledr"><bounds x="1.5" y="16" width="1" height="1" /></bezel>
+ <bezel name="9.2" element="ledr"><bounds x="1.5" y="19" width="1" height="1" /></bezel>
+ <bezel name="9.3" element="ledr"><bounds x="1.5" y="22" width="1" height="1" /></bezel>
+ <bezel name="9.4" element="ledr"><bounds x="1.5" y="25" width="1" height="1" /></bezel>
+
+ <bezel name="10.8" element="ledr"><bounds x="3" y="1" width="1" height="1" /></bezel>
+ <bezel name="10.9" element="ledr"><bounds x="3" y="4" width="1" height="1" /></bezel>
+ <bezel name="10.10" element="ledr"><bounds x="3" y="7" width="1" height="1" /></bezel>
+ <bezel name="10.11" element="ledr"><bounds x="3" y="10" width="1" height="1" /></bezel>
+ <bezel name="10.0" element="ledr"><bounds x="3" y="13" width="1" height="1" /></bezel>
+ <bezel name="10.1" element="ledr"><bounds x="3" y="16" width="1" height="1" /></bezel>
+ <bezel name="10.2" element="ledr"><bounds x="3" y="19" width="1" height="1" /></bezel>
+ <bezel name="10.3" element="ledr"><bounds x="3" y="22" width="1" height="1" /></bezel>
+ <bezel name="10.4" element="ledr"><bounds x="3" y="25" width="1" height="1" /></bezel>
+
+ <bezel name="11.8" element="ledr"><bounds x="4.5" y="1" width="1" height="1" /></bezel>
+ <bezel name="11.9" element="ledr"><bounds x="4.5" y="4" width="1" height="1" /></bezel>
+ <bezel name="11.10" element="ledr"><bounds x="4.5" y="7" width="1" height="1" /></bezel>
+ <bezel name="11.11" element="ledr"><bounds x="4.5" y="10" width="1" height="1" /></bezel>
+ <bezel name="11.0" element="ledr"><bounds x="4.5" y="13" width="1" height="1" /></bezel>
+ <bezel name="11.1" element="ledr"><bounds x="4.5" y="16" width="1" height="1" /></bezel>
+ <bezel name="11.2" element="ledr"><bounds x="4.5" y="19" width="1" height="1" /></bezel>
+ <bezel name="11.3" element="ledr"><bounds x="4.5" y="22" width="1" height="1" /></bezel>
+ <bezel name="11.4" element="ledr"><bounds x="4.5" y="25" width="1" height="1" /></bezel>
+
+ <bezel name="12.8" element="ledr"><bounds x="6" y="1" width="1" height="1" /></bezel>
+ <bezel name="12.9" element="ledr"><bounds x="6" y="4" width="1" height="1" /></bezel>
+ <bezel name="12.10" element="ledr"><bounds x="6" y="7" width="1" height="1" /></bezel>
+ <bezel name="12.11" element="ledr"><bounds x="6" y="10" width="1" height="1" /></bezel>
+ <bezel name="12.0" element="ledr"><bounds x="6" y="13" width="1" height="1" /></bezel>
+ <bezel name="12.1" element="ledr"><bounds x="6" y="16" width="1" height="1" /></bezel>
+ <bezel name="12.2" element="ledr"><bounds x="6" y="19" width="1" height="1" /></bezel>
+ <bezel name="12.3" element="ledr"><bounds x="6" y="22" width="1" height="1" /></bezel>
+ <bezel name="12.4" element="ledr"><bounds x="6" y="25" width="1" height="1" /></bezel>
+
+ <bezel name="13.8" element="ledr"><bounds x="7.5" y="1" width="1" height="1" /></bezel>
+ <bezel name="13.9" element="ledr"><bounds x="7.5" y="4" width="1" height="1" /></bezel>
+ <bezel name="13.10" element="ledr"><bounds x="7.5" y="7" width="1" height="1" /></bezel>
+ <bezel name="13.11" element="ledr"><bounds x="7.5" y="10" width="1" height="1" /></bezel>
+ <bezel name="13.0" element="ledr"><bounds x="7.5" y="13" width="1" height="1" /></bezel>
+ <bezel name="13.1" element="ledr"><bounds x="7.5" y="16" width="1" height="1" /></bezel>
+ <bezel name="13.2" element="ledr"><bounds x="7.5" y="19" width="1" height="1" /></bezel>
+ <bezel name="13.3" element="ledr"><bounds x="7.5" y="22" width="1" height="1" /></bezel>
+ <bezel name="13.4" element="ledr"><bounds x="7.5" y="25" width="1" height="1" /></bezel>
+
+ <bezel name="14.8" element="ledr"><bounds x="9" y="1" width="1" height="1" /></bezel>
+ <bezel name="14.9" element="ledr"><bounds x="9" y="4" width="1" height="1" /></bezel>
+ <bezel name="14.10" element="ledr"><bounds x="9" y="7" width="1" height="1" /></bezel>
+ <bezel name="14.11" element="ledr"><bounds x="9" y="10" width="1" height="1" /></bezel>
+ <bezel name="14.0" element="ledr"><bounds x="9" y="13" width="1" height="1" /></bezel>
+ <bezel name="14.1" element="ledr"><bounds x="9" y="16" width="1" height="1" /></bezel>
+ <bezel name="14.2" element="ledr"><bounds x="9" y="19" width="1" height="1" /></bezel>
+ <bezel name="14.3" element="ledr"><bounds x="9" y="22" width="1" height="1" /></bezel>
+ <bezel name="14.4" element="ledr"><bounds x="9" y="25" width="1" height="1" /></bezel>
+
+ <bezel name="15.8" element="ledr"><bounds x="10.5" y="1" width="1" height="1" /></bezel>
+ <bezel name="15.9" element="ledr"><bounds x="10.5" y="4" width="1" height="1" /></bezel>
+ <bezel name="15.10" element="ledr"><bounds x="10.5" y="7" width="1" height="1" /></bezel>
+ <bezel name="15.11" element="ledr"><bounds x="10.5" y="10" width="1" height="1" /></bezel>
+ <bezel name="15.0" element="ledr"><bounds x="10.5" y="13" width="1" height="1" /></bezel>
+ <bezel name="15.1" element="ledr"><bounds x="10.5" y="16" width="1" height="1" /></bezel>
+ <bezel name="15.2" element="ledr"><bounds x="10.5" y="19" width="1" height="1" /></bezel>
+ <bezel name="15.3" element="ledr"><bounds x="10.5" y="22" width="1" height="1" /></bezel>
+ <bezel name="15.4" element="ledr"><bounds x="10.5" y="25" width="1" height="1" /></bezel>
+
+ <bezel name="16.8" element="ledr"><bounds x="12" y="1" width="1" height="1" /></bezel>
+ <bezel name="16.9" element="ledr"><bounds x="12" y="4" width="1" height="1" /></bezel>
+ <bezel name="16.10" element="ledr"><bounds x="12" y="7" width="1" height="1" /></bezel>
+ <bezel name="16.11" element="ledr"><bounds x="12" y="10" width="1" height="1" /></bezel>
+ <bezel name="16.0" element="ledr"><bounds x="12" y="13" width="1" height="1" /></bezel>
+ <bezel name="16.1" element="ledr"><bounds x="12" y="16" width="1" height="1" /></bezel>
+ <bezel name="16.2" element="ledr"><bounds x="12" y="19" width="1" height="1" /></bezel>
+ <bezel name="16.3" element="ledr"><bounds x="12" y="22" width="1" height="1" /></bezel>
+ <bezel name="16.4" element="ledr"><bounds x="12" y="25" width="1" height="1" /></bezel>
+
+ <bezel name="17.8" element="ledr"><bounds x="13.5" y="1" width="1" height="1" /></bezel>
+ <bezel name="17.9" element="ledr"><bounds x="13.5" y="4" width="1" height="1" /></bezel>
+ <bezel name="17.10" element="ledr"><bounds x="13.5" y="7" width="1" height="1" /></bezel>
+ <bezel name="17.11" element="ledr"><bounds x="13.5" y="10" width="1" height="1" /></bezel>
+ <bezel name="17.0" element="ledr"><bounds x="13.5" y="13" width="1" height="1" /></bezel>
+ <bezel name="17.1" element="ledr"><bounds x="13.5" y="16" width="1" height="1" /></bezel>
+ <bezel name="17.2" element="ledr"><bounds x="13.5" y="19" width="1" height="1" /></bezel>
+ <bezel name="17.3" element="ledr"><bounds x="13.5" y="22" width="1" height="1" /></bezel>
+ <bezel name="17.4" element="ledr"><bounds x="13.5" y="25" width="1" height="1" /></bezel>
+
+ <bezel name="18.8" element="ledr"><bounds x="15" y="1" width="1" height="1" /></bezel>
+ <bezel name="18.9" element="ledr"><bounds x="15" y="4" width="1" height="1" /></bezel>
+ <bezel name="18.10" element="ledr"><bounds x="15" y="7" width="1" height="1" /></bezel>
+ <bezel name="18.11" element="ledr"><bounds x="15" y="10" width="1" height="1" /></bezel>
+ <bezel name="18.0" element="ledr"><bounds x="15" y="13" width="1" height="1" /></bezel>
+ <bezel name="18.1" element="ledr"><bounds x="15" y="16" width="1" height="1" /></bezel>
+ <bezel name="18.2" element="ledr"><bounds x="15" y="19" width="1" height="1" /></bezel>
+ <bezel name="18.3" element="ledr"><bounds x="15" y="22" width="1" height="1" /></bezel>
+ <bezel name="18.4" element="ledr"><bounds x="15" y="25" width="1" height="1" /></bezel>
+
+ <bezel name="19.8" element="ledr"><bounds x="16.5" y="1" width="1" height="1" /></bezel>
+ <bezel name="19.9" element="ledr"><bounds x="16.5" y="4" width="1" height="1" /></bezel>
+ <bezel name="19.10" element="ledr"><bounds x="16.5" y="7" width="1" height="1" /></bezel>
+ <bezel name="19.11" element="ledr"><bounds x="16.5" y="10" width="1" height="1" /></bezel>
+ <bezel name="19.0" element="ledr"><bounds x="16.5" y="13" width="1" height="1" /></bezel>
+ <bezel name="19.1" element="ledr"><bounds x="16.5" y="16" width="1" height="1" /></bezel>
+ <bezel name="19.2" element="ledr"><bounds x="16.5" y="19" width="1" height="1" /></bezel>
+ <bezel name="19.3" element="ledr"><bounds x="16.5" y="22" width="1" height="1" /></bezel>
+ <bezel name="19.4" element="ledr"><bounds x="16.5" y="25" width="1" height="1" /></bezel>
+
+ </view>
+</mamelayout>
diff --git a/src/mame/mame.lst b/src/mame/mame.lst
index 89fa6283d24..0eb0bd614b4 100644
--- a/src/mame/mame.lst
+++ b/src/mame/mame.lst
@@ -14676,6 +14676,7 @@ lightfgt // Milton Bradley
mdallas // Mattel
plus1 // Milton Bradley
qkracer // National Semiconductor
+unkeinv //
@source:hh_hmcs40.cpp
alnattck // Coleco