Commit Graph

313 Commits

Author SHA1 Message Date
Vas Crabb
503332a986 -Lua cleanup and documentation migration checkpoint.
* Cleaned up some more of the Lua inteface.  Mostly replacing methods
  with properties, some consistency fixes, a few renames, some more
  exposed functionality, and a couple of properties that have no
  business being set from scripts made read-only.
* Moved a lot more Lua documentation out of source comments into the
  documentation, and expanded on it in the process.
* Got more UI code out of the input manager.
* Changed input sequence poller to a polymorphic class where you
  specify your intention upfront.
* Changed the cheat plugin to use UI Clear to clear hotkey assignments
  and leave them unchanged if the user starts assignment but doesn't
  press any switches.
* Ported AJR's fix for over-eager double-click recognition from SDL to
  Windows OSD.

-goldnpkr.cpp: Cleaned up inputs, using standard keyout and payout types
 and key assignments.
2020-12-16 02:18:52 +11:00
AJR
a7921a601b plugins/portname: Use emu.subst_env 2020-12-08 15:57:41 -05:00
AJR
e70d4ebb34 plugins: Replace environment variable substitution function with core version 2020-12-08 09:44:32 -05:00
Vas Crabb
e008c7b1b1 -Lua engine cleanup, input edition:
* Modernised and cleaned up Lua bindings for input classes.
* Exposed the input_sequence_poller class to Lua and updated the
  autofire and cheat plugins to use it, rather than continuing to
  pretend it's part of the input manager.
* Exposed more of the natural keyboard manager, including the ability
  to enable/disable individual keyboard and keypad devices like you
  can from the keyboard mode menu.
* Exposed a few more things on ioport_port and input_device.

-plugins/cheat: Fixed menu item not updating visually when disabling a
 cheat with UI Left.

-plugins/cheatfind: Fixed not finding the first screen after screen
 enumerator was exposed as an object rather than using a table.

-bwidow.cpp, pacman.cpp: Minor cleanup to recent changes.
2020-12-09 01:10:26 +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
1bdf8d272a frontend: Lua engine improvements.
Added methods for enabling and disabling breakpoints and watchpoints,
and made debugger views update when breakpoints/watchpoints are
manipulated from Lua.  Made breakpoints and watchpoints objects rather
than tables.  (It’s not possible to enable/disable a breakpoint or
watchpoint from the object itself, you have to go through its owners'
debug interface.)

