Commit Graph

1431 Commits

Author SHA1 Message Date
Cameron Cawley
21b0d6ded1 BACKENDS: Replace GLEW with GLAD, part of PR #3463 2021-12-30 14:53:48 +01:00
Eugene Sandulenko
abea37c9bb
ALL: Update ScummVM project license to GPLv3+ 2021-12-26 18:48:43 +01:00
Eugene Sandulenko
ccfaf478ab
AD: Make sure that we initialize hashmaps. Unfortunately, this leads to less const'ness 2021-11-29 01:50:03 +01:00
Andrea Boscarino
f731cfd648
SCUMM: DiMUSE: New Digital iMUSE Engine (#3368)
SCUMM: DiMUSE: Add new implementation of the engine
2021-11-16 00:05:18 +01:00
Orgad Shaneh
e92e232788 BASE: Use nullptr
Using clang-tidy modernize-use-nullptr
2021-11-14 15:51:59 +02:00
Orgad Shaneh
b11c5ace90 BACKENDS: JANITORIAL: Remove 'virtual' when override is specified 2021-11-14 14:31:41 +02:00
Orgad Shaneh
2e68b4ffdc JANITORIAL: Use override
Using clang-tidy modernize-use-override
2021-11-14 02:59:23 +02:00
av-dx
6b5c5ae0d6 GUI: Add default launcher type as "list" 2021-11-12 14:46:34 +01:00
av-dx
19295362a4 Revert "GUI: Register "list" as default launcher type"
This reverts commit d37c338a193e6400a598f8b457b6d0ec660293b9.
2021-11-12 14:46:34 +01:00
av-dx
0f35813ef7 GUI: Register "list" as default launcher type 2021-11-12 14:46:34 +01:00
av-dx
7d1c3af603 GUI: Split the LauncherDialog into two classes create a chooser object 2021-11-12 14:46:34 +01:00
Carlo Bramini
6c769062c6 BASE: Convert version strings to const objects.
The following variables:

gScummVMVersion
gScummVMBuildDate
gScummVMVersionDate
gScummVMFullVersion
gScummVMFeatures

are declared as pointers to strings but there is no need to do so.
They can be simply declared as const strings, since they will be never modified when SCUMMVM runs.

Exports version variables as const strings
2021-11-01 16:31:55 +01:00
Martin Gerhardy
ebdad0681c BASE: added --list-records command line option 2021-10-13 01:56:43 +03:00
Eugene Sandulenko
9a4f0b7c66
RELEASE: This is 2.6.0git now 2021-10-01 16:04:48 +03:00
Eugene Sandulenko
927b9af1c9
BASE: Set debug flags before instantiating an engine 2021-09-26 13:43:23 +02:00
Marcus Comstedt
47de1896b9 PLUGINS: In uncached mode, try plugin which matches engine name first
Trying all engine plugins in alphabetical order is a time consuming
process, so start by trying the plugin which has the same name as the
engine id first, if it exists, as it will usually be the right one.

In the rare case that it would be the wrong one there is no problem;
the code will simply fall through to the old scanning and then record
the correct plugin in the engine_plugin_files domain where it will be
found the next time the plugin is needed.
2021-09-20 23:28:57 +02:00
Marcus Comstedt
d2fba8fc2f PLUGINS: Make detection plugin filename check case insensitive
Plugin filenames are all upper case on Dreamcast due to the ISO 9660
filesystem.  It doesn't seem likely that making the check case
insensitive would cause any problems even on a file system that
is case sensitive.
2021-09-20 23:28:57 +02:00
Cameron Cawley
2f99746d8d ENGINES: Allow implementing registerDefaultSettings in the MetaEngine class 2021-09-18 11:57:29 +02:00
Lothar Serra Mari
74d4380781 BASE: Don't check for config key presence when loading gfx mode 2021-09-18 04:23:19 -05:00
Scott Percival
29d6758c0d EVENTRECORDER: Add update mode
This new mode is functionally identical to playback mode, however
a new recording file is used to track the actual output of ScummVM.
This feature can be used to update a suite of existing recordings after
a renderer or a timing change.
2021-09-09 19:32:02 +02:00
Scott Percival
40aadcf139 EVENTRECORDER: Add --screenshot-period to the CLI 2021-09-09 19:32:02 +02:00
Scott Percival
bd7b605552 EVENTRECORDER: Allow --record-file-name for record mode 2021-09-09 19:32:02 +02:00
Lothar Serra Mari
8b3319bd37 BASE: Enable Discord RPC integration by default 2021-09-02 14:21:07 +02:00
Eugene Sandulenko
580ec65220
RELEASE: This is 2.4.0git 2021-08-28 21:01:11 +02:00
sluicebox
386c5659ec BASE: Purge keyboard/mouse events before running Engine
Fixes GUI events leaking into engines at startup. This caused
Phantasmagoria 1 to skip its introduction if the game was started from
the ScummVM GUI with a keyboard (Enter) but not with a mouse because
the key-down event started the engine and the key-up event remained
in the queue.

This also purges and mouse events since we happen to already have a
purgeMouseEvents() method. We may want to also clear joystick inputs,
or possibly the entire event queue, but that can be done after the
upcoming release. For now, the known bug is fixed.
2021-08-23 15:46:33 -05:00
Thierry Crozat
9f46c9a3ac BASE: Add TTS to version information 2021-08-18 22:38:55 +01:00
Eugene Sandulenko
fef26b3c59
BASE: Capture all global debug channels as early as possible 2021-08-16 21:28:26 +02:00
Eugene Sandulenko
436e47292e
BASE: Load engine plugins by name. Fixes bug #12342
This is a degradation from the split of detection plugins. All the
caching code which was present was left with detection plugins which
now make no sense: we always load all detection plugins as a whole.

This commit moves the caching logic over to the Engine plugins.

This opens a question now whether we should move all to UNCACHED_PLUGINS
2021-08-16 20:32:53 +02:00
trembyle
63b8d47df5 CONFIGURE: Enable building with Windows text console output
Create a new flag --enable-windows-console to build with console
output on MinGW. The default behavior will be to enable the console.
The current plan is to continue to offer the users both options for
release builds - ScummVM and ScummVM (noconsole).

Whenever the text console is enabled, Windows console will be added
by default. This is to prevent a situation where ScummVM will not load
any visible debug console on hotkey or error.
2021-07-13 11:57:22 -05:00
Torbjörn Andersson
2ba156184c SCUMM: Add Macintosh b/w rendering mode
This is currently only (partially) implemented for the 16-color Mac
versions of Loom and Indiana Jones and the Last Crusade. The text is
still drawn in color, since that's rendered separately, but I'm
committing this now while it still works.
2021-07-13 09:53:36 +02:00
Cameron Cawley
c2ae54306f BASE: Update scaler settings from old config files 2021-06-23 21:29:53 +02:00
Cameron Cawley
b2d41daabc GUI: Add improved scaler selection to the Options dialog 2021-06-23 21:29:53 +02:00
Cameron Cawley
da5d773924 BACKENDS: Add getDefaultScaler and getDefaultScaleFactor to OSystem 2021-06-23 21:29:53 +02:00
sluicebox
f2f28c4549 COMMON: Rename DebugManager methods, update comments 2021-06-14 12:42:38 -05:00
sluicebox
efd4f9ff9d COMMON: Remove DebugManager::debugFlagsClear() 2021-06-14 12:42:38 -05:00
sluicebox
fa247d13de COMMON: Rename DebugManager global/member names 2021-06-14 12:42:38 -05:00
sluicebox
8e1d90f8e4 ALL: Remove clearAllDebugChannels() from Engine dtors 2021-06-14 12:42:38 -05:00
Annick Ecuyer
1fe46a61f2 BASE: Added --engine=ID for --list-all-games and --list-games
For the command line, lists games only for the specified engine.
(optional)
2021-06-10 22:42:39 +01:00
sluicebox
77cfab947a BASE: Fix debug levels parameter name 2021-06-10 10:47:42 -06:00
SupSuper
e3d082df65 MSVC: Add compiler printf validation 2021-06-02 08:35:31 +03:00
ysj1173886760
649661a6da BASE: add clarification for list-debugflags when typing help 2021-05-22 01:34:57 +02:00
ysj1173886760
d147ab855f BASE: add listing the engine specified debugflags in commandline 2021-05-22 01:34:57 +02:00
ysj1173886760
5feac6bdff BASE: add list-all-debugflags and list-debugflags to commandLine 2021-05-22 01:34:57 +02:00
ysj1173886760
d3b596d820 BASE: Register debug channels before calling the findGame() in main.cpp 2021-05-22 01:34:57 +02:00
ysj1173886760
4505054c33 BASE: Register debug channels before calling the findGame() in plugins.cpp 2021-05-22 01:34:57 +02:00
ysj1173886760
1c333f66e2 BASE: change the method name to adapt for new api 2021-05-22 01:34:57 +02:00
ysj1173886760
a6542f242e BASE: move setting debug flags to debug manager, set debug flags before call detectGames 2021-05-22 01:34:57 +02:00
ysj1173886760
f07ceca9cb BASE: add global debug flag 2021-05-22 01:34:57 +02:00
ysj1173886760
061fd12966 BASE: register debug channel before instantiate the engine in main 2021-05-22 01:34:57 +02:00
Le Philousophe
66cf874a6a BASE: When replacing a duplicate plugin unload it first
This avoids having plugins loaded twice for nothing and avoids crashes
on AmigaOS at exit.
2021-05-15 12:52:22 +02:00
Le Philousophe
610fdfade8 BASE: Unload plugins when exiting after processing arguments
When not displaying the GUI, plugins are not unloaded.
This can cause problems on AmigaOS where plugins must be unloaded before
exiting. Else, some plugins with global destructors cause crashes being
destroyed too late.
2021-05-15 12:50:52 +02:00
a/
36a5797bae DETECTOR: Clear md5 cache before detection as well 2021-05-14 22:35:23 +02:00
Le Philousophe
8a67d8913e BASE: Fix segmentation fault when detection plugin cannot be found
This could happen if some engine plugin is placed in a build where
detection was not compiled in
2021-05-08 23:45:57 +02:00
Le Philousophe
1ac759abdc BASE: Load all plugins linked inside detection plugin
This was done in UncachedPluginManager but not in PluginManager
2021-05-08 23:45:39 +02:00
Martin Gerhardy
9d82fa51df COMMON: removed USE_TTS check from engines
OSystem now just returns a nullptr if there is no text to speech manager instance
(because none is compiled into the binary, or the system doesn't provide support
for it). This removed the need for the engine authors to add scummvm osystem compile
time options checks into their engine code
2021-05-03 14:13:41 +03:00
Eugene Sandulenko
7fde53d5f7
BASE: Remove redundant warning. It will be triggered at the end of the function 2021-05-02 01:11:04 +02:00
Cameron Cawley
c38e3bdc2a AUDIO: Support building with FluidLite 2021-04-25 20:39:55 +03:00
Eugene Sandulenko
a78dfea622
BASE: Add taskbar to version information 2021-04-25 02:19:07 +02:00
Eugene Sandulenko
06794e48c6
BASE: Implemented --window-size command line option 2021-04-21 00:57:31 +02:00
Eugene Sandulenko
5e7fe2dc57
JANITORIAL: Replace spaces in indentation with tabs 2021-04-15 21:20:36 +02:00
Eugene Sandulenko
6608aac670
BASE: Do not warn on unhandled empty command, improve warning wording 2021-04-14 20:37:28 +02:00
Eugene Sandulenko
9b23dfef5a
BASE: Added --list-all-engines and warn developer about unhandled command line keys 2021-04-14 15:25:08 +02:00
Eugene Sandulenko
003d4cda09
BASE: Made --list-games show list of supported games and added --list-all-games 2021-04-14 15:18:19 +02:00
Eugene Sandulenko
6e8106aa49
BASE: Fix --list-targets aster HashMap rewrite 2021-04-14 15:06:00 +02:00
Eugene Sandulenko
1774094089
BASE: Make --list-engines show list of truly compiled engines
After plugins were split, we were showing list of detection plugins
which is misleading, since all of them are always included.
2021-04-14 15:04:37 +02:00
Lothar Serra Mari
28544b4b58 BASE: Indicate if GIF support was compiled into a build 2021-04-10 18:50:36 +02:00
Eugene Sandulenko
5c3413714e
BASE: Indicate if Event Recorder was compiled in into a build 2021-04-09 23:54:00 +02:00
Cameron Cawley
f88769f132 BASE: Fix a crash when attempting to run a disabled engine 2021-04-08 12:18:11 +03:00
Cameron Cawley
3e8ab22eb2 BASE: Don't attempt to unload detection code when building with static detection 2021-04-07 14:38:51 +02:00
Cameron Cawley
a1890ede9c BASE: Avoid calling PluginMan.getEngineFromMetaEngine where possible 2021-04-05 15:33:23 +01:00
Mataniko
8802184bd5 PLUGINS: Remove CoreMidi hack 2021-03-29 19:39:22 -04:00
Johannes Schickel
abbdadf869 GRAPHICS: Add possibility to search for a scaler via its name. 2021-03-15 16:48:40 +02:00
Martin T. H. Sandsmark
f4f9957f85 scalerplugin: port to new plugin api 2021-03-15 16:48:40 +02:00
Eric Culp
f172718b79 CONFIGURE: Added configure option for Edge2x-3x scaler plugin 2021-03-15 16:48:40 +02:00
Eric Culp
592617e2ce GRAPHICS: Add Edge2x/3x scaler
This currently does not conform to coding standards and contains a lot
of dead code (This will be fixed). Thanks to Eric Welsh for the original
patch.
2021-03-15 16:48:40 +02:00
Eric Culp
267b385890 GRAPHICS: Add 2xPM scaler with 16 and 32 bit support 2021-03-15 16:48:40 +02:00
Eric Culp
a3a9736754 GRAPHICS: Add TV scaler plugin 2021-03-15 16:48:40 +02:00
Eric Culp
20b4356ecd GRAPHICS: Add AdvMame scaler plugin 2021-03-15 16:48:40 +02:00
Eric Culp
5e73533110 GRAPHICS: Add SuperEagle and SuperSAI scaler plugins 2021-03-15 16:48:40 +02:00
Eric Culp
8030b7879c GRAPHICS/SDL: add ifdefs for disabling scalers 2021-03-15 16:48:40 +02:00
Eric Culp
b70a04214b GRAPHICS/BASE: adds Dotmatrix scaler plugin 2021-03-15 16:48:40 +02:00
Eric Culp
8c9cb22734 GRAPHICS/SDL/BASE: fix scaler declarations
mainly adding const and using uint instead of int
2021-03-15 16:48:40 +02:00
Eric Culp
ca1754c047 GRAPHICS/BASE: add maxExtraPixels() to ScalerMan 2021-03-15 16:48:40 +02:00
Eric Culp
ef2b057eef GRAPHICS: adds 2xsai as scaler plugin 2021-03-15 16:48:40 +02:00
Eric Culp
83a8abda70 GRAPHICS: add support for hq scaler plugin 2021-03-15 16:48:40 +02:00
Eric Culp
7bcc1f0b13 GRAPHICS: Adds a nearest neighbor plugin
It's not used yet, but it compiles and is managed by the plugin manager.
2021-03-15 16:48:40 +02:00
Eric Culp
a3af191753 GRAPHICS/BASE: Adds definitions for scaler plugins
This includes a class for plugin implementations to inherit from and
code necessary for plugin managers to use scalers
2021-03-15 16:48:40 +02:00
BeWorld
134df1e746 MORPHOS: Added CAMD MIDI driver support
Merge with AmigaOS4 camd.cpp
2021-02-21 15:44:44 +00:00
Thierry Crozat
67720ef658 JANITORIAL: Remove obselete references to MetaEngineConnect
At some point when splitting the MetaEngine to a detection
plugin and a static meta engine, the former was called
MetaEngine while the latter was called MetaEngineConnect.
Thus was then later change to MetaEngineDetection and
MetaEngine. But some references were left to the former
names in comments and documentation.
2021-02-14 14:32:36 +00:00
Henrik "Henke37" Andersson
2eb52fe900 COMMON: Retire dangerous non const operator[] on ConfMan 2021-02-12 00:41:23 +01:00
Cameron Cawley
76ac4414ec BASE: Fix crash when building with uncached plugins and static detection 2021-02-08 03:09:58 +02:00
av-dx
7950a9b215 GUI: Refresh stretch mode and shader on returning to launcher 2021-01-24 04:09:09 +02:00
Thierry Crozat
a1c807704d ALL: Ignore force RTL option when the engine does not support RTL
This fixes bug #12072: Cannot quit Blazing Dragons when always
return to launcher is selected
2021-01-20 23:35:47 +00:00
Vladimir Serbinenko
0d39e96f55 COMMON: Make TranslationManager reusable.
This makes it possible to reuse TranslationManager with different
files.
2020-12-17 09:49:18 +01:00
Thierry Crozat
4518f73f92 BASE: Remove FORCE_RETURN_TO_LAUNCHER define
This was only used by the ps2 backend, and that backend no longer
exists. Also now backends that want to force RTL should use the
kFeatureNoQuit OSystem feature instead.
2020-12-09 22:13:22 +00:00
Thierry Crozat
9e5540f838 BASE: Handle RTL at exit config in scummvm_main
This config was handled in the DefaultEventManager, but this did not
work for engines that quit the game without using a QUIT_EVENT (such
as SCI). So now it is handled one level up directly in scummvm_main.

Note: It is still also handled in the DefaultEventManager so that we
get the correct confirmation dialog there when "confirm_exit" is true.
2020-12-09 22:13:22 +00:00
Cameron Cawley
3d46c5ecf9 BASE: Rearrange the dynamic detection code 2020-12-06 19:56:44 +01:00
Bartosz Gentkowski
7192ec0bb5 DOXYGEN: Fix the build output and structure
This commit introduces a couple tweaks to the
doxygen build configuration to assure the
overall structure looks correct.
2020-12-02 22:55:41 +00:00
Lothar Serra Mari
4ee02f869c GUI: Add GUI option to always return to the Launcher instead of quitting
ScummVM
2020-12-02 22:39:22 +00:00
Cameron Cawley
01b4432825 BACKENDS: Use Common::U32String for OSystem::setWindowCaption 2020-11-22 17:20:19 +00:00
Cameron Cawley
11724f9df1 GUI: Add a tab for backend-specific options 2020-11-22 16:35:03 +00:00
Cameron Cawley
1bf1fb40fc
CONFIGURE: Allow building with TinyGL disabled (#2528) 2020-10-14 20:31:22 +02:00
Eugene Sandulenko
7ff34bc9ec PLUGINS: MetaEngineStatic -> MetaEngineDetection 2020-10-11 23:14:39 +02:00
Eugene Sandulenko
7ea6781043 PLUGINS: PLUGIN_TYPE_METAENGINE -> PLUGIN_TYPE_ENGINE_DETECTION 2020-10-11 23:12:32 +02:00
Paweł Kołodziejski
35b9cccbde ALL: Merge ResidualVM 2020-10-09 19:44:13 +02:00
Pawel Kolodziejski
2ecbaef5b5 BASE: Added more information about opengl related features 2020-10-07 11:33:22 +02:00
Pawel Kolodziejski
b05551ec2d BACKEND: Drop bpp param. it was used for grim only. 2020-10-05 14:41:36 +02:00
Pawel Kolodziejski
4631c0e2ed ALL: Sync with ScummVM rev: a4002bdeee 2020-10-04 23:59:26 +02:00
Eugene Sandulenko
b73034e3a0 GUI: Added setting for disabling directory scan at the GUI launch 2020-10-04 18:05:02 +02:00
Pawel Kolodziejski
1f73d401ab BASE: Cleanup cmdline options 2020-10-04 14:43:09 +02:00
Eugene Sandulenko
9590eed4b4 BASE: Upgrade fullpipe engineid to ngi
Making it hardcoded because:
  * This is the only place where it could happen
  * It is the second time in history of ScummVM when we renamed
    and engine (the first one was Simon -> AGOS)

Thus, there is a little sense in creating a universal solution.
2020-10-04 14:17:59 +02:00
aryanrawlani28
ffa69bfb26 GUI: debug statements related to plugins matching -> level 9. 2020-10-03 14:56:36 +02:00
aryanrawlani28
41af1b63a9 BASE: PLUGINS: Improve fb detection for Sci & Wintermute 2020-10-03 14:56:36 +02:00
aryanrawlani28
71a820caff ENGINES: Begin class renaming of ME & AME
- ME -> MetaEngineStatic (static parts)
- MEC -> MetaEngine (dynamic parts)
2020-10-03 14:56:36 +02:00
aryanrawlani28
c48719404a BASE: PLUGINS: Rename plugin matching helpers
- give*From* -> get*From*
2020-10-03 14:56:36 +02:00
aryanrawlani28
a9841622e0 ENGINES: DETECTION: Use inheritance hierarchy and mimic existing plugins. 2020-10-03 14:56:36 +02:00
Eugene Sandulenko
ceabaf3b0d BASE: Added override keywords 2020-10-03 14:56:36 +02:00
aryanrawlani28
ba5368542f BASE: PLUGINS: Update header file & use DETECTION_STATIC def check to build static detection features. 2020-10-03 14:56:36 +02:00
aryanrawlani28
ac900a06b8 BASE: PLUGINS: Use engines/detection_table header for static plugins 2020-10-03 14:56:36 +02:00
aryanrawlani28
fea29b04ac BASE: PLUGINS: Add a plugin suffix only if it is available 2020-10-03 14:56:36 +02:00
aryanrawlani28
7615f37698 BASE: PLUGINS: Add detection tables header file when getting static plugins. 2020-10-03 14:56:36 +02:00
aryanrawlani28
5f5363f03b BASE: MAIN: Load/Unload detection plugin for UncachedPluginMan as/when needed.
- Used only in context of UncachedPluginMan
- Always load on startup
- When starting a game, unload all other MetaEngines except the one needed.
2020-10-03 14:56:36 +02:00
aryanrawlani28
8dfaf6cc0e BASE: PLUGINS: Add support for detection plugins to be loaded on demand.
- Mainly used for UncachedPluginManagers.
- CachedPluginManagers will not handle these, as metaengines will always be available in memory.
2020-10-03 14:56:36 +02:00
aryanrawlani28
b78534dcb0 BASE: PLUGINS: Seperate declaration/definition of StaticPlugins.
- Move declarations inside plugins.h to make it visible to detection/detection.cpp
2020-10-03 14:56:36 +02:00
aryanrawlani28
408158edc9 BASE: PLUGINS: Add a new type of plugin - DETECTION. 2020-10-03 14:56:36 +02:00
aryanrawlani28
53f08789eb BASE: PLUGINS: Restore functionalities of uncached plugin manager for the new changes. 2020-10-03 14:56:36 +02:00
aryanrawlani28
84ddd3ac88 BASE: PLUGINS: Remove comments referring to old game detection 2020-10-03 14:56:36 +02:00
aryanrawlani28
0cc8719417 BASE: ENGINES: Adapt to keymaps moving to engine plugins
- Also improvise usage of MetaEngineConnect in main.cpp a bit.
2020-10-03 14:56:36 +02:00
aryanrawlani28
9353e339c6 BASE: MAIN: Proper usage of unloadPluginsExcept before running a game. 2020-10-03 14:56:36 +02:00
aryanrawlani28
bdafdf220d BASE: PLUGINS: Deprecate improper usage of unloadPluginsExcept 2020-10-03 14:56:36 +02:00
aryanrawlani28
73cc973ad7 BASE: ENGINES: Change saveload code to adapt to the new MEC class.
- MEC: MetaEngineConnect.
- How do games handle save/load if MetaEngine (detection) is seperate from MetaEngineConnect (engine factory)?

- Most of the changes are quite similiar. ConfMan finds us the relevant MetaEngine, then simply use the new helpers from PluginMan.
- The new helpers will help convert a relevant MetaEngine into the other format or vice versa.
- Once the matching is complete, simply invoke functions by:
plugin->get<MetaEngineConnect>().engineMethod();
- Refer to previous commits to see the new class changes & notes.
2020-10-03 14:56:36 +02:00
aryanrawlani28
39f5c93c5c BASE: PLUGINS: Bump PLUGIN_TYPE_ENGINE_VERSION to 2
- Because of the many changes happening to engine classes, it would be a good idea to update the version, something similiar was done with themes.
2020-10-03 14:56:36 +02:00
aryanrawlani28
50e9f0d875 BASE: PLUGINS: Add helper methods which match MetaEngine to Engine & vice-versa 2020-10-03 14:56:36 +02:00
aryanrawlani28
f2dd03e7d8 BASE: PLUGINS: Implement a getEngineId for PluginObjects, return nullptr by default.
- See comments.
2020-10-03 14:56:36 +02:00
aryanrawlani28
575e77522a BASE: MAIN: Change how running games works.
- In runGame(), in main.cpp, we get a plugin of type MetaEngine.
- This MetaEngine cannot createInstances, but it just a helper class.
- Connect a MetaEngine class with it's factory class - MetaEngineConnect.
- Then, simply call the method.
2020-10-03 14:56:36 +02:00
aryanrawlani28
943df64b32 ENGINES: Change behaviour of EngineMan::getPlugins.
- Changed so we can get any type of plugins.
- This used to always return PLUGIN_TYPE_ENGINE.
- Because now we can differentiate between engines and metaengine, this must be changed.
- For now, return METAENGINE by default
2020-10-03 14:56:36 +02:00
aryanrawlani28
f07bdb100e BASE: PLUGINS: Implement unloadPluginsExcept correctly
- The new implementation matchs a plugin from type MetaEngine to an Engine, and unloads every else ENGINE.
2020-10-03 14:56:36 +02:00
aryanrawlani28
09c1e1e07d BASE: Change how game detection works.
- Do NOT use pluginMan and load plugins, etc, etc.
- Get MetaEngines from memory, since they're always built in statically.
- Use detectGames method to detect games.
2020-10-03 14:56:36 +02:00
aryanrawlani28
6689fa740a BASE: PLUGINS: Add a new type of plugin - MetaEngine
- MetaEngines will now always go to the executable.
- But, because they still live in engine projects and are connected via a macro, they will need to be differentiated from Engines.
- This macro, and it's use in future will help in that.
2020-10-03 14:56:36 +02:00
aryanrawlani28
a8d5168a35 PLUGINS: Add a ease-use macro - PLUGIN_ENABLED 2020-10-03 14:56:36 +02:00
Pawel Kolodziejski
d8f2040dba ALL: Drop setupScreen API, use new initGraphics3d from engine API.
Enabled system API for begin/end gfx transactions, initSize, setGraphicsMode.
Function setGraphicsMode will use optional params to trigger 3d rendering
and switch to proper SDL Gfx manager.
2020-10-02 19:14:19 +02:00
Pawel Kolodziejski
6f69981904 BACKENDS: Drop launcherInitSize() and use 2d backend gfx manager for launcher. 2020-09-30 16:52:44 +02:00
Pawel Kolodziejski
2b248a85bf ALL: Minimise differences with ScummVM 2020-09-29 07:57:40 +02:00
Pawel Kolodziejski
bfe58d3c77 ALL: Synced with ScummVM - rev: d4db631f9b 2020-09-23 21:52:10 +02:00
Lothar Serra Mari
51c42478d2 BASE: WIN32: Exclude scummvm's base directory from plugin path
Currently, the plugin architecture searches for plugins in ScummVM's
base directory and in the plugins directory itself.

However, for Win32, we need to bundle several DLL files in order to
make ScummVM run at all. Currently, this leads to several warning
messages since ScummVM tries to load those DLLs as plugins.

This patch excludes the ScummVM base directory when running on Win32 and
only accepts plugins from the plugins directory.
2020-09-13 18:03:16 +02:00
Pawel Kolodziejski
15a759370a ALL: Synced with ScummVM - rev: bdbbcd81ae 2020-09-12 19:38:50 +02:00
Pawel Kolodziejski
d5304e2568 ALL: Synced with ScummVM - rev: 33a47d23b8 2020-09-03 02:21:14 +02:00
Thierry Crozat
1dfbb0cc4c BASE: Add c++11 unicode string literal test 2020-09-01 01:33:39 +01:00
aryanrawlani28
01176e43f7 GUI: U32: Use unicode based generateGameReport correctly in all places
- UnknownGameDialog: Use u32 for gameReport dependant functions
2020-08-30 14:43:41 +02:00
aryanrawlani28
68d01321d6 GUI: U32: Downscale changes of U32, fix review issues
This commit addresses a range of changes, within scummvm subproject.

- Audio files, like mididrv, remove U32String based name and identifier, because ASCII only.
- mididrv.cpp had some wrong format for warning messages, fix those
- Message dialogs were modified to use default arguments more often, but reverting back to the orignal to minimize changes.
- SetTooltip has a fake constructor that takes in a string, and use it.
- U32Format had some break statements missing, add those.
- RemapWidget: Use fake constructor for setLabel and setTooltip, to make minimal changes
- SDL: setting text in clipboard no longer uses SDL_iconv_string
- TTS: Override base class "say" with strings, so tts->say can be used with normal strings too.
- About dialog: fix incorrect code for u32string variables
- Fix some extra brackets
- Some buttons were incorrectly removed from using translated labels, revert those
- Message Dialog: Pass default and alt buttons as const references
- Saveload Dialog: Use translations in missing places, use const-references. Also, use translations in a correct manner.
- Use const references for tooltip in GraphicsWidget, EditTextWidget, error.cpp
- DomainEditTextWidget: Use U32String for text
2020-08-30 14:43:41 +02:00
aryanrawlani28
4b6976c558 GUI: U32: Reduce number of files changed and fixes
Up until last commit, everything was working fine but the amount of files changed was too large. This commit tries to reduce the changes.

- Add a fake constructor to Keymap, text-to-speech, setDescription (save-state)
- Redirecting functions for PopUpWidget::appendEntry, ButtonWidget::setLabel, GUIErrorMessage
- Use the above functions and constructors to reduce changes in Engines
- Fix warnings being in unicode. Only output english text in - Warnings, Errors, etc.
- Mark some strings as "translation" strings. (Not yet added to POTFILES)
- Remove some CP related things from po/modules.mk
- Previously used some Common::convertToU32 where it was not necessary, replace this with u32constructor
2020-08-30 14:43:41 +02:00
aryanrawlani28
cbc83065c0 GUI: U32: Fix warnings with printf statements
Command line printfs used some functions which returned u32 strings. Correctly encode them and then turn into c_str
2020-08-30 14:43:41 +02:00
aryanrawlani28
f800ca4ada GUI: U32: Convert majority of code to use U32
This commit also includes some additional major changes.

- Return U32String from TransMan getTranslation()
- Change tooltips to be U32Strings
- Remove temporary code of convertToU32String
- U32 Support various dialogs (Browser, FileBrowser, Messages, Chooser, etc)
- U32 for music plugins
- U32 for OSD messages
- Add some helper functions to ustr.cpp
- Change default tooltips from nullptr & 0 -> ""
- Some runtime exceptions may occur when changing languages due to incorrect String::Format
2020-08-30 14:43:41 +02:00
Eugene Sandulenko
98e0b14852 RELEASE: This is 2.3.0git 2020-08-30 13:42:19 +02:00
Bastien Bouclet
3f45f77269 BACKENDS: Fix crash when all the plugins fail to load 2020-08-27 21:14:07 +02:00
Eugene Sandulenko
fe0193b914 JANITORIAL: Remove unndeded "common/translation.h" include 2020-08-27 20:26:45 +02:00
BeWorld
2f1acbe627 MORPHOS: simplify VERSION
- Same as AmigaOS4, add AMIGA format DATE
- Configure : force optimization level on release build
2020-08-21 00:59:18 +02:00
BeWorld
8f38b6a08d MORPHOS: Update version.cpp
MorphOS Support
2020-08-21 00:59:18 +02:00
Pawel Kolodziejski
aea3bae26d ALL: Synced with ScummVM - rev 0b777c23a9 2020-08-11 00:59:40 +02:00
Eugene Sandulenko
aa563f0c81 ALL: Remove PS2 port 2020-08-01 15:15:49 +02:00
athrxx
5e276286ae AUDIO/GUI: add SegaCD sound settings 2020-07-30 22:19:21 +02:00
Roland van Laar
14c92e6179 DIRECTOR: Extend --start-movie to start at frame
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
2020-07-24 20:57:52 +02:00
Pawel Kolodziejski
8f4e1c6cf3 Sync with ScummVM rev. 654b8208b8 2020-06-22 08:14:16 +02:00
Lothar Serra Mari
aca3975843 BASE: Fix missing newline in command line output 2020-06-06 13:01:28 +02:00
Cameron Cawley
23e3a672b0 DS: Fix compilation with C++11 enabled 2020-05-29 20:05:02 +01:00
Thierry Crozat
75426284f7 BASE: Add test with c++11 std::initializer_list replacement
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.
2020-05-29 19:23:02 +01:00
Thierry Crozat
c643801b65 BASE: Fix INITIALIZIER_LIST1 c++11 test 2020-05-29 19:23:02 +01:00
Zvika Haramaty
55ae963488 BASE: Added 'test_new_standards.cpp'
Adding C++11 compatibility tests, disabled by default.
See instructions inside the file.
2020-05-27 12:47:05 +02:00
Cameron Cawley
cc5abf5ebb TTS: Fix crash when TextToSpeechManager is unavailable, clean up formatting 2020-05-27 12:43:49 +02:00
Cameron Cawley
65a09ee0fa BASE: Always set a default value for the vsync config key 2020-05-15 15:48:08 +02:00
mataniko
2f5eb14d4b JANITORIAL: Rename additional RTL references and comments 2020-05-12 10:36:38 +02:00
mataniko
321a02aff2 JANITORIAL: Rename shouldRTL, resetRTL and FORCE_RTL 2020-05-12 10:36:38 +02:00
Pawel Kolodziejski
b586571900 ALL: synced with ScummVM commit 09bf38c120 2020-05-09 20:05:54 +02:00
Matthew Duggan
e5501c7be4
BASE: Move CoreMIDI to end of list to speed up finding the right device (#2193)
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.
2020-05-01 13:27:43 +09:00
Eugene Sandulenko
bd788ad801 BASE: Mention FriBiDi in the about dialog when compiled in 2020-04-30 11:52:42 +02:00
Thierry Crozat
b196d26b3e SDL: Add --logfile command line argument to specify logfile path 2020-04-17 22:39:50 +01:00
Bastien Bouclet
bcfb7145fa GUI: Allow engines to define a fully custom tab in the edit game dialog
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.
2020-03-28 07:38:39 +01:00
Bastien Bouclet
9cc2fee887 SDL: Enable joystick input by default
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.
2020-03-16 18:41:27 +01:00
Cameron Cawley
f2db412ba5 GUI: Store the shader name in the config file instead of the ID 2020-03-09 18:01:14 -05:00
Cameron Cawley
7488e17c0a GUI: Allow shaders to be selected for individual targets 2020-03-09 18:01:14 -05:00
Zvika Haramaty
3b4810aab4 AUDIO: Added dump-midi mechanism
This mechanism is enabled by '--dump-midi' command line parameter.
The midi events are printed to screen, and dumped to 'dump.mid' file.
2020-02-28 08:27:12 +02:00
Bastien Bouclet
3567c4f159 BASE: Reset the keymapper on RTL with dynamic plugins enabled
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.
2020-02-09 07:29:43 +01:00
Bastien Bouclet
2ef7365401 KEYMAPPER: Change backend default bindings to replace keymap defaults
Previously backend defaults where added to the keymap defaults.
However, it became apparent backends need to change the default bindings
to resolve conflicts.
2020-01-29 08:51:30 +01:00
Bastien Bouclet
519b4a57e2 KEYMAPPER: Allow engines to return multiple keymaps
The idea is that keymaps may be situational. A keymap may be always
enabled, while another one may be enabled only during combat..
2020-01-29 08:51:29 +01:00
Bastien Bouclet
7617723ab5 KEYMAPPER: Allow backends to register multiple keymaps 2020-01-29 08:51:29 +01:00
Bastien Bouclet
14663c4790 KEYMAPPER: Make the keymapper mandatory 2020-01-29 08:51:29 +01:00
Bastien Bouclet
8dd2b7ca39 EVENTS: Expose the primary global keymap builder 2020-01-26 23:09:08 +02:00
Bastien Bouclet
be388fd9b0 BASE: Don't needlessly go through EngineMan to get the game description 2020-01-26 23:09:08 +02:00
Bastien Bouclet
ee8229dc00 ENGINES: Move keymap initialization to MetaEngine
To be able to access the keymap while the engine is not running.
2020-01-26 23:09:08 +02:00
Bastien Bouclet
19de568e24 KEYMAPPER: Untangle the dependencies between Action and Keymap 2020-01-26 23:09:08 +02:00
Bastien Bouclet
576982bc33 KEYMAPPER: Use the default action bindings defined by the backends 2020-01-26 19:07:53 +01:00
Bastien Bouclet
17791e2f7d KEYMAPPER: Actions can now have default mappings 2020-01-26 19:07:53 +01:00
Bastien Bouclet
9c0bc2b633 KEYMAPPER: Simplify the way keymaps are enabled and disabled 2020-01-26 19:07:53 +01:00
Bastien Bouclet
ac44469558 KEYMAPPER: Remove the domain class 2020-01-26 19:07:53 +01:00
Bastien Bouclet
e197a75829 KEYMAPPER: Action can generate only a single event 2020-01-26 19:07:53 +01:00
Bastien Bouclet
b7a816f1eb KEYMAPPER: Clean up the classes dependencies 2020-01-26 19:07:53 +01:00
Cameron Cawley
795452042e BASE: Add mouse click events to the global keymap 2020-01-21 19:49:10 +00:00
Bastien Bouclet
f17a7a96da BASE: Fix being unable to run games when using dynamic plugins
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.
2020-01-04 17:49:32 +01:00
Bastien Bouclet
9454346782 ENGINES: Copy the data referenced by QualifiedGameDescriptor
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.
2020-01-01 08:19:48 +01:00
Bastien Bouclet
feaf9dc365 ALL: Sync with ScummVM rev. 55dba55056 2019-12-08 17:06:42 +01:00