Changed the hiscore plugin to save inside the "hiscore" folder in the
plugin data directory. The old hiscore path setting has already been
removed from MAME for some time. This means the plugin was always
saving in the "hi" folder in the working directory with no way to change
it, which is problematic on Linux and macOS, particularly for distro
packagers. There are lots of plugin and UI changes in this release, so
we may as well get this out of the way now. Also made it possible to
change the "timed save" option from the Plugin Options menu, and save
that in the data folder, too.
Documented the input macro plugin. The only undocumented plugins now
are the cheat plugin, the cheat finder plugin, and the port name plugin.
* Also added a couple of missing command-line options, and added a local
table of contents to the (rather long) command line options page.
-Added a separate CI target for localisation updates that produces an
artefact, and removed the message catalogs from the trigger paths for
the Linux CI build.
* Restricted Linux CI build to only run on changes to code,
translations, software lists, and build scripts.
* Restricted Windows/macOS CO to only run on changes to code and build
scripts. They provide nothing over Linux for the other stuff.
* Added plugin properties and controller file validation to the "hash"
workflow.
* Added a workflow for building documentation, so pull requests that
affect documentation will at least get a basic check in advance.
-plugins/autofire: Bumped version as configuration format has changed.
* autofire, inputmacro: Made left/right repeat when held (makes setting
long delays/durations easier).
* autofire, inputmacro: Added headings for devices in input selection
menus (helps when controller buttons have identical names, e.g. AES)
* autofire: Made intial selection when moving between menus intuitive,
log some errors on saving/loading configuration.
* autofire: Fixed two errors in Chinese localisations.
Make it possible for a plugin to specify which item should be selected
on repopulate. Also allowed plugins to specify the UI heading flag for
menu items.
Updated input macro plugin to select sane items when changing menus.
Other plugins not updated yet, but may be at some point in the future.
-plugins: Sort input selection menus for autofire plugin.
-frontend: Fixed another case where the menus may not automatically
scroll the first item into view.
debugger: Octal cheats for octal address spaces.
frontend: Pass events for automatically generated menu items to the
plugin - they will have index zero.
frontend: Don't try calling the data plugin from the main menu if the
system isn't starting yet - doing so will prevent the data plugin from
loading at all.
frontend: Made it possible to cancel a media audit while it's in
progress. Also made the media audit multi-threaded so it's faster.
frontend: Made the DIP switches in the DIP switch preview clickable.
frontend: Made the system and software selection menus leave focus on
the same system when clearing the search rather than jumping to the
first item. Also fixed a couple of bugs in the logic for keeping the
selected item visible.
frontend: Fixed a few places that weren't showing localised system
names.
frontend: Made UI Cancel clear a search in the file manager the same way
it does on the system and sofware selection menus.
frontend: Made it possible for plugin menus to handle UI Cancel more
naturally, backing up to the previous plugin menu rather than dropping
straight back to the list of plugins. Updated the autofire, cheat and
cheatfind plugins, and fixed a few other issues in the cheatfind plugin.
debugger: Made the mount and unmount commands accept instance names as
well as brief instance names. Also updated another page of debugger
documentation.
Trying to collect messages from everything at once hits some limit in
xgettext and causes messages to be lost no, so I've split it up by the
second-level source directories.
For some reason xgettext thinks overloaded Lua functions are blasphemy,
so that has to be worked around, too.
Got rid of one of the UI audit inputs. There only needs to be one, and
the options can be presented in the confirmation menu. Two secret
keystrokes is too confusing. Also got rid of the long-obsolete UI
Toggle Debugger input.
Added audit media button to the toolbar so it's a bit less opaque, and
it can be accessed with a mouse/trackball (not just by knowing the key
mapping).
Made default I/O port names localisable.
Made autofire plugin save port fields using the { port, mask, type }
tuple, the same way MAME does. Unfortunately this will break existing
autofire configuration, but it should be more stable going forward.
Added some more UI keys to the default key mappings documentation.
* frontend: Added support for message context to localisations.
* frontend: Added string_view versions of the message lookup functions.
* frontend: Added a few more folder options to the internal UI.
* emu/softlist.cpp: Use more appropriate containers.
* Switched to Python 3 by default - this will become a requirement.
* Updated msgfmt.py for message context support.
* frontend: Show all software item info in the internal UI.
* frontend: Search alternate titles in software selection menu.
* 3rdparty/utf8proc: Updated to v2.6.1 (has several fixes).
* frontend: Added software filters for common info fields.
* frontend: Allow UI manager to hold onto persistent session data.
* frontend: Cache software lists for eight machines.
* frontend: Added support for loading localised system names.
* frontend: Add UI for selecting localised system names.
* Fix console history path, homepath is a core option
* Create missing directories recursively in lua plugins.
* Add lfs to global environment in a less magical way.
require normally doesn't bind the name globally just returns the
module, mame sets a preloader that does bind lfs globally, but
maybe it's less surprising to do it explicitly
Changed a loadstring to load, since lua 5.3 loadstring is not
available.
Made sure the linenoise thread returns a string.
After Ctrl+D stop reading lines.