Commit graph

15 commits

Author SHA1 Message Date
Vas Crabb
34a31ac42d Fixed various issues in internal layouts:
* plugins/layout: Log script errors at warning level rather than verbose
  level.
* microtouch.lay, pntnpuzl.lay: Improved pointer mapping code.
* Reordered all layouts to place views after element and group
  definitions and scripts last.  This matches how layout files are
  interpreted by MAME.
* Fixed various errors identified by validating layout files against an
  XSD schema.
2024-05-14 05:11:16 +10:00
Vas Crabb
e22aae63a1 -merit/mtouchxl.cpp: Added touch-enabled layout.
-ui/tapectrl.cpp: Ensure device monitored for media change is up-to-date.

-osd/windows: Changed a pointer to a const reference in an API.
2024-05-09 04:43:56 +10:00
Vas Crabb
59cbd883f8 sega/sega_beena.cpp: Hooked up barcode cards.
Systems promoted to working
---------------------------
Sega TV Ocha-Ken [QUFB]

Software list items promoted to working (tvochken.xml)
------------------------------------------------------
TV to Ocha-Card: Ocha-Ken 'Ho' to Seikatsu [Vas Crabb]
2023-12-14 13:14:26 +11:00
Vas Crabb
6e60af32c1 sega/sega_beena.cpp: Added basic book page display.
sega_beena_cart.xml: Put page scans in individual data areas.

frontend/mame/luaengine_mem.cpp: Added a raw read function for memory
regions.

plugins/layout: Added bitmap classes to layout sandbox.
2023-11-04 00:37:48 +11:00
hap
c13ec72934 plugins: enable layout plugin by default 2023-07-31 11:04:49 +02:00
Vas Crabb
b67b969bf0 -Improved some Lua APIs:
* Moved several machine lifecycle callbacks to the notifier/subscriber
  model.  The old callback registration model is still available for
  them for now, but prints a deprecation warning.
* Added pre-save/post-load notifications.
* Use a single allocated timer rather than one anonymous timer per
  waiter.  Waiters no longer prevent saved states from being loaded.
* Clean up outstanding waiters on stop or state load rather than just
  leaking them.
* Started documenting parts of the emulator interface object that should
  be relatively stable.

-imagedev/avivideo.cpp: Fixed an object leak on unload.  Also changed
 some other media image devices to use smart pointers.
2023-04-07 06:20:40 +10:00
Vas Crabb
27fc200678 Tie up a few loose ends:
* msx2_flop.xml: Fixed a couple of Japanese titles.
* plugins/layout: Added a couple of things to the layout script sandbox.
* Tidied up Hyper Neo Geo 64 code (srcclean etc.).
2023-03-08 00:16:47 +11:00
hap
c860119abb hegenerglaser/*: add clickable element to internal artwork that presses 2 buttons at the same time where applicable 2022-07-26 15:55:17 +02:00
Vas Crabb
4601e60391 plugins: Use SPDX short identifiers for licenses in exports (more precise and easier to localise), use CC0 for hiscore plugin rather than CC0. 2021-10-25 01:57:07 +11:00
Vas Crabb
9e36b6a6d9 More Lua interface cleanup - it's simpler with cleaner underlyng APIs.
Made the sound manager mute controls readable, and got rid of system
enable since it just controls system mute anyway.  This was causing
confusion: phantom2 was trying to use both independentlyt casuing the
mute bit to be ignored.

THe Lua interface changes are mostly changing methods to properties,
some renames to make things clearer, and some additional properties for
better control over snapshots.
2020-12-27 01:32:37 +11:00
Vas Crabb
cac83ba5b1 Expose enough of the layout system to Lua to allow position and colour to be animated. 2020-12-05 21:04:22 +11:00
Vas Crabb
ec80428647 Fairly significant overhaul of Lua engine and some cleanup.
The things that were previously called device iterators are not
iterators in the C++ sense of the word.  This is confusing for
newcomers.  These have been renamed to be device enumerators.

Several Lua methods and properties that previously returned tables now
return lightweight wrappers for the underlying objects.  This means
creating them is a lot faster, but you can't modify them, and the
performance characteristics of different operations varies.

The render manager's target list uses 1-based indexing to be more like
idiomatic Lua.

It's now possible to create a device enumerator on any device, and then
get subdevices (or sibling devices) using a relative tag.

Much more render/layout functionality has been exposed to Lua.  Layout
scripts now have access to the layout file and can directly set the
state of an item with no bindings, or register callbacks to obtain
state.  Some things that were previously methods are now read-only
properties.

Layout files are no longer required to supply a "name".  This was
problematic because the same layout file could be loaded for multiple
instances of the same device, and each instance of the layout file
should use the correct inputs (and in the future outputs) for the device
instance it's associated with.

This should also fix video output with MSVC builds by avoiding delegates
that return things that don't fit in a register.
2020-11-25 19:18:26 +11:00
Vas Crabb
7238415d1f srcclean (nw) 2016-11-27 09:56:49 +11:00
Vas Crabb
f5356a62de srcclean on lua plugins, too 2016-08-30 15:53:27 +10:00
cracyc
29d7699569 plugins/layout: layout embedded script helper plugin [Carl]
luaengine: callbacks for plugins (nw)
rendlay: layout tag external handler support (nw)
fidel_csc and mdndclab: example layout scripts (nw)
--
Neither layout script is complete.  The chess doesn't handle castling or en passant and the Dungeons and Dragons only does the walls.
2016-04-27 09:37:23 -05:00