diff --git a/plugins/layout/init.lua b/plugins/layout/init.lua
index 45b810c86b7..bcb374b8e67 100644
--- a/plugins/layout/init.lua
+++ b/plugins/layout/init.lua
@@ -28,6 +28,7 @@ function layout.startplugin()
pairs = pairs,
ipairs = ipairs,
string = { format = string.format },
+ tostring = tostring,
table = { insert = table.insert, remove = table.remove } }
local script, err = load(script, script, "t", env)
if not script then
diff --git a/src/mame/chess/ave_arb.cpp b/src/mame/chess/ave_arb.cpp
index f7fcdcd8b17..840df91ec51 100644
--- a/src/mame/chess/ave_arb.cpp
+++ b/src/mame/chess/ave_arb.cpp
@@ -279,7 +279,7 @@ static INPUT_PORTS_START( arb )
PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_R) PORT_CODE(KEYCODE_F1) PORT_NAME("Reset") PORT_CHANGED_MEMBER(DEVICE_SELF, arb_state, reset_button, 0)
PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_CODE(KEYCODE_T) PORT_CODE(KEYCODE_F1) PORT_NAME("Halt") PORT_CHANGED_MEMBER(DEVICE_SELF, arb_state, halt_button, 0)
- PORT_START("LISTEN") // helper for internal artwork
+ PORT_START("CLICKABLE") // helper for clickable artwork
PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_OTHER)
INPUT_PORTS_END
diff --git a/src/mame/ddr/chessmst.cpp b/src/mame/ddr/chessmst.cpp
index 937885bc43e..d9655463f12 100644
--- a/src/mame/ddr/chessmst.cpp
+++ b/src/mame/ddr/chessmst.cpp
@@ -207,7 +207,7 @@ static INPUT_PORTS_START( chessmst )
PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Halt") PORT_CODE(KEYCODE_F2) PORT_CHANGED_MEMBER(DEVICE_SELF, chessmst_state, halt_button, 0)
PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Reset") PORT_CODE(KEYCODE_F1) PORT_CHANGED_MEMBER(DEVICE_SELF, chessmst_state, reset_button, 0)
- PORT_START("LISTEN") // helper for internal artwork
+ PORT_START("CLICKABLE") // helper for clickable artwork
PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_OTHER)
INPUT_PORTS_END
diff --git a/src/mame/ddr/chessmstdm.cpp b/src/mame/ddr/chessmstdm.cpp
index cfd35aac723..fe60781591d 100644
--- a/src/mame/ddr/chessmstdm.cpp
+++ b/src/mame/ddr/chessmstdm.cpp
@@ -272,6 +272,9 @@ static INPUT_PORTS_START( chessmstdm )
PORT_START("IN.1")
PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Monitor") PORT_CODE(KEYCODE_F1) PORT_CHANGED_MEMBER(DEVICE_SELF, chessmstdm_state, monitor_button, 0)
PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("View") PORT_CODE(KEYCODE_F2) PORT_CHANGED_MEMBER(DEVICE_SELF, chessmstdm_state, view_button, 0)
+
+ PORT_START("CLICKABLE") // helper for clickable artwork
+ PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_OTHER)
INPUT_PORTS_END
diff --git a/src/mame/hegenerglaser/academy.cpp b/src/mame/hegenerglaser/academy.cpp
index 439caff2368..489df6b120b 100644
--- a/src/mame/hegenerglaser/academy.cpp
+++ b/src/mame/hegenerglaser/academy.cpp
@@ -116,6 +116,9 @@ static INPUT_PORTS_START( academy )
PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("FCT") PORT_CODE(KEYCODE_F)
PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("ENT") PORT_CODE(KEYCODE_ENTER) PORT_CODE(KEYCODE_F1) // combine for NEW GAME
PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("CL") PORT_CODE(KEYCODE_BACKSPACE) PORT_CODE(KEYCODE_DEL) PORT_CODE(KEYCODE_F1) // "
+
+ PORT_START("CLICKABLE") // helper for clickable artwork
+ PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_OTHER)
INPUT_PORTS_END
diff --git a/src/mame/hegenerglaser/amsterdam.cpp b/src/mame/hegenerglaser/amsterdam.cpp
index d8cbdba3a42..0bca6e79847 100644
--- a/src/mame/hegenerglaser/amsterdam.cpp
+++ b/src/mame/hegenerglaser/amsterdam.cpp
@@ -150,28 +150,31 @@ void amsterdam_state::dallas32_mem(address_map &map)
static INPUT_PORTS_START( amsterdam )
PORT_START("KEY.0")
- PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("INFO") PORT_CODE(KEYCODE_I)
- PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("POS") PORT_CODE(KEYCODE_O)
- PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("LEV") PORT_CODE(KEYCODE_L)
- PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("MEM") PORT_CODE(KEYCODE_M)
- PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("CL") PORT_CODE(KEYCODE_BACKSPACE) PORT_CODE(KEYCODE_DEL)
- PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("ENT") PORT_CODE(KEYCODE_ENTER) PORT_CODE(KEYCODE_ENTER_PAD)
- PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("G / 7 / King") PORT_CODE(KEYCODE_G) PORT_CODE(KEYCODE_7) PORT_CODE(KEYCODE_7_PAD)
- PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("H / 8") PORT_CODE(KEYCODE_H) PORT_CODE(KEYCODE_8) PORT_CODE(KEYCODE_8_PAD)
+ PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("INFO") PORT_CODE(KEYCODE_I)
+ PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("POS") PORT_CODE(KEYCODE_O)
+ PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("LEV") PORT_CODE(KEYCODE_L)
+ PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("MEM") PORT_CODE(KEYCODE_M)
+ PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("CL") PORT_CODE(KEYCODE_BACKSPACE) PORT_CODE(KEYCODE_DEL)
+ PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("ENT") PORT_CODE(KEYCODE_ENTER) PORT_CODE(KEYCODE_ENTER_PAD)
+ PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("G / 7 / King") PORT_CODE(KEYCODE_G) PORT_CODE(KEYCODE_7) PORT_CODE(KEYCODE_7_PAD)
+ PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("H / 8") PORT_CODE(KEYCODE_H) PORT_CODE(KEYCODE_8) PORT_CODE(KEYCODE_8_PAD)
PORT_START("KEY.1")
- PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("A / 1") PORT_CODE(KEYCODE_A) PORT_CODE(KEYCODE_1) PORT_CODE(KEYCODE_1_PAD)
- PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("B / 2 / Pawn") PORT_CODE(KEYCODE_B) PORT_CODE(KEYCODE_2) PORT_CODE(KEYCODE_2_PAD)
- PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("C / 3 / Knight") PORT_CODE(KEYCODE_C) PORT_CODE(KEYCODE_3) PORT_CODE(KEYCODE_3_PAD)
- PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("D / 4 / Bishop") PORT_CODE(KEYCODE_D) PORT_CODE(KEYCODE_4) PORT_CODE(KEYCODE_4_PAD)
- PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("E / 5 / Rook") PORT_CODE(KEYCODE_E) PORT_CODE(KEYCODE_5) PORT_CODE(KEYCODE_5_PAD)
- PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("F / 6 / Queen") PORT_CODE(KEYCODE_F) PORT_CODE(KEYCODE_6) PORT_CODE(KEYCODE_6_PAD)
- PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Left / Black / 9") PORT_CODE(KEYCODE_9) PORT_CODE(KEYCODE_9_PAD) PORT_CODE(KEYCODE_LEFT)
- PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Right / White / 0") PORT_CODE(KEYCODE_0) PORT_CODE(KEYCODE_0_PAD) PORT_CODE(KEYCODE_RIGHT)
+ PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("A / 1") PORT_CODE(KEYCODE_A) PORT_CODE(KEYCODE_1) PORT_CODE(KEYCODE_1_PAD)
+ PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("B / 2 / Pawn") PORT_CODE(KEYCODE_B) PORT_CODE(KEYCODE_2) PORT_CODE(KEYCODE_2_PAD)
+ PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("C / 3 / Knight") PORT_CODE(KEYCODE_C) PORT_CODE(KEYCODE_3) PORT_CODE(KEYCODE_3_PAD)
+ PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("D / 4 / Bishop") PORT_CODE(KEYCODE_D) PORT_CODE(KEYCODE_4) PORT_CODE(KEYCODE_4_PAD)
+ PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("E / 5 / Rook") PORT_CODE(KEYCODE_E) PORT_CODE(KEYCODE_5) PORT_CODE(KEYCODE_5_PAD)
+ PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("F / 6 / Queen") PORT_CODE(KEYCODE_F) PORT_CODE(KEYCODE_6) PORT_CODE(KEYCODE_6_PAD)
+ PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Left / Black / 9") PORT_CODE(KEYCODE_9) PORT_CODE(KEYCODE_9_PAD) PORT_CODE(KEYCODE_LEFT)
+ PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Right / White / 0") PORT_CODE(KEYCODE_0) PORT_CODE(KEYCODE_0_PAD) PORT_CODE(KEYCODE_RIGHT)
PORT_START("RESET")
PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("RES 1") PORT_CODE(KEYCODE_Z) PORT_CODE(KEYCODE_F1) PORT_CHANGED_MEMBER(DEVICE_SELF, amsterdam_state, reset_button, 0)
PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("RES 2") PORT_CODE(KEYCODE_X) PORT_CODE(KEYCODE_F1) PORT_CHANGED_MEMBER(DEVICE_SELF, amsterdam_state, reset_button, 0)
+
+ PORT_START("CLICKABLE") // helper for clickable artwork
+ PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_OTHER)
INPUT_PORTS_END
diff --git a/src/mame/hegenerglaser/berlin.cpp b/src/mame/hegenerglaser/berlin.cpp
index 5a1d32073e8..93e2725167f 100644
--- a/src/mame/hegenerglaser/berlin.cpp
+++ b/src/mame/hegenerglaser/berlin.cpp
@@ -116,6 +116,9 @@ static INPUT_PORTS_START( berlin )
PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Right") PORT_CODE(KEYCODE_RIGHT)
PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("New Game (1/2)") PORT_CODE(KEYCODE_1) PORT_CODE(KEYCODE_F1) // combine for NEW GAME
PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("New Game (2/2)") PORT_CODE(KEYCODE_2) PORT_CODE(KEYCODE_F1) // "
+
+ PORT_START("CLICKABLE") // helper for clickable artwork
+ PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_OTHER)
INPUT_PORTS_END
diff --git a/src/mame/hegenerglaser/milano.cpp b/src/mame/hegenerglaser/milano.cpp
index 3523bb4b67c..cb8edd5ad37 100644
--- a/src/mame/hegenerglaser/milano.cpp
+++ b/src/mame/hegenerglaser/milano.cpp
@@ -151,6 +151,9 @@ static INPUT_PORTS_START( milano )
PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Function / King") PORT_CODE(KEYCODE_F)
PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Enter / New Game") PORT_CODE(KEYCODE_ENTER) PORT_CODE(KEYCODE_F1) // combine for NEW GAME
PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Clear / New Game") PORT_CODE(KEYCODE_BACKSPACE) PORT_CODE(KEYCODE_DEL) PORT_CODE(KEYCODE_F1) // "
+
+ PORT_START("CLICKABLE") // helper for clickable artwork
+ PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_OTHER)
INPUT_PORTS_END
diff --git a/src/mame/hegenerglaser/mm2.cpp b/src/mame/hegenerglaser/mm2.cpp
index ac10802d2b4..cddeea56d24 100644
--- a/src/mame/hegenerglaser/mm2.cpp
+++ b/src/mame/hegenerglaser/mm2.cpp
@@ -277,6 +277,9 @@ static INPUT_PORTS_START( mm2 )
PORT_START("RESET")
PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("RES 1") PORT_CODE(KEYCODE_Z) PORT_CODE(KEYCODE_F1) PORT_CHANGED_MEMBER(DEVICE_SELF, mm2_state, reset_button, 0)
PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("RES 2") PORT_CODE(KEYCODE_X) PORT_CODE(KEYCODE_F1) PORT_CHANGED_MEMBER(DEVICE_SELF, mm2_state, reset_button, 0)
+
+ PORT_START("CLICKABLE") // helper for clickable artwork
+ PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_OTHER)
INPUT_PORTS_END
static INPUT_PORTS_START( bup )
@@ -303,6 +306,9 @@ static INPUT_PORTS_START( bup )
PORT_START("RESET")
PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("RES 1") PORT_CODE(KEYCODE_Z) PORT_CODE(KEYCODE_F1) PORT_CHANGED_MEMBER(DEVICE_SELF, mm2_state, reset_button, 0)
PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("RES 2") PORT_CODE(KEYCODE_X) PORT_CODE(KEYCODE_F1) PORT_CHANGED_MEMBER(DEVICE_SELF, mm2_state, reset_button, 0)
+
+ PORT_START("CLICKABLE") // helper for clickable artwork
+ PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_OTHER)
INPUT_PORTS_END
diff --git a/src/mame/hegenerglaser/modena.cpp b/src/mame/hegenerglaser/modena.cpp
index f221f9e1714..be0e59f1b0e 100644
--- a/src/mame/hegenerglaser/modena.cpp
+++ b/src/mame/hegenerglaser/modena.cpp
@@ -159,6 +159,9 @@ static INPUT_PORTS_START( modena )
PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Function / King") PORT_CODE(KEYCODE_F)
PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Enter / New Game") PORT_CODE(KEYCODE_ENTER) PORT_CODE(KEYCODE_F1) // combine for NEW GAME
PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Clear / New Game") PORT_CODE(KEYCODE_BACKSPACE) PORT_CODE(KEYCODE_DEL) PORT_CODE(KEYCODE_F1) // "
+
+ PORT_START("CLICKABLE") // helper for clickable artwork
+ PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_OTHER)
INPUT_PORTS_END
diff --git a/src/mame/hegenerglaser/mondial68k.cpp b/src/mame/hegenerglaser/mondial68k.cpp
index fb4116b8bef..36f228fa1de 100644
--- a/src/mame/hegenerglaser/mondial68k.cpp
+++ b/src/mame/hegenerglaser/mondial68k.cpp
@@ -153,28 +153,31 @@ void mondial68k_state::mondial68k_mem(address_map &map)
static INPUT_PORTS_START( mondial68k )
PORT_START("IN.0")
- PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("A / 1") PORT_CODE(KEYCODE_A) PORT_CODE(KEYCODE_1) PORT_CODE(KEYCODE_1_PAD)
- PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("E / 5 / Rook") PORT_CODE(KEYCODE_E) PORT_CODE(KEYCODE_5) PORT_CODE(KEYCODE_5_PAD)
- PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Left / Black / 9") PORT_CODE(KEYCODE_9) PORT_CODE(KEYCODE_9_PAD) PORT_CODE(KEYCODE_LEFT)
- PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("LEV") PORT_CODE(KEYCODE_L)
+ PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("A / 1") PORT_CODE(KEYCODE_A) PORT_CODE(KEYCODE_1) PORT_CODE(KEYCODE_1_PAD)
+ PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("E / 5 / Rook") PORT_CODE(KEYCODE_E) PORT_CODE(KEYCODE_5) PORT_CODE(KEYCODE_5_PAD)
+ PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Left / Black / 9") PORT_CODE(KEYCODE_9) PORT_CODE(KEYCODE_9_PAD) PORT_CODE(KEYCODE_LEFT)
+ PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("LEV") PORT_CODE(KEYCODE_L)
PORT_START("IN.1")
- PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("B / 2 / Pawn") PORT_CODE(KEYCODE_B) PORT_CODE(KEYCODE_2) PORT_CODE(KEYCODE_2_PAD)
- PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("F / 6 / Queen") PORT_CODE(KEYCODE_F) PORT_CODE(KEYCODE_6) PORT_CODE(KEYCODE_6_PAD)
- PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Right / White / 0") PORT_CODE(KEYCODE_0) PORT_CODE(KEYCODE_0_PAD) PORT_CODE(KEYCODE_RIGHT)
- PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("MEM") PORT_CODE(KEYCODE_M)
+ PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("B / 2 / Pawn") PORT_CODE(KEYCODE_B) PORT_CODE(KEYCODE_2) PORT_CODE(KEYCODE_2_PAD)
+ PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("F / 6 / Queen") PORT_CODE(KEYCODE_F) PORT_CODE(KEYCODE_6) PORT_CODE(KEYCODE_6_PAD)
+ PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("Right / White / 0") PORT_CODE(KEYCODE_0) PORT_CODE(KEYCODE_0_PAD) PORT_CODE(KEYCODE_RIGHT)
+ PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("MEM") PORT_CODE(KEYCODE_M)
PORT_START("IN.2")
- PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("C / 3 / Knight") PORT_CODE(KEYCODE_C) PORT_CODE(KEYCODE_3) PORT_CODE(KEYCODE_3_PAD)
- PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("G / 7 / King") PORT_CODE(KEYCODE_G) PORT_CODE(KEYCODE_7) PORT_CODE(KEYCODE_7_PAD)
- PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("INFO") PORT_CODE(KEYCODE_I)
- PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("CL") PORT_CODE(KEYCODE_BACKSPACE) PORT_CODE(KEYCODE_DEL)
+ PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("C / 3 / Knight") PORT_CODE(KEYCODE_C) PORT_CODE(KEYCODE_3) PORT_CODE(KEYCODE_3_PAD)
+ PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("G / 7 / King") PORT_CODE(KEYCODE_G) PORT_CODE(KEYCODE_7) PORT_CODE(KEYCODE_7_PAD)
+ PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("INFO") PORT_CODE(KEYCODE_I)
+ PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("CL") PORT_CODE(KEYCODE_BACKSPACE) PORT_CODE(KEYCODE_DEL) PORT_CODE(KEYCODE_F1) // combine ENT/CL for NEW GAME
PORT_START("IN.3")
- PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("D / 4 / Bishop") PORT_CODE(KEYCODE_D) PORT_CODE(KEYCODE_4) PORT_CODE(KEYCODE_4_PAD)
- PORT_BIT( 0x02, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("H / 8") PORT_CODE(KEYCODE_H) PORT_CODE(KEYCODE_8) PORT_CODE(KEYCODE_8_PAD)
- PORT_BIT( 0x04, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("POS") PORT_CODE(KEYCODE_O)
- PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("ENT") PORT_CODE(KEYCODE_ENTER) PORT_CODE(KEYCODE_ENTER_PAD)
+ PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("D / 4 / Bishop") PORT_CODE(KEYCODE_D) PORT_CODE(KEYCODE_4) PORT_CODE(KEYCODE_4_PAD)
+ PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("H / 8") PORT_CODE(KEYCODE_H) PORT_CODE(KEYCODE_8) PORT_CODE(KEYCODE_8_PAD)
+ PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("POS") PORT_CODE(KEYCODE_O)
+ PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("ENT") PORT_CODE(KEYCODE_ENTER) PORT_CODE(KEYCODE_ENTER_PAD) PORT_CODE(KEYCODE_F1) // combine ENT/CL for NEW GAME
+
+ PORT_START("CLICKABLE") // helper for clickable artwork
+ PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_OTHER)
INPUT_PORTS_END
diff --git a/src/mame/hegenerglaser/polgar.cpp b/src/mame/hegenerglaser/polgar.cpp
index 5cd97a3d795..89763ca392e 100644
--- a/src/mame/hegenerglaser/polgar.cpp
+++ b/src/mame/hegenerglaser/polgar.cpp
@@ -96,6 +96,9 @@ static INPUT_PORTS_START( polgar )
PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("FCT / King") PORT_CODE(KEYCODE_F)
PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("ENT / New Game") PORT_CODE(KEYCODE_ENTER) PORT_CODE(KEYCODE_F1) // combine for NEW GAME
PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("CL / New Game") PORT_CODE(KEYCODE_BACKSPACE) PORT_CODE(KEYCODE_DEL) PORT_CODE(KEYCODE_F1) // "
+
+ PORT_START("CLICKABLE") // helper for clickable artwork
+ PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_OTHER)
INPUT_PORTS_END
diff --git a/src/mame/hegenerglaser/risc.cpp b/src/mame/hegenerglaser/risc.cpp
index 1e20f5284e9..3f9e8d97a1a 100644
--- a/src/mame/hegenerglaser/risc.cpp
+++ b/src/mame/hegenerglaser/risc.cpp
@@ -132,6 +132,9 @@ static INPUT_PORTS_START( mrisc )
PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("FCT / King") PORT_CODE(KEYCODE_F)
PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("ENT / New Game") PORT_CODE(KEYCODE_ENTER) PORT_CODE(KEYCODE_F1) // combine for NEW GAME
PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_KEYPAD) PORT_NAME("CL / New Game") PORT_CODE(KEYCODE_BACKSPACE) PORT_CODE(KEYCODE_DEL) PORT_CODE(KEYCODE_F1) // "
+
+ PORT_START("CLICKABLE") // helper for clickable artwork
+ PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_OTHER)
INPUT_PORTS_END
diff --git a/src/mame/layout/ave_arb.lay b/src/mame/layout/ave_arb.lay
index a1ac4b31c60..2ac67ee7e5b 100644
--- a/src/mame/layout/ave_arb.lay
+++ b/src/mame/layout/ave_arb.lay
@@ -11,7 +11,7 @@ license:CC0
local prev_state = 0
function layout.frame()
- local cur_state = machine.ioport.ports[":LISTEN"]:read() & 1
+ local cur_state = machine.ioport.ports[":CLICKABLE"]:read() & 1
if cur_state ~= prev_state then
machine.ioport.ports[":IN.1"]:field(0x01):set_value(cur_state)
machine.ioport.ports[":IN.1"]:field(0x02):set_value(cur_state)
@@ -569,7 +569,7 @@ license:CC0
-
+
diff --git a/src/mame/layout/chessmst.lay b/src/mame/layout/chessmst.lay
index df928af8441..f4ff7163f0d 100644
--- a/src/mame/layout/chessmst.lay
+++ b/src/mame/layout/chessmst.lay
@@ -11,7 +11,7 @@ license:CC0
local prev_state = 0
function layout.frame()
- local cur_state = machine.ioport.ports[":LISTEN"]:read() & 1
+ local cur_state = machine.ioport.ports[":CLICKABLE"]:read() & 1
if cur_state ~= prev_state then
machine.ioport.ports[":IN.1"]:field(0x01):set_value(cur_state)
machine.ioport.ports[":IN.1"]:field(0x02):set_value(cur_state)
@@ -506,7 +506,7 @@ license:CC0
-
+
diff --git a/src/mame/layout/chessmstdm.lay b/src/mame/layout/chessmstdm.lay
index 28d2be5b599..6c4f932c9da 100644
--- a/src/mame/layout/chessmstdm.lay
+++ b/src/mame/layout/chessmstdm.lay
@@ -4,6 +4,25 @@ license:CC0
-->
+
+
+
+
+
@@ -24,6 +43,7 @@ license:CC0
+
@@ -35,6 +55,10 @@ license:CC0
+
+
+
+
@@ -410,10 +434,10 @@ license:CC0
-
-
-
-
+
+
+
+
@@ -426,8 +450,11 @@ license:CC0
+
+
+
-
+
diff --git a/src/mame/layout/mephisto_academy.lay b/src/mame/layout/mephisto_academy.lay
index 4f9ce3a053e..b2486613db6 100644
--- a/src/mame/layout/mephisto_academy.lay
+++ b/src/mame/layout/mephisto_academy.lay
@@ -4,6 +4,25 @@ license:CC0
-->
+
+
+
+
+
@@ -47,6 +66,10 @@ license:CC0
+
+
+
+
@@ -455,6 +478,9 @@ license:CC0
+
+
+
diff --git a/src/mame/layout/mephisto_amsterdam.lay b/src/mame/layout/mephisto_amsterdam.lay
index 61b125e5cfd..ed59f553462 100644
--- a/src/mame/layout/mephisto_amsterdam.lay
+++ b/src/mame/layout/mephisto_amsterdam.lay
@@ -4,6 +4,25 @@ license:CC0
-->
+
+
+
+
+
@@ -25,6 +44,10 @@ license:CC0
+
+
+
+
@@ -511,8 +534,11 @@ license:CC0
+
+
+
diff --git a/src/mame/layout/mephisto_berlin.lay b/src/mame/layout/mephisto_berlin.lay
index 9137db611d3..e23747c37d0 100644
--- a/src/mame/layout/mephisto_berlin.lay
+++ b/src/mame/layout/mephisto_berlin.lay
@@ -4,6 +4,25 @@ license:CC0
-->
+
+
+
+
+
@@ -25,6 +44,10 @@ license:CC0
+
+
+
+
@@ -368,14 +391,18 @@ license:CC0
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/mame/layout/mephisto_bup.lay b/src/mame/layout/mephisto_bup.lay
index 7fb4fb18c74..7e0550a2a1a 100644
--- a/src/mame/layout/mephisto_bup.lay
+++ b/src/mame/layout/mephisto_bup.lay
@@ -4,6 +4,25 @@ license:CC0
-->
+
+
+
+
+
@@ -25,6 +44,10 @@ license:CC0
+
+
+
+
@@ -525,8 +548,11 @@ license:CC0
+
+
+
diff --git a/src/mame/layout/mephisto_milano.lay b/src/mame/layout/mephisto_milano.lay
index 696889dc5f2..9055933f66d 100644
--- a/src/mame/layout/mephisto_milano.lay
+++ b/src/mame/layout/mephisto_milano.lay
@@ -3,6 +3,26 @@
license:CC0
-->
+
+
+
+
+
+
@@ -36,6 +56,10 @@ license:CC0
+
+
+
+
@@ -378,6 +402,9 @@ license:CC0
+
+
+
diff --git a/src/mame/layout/mephisto_mm2.lay b/src/mame/layout/mephisto_mm2.lay
index 72e27340105..2793b243eed 100644
--- a/src/mame/layout/mephisto_mm2.lay
+++ b/src/mame/layout/mephisto_mm2.lay
@@ -4,6 +4,25 @@ license:CC0
-->
+
+
+
+
+
@@ -25,6 +44,10 @@ license:CC0
+
+
+
+
@@ -534,8 +557,11 @@ license:CC0
+
+
+
diff --git a/src/mame/layout/mephisto_mm5.lay b/src/mame/layout/mephisto_mm5.lay
index 36d76cdc905..727b0dfd6b8 100644
--- a/src/mame/layout/mephisto_mm5.lay
+++ b/src/mame/layout/mephisto_mm5.lay
@@ -6,6 +6,25 @@ license:CC0
+
+
+
+
+
@@ -27,6 +46,10 @@ license:CC0
+
+
+
+
@@ -530,8 +553,11 @@ license:CC0
+
+
+
diff --git a/src/mame/layout/mephisto_modena.lay b/src/mame/layout/mephisto_modena.lay
index 65332c989f3..6ea04c620f3 100644
--- a/src/mame/layout/mephisto_modena.lay
+++ b/src/mame/layout/mephisto_modena.lay
@@ -4,6 +4,25 @@ license:CC0
-->
+
+
+
+
+
@@ -36,6 +55,10 @@ license:CC0
+
+
+
+
@@ -405,6 +428,9 @@ license:CC0
+
+
+
diff --git a/src/mame/layout/mephisto_mondial68k.lay b/src/mame/layout/mephisto_mondial68k.lay
index efbe41c5e52..d9629629546 100644
--- a/src/mame/layout/mephisto_mondial68k.lay
+++ b/src/mame/layout/mephisto_mondial68k.lay
@@ -4,6 +4,25 @@ license:CC0
-->
+
+
+
+
+
@@ -19,14 +38,13 @@ license:CC0
-
-
-
-
-
-
+
-
+
+
+
+
+
@@ -425,6 +443,9 @@ license:CC0
+
+
+
diff --git a/src/mame/layout/mephisto_polgar.lay b/src/mame/layout/mephisto_polgar.lay
index 8ebe14d667d..6d63a513ebd 100644
--- a/src/mame/layout/mephisto_polgar.lay
+++ b/src/mame/layout/mephisto_polgar.lay
@@ -2,10 +2,28 @@
+
-
+
+
+
+
@@ -28,6 +46,10 @@ license:CC0
+
+
+
+
@@ -420,6 +442,9 @@ license:CC0
+
+
+
diff --git a/src/mame/layout/mephisto_risc.lay b/src/mame/layout/mephisto_risc.lay
index 8ebe14d667d..6d63a513ebd 100644
--- a/src/mame/layout/mephisto_risc.lay
+++ b/src/mame/layout/mephisto_risc.lay
@@ -2,10 +2,28 @@
+
-
+
+
+
+
@@ -28,6 +46,10 @@ license:CC0
+
+
+
+
@@ -420,6 +442,9 @@ license:CC0
+
+
+
diff --git a/src/mame/layout/mephisto_smondial.lay b/src/mame/layout/mephisto_smondial.lay
index f785d718033..72cfa6d66d3 100644
--- a/src/mame/layout/mephisto_smondial.lay
+++ b/src/mame/layout/mephisto_smondial.lay
@@ -31,14 +31,9 @@ license:CC0
-
-
-
-
-
-
+
-
+
diff --git a/src/mame/layout/mephisto_smondial2.lay b/src/mame/layout/mephisto_smondial2.lay
index f5238e33e7b..56ca03c6164 100644
--- a/src/mame/layout/mephisto_smondial2.lay
+++ b/src/mame/layout/mephisto_smondial2.lay
@@ -31,14 +31,9 @@ license:CC0
-
-
-
-
-
-
+
-
+