A frame number can be given to --start-movie and it will start
at that frame.
Examples:
--start-movie=movie.dir@45 # start movie.dir at frame 45
--start-movie=@23 # start the default movie frame 23
--start-movie=movie.dir # start movie.dir as usual
This code is adapted from similar code in SerenityOS and allows the
LIST_INITIALIZER1 test to pass with c++11 compliant compiler when
targeting an old c++ std librray that does not have
std::initializer_list.
CoreMIDI provides hardware midi device support.
On my MacBook, the first call to MIDIGetNumberOfDestinations() takes around 2
seconds. Using one of the midi devices lower on the plugin list (mt32,
fluidsynth, etc) takes 2 extra seconds on every game start as
MidiDriver::getDeviceHandle() enumerates all the plugins to find the right one.
This change simply moves CoreMIDI to the bottom of the list. It will still
take 2 extra seconds when opening the options box, but that's a rare operation
relative to starting games.
By implementing MetaEngine::buildEngineOptionsWidget, engines can
instantiate a container widget that will be shown in the Engine tab of
the edit game dialog. The default implementation retains the existing
behavior and shows the extra GUI options.
Game controller input is now enabled whenever a compatible device is
connected. The keymapper's keymaps are refreshed when a joystick is added
or removed.
Fixes#10366.
When returning to the launcher with dynamic plugins enabled, the config manager
is re-created, invalidating the pointers the keymapper keeps to the
configuration domains.
Fixes#11348.
Previously backend defaults where added to the keymap defaults.
However, it became apparent backends need to change the default bindings
to resolve conflicts.
When the plugin-engine mapping is not cached in the configuration file,
we were not scanning all the plugins to establish the mapping.
This is a regression from commit: e2d91258b7
This commit reverts the offending commit and implements a proper fix for
the case where there are no dynamic plugins.
Fixes#11300.
The engineId, gameId and description come from static data in the game
engines. When the game engines are compiled as dynamic plugins, the QGD
structure may outlive the engine plugin. Making a copy ensures the data
remains available.
Fixes#11292.
Qualified game names have the following form: engineId:gameId.
Unqualified game names are still supported as long as they are not
ambiguous. However they are considered deprecated and are no longer
displayed by the --list-games command.