Commit Graph

152782 Commits

Author SHA1 Message Date
AndywinXp
b96e01d72a CREDITS: Update SCUMM and add BAGEL 2024-06-30 20:25:39 +02:00
Benjamin Funke
a65a19ac8c
GOB: Copy protection flag cleanup 2024-06-30 20:43:32 +03:00
Cameron Cawley
441b02d057 DETECTION: Use uint32 for ADGameFileDescription file size 2024-06-30 19:13:41 +02:00
ScummVM-Translations
b346673908 I18N: Update translation files
Updated by "Update PO files to match POT (msgmerge)" hook in Weblate.

Translation: ScummVM/scummvm
Translate-URL: https://translations.scummvm.org/projects/scummvm/scummvm/
2024-06-30 16:52:12 +00:00
athrxx
728153ec62 SCI: get rid of EGA driver implementation
This is more or less a leftover from the beginnings of my work on the
CGA and Hercules modes. The EGA driver implementation does
nothing except forward the data, so it can just run on the default.

Also remove an unnecessary buffer.
2024-06-30 19:51:49 +03:00
athrxx
e903472e61 SCI: fix CGA b/w and Hercules transitions
The engine makes use of OSystem::fillScreen() for the transitions.
I have implemented scaled variants for CGA b/w and Hercules.
2024-06-30 19:51:49 +03:00
ScummVM-Translations
9570671973 I18N: Update translations templates 2024-06-30 16:39:26 +00:00
ScummVM-Translations
705d203080 I18N: Update translation files
Updated by "Update PO files to match POT (msgmerge)" hook in Weblate.

Translation: ScummVM/scummvm
Translate-URL: https://translations.scummvm.org/projects/scummvm/scummvm/
2024-06-30 16:39:24 +00:00
Le Philousophe
09729ac9de PLUGINS: Use override keyword
This silences a clang warning
2024-06-30 18:39:06 +02:00
Le Philousophe
d0e0ff60c5 GUI: Don't list available engines if this is too slow 2024-06-30 18:39:06 +02:00
Le Philousophe
34108724ed ENGINES: Factorize sizing and writing functions for dynamic descriptions 2024-06-30 18:39:06 +02:00
Le Philousophe
ca2c49476f GUI: Avoid engine plugin unload while creating AboutDialog
When in game, don't list engines if the PluginManagerUncached is used.
If the detection is built as a separate plugin, nothing is listed but
that's better than crashing.
2024-06-30 18:39:06 +02:00
Le Philousophe
a4fb9d6145 PLUGINS: Unload engine plugins while loading detection
This makes sure that the engine is never loaded while having the
detection.
The opposite is not (yet?) enforced to avoid crashing some unhandled
case.
2024-06-30 18:39:06 +02:00
Le Philousophe
b07a9388a4 ENGINES: Remove now useless Engine::getMetaEngineDetection
This function assumes that the detection plugin is loaded alongside the
engine plugin.
2024-06-30 18:39:06 +02:00
Le Philousophe
5169a395a5 PLUGINS: Remove now useless functions
These functions heavily rely on the fact that detection plugin and
engine plugin can be loaded at the same time.
2024-06-30 18:39:06 +02:00
Le Philousophe
07daa6c225 ENGINES: Simplify EngineManager::findTarget
Do not make it return the detection plugin. It's never used anymore and
tends to imply that detection plugin can be used alongside the engine
plugin.
2024-06-30 18:39:06 +02:00
Le Philousophe
a92dab8a8c BASE: Unload detection plugin before running game 2024-06-30 18:39:06 +02:00
Le Philousophe
310063af6c WINTERMUTE: Simplify engine plugin search 2024-06-30 18:39:06 +02:00
Le Philousophe
21bd468b9a SCI: Simplify engine plugin search 2024-06-30 18:39:06 +02:00
Le Philousophe
bef5e4e0a5 GUI: Make EventRecorder not use detection to find engine plugin
This has not been tested though as the event manager seems broken on
these parts.
2024-06-30 18:39:06 +02:00
Le Philousophe
a835803695 GUI: Make engine options not depend on detection plugin
Load back detection plugin when closing and make sure nothing needs
engine plugin anymore before.
2024-06-30 18:39:06 +02:00
Le Philousophe
16e72ad181 GUI: Make listing saves not depend on detection
And unload detection before loading engine.
2024-06-30 18:39:06 +02:00
Le Philousophe
1c1667bf68 GUI: Fix listing of available engines when using uncached plugins
Also avoids loading detection while iterating over engines
2024-06-30 18:39:06 +02:00
Le Philousophe
d01827b509 GUI: Make auto saves update check work with PluginManagerUncached
This also unloads detection before loading the engines.
2024-06-30 18:39:06 +02:00
Le Philousophe
885208e8f2 BASE: Split listSaves in two parts
First get all the games using the detection plugins.
Then, list all the saves by loading all engines.
2024-06-30 18:39:06 +02:00
Le Philousophe
a1193a02eb PLUGINS: Make findEnginePlugin publicly available
This will allow to remove getEngineFromDetectionPlugin which needs both
plugins loaded at the same time.
2024-06-30 18:39:06 +02:00
Le Philousophe
05a62249a9 PLUGINS: hide unloadAllPlugins from outside of PluginManager
This function will delete all plugins even those also stored in
_allEnginePlugins list which triggers a double free when cleaning up.
2024-06-30 18:39:06 +02:00
Le Philousophe
55ac8ba07f PLUGINS: Remove default value for EngineMan::getPlugins argument
This is now obvious of which type is the list of plugins returned.
2024-06-30 18:39:06 +02:00
Le Philousophe
2575cdacff PLUGINS: Cleanup when destroying PluginManagerUncached
This removes memory leaks when destroying the manager.
2024-06-30 18:39:06 +02:00
Le Philousophe
93b10df84a PLUGINS: Rework (un)loading of detection plugin
Make the function more readable and avoid leaking memory when plugin is
loaded twice.
2024-06-30 18:39:06 +02:00
Le Philousophe
c9d701884b PLUGINS: Reset pointer after deletion
This avoids error on double unload.
2024-06-30 18:39:06 +02:00
Le Philousophe
ebdcf6ccd6 ENGINES: Mark getName() functions as overrides
They do override PluginObject::getName().
This is more readable that calling this method is the same as calling it
on PluginObject.
2024-06-30 18:39:06 +02:00
Le Philousophe
c93f53b491 PLUGINS: Rename getEngineFromMetaEngine to getEngineFromDetectionPlugin
Update comments and variable names accordingly.
This now matches what this function really do.
2024-06-30 18:39:06 +02:00
Le Philousophe
5ded4aedec PLUGINS: Don't call plugin->getType repeatedly 2024-06-30 18:39:06 +02:00
Le Philousophe
2645b1431c PLUGINS: Rename findPlugin to findDetectionPlugin
This function does return a MetaEngineDetection plugin
2024-06-30 18:39:06 +02:00
Le Philousophe
ab4d6db36b GLK: Split detection from running
This allows to not use the detection plugin while running the engine.
2024-06-30 18:39:06 +02:00
Le Philousophe
37de547ec1 ENGINES: Make AdvancedMetaEngine use ADDynamicGameDescription
This will allow to unload AdvancedMetaEngineDetection plugin as
soon as identifyGame is done and before loading the AdvancedMetaEngine.
2024-06-30 18:39:06 +02:00
Le Philousophe
7e0048b4a3 ENGINES: Add ADDynamicGameDescription class
This class manages a buffer where all data usually stored in detection
plugin will get copied before unloading the plugin and starting the
game.

