Commit Graph

14 Commits

Author SHA1 Message Date
Vas Crabb
3b5f754717 docs: Add naming conventions for certain things.
This isn’t supposed to be too prescriptive.  The C++ stuff just codifies
some things we’ve managed to mostly agree on for public interfaces.  The
stuff for titles/descriptions is also just codifying existing rules so
there’s something to point people towards.  This will need to be refined
as we go forward.
2020-08-24 13:01:37 +10:00
Vas Crabb
2032eb60a6 Allow per-layer blend modes supplied by driver for screens, as required
for Laserdisc overlays.

This is a change in behaviour, and it means that games like Golly!
Ghost! will need an explicit blend mode specified in the XML.  I'm not
entirely happy with the situation, but a better, more general solution
than this would require some serious refactoring to MAME's renderer.
2019-07-27 23:24:37 +10:00
Vas Crabb
c38a3395e9 Make layout format more flexible:
* There is no longer a concept of "layers" - there are only screens and elements.
* Elements are now instantiated with <element ref="...">
* Screens and elements can have explicit blending mode specified with blend="..."
* Default blending mode for screens is "add" and default for other elements is "alpha"
* Other supported modes are "none" and "multiply"
* This removes the options to enable/disable layers individually - use views instead
* Legacy layouts can still be loaded, and support won't be removed for at least a year

The current artwork model is over-stretched.  It's based on a Space
Invaders cabinet model, and isn't applicable to a lot of the systems
MAME emulates now.  The fact that MAME has to switch to an "alternate"
mode to deal with games like Golly! Ghost! without requiring pre-matted
bitmaps shows that the Space Invaders model wasn't even adequate for
general arcade use.  It shows in that for a lot of the systems that
heavily depend on artwork, people just seem to randomly choose layers
for elements until they get something that works.  Also, the fact that
MAME will switch to an alternate (Golly! Ghost!) mode depending on the
combination of elements is a trap for people learning to make artwork.

There are cases that the current approach of implying the blending mode
from the layer doesn't work with.  Examples include LEDs behind
diffusers (requires additive blending for layout elements), and mutliple
stacked LCD panels (requires RGB multiplication for screens).

For configurability, it's now a lot easier to make multiple views using
groups.  For example, if you want to make it possible to hide the
control panel section of your layout, you can put the control panel
elements in a group and create views with and without it.

I will gradually migrate the internal artwork to use the new approach.
I have an XSLT stylesheet that helps with this, but I'm not comfortable
adding it because it isn't a complete solution and it still requires
manul steps.

I wanted to get the re-worked pointer handling done sooner so I could
push them both at the same time, but unfortunately various things have
prevented me from progressing as quickly as I wanted to.  Sorry guys,
that stuff's going to have to wait.
2019-07-06 00:23:20 +10:00
Vas Crabb
97b6717027 (nw) Clean up the mess on master
This effectively reverts b380514764 and
c24473ddff, restoring the state at
598cd52272.

Before pushing, please check that what you're about to push is sane.
Check your local commit log and ensure there isn't anything out-of-place
before pushing to mainline.  When things like this happen, it wastes
everyone's time.  I really don't need this in a week when real work™ is
busting my balls and I'm behind where I want to be with preparing for
MAME release.
2019-03-26 11:13:37 +11:00
andreasnaive
b380514764 Revert "conflict resolution (nw)"
This reverts commit c24473ddff, reversing
changes made to 009cba4fb8.
2019-03-25 23:13:40 +01:00
hap
2b53b22bb5 layout doc: reword (nw) 2019-03-25 13:04:27 +01:00
hap
cdde287597 layout doc: correction and add inputraw (this one actually does work the way inputmask was documented before) (nw) 2019-03-24 23:30:02 +01:00
Vas Crabb
cba80b7182 Make informational verbs a bit more consistent, reduce copy/pasted code, a slight performance improvement for reading localisation files, and more documentation clean-up/correction/clarification 2019-01-04 01:12:02 +11:00
Vas Crabb
82501770de srcclean and cleanup (nw) 2018-10-28 14:00:12 +11:00
Vas Crabb
e0df7a929f finish off layout documentation for now 2018-08-03 16:54:36 +10:00
Vas Crabb
6ea9ff9042 (nw) Further layout work:
* Allow <orientation> and <color> to work on group references
* Fix some corner cases where group bounds could be miscalculated
* Fix a corner case where MAME could incorrectly refuse to instantiate groups
* Add more checks to complay.py
* Document more of the layout format
2018-08-02 23:11:17 +10:00
Vas Crabb
4c0c840f96 (nw) be less eager to shadow variables in layouts, make highlights visible on white squares in modena 2018-07-31 23:54:12 +10:00
Vas Crabb
781d943b36 (nw) more layout documentation 2018-07-31 21:40:20 +10:00
Vas Crabb
0ce07a8a1e (nw) more render work:
* Clean up some corner cases in layouts with repeating blocks
* Make complay.py validate many more elements and attributes
* Make complay.py easier to use for just validating a layout
* Remove redundant view from Sega VMU layout
* Make buttons visually respond to input in whousetc.lay
* Add view with LED displays as well as terminal for aim65_40 and use repeats
* Clean up some outdated "game" terminology in clifront.cpp
* Initiaise a couple of members in tap/tun network module
* Start documenting layout format
2018-07-31 04:18:28 +10:00