diff --git a/docs/source/techspecs/layout_files.rst b/docs/source/techspecs/layout_files.rst
index b8a1aa4c231..4d7f9f5d712 100644
--- a/docs/source/techspecs/layout_files.rst
+++ b/docs/source/techspecs/layout_files.rst
@@ -740,8 +740,8 @@ displays visible. Collections are created using ``collection`` elements inside
``view``, ``group`` and other ``collection`` elements.
A collection element must have a ``name`` attribute providing the display name
-for the collection. Collection names should be unique within a view. The
-initial visibility of a collection may be specified by providing a ``visible``
+for the collection. Collection names must be unique within a view. The initial
+visibility of a collection may be specified by providing a ``visible``
attribute. Set the ``visible`` attribute to ``yes`` if the collection should be
initially visible, or ``no`` if it should be initially hidden. Collections are
initially visible by default.
diff --git a/src/emu/rendlay.cpp b/src/emu/rendlay.cpp
index 6c72b9928a8..c18d2d7a66e 100644
--- a/src/emu/rendlay.cpp
+++ b/src/emu/rendlay.cpp
@@ -1141,6 +1141,7 @@ void layout_group::resolve_bounds(
LOGMASKED(LOG_GROUP_BOUNDS_RESOLUTION, "Group '%s' resolve bounds empty=%s vistoggle=%s repeat=%s init=%s\n",
parentnode.get_attribute_string("name", ""), empty, vistoggle, repeat, init);
bool envaltered(false);
+ bool unresolved(true);
for (util::xml::data_node const *itemnode = parentnode.get_first_child(); !m_bounds_resolved && itemnode; itemnode = itemnode->get_next_sibling())
{
if (!strcmp(itemnode->get_name(), "bounds"))
@@ -1151,10 +1152,14 @@ void layout_group::resolve_bounds(
}
else if (!strcmp(itemnode->get_name(), "param"))
{
- LOGMASKED(LOG_GROUP_BOUNDS_RESOLUTION, "Environment altered%s, unresolving groups\n", envaltered ? " again" : "");
envaltered = true;
- for (group_map::value_type &group : groupmap)
- group.second.set_bounds_unresolved();
+ if (!unresolved)
+ {
+ LOGMASKED(LOG_GROUP_BOUNDS_RESOLUTION, "Environment altered%s, unresolving groups\n", envaltered ? " again" : "");
+ unresolved = true;
+ for (group_map::value_type &group : groupmap)
+ group.second.set_bounds_unresolved();
+ }
if (!repeat)
env.set_parameter(*itemnode);
else
@@ -1219,6 +1224,7 @@ void layout_group::resolve_bounds(
else
union_render_bounds(m_bounds, itembounds);
empty = false;
+ unresolved = false;
LOGMASKED(LOG_GROUP_BOUNDS_RESOLUTION, "Accumulate group '%s' reference computed bounds (%s %s %s %s) -> (%s %s %s %s)\n",
itemnode->get_attribute_string("ref", ""),
itembounds.x0, itembounds.y0, itembounds.x1, itembounds.y1,
@@ -1250,7 +1256,7 @@ void layout_group::resolve_bounds(
}
}
- if (envaltered)
+ if (envaltered && !unresolved)
{
LOGMASKED(LOG_GROUP_BOUNDS_RESOLUTION, "Environment was altered, marking groups unresolved\n");
bool const resolved(m_bounds_resolved);
@@ -3391,6 +3397,11 @@ void layout_view::add_items(
char const *name(env.get_attribute_string(*itemnode, "name", nullptr));
if (!name)
throw layout_syntax_error("collection must have name attribute");
+
+ auto const found(std::find_if(m_vistoggles.begin(), m_vistoggles.end(), [name] (auto const &x) { return x.name() == name; }));
+ if (m_vistoggles.end() != found)
+ throw layout_syntax_error(util::string_format("duplicate collection name '%s'", name));
+
m_defvismask |= u32(env.get_attribute_bool(*itemnode, "visible", true) ? 1 : 0) << m_vistoggles.size(); // TODO: make this less hacky
view_environment local(env, true);
m_vistoggles.emplace_back(name, local.visibility_mask());
diff --git a/src/mame/drivers/bfm_sc2.cpp b/src/mame/drivers/bfm_sc2.cpp
index 9e7fa7fbb1f..abe244ff03a 100644
--- a/src/mame/drivers/bfm_sc2.cpp
+++ b/src/mame/drivers/bfm_sc2.cpp
@@ -158,6 +158,8 @@ Adder hardware:
#include "video/bfm_dm01.h"
#include "machine/steppers.h"
+#include "machine/bfm_comn.h"
+
#include "machine/bfm_bd1.h" // vfd
#include "machine/meters.h"
#include "machine/rescap.h"
@@ -177,7 +179,6 @@ Adder hardware:
#include "sc2_vfd.lh"
#include "sc2_dmd.lh"
#include "drwho.lh"
-#include "machine/bfm_comn.h"
#include "sc2ptytm1.lh"
#include "sc2cpe.lh"
diff --git a/src/mame/layout/sentx6p.lay b/src/mame/layout/sentx6p.lay
index 5fd2055091e..a148fe39a67 100644
--- a/src/mame/layout/sentx6p.lay
+++ b/src/mame/layout/sentx6p.lay
@@ -10,8 +10,8 @@ license:CC0
-
-
+
+
@@ -31,8 +31,8 @@ license:CC0
-
-
+
+
@@ -483,399 +483,123 @@ license:CC0
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/mame/layout/setaroul.lay b/src/mame/layout/setaroul.lay
index ea79882df06..7afc55c0e24 100644
--- a/src/mame/layout/setaroul.lay
+++ b/src/mame/layout/setaroul.lay
@@ -4,399 +4,398 @@ license:CC0
-->
-
-
-
+
+
+
-
-
-
-
-
-
+
+
+
+
+
+
-
-
-
-
-
-
+
+
+
+
+
+
-
-
-
-
-
-
+
+
+
+
+
+
-
-
-
-
-
-
-
+
+
+
+
+
+
+
-
-
-
-
-
-
+
+
+
+
+
+
-
-
-
-
-
-
+
+
+
+
+
+
-
-
-
-
-
-
-
+
+
+
+
+
+
+
-
-
-
-
-
-
+
+
+
+
+
+
-
-
-
-
-
-
+
+
+
+
+
+
-
-
-
-
-
-
-
+
+
+
+
+
+
+
-
-
-
-
-
-
+
+
+
+
+
+
-
-
-
-
-
-
+
+
+
+
+
+
-
-
-
+
+
+
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
+
+
+
+
+
+
+
-
-
-
-
+
+
+
+
-
+
+
+
+
+
+
-
-
-
-
+
+
+
+
+
+
+
+
-
-
+
+
+
+
+
+
-
-
-
-
-
-
+
+
+
+
+
+
-
-
-
-
-
-
+
+
-
-
-
-
-
-
+
+
+
+
+
+
+
-
-
+
+
+
+
+
+
+
-
-
-
-
-
-
-
+
+
+
+
+
+
+
-
-
-
-
-
-
-
+
+
+
+
+
+
+
-
-
-
-
-
-
-
+
+
+
+
+
+
+
-
-
-
-
-
-
-
+
+
+
+
+
+
+
-
-
-
-
-
-
-
+
+
+
+
+
+
+
-
-
-
-
-
-
-
+
+
+
+
+
+
+
-
-
-
-
-
-
-
+
+
+
+
+
+
+
-
-
-
-
-
-
-
+
+
+
+
+
+
+
-
-
-
-
-
-
-
+
+
+
+
+
+
+
-
-
-
-
-
-
-
+
+
+
+
+
+
+
-
-
-
-
-
-
-
+
+
+
+
+
+
+
-
-
-
-
-
-
-
+
+
+
+
+
+
+
-
-
-
-
-
-
-
+
+
+
+
+
+
+
-
-
-
-
-
-
-
+
+
+
+
+
+
+
-
-
-
-
-
-
-
+
+
+
+
+
+
+
-
-
-
-
-
-
-
+
+
+
+
+
+
+
-
-
-
-
-
-
-
+
+
+
+
+
+
+
-
-
-
-
-
-
-
+
+
+
+
+
+
+
-
-
-
-
-
-
-
+
+
+
+
+
+
+
-
-
-
-
-
-
-
+
+
+
+
+
+
+
-
-
-
-
-
-
-
+
+
+
+
+
+
+
-
-
-
-
-
-
-
+
+
+
+
+
+
+
-
-
-
-
-
-
-
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
diff --git a/src/mame/layout/sidewndr.lay b/src/mame/layout/sidewndr.lay
index 9700a780df4..68aa927dacf 100644
--- a/src/mame/layout/sidewndr.lay
+++ b/src/mame/layout/sidewndr.lay
@@ -35,30 +35,30 @@ license:CC0
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
diff --git a/src/mame/layout/slots.lay b/src/mame/layout/slots.lay
index 0ef5875b1d3..5adcdaed61d 100644
--- a/src/mame/layout/slots.lay
+++ b/src/mame/layout/slots.lay
@@ -76,113 +76,47 @@ license:CC0
-
+
-
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/mame/layout/sltblgpo.lay b/src/mame/layout/sltblgpo.lay
index 8d75ecff8c5..fa43609a61a 100644
--- a/src/mame/layout/sltblgpo.lay
+++ b/src/mame/layout/sltblgpo.lay
@@ -58,101 +58,41 @@ license:CC0
-
+
-
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/mame/layout/sltblgtk.lay b/src/mame/layout/sltblgtk.lay
index c79194fc250..23abbdabd77 100644
--- a/src/mame/layout/sltblgtk.lay
+++ b/src/mame/layout/sltblgtk.lay
@@ -76,113 +76,47 @@ license:CC0
-
+
-
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/mame/layout/spectra.lay b/src/mame/layout/spectra.lay
index 3a201348c30..254e9d5c726 100644
--- a/src/mame/layout/spectra.lay
+++ b/src/mame/layout/spectra.lay
@@ -12,12 +12,6 @@ copyright-holders:Robbbert
-
-
-
-
-
-
@@ -27,120 +21,116 @@ copyright-holders:Robbbert
-
-
-
-
-
+
-
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
+
-
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
+
-
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
+
-
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
+
-
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
diff --git a/src/mame/layout/speedrs.lay b/src/mame/layout/speedrs.lay
index 5c5bcfbe16a..7860a780e54 100644
--- a/src/mame/layout/speedrs.lay
+++ b/src/mame/layout/speedrs.lay
@@ -58,40 +58,49 @@ license:CC0
-
+
-
-
+
+
-
+
-
+
-
-
+
+
-
+
-
+
-
+
-
-
+
+
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
-
diff --git a/src/mame/layout/splus.lay b/src/mame/layout/splus.lay
index 3a7fbe13bb3..5a9324caf39 100644
--- a/src/mame/layout/splus.lay
+++ b/src/mame/layout/splus.lay
@@ -4,9 +4,6 @@ license:CC0
-->
-
-
-
@@ -93,59 +90,57 @@ license:CC0
+
-
-
-
-
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
+
diff --git a/src/mame/layout/st_mp100.lay b/src/mame/layout/st_mp100.lay
index bf81624c03f..def3591b2a9 100644
--- a/src/mame/layout/st_mp100.lay
+++ b/src/mame/layout/st_mp100.lay
@@ -14,12 +14,6 @@ copyright-holders:Robbbert
-
-
-
-
-
-
@@ -29,116 +23,113 @@ copyright-holders:Robbbert
-
-
-
-
-
+
-
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
+
-
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
+
-
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
+
-
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
+
-
+
-
-
+
+
-
-
+
+
-
-
+
+
-
+
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
diff --git a/src/mame/layout/st_mp200.lay b/src/mame/layout/st_mp200.lay
index 8bd919921a5..9a822882e58 100644
--- a/src/mame/layout/st_mp200.lay
+++ b/src/mame/layout/st_mp200.lay
@@ -14,12 +14,6 @@ copyright-holders:Robbbert
-
-
-
-
-
-
@@ -29,128 +23,125 @@ copyright-holders:Robbbert
-
-
-
-
-
+
-
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
+
-
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
+
-
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
+
-
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
+
-
+
-
-
+
+
-
-
+
+
-
-
+
+
-
+
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
diff --git a/src/mame/layout/super80.lay b/src/mame/layout/super80.lay
index 8e4f63658df..be74fbd16a6 100644
--- a/src/mame/layout/super80.lay
+++ b/src/mame/layout/super80.lay
@@ -23,18 +23,18 @@ license:CC0
-
-
-
-
-
+
+
+
+
+
diff --git a/src/mame/layout/sym1.lay b/src/mame/layout/sym1.lay
index cfc43ddb569..213ce0da1bd 100644
--- a/src/mame/layout/sym1.lay
+++ b/src/mame/layout/sym1.lay
@@ -12,39 +12,29 @@ copyright-holders:Dirk Best
-
-
-
-
-
-
-
-
-
-
-
+
-
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
+
diff --git a/src/mame/layout/taito.lay b/src/mame/layout/taito.lay
index a53d80a3127..f7ea1fad13b 100644
--- a/src/mame/layout/taito.lay
+++ b/src/mame/layout/taito.lay
@@ -12,12 +12,6 @@ copyright-holders:Robbbert
-
-
-
-
-
-
@@ -26,117 +20,113 @@ copyright-holders:Robbbert
-
-
-
-
-
+
-
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
+
-
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
+
-
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
+
-
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
+
-
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
+
-
-
-
-
-
-
+
+
+
+
+
+
diff --git a/src/mame/layout/tascr30.lay b/src/mame/layout/tascr30.lay
index 7dc21ef9e89..03cb3ea9aed 100644
--- a/src/mame/layout/tascr30.lay
+++ b/src/mame/layout/tascr30.lay
@@ -192,122 +192,122 @@ license:CC0
-
-
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
@@ -315,15 +315,15 @@ license:CC0
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
@@ -413,82 +413,82 @@ license:CC0
-
-
-
-
-
+
+
+
+
+
-
-
-
+
+
+
-
-
+
+
-
-
+
+
-
-
-
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
+
+
+
-
-
-
+
+
+
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
-
-
-
-
+
+
+
+
-
-
-
+
+
+
@@ -505,17 +505,17 @@ license:CC0
+
-
+
-
diff --git a/src/mame/layout/techno.lay b/src/mame/layout/techno.lay
index 7e270d2ee2e..3dccfca6075 100644
--- a/src/mame/layout/techno.lay
+++ b/src/mame/layout/techno.lay
@@ -12,122 +12,111 @@ copyright-holders:Robbbert
-
-
-
-
-
-
-
-
-
-
-
-
+
-
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
+
-
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
+
diff --git a/src/mame/layout/ti95.lay b/src/mame/layout/ti95.lay
index a4c6ad35f4a..268093d2bbb 100644
--- a/src/mame/layout/ti95.lay
+++ b/src/mame/layout/ti95.lay
@@ -199,58 +199,58 @@ license:CC0
-
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
+
-
+
-
+
-
+
-
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
+
-
+
-
-
+
+
-
-
+
+
-
+
@@ -258,70 +258,70 @@ license:CC0
-
+
-
-
+
+
-
+
-
+
-
-
+
+
-
+
-
+
-
-
+
+
-
+
-
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
+
-
+
-
-
+
+
-
-
+
+
-
+
-
+
-
-
+
+
-
-
+
+
-
+
diff --git a/src/mame/layout/tk80.lay b/src/mame/layout/tk80.lay
index 296207a083f..56d7b017de7 100644
--- a/src/mame/layout/tk80.lay
+++ b/src/mame/layout/tk80.lay
@@ -10,46 +10,35 @@ license:CC0
-
-
-
-
-
-
-
-
-
-
-
-
+
-
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
+
diff --git a/src/mame/layout/tranz330.lay b/src/mame/layout/tranz330.lay
index d542da95afa..6ac8b64b216 100644
--- a/src/mame/layout/tranz330.lay
+++ b/src/mame/layout/tranz330.lay
@@ -142,89 +142,89 @@ license:CC0
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/mame/layout/vd.lay b/src/mame/layout/vd.lay
index 66cf769423b..51336bdf0c0 100644
--- a/src/mame/layout/vd.lay
+++ b/src/mame/layout/vd.lay
@@ -12,12 +12,6 @@ copyright-holders:Robbbert
-
-
-
-
-
-
@@ -26,119 +20,115 @@ copyright-holders:Robbbert
-
-
-
-
-
+
-
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
+
-
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
+
-
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
+
-
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
+
-
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
-
-
-
-
-
+
+
+
+
+
+
+
diff --git a/src/mame/layout/wico.lay b/src/mame/layout/wico.lay
index b46804c3a02..475b01dea78 100644
--- a/src/mame/layout/wico.lay
+++ b/src/mame/layout/wico.lay
@@ -17,12 +17,6 @@ copyright-holders:Robbbert
-
-
-
-
-
-
@@ -32,135 +26,131 @@ copyright-holders:Robbbert
-
-
-
-
-
+
-
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
+
-
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
+
-
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
+
-
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
+
-
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
diff --git a/src/mame/layout/wpc_an.lay b/src/mame/layout/wpc_an.lay
index 42fda78704a..e8a09f861f0 100644
--- a/src/mame/layout/wpc_an.lay
+++ b/src/mame/layout/wpc_an.lay
@@ -20,133 +20,123 @@ license:CC0
-
-
-
-
-
-
-
-
-
-
-
+
-
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
+
-
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
+
-
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
+
-
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
+
-
+
-
+
diff --git a/src/mame/layout/z80ne.lay b/src/mame/layout/z80ne.lay
index ab2f67db0e4..b97d021d5ab 100644
--- a/src/mame/layout/z80ne.lay
+++ b/src/mame/layout/z80ne.lay
@@ -485,167 +485,129 @@ copyright-holders:Roberto Lavarone
-
+
-
+
-
+
-
+
-
+
-
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
diff --git a/src/mame/layout/z80net.lay b/src/mame/layout/z80net.lay
index d31ed485bb9..d2fe5034d00 100644
--- a/src/mame/layout/z80net.lay
+++ b/src/mame/layout/z80net.lay
@@ -492,179 +492,141 @@ copyright-holders:Roberto Lavarone
-
+
-
+
-
+
-
+
-
-
-
+
+
+
-
-
-
+
+
+
-
+
-
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
diff --git a/src/mame/layout/z80netb.lay b/src/mame/layout/z80netb.lay
index f62975432b0..e2084802570 100644
--- a/src/mame/layout/z80netb.lay
+++ b/src/mame/layout/z80netb.lay
@@ -43,19 +43,17 @@ copyright-holders:Roberto Lavarone
-
+
-
-
-
-
-
+
+
+
+
-
diff --git a/src/mame/layout/z80netf.lay b/src/mame/layout/z80netf.lay
index f8ccf8dda01..463e6d80fbd 100644
--- a/src/mame/layout/z80netf.lay
+++ b/src/mame/layout/z80netf.lay
@@ -518,194 +518,155 @@ copyright-holders:Roberto Lavarone
-
+
-
+
-
+
-
+
-
-
-
+
+
+
-
-
-
+
+
+
-
+
-
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
-
+
-
-
+
+
-
+
-
+
-
-
+
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
diff --git a/src/mame/layout/zac_1.lay b/src/mame/layout/zac_1.lay
index 8da6ab92bc3..7df0a5cf7a3 100644
--- a/src/mame/layout/zac_1.lay
+++ b/src/mame/layout/zac_1.lay
@@ -12,12 +12,6 @@ copyright-holders:Robbbert
-
-
-
-
-
-
@@ -27,136 +21,132 @@ copyright-holders:Robbbert
-
-
-
-
-
+
-
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
+
-
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
+
-
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
+
-
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
+
-
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
+
-
+
-
-
+
+
-
+
-
+
-
-
+
+
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
diff --git a/src/mame/layout/zac_2.lay b/src/mame/layout/zac_2.lay
index 2f0eee867e5..2e0f6d726c1 100644
--- a/src/mame/layout/zac_2.lay
+++ b/src/mame/layout/zac_2.lay
@@ -15,12 +15,6 @@ copyright-holders:Robbbert
-
-
-
-
-
-
@@ -30,136 +24,132 @@ copyright-holders:Robbbert
-
-
-
-
-
+
-
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
+
-
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
+
-
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
+
-
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
+
-
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
+
-
+
-
-
+
+
-
+
-
+
-
-
+
+
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
diff --git a/src/mame/layout/zac_proto.lay b/src/mame/layout/zac_proto.lay
index 3e8733ff777..dcf34656b8d 100644
--- a/src/mame/layout/zac_proto.lay
+++ b/src/mame/layout/zac_proto.lay
@@ -12,59 +12,49 @@ copyright-holders:Robbbert
-
-
-
-
-
-
-
-
-
-
-
+
-
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
-
-
+
+
+
+