This class expects that two functions are present in every
GameDescription: sizeBuffer which calculates how many bytes we will need
to store the entry in RAM and toBuffer which copies the data in the
buffer and fix the pointers in the class.
At the end, it is expected that an ADDynamicGameDescription doesn't
depend anymore on data stored in the detection plugin.

The AD_GAME_DESCRIPTION_HELPERS macro allow to implement these functions
in all GameDescription which don't have any pointer except those in
ADGameDescription.
2024-06-30 18:39:06 +02:00
Le Philousophe
a7d0db4947 ENGINES: Let MetaEngine delete the engine
This will allow to cleanup other data managed by the MetaEngine (game
descriptors).
2024-06-30 18:39:06 +02:00
Le Philousophe
b61bd3ff85 ENGINES: Create a type aware advanced meta engine 2024-06-30 18:39:06 +02:00
Le Philousophe
90b886097f ENGINES: Create a type aware advanced detector 2024-06-30 18:39:06 +02:00
Le Philousophe
98d6f155d2 ENGINES: Split Engine::createInstance in two
This brings a cleaner separation between AdvancedMetaEngineDetection and
AdvancedMetaEngine.
2024-06-30 18:39:06 +02:00
ScummVM-Translations
449ce8be93 I18N: Update translations templates 2024-06-30 16:01:46 +00:00
Torbjörn Andersson
370dbd5c6f SCUMM: Change prefix of game-specific options from GUIO_ to GAMEOPTION_
This is consistent with how the other engines do it, and help make them
stand out from the generic GUIO_ options.
2024-06-30 18:01:32 +02:00
Torbjörn Andersson
7ce9f05588 GOB: Add "Enable copy protection" engine checkbox
I only have a fraction of these (I wouldn't even recognize Adibou if I
saw it!) so I've just made the assumption that the copy protection for
Gobliiins 1, Gobliins 2, and Adibou 1 apply to all floppy versions and
none of the CD versions.

I've never seen the copy protection screen in my GOG floppy version of
Gobliiins 1 though. Also, the GOG floppy version of Goblins 3 shows a
copy protection screen, but apparently that's bypassed somehow without
checking the "copy_protection" setting?
2024-06-30 18:01:32 +02:00
Torbjörn Andersson
d344800805 MADS: Add GAMEOPTION_TTS_NARRATOR to the entry that was missing it
I don't know if it should also be on the demo, but either way it's less
important there.
2024-06-30 18:01:32 +02:00
Torbjörn Andersson
2a9f7759a3 SAGA: Only enable copy protection checkbox for floppy ITE
And the one CD version that "behaves like a DOS floppy version". Note
that I don't own any of these myself.
2024-06-30 18:01:32 +02:00
Torbjörn Andersson
c2241ee197 MM: XEEN: Add "Enable copy protection" engine checkbox
I assume this should apply to all Xeen games, but I don't know for sure.
2024-06-30 18:01:32 +02:00
Torbjörn Andersson
a80c167641 DREAMWEB: Add "Enable copy protection" engine checkbox 2024-06-30 18:01:32 +02:00
Torbjörn Andersson
28bfd6e977 AGOS: Add "Enable copy protection" engine checkbox
I don't have the floppy version of Simon 2, and I'm uncertain of the
actual effect of failing the copy protection in Waxworks and Simon 1.
But they are at the very least partly implemented.
2024-06-30 18:01:32 +02:00