Exposed more device_t members for dealing with child/sibling tags and
devices.  Also provided a way to get regions/shares/banks from a device
using relative tags rather than going through the memory manager with
absolute tags.
2020-11-30 12:01:14 +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
cracyc
1a4803c9ec hiscore.dat: fix stdragon 2020-11-23 20:24:34 -06:00
cracyc
9838b52f97 hiscore.dat: updates [Leezer] 2020-11-22 15:16:27 -06:00
cracyc
dc2e44c7be hiscore.dat: update with changed sets 2020-10-22 19:09:47 -05:00
Vas Crabb
6e807013c5 Disable SOUND_DEBUG for non-debug builds, and srcclean 2020-09-27 11:00:56 +10:00
cracyc
7f281a9d95 hiscore.dat: fix set names 2020-09-22 20:44:46 -05:00
npwoods
b8d6be3320
Fixing a cheat plugin bug 2020-09-19 11:02:29 -05:00
cracyc
cfd3c1fac6 plugins/cheat: small simplification 2020-09-15 20:38:39 -05:00
cracyc
90fd79601b
plugins/cheat: copy the cheat table to not expose internal state (#7238) 2020-09-15 09:37:47 -05:00
cracyc
692ff2c06f plugin/cheat: subtract min before dividing 2020-09-13 19:13:38 -05:00
cracyc
35bfe62b59 plugin/cheat: check value is a mulitple of step 2020-09-13 19:03:22 -05:00
cracyc
c70bc6be75 plugin/cheat: flesh out the exported interface a bit more 2020-09-13 16:37:53 -05:00
cracyc
9c4d1457da plugins: add emu.plugin table to contain plugin exported interfaces 2020-09-13 10:00:54 -05:00
cracyc
a03b22c555 cheat_simple: with game genie codes try 32k nes banks then fall back to 8k and warn with 6 char codes and banked prg 2020-09-08 18:51:03 -05:00
cracyc
1e61ba02fe hiscore.dat: gauntlet high scores are in the nvram, these cause more problems then they are worth 2020-09-03 16:31:44 -05:00
cracyc
44af4d00ed hiscore.dat: updates [Leezer] 2020-08-17 10:17:04 -05:00
cracyc
bdd7e205a9 hiscore.dat: update changed set names 2020-07-21 16:33:10 -05:00
Vas Crabb
718da3388c
plugins/autofire: remove leftover code from first attempt at removing empty configuration files 2020-07-19 23:07:39 +10:00
kunikuni
070eeeec3a
plugins/autofire: don't save 2bytes cfg file (nw) (#6969)
* plugins/autofire: don't save 2bytes cfg file (nw)

* Update autofire_save.lua
2020-07-19 23:05:00 +10:00
kunikuni
33fbb85d59
plugins/autofire: don't save 2bytes cfg file (#6960) 2020-07-17 15:05:23 -04:00
cracyc
cc093aaf50 hiscore.dat: updates [Leezer] 2020-04-22 09:51:57 -05:00
cracyc
f42d9f7d43 hiscore.dat: fix viewpoin (nw) 2020-03-10 12:24:54 -05:00
Vas Crabb
c39f46d6d2 Revert "added support for reading/writing hiscore files from cart images (#6130)"
This reverts commit a77313a987.

This seems to break high score support on things without cartridges.  I think it needs re-thinking.
2020-02-28 02:21:06 +11:00
eadmaster
a77313a987
added support for reading/writing hiscore files from cart images (#6130)
* added support for reading/writing hiscore files from cart images

example hiscore.dat entry:
````
nes,smb:
Super Mario Bros. (World).nes:
Super Mario Bros. (W) [!].nes:
@:maincpu,program,7df,4,0,0,ff
````

* store console hiscores in subdirs, added cart hashes support

* added back my prev changes

* added missing end

* using simpler regexpr for hiscore.ini parsing, fixed typo

* minor cleanups
2020-02-13 10:25:28 -05:00
cracyc
a0a658a111 fix various things. checkpointed the alphatpc16, will credit before next release (nw) 2020-02-11 17:04:36 -06:00
Vas Crabb
a7fec751ed srcclean, manual adjustments (nw) 2020-01-26 12:39:27 +11:00
R. Belmont
9730b87bbc
Merge pull request #6129 from eadmaster/patch-1
made read_config in hiscore lua plugin more robust
2020-01-04 16:09:27 -05:00
MooglyGuy
7486fe3ce0 -cheat_xml: Attempt at fixing Github issue #6114. Strip the leading colon from device names as necessary in order to avoid doubling of the root colon. [Ryan Holtz, DjDiabolik] 2020-01-04 14:06:13 +01:00
Andrea
9764233875
made read_config in hiscore lua plugin more robust 2020-01-04 10:10:19 +01:00
cracyc
5c226e1f99 hiscore.dat: fix old parsing errors (nw) 2019-12-08 14:54:47 -06:00
cracyc
c6dcf7e6be hiscore.dat: Updates [Leezer]
plugins/data: various fixes (nw)
2019-12-02 21:17:42 -06:00
cracyc
b32f90e5a9 plugins/data: small cleanups (nw) 2019-11-29 10:18:50 -06:00
cracyc
b5f648cca7 plugins/data: that shouldn't be there (nw) 2019-11-29 08:36:30 -06:00
cracyc
8dbea98e20 plugins/data: loading fixes (nw) 2019-11-28 22:35:36 -06:00
cracyc
5528afb489 plugins/cheatfind: permit entry of cheat names 2019-11-27 14:12:02 -06:00
Vas Crabb
c38f63c10a plugins/cheat, plugins/autofire: only time out input sequence entry if nothing is entered (nw) 2019-11-22 02:32:29 +11:00
cracyc
0ec88f2ff7 plugins/autofire: permit input sequences (nw) 2019-11-20 22:35:13 -06:00
cracyc
52bc1df46e plugins/cheat: don't clear error message (nw) 2019-11-20 21:56:36 -06:00
cracyc
0606a77760 plugins/cheat: show pressed buttons when setting hotkeys (nw) 2019-11-20 21:35:35 -06:00
cracyc
99a628eb7c plugins/cheatfind: pull https://github.com/mamedev/mame/pull/4618 with some simplifications and bugfixes (nw) 2019-11-17 21:12:41 -06:00
cracyc
7fc2f68051 hiscore.dat: fix renamed set (nw) 2019-11-16 15:05:20 -06:00
cracyc
b0ef759b80 winptty: don't create pipe unless requested (nw)
plugins/discord: disconnect if timed out (nw)
2019-11-16 14:59:02 -06:00
cracyc
f0c5429b95 hiscore.dat: fix MT07454 (nw) 2019-10-16 17:20:11 -05:00
cracyc
55ef735fb7 hiscore.dat: fix set renames (nw) 2019-09-20 14:01:47 -05:00