diff --git a/docs/source/conf.py b/docs/source/conf.py index cad683ebecccb..1a9730e288ffc 100644 --- a/docs/source/conf.py +++ b/docs/source/conf.py @@ -11,9 +11,10 @@ # All configuration values have a default; values that are commented out # serve to show the default. -import sys, os +import os.path +import sys -sys.path.insert(0, os.path.abspath('_ext')) +sys.path.insert(0, os.path.join(os.path.dirname(os.path.abspath(__file__)), '_ext')) # If extensions (or modules to document with autodoc) are in another directory, # add these directories to sys.path here. If the directory is relative to the @@ -31,8 +32,8 @@ 'sphinx.ext.autodoc', 'sphinx.ext.mathjax', 'sphinx.ext.viewcode', - 'edit_on_github', - 'sphinxcontrib.rsvgconverter' + 'sphinxcontrib.rsvgconverter', + 'edit_on_github' ] edit_on_github_project = 'mamedev/mame' diff --git a/docs/source/techspecs/layout_files.rst b/docs/source/techspecs/layout_files.rst index f90309696e4b4..b8a1aa4c2310c 100644 --- a/docs/source/techspecs/layout_files.rst +++ b/docs/source/techspecs/layout_files.rst @@ -610,6 +610,11 @@ screen zero (0). If present, the ``tag`` attribute must be the tag path to the screen relative to the device that causes the layout to be loaded. Screens are drawn in the order they appear in the layout file, from front to back. +collection + Adds screens and/or items in a collection that can be shown or hidden by the + user (see :ref:`layout-parts-collections`). The name of the collection is + specified using the required ``name`` attribute.. There is a limit of 32 + collections per view. group Adds the content of the group to the view (see :ref:`layout-parts-groups`). The name of the group to add is specified using the required ``ref`` @@ -723,6 +728,46 @@ and only activates the frontmost element whose area includes the location of the mouse pointer. +.. _layout-parts-collections: + +Collections +~~~~~~~~~~~ + +Collections of screens and/or layout elements can be shown or hidden by the user +as desired. For example, a single view could include both displays and a +clickable keypad, and allow the user to hide the keypad leaving only the +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`` +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. + +Here is an example demonstrating the use of collections to allow parts of a view +to be hidden by the user:: + + + + + + + + + + + + +A collection creates a nested parameter scope. Any ``param`` elements inside +the collection element set parameters in the local scope for the collection. +See :ref:`layout-concepts-params` for more detail on parameters. (Note that the +collection’s name and default visibility are not part of its content, and any +parameter references in the ``name`` and ``visible`` attributes themselves will +be substituted using parameter values from the collection’s parent’s scope.) + + .. _layout-parts-groups: Reusable groups diff --git a/scripts/build/complay.py b/scripts/build/complay.py index ce760185015c5..5dfee05e01892 100755 --- a/scripts/build/complay.py +++ b/scripts/build/complay.py @@ -97,7 +97,7 @@ class LayoutChecker(Minifyer): VARPATTERN = re.compile('^.*~[0-9A-Za-z_]+~.*$') FLOATCHARS = re.compile('^.*[.eE].*$') SHAPES = frozenset(('disk', 'dotmatrix', 'dotmatrix5dot', 'dotmatrixdot', 'led14seg', 'led14segsc', 'led16seg', 'led16segsc', 'led7seg', 'led8seg_gts1', 'rect')) - OBJECTS = frozenset(('backdrop', 'bezel', 'cpanel', 'marquee', 'overlay')) + OBJECTS = frozenset(('backdrop', 'bezel')) ORIENTATIONS = frozenset((0, 90, 180, 270)) YESNO = frozenset(('yes', 'no')) BLENDMODES = frozenset(('none', 'alpha', 'multiply', 'add')) @@ -471,7 +471,11 @@ def groupViewStartHandler(self, name, attrs): inputmask = self.checkIntAttribute(name, attrs, 'inputmask', None) if (inputmask is not None) and (0 == inputmask): if (inputraw is None) or (0 == inputraw): - self.handleError('Element %s has attribute inputmask "%s" is zero' % (name, attrs['inputmask'])) + self.handleError('Element %s attribute inputmask "%s" is zero' % (name, attrs['inputmask'])) + if ('element' != name) and not self.has_legacy_object: + self.has_legacy_object = True + if self.has_collection: + self.handleError('Layout contains collection as well as legacy backdrop/bezel elements') self.handlers.append((self.objectStartHandler, self.objectEndHandler)) self.have_bounds.append(False) self.have_orientation.append(False) @@ -507,6 +511,17 @@ def groupViewStartHandler(self, name, attrs): self.handleError('Element repeat attribute count "%s" is negative' % (attrs['count'], )) self.variable_scopes.append({ }) self.repeat_depth[-1] += 1 + elif 'collection' == name: + if 'name' not in attrs: + self.handleError('Element collection missing attribute name') + if attrs.get('visible', 'yes') not in self.YESNO: + self.handleError('Element collection attribute visible "%s" is not "yes" or "no"' % (attrs['visible'], )) + if not self.has_collection: + self.has_collection = True + if self.has_legacy_object: + self.handleError('Layout contains collection as well as legacy backdrop/bezel elements') + self.variable_scopes.append({ }) + self.collection_depth += 1 elif 'param' == name: self.checkParameter(attrs) self.ignored_depth = 1 @@ -514,6 +529,8 @@ def groupViewStartHandler(self, name, attrs): self.checkBounds(attrs) if self.repeat_depth[-1]: self.handleError('Element bounds inside repeat') + elif self.collection_depth: + self.handleError('Element bounds inside collection') self.ignored_depth = 1 else: self.handleError('Encountered unexpected element %s' % (name, )) @@ -521,7 +538,9 @@ def groupViewStartHandler(self, name, attrs): def groupViewEndHandler(self, name): self.variable_scopes.pop() - if self.repeat_depth[-1]: + if 'collection' == name: + self.collection_depth -= 1 + elif self.repeat_depth[-1]: self.repeat_depth[-1] -= 1 else: self.repeat_depth.pop() @@ -549,6 +568,9 @@ def startDocument(self): self.ignored_depth = 0 self.variable_scopes = [ ] self.repeat_depth = [ ] + self.collection_depth = 0 + self.has_collection = False + self.has_legacy_object = False self.have_bounds = [ ] self.have_orientation = [ ] self.have_color = [ ] @@ -567,6 +589,9 @@ def endDocument(self): del self.ignored_depth del self.variable_scopes del self.repeat_depth + del self.collection_depth + del self.has_collection + del self.has_legacy_object del self.have_bounds del self.have_orientation del self.have_color diff --git a/src/devices/bus/rs232/hlemouse.cpp b/src/devices/bus/rs232/hlemouse.cpp index a6452b9dcef5e..38e9bfd5c209a 100644 --- a/src/devices/bus/rs232/hlemouse.cpp +++ b/src/devices/bus/rs232/hlemouse.cpp @@ -247,7 +247,7 @@ WRITE_LINE_MEMBER(hle_msmouse_device_base::input_dtr) WRITE_LINE_MEMBER(hle_msmouse_device_base::input_rts) { - m_dtr = state ? 1U : 0U; + m_rts = state ? 1U : 0U; check_enable(); } diff --git a/src/emu/render.cpp b/src/emu/render.cpp index 4d621508a2048..3bc0e8ef5db5c 100644 --- a/src/emu/render.cpp +++ b/src/emu/render.cpp @@ -1067,7 +1067,7 @@ unsigned render_target::configured_view(const char *viewname, int targetindex, i if (strcmp(viewname, "auto") != 0) { // scan for a matching view name - size_t viewlen = strlen(viewname); + size_t const viewlen = strlen(viewname); for (unsigned i = 0; !view && (m_views.size() > i); ++i) if (!core_strnicmp(m_views[i].first.get().name().c_str(), viewname, viewlen)) view = &m_views[i].first.get(); @@ -1082,21 +1082,22 @@ unsigned render_target::configured_view(const char *viewname, int targetindex, i // if we have enough targets to be one per screen, assign in order if (numtargets >= screens.size()) { - int const ourindex = index() % screens.size(); - screen_device &screen = screens[ourindex]; - // find the first view with this screen and this screen only - unsigned viewindex; - for (view = view_by_index(viewindex = 0); view != nullptr; view = view_by_index(++viewindex)) + screen_device const &screen = screens[index() % screens.size()]; + for (unsigned i = 0; !view && (m_views.size() > i); ++i) { - auto const &viewscreens = view->screens(); - if (viewscreens.empty()) + for (screen_device const &viewscreen : m_views[i].first.get().screens()) { - view = nullptr; - break; + if (&viewscreen == &screen) + { + view = &m_views[i].first.get(); + } + else + { + view = nullptr; + break; + } } - else if (std::find_if(viewscreens.begin(), viewscreens.end(), [&screen] (auto const &scr) { return &scr.get() != &screen; }) == viewscreens.end()) - break; } } @@ -1105,18 +1106,10 @@ unsigned render_target::configured_view(const char *viewname, int targetindex, i { for (unsigned i = 0; !view && (m_views.size() > i); ++i) { - view = &m_views[i].first.get(); - if (view->screen_count() >= screens.size()) - { - for (screen_device &screen : screens) - { - if (!view->has_screen(screen)) - { - view = nullptr; - break; - } - } - } + layout_view &curview = m_views[i].first; + if (curview.screen_count() >= screens.size()) + if (std::find_if(screens.begin(), screens.end(), [&curview] (screen_device &screen) { return !curview.has_screen(screen); }) == screens.end()) + view = &curview; } } } @@ -2631,7 +2624,7 @@ void render_target::config_load(util::xml::data_node const &targetnode) if (m_views.end() == view) continue; - for (util::xml::data_node const *vistogglenode = viewnode->get_child("vistoggle"); vistogglenode; vistogglenode = vistogglenode->get_next_sibling("vistoggle")) + for (util::xml::data_node const *vistogglenode = viewnode->get_child("collection"); vistogglenode; vistogglenode = vistogglenode->get_next_sibling("collection")) { char const *const vistogglename = vistogglenode->get_attribute_string("name", nullptr); if (!vistogglename) @@ -2642,7 +2635,7 @@ void render_target::config_load(util::xml::data_node const &targetnode) if (vistoggles.end() == vistoggle) continue; - int const enable = vistogglenode->get_attribute_int("enabled", -1); + int const enable = vistogglenode->get_attribute_int("visible", -1); if (0 <= enable) { if (enable) @@ -2716,9 +2709,9 @@ bool render_target::config_save(util::xml::data_node &targetnode) viewnode = targetnode.add_child("view", nullptr); viewnode->set_attribute("name", view.first.get().name().c_str()); } - util::xml::data_node *const vistogglenode = viewnode->add_child("vistoggle", nullptr); + util::xml::data_node *const vistogglenode = viewnode->add_child("collection", nullptr); vistogglenode->set_attribute("name", toggle.name().c_str()); - vistogglenode->set_attribute_int("enabled", BIT(view.second, i)); + vistogglenode->set_attribute_int("visible", BIT(view.second, i)); changed = true; } ++i; diff --git a/src/emu/render.h b/src/emu/render.h index d846dce58c1ff..ab7daa753e3f9 100644 --- a/src/emu/render.h +++ b/src/emu/render.h @@ -716,6 +716,7 @@ class layout_group group_map &groupmap, std::vector &seen, bool empty, + bool collection, bool repeat, bool init); diff --git a/src/emu/rendlay.cpp b/src/emu/rendlay.cpp index 1d4a8f2326500..3eedf6c728fca 100644 --- a/src/emu/rendlay.cpp +++ b/src/emu/rendlay.cpp @@ -1116,7 +1116,7 @@ void layout_group::resolve_bounds(environment &env, group_map &groupmap, std::ve { set_render_bounds_xy(m_bounds, 0.0F, 0.0F, 1.0F, 1.0F); environment local(env); - resolve_bounds(local, m_groupnode, groupmap, seen, true, false, true); + resolve_bounds(local, m_groupnode, groupmap, seen, true, false, false, true); } seen.pop_back(); } @@ -1127,6 +1127,7 @@ void layout_group::resolve_bounds( group_map &groupmap, std::vector &seen, bool empty, + bool collection, bool repeat, bool init) { @@ -1216,16 +1217,16 @@ void layout_group::resolve_bounds( environment local(env); for (int i = 0; !m_bounds_resolved && (count > i); ++i) { - resolve_bounds(local, *itemnode, groupmap, seen, empty, true, !i); + resolve_bounds(local, *itemnode, groupmap, seen, empty, false, true, !i); local.increment_parameters(); } } - else if (!strcmp(itemnode->get_name(), "vistoggle")) + else if (!strcmp(itemnode->get_name(), "collection")) { if (!env.get_attribute_string(*itemnode, "name", nullptr)) - throw layout_syntax_error("vistoggle must have name attribute"); + throw layout_syntax_error("collection must have name attribute"); environment local(env); - resolve_bounds(local, *itemnode, groupmap, seen, empty, false, true); + resolve_bounds(local, *itemnode, groupmap, seen, empty, true, false, true); } else { @@ -1241,7 +1242,7 @@ void layout_group::resolve_bounds( m_bounds_resolved = resolved; } - if (!repeat) + if (!collection && !repeat) m_bounds_resolved = true; } @@ -3364,12 +3365,12 @@ void layout_view::add_items( local.increment_parameters(); } } - else if (!strcmp(itemnode->get_name(), "vistoggle")) + else if (!strcmp(itemnode->get_name(), "collection")) { char const *name(env.get_attribute_string(*itemnode, "name", nullptr)); if (!name) - throw layout_syntax_error("vistoggle must have name attribute"); - m_defvismask |= u32(env.get_attribute_bool(*itemnode, "enabled", true) ? 1 : 0) << m_vistoggles.size(); // TODO: make this less hacky + throw layout_syntax_error("collection must have name attribute"); + 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()); add_items(layers, local, *itemnode, elemmap, groupmap, orientation, trans, color, false, false, true); diff --git a/src/mame/drivers/mekd4.cpp b/src/mame/drivers/mekd4.cpp index 1b0828f1c4797..f03c8e3248f46 100644 --- a/src/mame/drivers/mekd4.cpp +++ b/src/mame/drivers/mekd4.cpp @@ -239,28 +239,32 @@ FS 0 to F ******************************************************************************/ #include "emu.h" + +#include "bus/rs232/rs232.h" #include "cpu/m6809/m6809.h" -#include "machine/input_merger.h" -#include "machine/bankdev.h" +#include "imagedev/cassette.h" +#include "imagedev/snapquik.h" #include "machine/6821pia.h" #include "machine/6850acia.h" -#include "machine/mc14411.h" +#include "machine/bankdev.h" #include "machine/clock.h" +#include "machine/input_merger.h" +#include "machine/mc14411.h" #include "machine/timer.h" #include "sound/wave.h" -#include "speaker.h" -#include "bus/rs232/rs232.h" -#include "mekd4.lh" -#include "imagedev/cassette.h" -#include "imagedev/snapquik.h" #include "video/pwm.h" // MEK68R2 #include "machine/terminal.h" #include "video/mc6845.h" + #include "emupal.h" -#include "screen.h" #include "render.h" +#include "screen.h" +#include "speaker.h" + +#include "mekd4.lh" + class mekd4_state : public driver_device { diff --git a/src/mame/drivers/psikyo4.cpp b/src/mame/drivers/psikyo4.cpp index 02d14e582734a..5018829362def 100644 --- a/src/mame/drivers/psikyo4.cpp +++ b/src/mame/drivers/psikyo4.cpp @@ -617,8 +617,6 @@ void psikyo4_state::ps4big(machine_config &config) PALETTE(config, m_palette[0]).set_entries((0x2000/4) + 1); /* palette + clear colour */ PALETTE(config, m_palette[1]).set_entries((0x2000/4) + 1); - config.set_default_layout(layout_dualhsxs); - SCREEN(config, m_lscreen, SCREEN_TYPE_RASTER); m_lscreen->set_refresh_hz(60); m_lscreen->set_vblank_time(ATTOSECONDS_IN_USEC(0)); diff --git a/src/mame/layout/280zzzap.lay b/src/mame/layout/280zzzap.lay index 548b73f7f7c15..8122ae7cf13f3 100644 --- a/src/mame/layout/280zzzap.lay +++ b/src/mame/layout/280zzzap.lay @@ -67,64 +67,74 @@ license:CC0 - - - - - - - - + + + + + + + + + + + - - - - - - - - + + + + + + + + + + + - - - - - - - - + + + + + + + + + + - - - - - - - - + + + + + + + + + + - + - + diff --git a/src/mame/layout/ace.lay b/src/mame/layout/ace.lay index 614a098828a28..5ec0ca3a28db8 100644 --- a/src/mame/layout/ace.lay +++ b/src/mame/layout/ace.lay @@ -14,8 +14,8 @@ license:CC0 - + - + diff --git a/src/mame/layout/alinvade.lay b/src/mame/layout/alinvade.lay index efb4bb2b1a277..eb8c571ae1504 100644 --- a/src/mame/layout/alinvade.lay +++ b/src/mame/layout/alinvade.lay @@ -22,8 +22,8 @@ license:CC0 - + - + diff --git a/src/mame/layout/armora.lay b/src/mame/layout/armora.lay index 8534545b9a617..a91e2f0477520 100644 --- a/src/mame/layout/armora.lay +++ b/src/mame/layout/armora.lay @@ -148,43 +148,46 @@ license:CC0 - - - - - + + + + + + + - - - + + - - + + + + + + + + + + + + + + + - - - - - - + + - - - - - - + + - - - - + diff --git a/src/mame/layout/astdelux.lay b/src/mame/layout/astdelux.lay index b0c6c68b1a05a..e1ee1492dffbf 100644 --- a/src/mame/layout/astdelux.lay +++ b/src/mame/layout/astdelux.lay @@ -14,8 +14,8 @@ license:CC0 - + - + diff --git a/src/mame/layout/attackfc.lay b/src/mame/layout/attackfc.lay index 8aabbd1d73b4e..0315419728898 100644 --- a/src/mame/layout/attackfc.lay +++ b/src/mame/layout/attackfc.lay @@ -14,8 +14,8 @@ license:CC0 - + - + diff --git a/src/mame/layout/avalnche.lay b/src/mame/layout/avalnche.lay index ff519254ef8b9..1143f2c08a88b 100644 --- a/src/mame/layout/avalnche.lay +++ b/src/mame/layout/avalnche.lay @@ -30,8 +30,8 @@ license:CC0 - + - + diff --git a/src/mame/layout/barricad.lay b/src/mame/layout/barricad.lay index 3b236920f8dd5..00e4fd9d8d3ef 100644 --- a/src/mame/layout/barricad.lay +++ b/src/mame/layout/barricad.lay @@ -20,16 +20,16 @@ license:CC0 - + - + - + - + diff --git a/src/mame/layout/barrier.lay b/src/mame/layout/barrier.lay index 0bf394a412fa9..3664f8e28b939 100644 --- a/src/mame/layout/barrier.lay +++ b/src/mame/layout/barrier.lay @@ -14,8 +14,8 @@ license:CC0 - + - + diff --git a/src/mame/layout/beaminv.lay b/src/mame/layout/beaminv.lay index 846e33c4a01f7..811159f97566c 100644 --- a/src/mame/layout/beaminv.lay +++ b/src/mame/layout/beaminv.lay @@ -26,8 +26,8 @@ license:CC0 - + - + diff --git a/src/mame/layout/blockade.lay b/src/mame/layout/blockade.lay index 000a5731a8af0..c78cd711feea5 100644 --- a/src/mame/layout/blockade.lay +++ b/src/mame/layout/blockade.lay @@ -20,16 +20,16 @@ license:CC0 - + - + - + - + diff --git a/src/mame/layout/breakout.lay b/src/mame/layout/breakout.lay index eded2e3b2a2e8..bba1cca529f51 100644 --- a/src/mame/layout/breakout.lay +++ b/src/mame/layout/breakout.lay @@ -72,17 +72,21 @@ license:CC0 - - - - - - - - - - - - + + + + + + + + + + + + + + + + diff --git a/src/mame/layout/bzone.lay b/src/mame/layout/bzone.lay index aae231c13fc9c..a62af6e6727ad 100644 --- a/src/mame/layout/bzone.lay +++ b/src/mame/layout/bzone.lay @@ -18,8 +18,8 @@ license:CC0 - + - + diff --git a/src/mame/layout/circus.lay b/src/mame/layout/circus.lay index fb48532bc599c..f78e13453f04b 100644 --- a/src/mame/layout/circus.lay +++ b/src/mame/layout/circus.lay @@ -30,8 +30,8 @@ license:CC0 - + - + diff --git a/src/mame/layout/clowns.lay b/src/mame/layout/clowns.lay index a4a7c0a3febef..85b3536bf641d 100644 --- a/src/mame/layout/clowns.lay +++ b/src/mame/layout/clowns.lay @@ -30,8 +30,8 @@ license:CC0 - + - + diff --git a/src/mame/layout/copsnrob.lay b/src/mame/layout/copsnrob.lay index 000cd517a196e..81652bdfd9c50 100644 --- a/src/mame/layout/copsnrob.lay +++ b/src/mame/layout/copsnrob.lay @@ -22,8 +22,8 @@ license:CC0 - + - + diff --git a/src/mame/layout/cosmicm.lay b/src/mame/layout/cosmicm.lay index 33b53fe7075d1..544efa2d364d5 100644 --- a/src/mame/layout/cosmicm.lay +++ b/src/mame/layout/cosmicm.lay @@ -22,8 +22,8 @@ license:CC0 - + - + diff --git a/src/mame/layout/crash.lay b/src/mame/layout/crash.lay index a88ff6d766ca7..60cc746462dbf 100644 --- a/src/mame/layout/crash.lay +++ b/src/mame/layout/crash.lay @@ -30,8 +30,8 @@ license:CC0 - + - + diff --git a/src/mame/layout/deadeye.lay b/src/mame/layout/deadeye.lay index 63d4adc728ce4..e060863cd1567 100644 --- a/src/mame/layout/deadeye.lay +++ b/src/mame/layout/deadeye.lay @@ -38,8 +38,8 @@ license:CC0 - + - + diff --git a/src/mame/layout/demon.lay b/src/mame/layout/demon.lay index 3a9288e6a2ea7..dfad92942c158 100644 --- a/src/mame/layout/demon.lay +++ b/src/mame/layout/demon.lay @@ -26,8 +26,8 @@ license:CC0 - + - + diff --git a/src/mame/layout/depthch.lay b/src/mame/layout/depthch.lay index d4383780e3fa2..3255fcc78eb80 100644 --- a/src/mame/layout/depthch.lay +++ b/src/mame/layout/depthch.lay @@ -16,8 +16,8 @@ license:CC0 - + - + diff --git a/src/mame/layout/dragrace.lay b/src/mame/layout/dragrace.lay index de3fb5df7f39f..7eb5fc24128b2 100644 --- a/src/mame/layout/dragrace.lay +++ b/src/mame/layout/dragrace.lay @@ -36,54 +36,54 @@ license:CC0 - - + + - + - + - + - - - + + - - - + + - - - + + - - - + + - - + - + - - + + + - - + + + - - + + + - - + + + - + + diff --git a/src/mame/layout/escmars.lay b/src/mame/layout/escmars.lay index 342bcc20fe59e..b4c174f681dcb 100644 --- a/src/mame/layout/escmars.lay +++ b/src/mame/layout/escmars.lay @@ -22,12 +22,12 @@ license:CC0 - + - + - + diff --git a/src/mame/layout/et3400.lay b/src/mame/layout/et3400.lay index 9c05a2dcbd70c..e7679de9b45ed 100644 --- a/src/mame/layout/et3400.lay +++ b/src/mame/layout/et3400.lay @@ -168,64 +168,59 @@ license:CC0 - + - - - - - - + + + + + + - - - - - - + + + + + + - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + - - - - - - - - + + + + - - - - - + + + + diff --git a/src/mame/layout/galactic.lay b/src/mame/layout/galactic.lay index 3aa135c65a2bd..64704ced2772d 100644 --- a/src/mame/layout/galactic.lay +++ b/src/mame/layout/galactic.lay @@ -22,12 +22,12 @@ license:CC0 - + - + - + diff --git a/src/mame/layout/geebee.lay b/src/mame/layout/geebee.lay index 11b4985b4cbeb..fcfe4ed687d75 100644 --- a/src/mame/layout/geebee.lay +++ b/src/mame/layout/geebee.lay @@ -72,8 +72,8 @@ license:CC0 - + - + diff --git a/src/mame/layout/gunchamp.lay b/src/mame/layout/gunchamp.lay index 467367d06e246..5b8785b7414a6 100644 --- a/src/mame/layout/gunchamp.lay +++ b/src/mame/layout/gunchamp.lay @@ -69,8 +69,8 @@ license:CC0 - + - + diff --git a/src/mame/layout/gunchamps.lay b/src/mame/layout/gunchamps.lay index c1e2b6f88afbe..1154c2b532011 100644 --- a/src/mame/layout/gunchamps.lay +++ b/src/mame/layout/gunchamps.lay @@ -69,8 +69,8 @@ license:CC0 - + - + diff --git a/src/mame/layout/gunfight.lay b/src/mame/layout/gunfight.lay index c03824382baac..48ad62f9122f0 100644 --- a/src/mame/layout/gunfight.lay +++ b/src/mame/layout/gunfight.lay @@ -14,8 +14,8 @@ license:CC0 - + - + diff --git a/src/mame/layout/gypsyjug.lay b/src/mame/layout/gypsyjug.lay index e645c93b4455f..bf20371968f67 100644 --- a/src/mame/layout/gypsyjug.lay +++ b/src/mame/layout/gypsyjug.lay @@ -42,8 +42,8 @@ license:CC0 - + - + diff --git a/src/mame/layout/invad2ct.lay b/src/mame/layout/invad2ct.lay index 328ced839c2e0..6cc6aa1b2d440 100644 --- a/src/mame/layout/invad2ct.lay +++ b/src/mame/layout/invad2ct.lay @@ -50,8 +50,8 @@ license:CC0 - + - + diff --git a/src/mame/layout/invaders.lay b/src/mame/layout/invaders.lay index f51ff058d2b9a..74897d58ab339 100644 --- a/src/mame/layout/invaders.lay +++ b/src/mame/layout/invaders.lay @@ -26,8 +26,8 @@ license:CC0 - + - + diff --git a/src/mame/layout/irrmaze.lay b/src/mame/layout/irrmaze.lay index 467ca89b6def2..6ce23deb312d3 100644 --- a/src/mame/layout/irrmaze.lay +++ b/src/mame/layout/irrmaze.lay @@ -68,34 +68,38 @@ copyright-holders:Vas Crabb - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/mame/layout/lazercmd.lay b/src/mame/layout/lazercmd.lay index 3810eba0e2eec..68d76d8866b2f 100644 --- a/src/mame/layout/lazercmd.lay +++ b/src/mame/layout/lazercmd.lay @@ -34,8 +34,8 @@ license:CC0 - + - + diff --git a/src/mame/layout/lbeach.lay b/src/mame/layout/lbeach.lay index c05966966092b..c7cb31d3ec6bc 100644 --- a/src/mame/layout/lbeach.lay +++ b/src/mame/layout/lbeach.lay @@ -34,11 +34,15 @@ license:CC0 - - - - - - + + + + + + + + + + diff --git a/src/mame/layout/ltcasinn.lay b/src/mame/layout/ltcasinn.lay index 2e51320a5d8b2..9ae0da3031b65 100644 --- a/src/mame/layout/ltcasinn.lay +++ b/src/mame/layout/ltcasinn.lay @@ -18,26 +18,26 @@ Simple layout for Little Casino (color) and clones - + - + - + - - + + - - + + - - + + - - + + - + diff --git a/src/mame/layout/ltcasino.lay b/src/mame/layout/ltcasino.lay index 465738a9bbc1e..7fb11a308cb7f 100644 --- a/src/mame/layout/ltcasino.lay +++ b/src/mame/layout/ltcasino.lay @@ -36,29 +36,33 @@ Simple layout for Little Casino (monochrome) - - - + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - + + + + + diff --git a/src/mame/layout/maze.lay b/src/mame/layout/maze.lay index 49b11a2a19261..6f95cc6fa66ec 100644 --- a/src/mame/layout/maze.lay +++ b/src/mame/layout/maze.lay @@ -13,8 +13,8 @@ license:CC0 - + - + diff --git a/src/mame/layout/mchess.lay b/src/mame/layout/mchess.lay index bcbeb011f48a6..aac18738a07c0 100644 --- a/src/mame/layout/mchess.lay +++ b/src/mame/layout/mchess.lay @@ -59,89 +59,95 @@ license:CC0 - + + + + - - - - - - - - + + + - - - + + + + + + + - - - - - - - + + + + + + + - + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -151,12 +157,12 @@ license:CC0 - - - + + + - + diff --git a/src/mame/layout/medlanes.lay b/src/mame/layout/medlanes.lay index 1636a7fed8308..f84d35f607829 100644 --- a/src/mame/layout/medlanes.lay +++ b/src/mame/layout/medlanes.lay @@ -14,8 +14,8 @@ license:CC0 - + - + diff --git a/src/mame/layout/mekd2.lay b/src/mame/layout/mekd2.lay index 05f2393338dc4..c129f6c6df5f1 100644 --- a/src/mame/layout/mekd2.lay +++ b/src/mame/layout/mekd2.lay @@ -17,26 +17,26 @@ license:CC0 - + - - + + - - + + - - + + - - + + - - + + - - + + - + diff --git a/src/mame/layout/mekd3.lay b/src/mame/layout/mekd3.lay index 5959708b59ba2..51de97bd209ad 100644 --- a/src/mame/layout/mekd3.lay +++ b/src/mame/layout/mekd3.lay @@ -218,90 +218,98 @@ license:CC0 - + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - + - + - + - - - - - + + + + + - - - - - + + + + + - - - - - + + + + + - - - - - + + + + + - - - - - + + + + + - - - - + + + + + + + + - - - - + + + + + + + + - + - + diff --git a/src/mame/layout/mekd4.lay b/src/mame/layout/mekd4.lay index 5959708b59ba2..51de97bd209ad 100644 --- a/src/mame/layout/mekd4.lay +++ b/src/mame/layout/mekd4.lay @@ -218,90 +218,98 @@ license:CC0 - + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - + - + - + - - - - - + + + + + - - - - - + + + + + - - - - - + + + + + - - - - - + + + + + - - - - - + + + + + - - - - + + + + + + + + - - - - + + + + + + + + - + - + diff --git a/src/mame/layout/mekd5.lay b/src/mame/layout/mekd5.lay index 0f1caea9b1477..8b126fff515eb 100644 --- a/src/mame/layout/mekd5.lay +++ b/src/mame/layout/mekd5.lay @@ -218,82 +218,78 @@ license:CC0 - + - - + + - - + + - - + + - - + + - - + + - - + + - + - + - + - - - - - + + + + + - - - - - + + + + + - - - - - + + + + + - - - - - + + + + + - - - - - + + + + + - + - + - + - - - - diff --git a/src/mame/layout/minferno.lay b/src/mame/layout/minferno.lay index cba07f7ead83b..5a1f89952b34d 100644 --- a/src/mame/layout/minferno.lay +++ b/src/mame/layout/minferno.lay @@ -30,8 +30,8 @@ license:CC0 - + - + diff --git a/src/mame/layout/model1io2.lay b/src/mame/layout/model1io2.lay index a0f84119241bc..785b3b4540e18 100644 --- a/src/mame/layout/model1io2.lay +++ b/src/mame/layout/model1io2.lay @@ -30,20 +30,20 @@ license:CC0 - + - + - + - - + + - + diff --git a/src/mame/layout/navarone.lay b/src/mame/layout/navarone.lay index 2c4b6653d4475..0b9792d62322e 100644 --- a/src/mame/layout/navarone.lay +++ b/src/mame/layout/navarone.lay @@ -32,8 +32,8 @@ license:CC0 - + - + diff --git a/src/mame/layout/omegrace.lay b/src/mame/layout/omegrace.lay index 0223ec9a14342..67ac30b776c83 100644 --- a/src/mame/layout/omegrace.lay +++ b/src/mame/layout/omegrace.lay @@ -14,8 +14,8 @@ license:CC0 - + - + diff --git a/src/mame/layout/phantom2.lay b/src/mame/layout/phantom2.lay index 0d775a88b6e2e..2bb585c1d86be 100644 --- a/src/mame/layout/phantom2.lay +++ b/src/mame/layout/phantom2.lay @@ -14,8 +14,8 @@ license:CC0 - + - + diff --git a/src/mame/layout/quizshow.lay b/src/mame/layout/quizshow.lay index 652db6a29a724..af2e0fbe4db7e 100644 --- a/src/mame/layout/quizshow.lay +++ b/src/mame/layout/quizshow.lay @@ -38,8 +38,8 @@ license:CC0 - + - + diff --git a/src/mame/layout/redbaron.lay b/src/mame/layout/redbaron.lay index b0c6c68b1a05a..e1ee1492dffbf 100644 --- a/src/mame/layout/redbaron.lay +++ b/src/mame/layout/redbaron.lay @@ -14,8 +14,8 @@ license:CC0 - + - + diff --git a/src/mame/layout/rz1.lay b/src/mame/layout/rz1.lay index 0f81ef2f0c01a..eefbc3697a4bc 100644 --- a/src/mame/layout/rz1.lay +++ b/src/mame/layout/rz1.lay @@ -122,523 +122,527 @@ Casio RZ-1 layout - - - + + + + - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + - - - - - - - - - + + + + + + + + + - + - - - - - - + + + + + + - + - - - - - - - - - + + + + + + + + + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - - - - - + + + + + + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/mame/layout/rzone.lay b/src/mame/layout/rzone.lay index e184ef809a658..ce5b8ad45faf2 100644 --- a/src/mame/layout/rzone.lay +++ b/src/mame/layout/rzone.lay @@ -6,9 +6,8 @@ license:CC0 - - - + + @@ -17,8 +16,6 @@ license:CC0 - - - + diff --git a/src/mame/layout/sbrkout.lay b/src/mame/layout/sbrkout.lay index 1232b73b628fd..70e64acdfafa2 100644 --- a/src/mame/layout/sbrkout.lay +++ b/src/mame/layout/sbrkout.lay @@ -34,8 +34,8 @@ license:CC0 - + - + diff --git a/src/mame/layout/seawolf.lay b/src/mame/layout/seawolf.lay index 46393b0dcbc75..b5bec2521df1b 100644 --- a/src/mame/layout/seawolf.lay +++ b/src/mame/layout/seawolf.lay @@ -4,6 +4,8 @@ license:CC0 --> + + @@ -104,93 +106,93 @@ license:CC0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/src/mame/layout/shuttlei.lay b/src/mame/layout/shuttlei.lay index 40d8d90df9321..79533b49043ff 100644 --- a/src/mame/layout/shuttlei.lay +++ b/src/mame/layout/shuttlei.lay @@ -18,12 +18,12 @@ license:CC0 - + - + - + diff --git a/src/mame/layout/skydiver.lay b/src/mame/layout/skydiver.lay index bddeae2c73ab9..7ffe2ec2d9b52 100644 --- a/src/mame/layout/skydiver.lay +++ b/src/mame/layout/skydiver.lay @@ -14,8 +14,8 @@ license:CC0 - + - + diff --git a/src/mame/layout/solarq.lay b/src/mame/layout/solarq.lay index f91322d299b0b..d96c8f1b3f032 100644 --- a/src/mame/layout/solarq.lay +++ b/src/mame/layout/solarq.lay @@ -22,8 +22,8 @@ license:CC0 - + - + diff --git a/src/mame/layout/spacecom.lay b/src/mame/layout/spacecom.lay index b6a5d293818ac..2ebf376144ec3 100644 --- a/src/mame/layout/spacecom.lay +++ b/src/mame/layout/spacecom.lay @@ -26,8 +26,8 @@ license:CC0 - + - + diff --git a/src/mame/layout/spacezap.lay b/src/mame/layout/spacezap.lay index fe5b4cd736411..bb6d690a0f5de 100644 --- a/src/mame/layout/spacezap.lay +++ b/src/mame/layout/spacezap.lay @@ -208,16 +208,14 @@ license:CC0 - - - + - + diff --git a/src/mame/layout/spacwalk.lay b/src/mame/layout/spacwalk.lay index 92236dc964f5b..d74b63c4836f5 100644 --- a/src/mame/layout/spacwalk.lay +++ b/src/mame/layout/spacwalk.lay @@ -53,8 +53,8 @@ license:CC0 - + - + diff --git a/src/mame/layout/sstrangr.lay b/src/mame/layout/sstrangr.lay index a938fa4d15008..d3557830c9cee 100644 --- a/src/mame/layout/sstrangr.lay +++ b/src/mame/layout/sstrangr.lay @@ -61,16 +61,16 @@ license:CC0 - + - + - + - + diff --git a/src/mame/layout/starcas.lay b/src/mame/layout/starcas.lay index c850e08e1d543..79131d3a125ec 100644 --- a/src/mame/layout/starcas.lay +++ b/src/mame/layout/starcas.lay @@ -26,8 +26,8 @@ license:CC0 - + - + diff --git a/src/mame/layout/summit.lay b/src/mame/layout/summit.lay index 9fd33fecf40f6..0dd0106e8aeaa 100644 --- a/src/mame/layout/summit.lay +++ b/src/mame/layout/summit.lay @@ -50,62 +50,62 @@ Simple layout for Push-Over (Summit Coin) - + - + - + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - + - + - - + + - - + + - - + + - - + + - - + + - - + + - + diff --git a/src/mame/layout/sundance.lay b/src/mame/layout/sundance.lay index db086b53141f0..c82102d18ca21 100644 --- a/src/mame/layout/sundance.lay +++ b/src/mame/layout/sundance.lay @@ -14,8 +14,8 @@ license:CC0 - + - + diff --git a/src/mame/layout/superbug.lay b/src/mame/layout/superbug.lay index 99d9f54c2f499..c9cdfb2bbf431 100644 --- a/src/mame/layout/superbug.lay +++ b/src/mame/layout/superbug.lay @@ -7,10 +7,13 @@ license:CC0 - - + + + + + + - @@ -18,10 +21,9 @@ license:CC0 - - - - + + + diff --git a/src/mame/layout/tailg.lay b/src/mame/layout/tailg.lay index 152574873b81f..e3a8a78f5361e 100644 --- a/src/mame/layout/tailg.lay +++ b/src/mame/layout/tailg.lay @@ -14,8 +14,8 @@ license:CC0 - + - + diff --git a/src/mame/layout/tinv2650.lay b/src/mame/layout/tinv2650.lay index 3f8b15edb96c4..fdde18830961d 100644 --- a/src/mame/layout/tinv2650.lay +++ b/src/mame/layout/tinv2650.lay @@ -26,8 +26,8 @@ license:CC0 - + - + diff --git a/src/mame/layout/trvmadns.lay b/src/mame/layout/trvmadns.lay index 2bf4e3d0371a5..d7712b72ba66f 100644 --- a/src/mame/layout/trvmadns.lay +++ b/src/mame/layout/trvmadns.lay @@ -27,29 +27,29 @@ Simple layout for Trivia Madness - + - + - + - - + + - - + + - - + + - - + + - - + + - + diff --git a/src/mame/layout/v4psi.lay b/src/mame/layout/v4psi.lay index 85e195d9429b1..b6b9c476bd4a7 100644 --- a/src/mame/layout/v4psi.lay +++ b/src/mame/layout/v4psi.lay @@ -22,9 +22,9 @@ license:CC0 - + - + diff --git a/src/mame/layout/vgmplay.lay b/src/mame/layout/vgmplay.lay index 6ebf67aea8627..5dc7289379118 100644 --- a/src/mame/layout/vgmplay.lay +++ b/src/mame/layout/vgmplay.lay @@ -125,127 +125,131 @@ license:CC0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/mame/layout/video21.lay b/src/mame/layout/video21.lay index f63a9d51f5c93..0c507bd486cec 100644 --- a/src/mame/layout/video21.lay +++ b/src/mame/layout/video21.lay @@ -110,28 +110,32 @@ license:CC0 - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/mame/layout/videosaa.lay b/src/mame/layout/videosaa.lay index 3daf74a10e746..264ea4e06036e 100644 --- a/src/mame/layout/videosaa.lay +++ b/src/mame/layout/videosaa.lay @@ -27,29 +27,29 @@ Simple layout for games running on Videos A A hardware - + - + - + - - + + - - + + - - + + - - + + - - + + - + diff --git a/src/mame/layout/warrior.lay b/src/mame/layout/warrior.lay index 0b116013efbf9..d9f5484bb9f0b 100644 --- a/src/mame/layout/warrior.lay +++ b/src/mame/layout/warrior.lay @@ -45,24 +45,24 @@ license:CC0 - - + + - - + + - - + + - - + + - - + + diff --git a/src/mame/layout/wotw.lay b/src/mame/layout/wotw.lay index a4d901a971d30..8f8b6be4920c2 100644 --- a/src/mame/layout/wotw.lay +++ b/src/mame/layout/wotw.lay @@ -61,9 +61,9 @@ license:CC0 - + - + diff --git a/src/mame/layout/yosakdon.lay b/src/mame/layout/yosakdon.lay index f329bf397ae22..519b81e62f6dc 100644 --- a/src/mame/layout/yosakdon.lay +++ b/src/mame/layout/yosakdon.lay @@ -58,8 +58,8 @@ license:CC0 - + - +