Commit Graph
1456 Commits
Author SHA1 Message Date
athrxx 0aca97d8f5 COMMON: add PC-98 8-color render mode to launcher 2024-08-06 08:47:25 +03:00
Miro Kropacek dd49c9e3ce BACKENDS: ATARI: QoL improvements
- fixed aspect ratio correction (overlay destroyed
  its state, keyboard shortcut didn't always work),
  as well as significantly sped it up on VGA and
  SuperVidel

- smoother transitions between video modes

- reduce the number of video mode changes

- fixed a few extreme cases when triple buffering
  could lose an update

- lighter ST RAM usage in the lite build

- removed hardware accessing init/deinit routines
2024-07-15 19:42:51 +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 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 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 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 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 98d6f155d2 ENGINES: Split Engine::createInstance in two
This brings a cleaner separation between AdvancedMetaEngineDetection and
AdvancedMetaEngine.
2024-06-30 18:39:06 +02:00
Misty De Meo 7f9b731b16 BASE: silence clang warning
clang interprets this expression as possibly a mistaken attempt to
add a number to the string, rather than to index into the string.
Adding parens around the string silences the warning.
2024-06-16 00:48:09 +02:00
Le Philousophe c1b4dfad77 BASE: Rework path parsing on command line
Make a macro to unify processing.
Use the new Path helper to handle WIN32 and save to settings using the
toConfig helper.
This makes sure the path is properly encoded and will not be improperly
decoded later.
2024-06-15 02:07:38 +02:00
athrxx d7e8a54756 AUDIO/GUI: add Mac sound option 2024-05-30 20:10:51 +02:00
AndywinXp 2870f3627c BASE: Enable aspect ratio correction by default 2024-05-04 00:12:20 +02:00
polyesterswing 15a9c63565 AUDIO: Add libopenmpt support 2024-02-21 18:45:25 +01:00
Lars Sundström 20d14337c9 IOS7: Make "Designed for iPad" on Mac silicon great again
It is possible to run iOS applications on macOS on Mac computers
running on Apple Silicon. This was possible before moving to the
ModularGraphicsBackend implementation in the iOS7 port with just
a little tweaking.

After the move to ModularGraphicsBackend, the ScummVM application
crashed on launch. There were two reasons for crashing;

1. dlsym() was called with the special handle RTLD_SELF to search
for the address binding of the GLES2 load symbol. Using RTLD_SELF
the search for the symbol is limited to the shared object issuing
the call to dlsym() and those shared objjects which were loaded
after it. When running an iOS app in macOS it seems that the app
is running inside a wrapper, which means that the objects resides
in a different level. Changing the search level to RTLD_DEFAULT
changes the search to also include all objects loaded at program
start-up.

2. As for the native macOS application, XCode also adds the
argument -NSDocumentRevisionsDebugMode YES if XCode option
"Allow debugging when using document Versions Browser" is on.
Make sure not to parse that argument also when building the
IPHONE target.
2024-01-21 10:57:27 +01:00
antoniou79 75bfee7d6b BASE: Add path option check for both readable and writeable
Also made the ensureAccessibleDirectoryForPathOption() method use a recursive call to reduce complexity

The following decisions are made for commandline path options accessibility checks:
"screenshotpath" option is required to be writeable (not checked for readable)
"path" option is required to be readable (not checked for writeable)
"savepath" option is required to be readable AND writeable
"extrapath" option is required to be readable (not checked for writeable)
"iconspath" option is required to be readable AND writeable
"themepath" option is required to be readable (not checked for writeable)
2024-01-20 23:58:40 +01:00
antoniou79 047942f5f2 BASE: Fix error in usage message for screenshot path 2024-01-20 23:58:40 +01:00
antoniou79 60b1731d47 BASE: Merge accessibility check and folder path extraction in reusable method 2024-01-20 23:58:40 +01:00
antoniou79 bc2942d73a BASE: Ensure folder path when file path set in command line
soundfont option is excluded for this, since that is expected to be a file path
2024-01-20 23:58:40 +01:00
Cameron Cawley 5b1b14ad80 COMMON: Mark more symbols as const 2023-12-26 20:23:59 +01:00
Le Philousophe 04d68d87c0 BASE: Migrate to Path class 2023-12-24 13:19:25 +01:00
Le Philousophe ed9ded9e83 GUI: Migrate GUI to Path class 2023-12-24 13:19:25 +01:00
Le Philousophe b3fbce7782 BACKENDS: Migrate plugins to Path API 2023-12-24 13:19:25 +01:00
Le Philousophe d931c58b5b BASE: Start considering game paths as Path class
As it's still stored as String, this is still safe for every legacy use
2023-12-24 13:19:25 +01:00
Le Philousophe 645a35c05b ENGINES: Migrate to Path class 2023-12-24 13:19:25 +01:00
Le Philousophe 2f34975164 COMMON: Make shaders API use the Path class 2023-12-24 13:19:25 +01:00
Le Philousophe 0a636d0d40 COMMON: Make pluginspath a Path object 2023-12-24 13:19:25 +01:00
Le Philousophe 802c91554f COMMON: Make extrapath a Path object 2023-12-24 13:19:25 +01:00
Le Philousophe 088db8ca65 BASE: Various some path related cleanups 2023-12-24 13:19:25 +01:00
Eugene Sandulenko 35228a396f Revert "BASE: Always print CPU extensions on startup"
This reverts commit d7d5c1f65c.
2023-12-08 12:44:14 +01:00
Eugene Sandulenko 0acbc8ae4e RELEASE: This is 2.9.0git 2023-12-03 22:09:08 +01:00
Thierry Crozat 95a060e4fe AUDIO: Add a basic soundfont for fluidsynth
The soundfont was already included in the Libretro port. It is
now included in all platforms.
2023-12-03 16:17:32 +00:00
Eugene Sandulenko 660e7f9105 BASE: Added more missing spaces to the SAF message 2023-12-02 15:40:18 -08:00
Eugene Sandulenko 51d740995c BASE: Add missing spaces in the SAF explanation text 2023-12-02 15:38:31 -08:00
Coen Rampen f1abbff901 MIDI: Update FluidSynth settings
This updates the FluidSynth settings to the value ranges and defaults used by
the current version 2.3.4.

Reverb
- Room size: 0.00-1.20 / 0.20 to 0.00-1.00 / 0.20
- Width: 0-100 / 1 to 0.0-100.0 / 0.5
Chorus
- Level: 0.00-1.00 / 1.00 to 0.00 - 10.00 / 2.00
- Speed: 0.30-5.00 / 0.30 to 0.10-5.00 / 0.30
- Depth: 0.0-21.0 / 8.0 to 0.0-256.0 / 8.0
2023-11-25 22:26:53 +01:00
Eugene Sandulenko d7d5c1f65c BASE: Always print CPU extensions on startup 2023-11-22 01:00:30 +01:00
Rana prathap 97a9ed6e8d OPENGLSDL: add way to force update the window to required resolution 2023-11-17 20:28:39 +01:00
Rana prathap c8d2c4dad1 GUI: Fix filenames for dumped dialogs 2023-11-17 20:28:39 +01:00
Paul Gilbert 85f341e0f3 MM: Add automatic update of old xeen engineId 2023-11-15 23:41:21 -10:00
Kaloyan Chehlarski 0785fb6a73 BASE: Print CPU extension info to console on startup 2023-11-14 12:05:27 +02:00
elasota cc64a58b68 BASE: Don't expose disable-sdl-audio or disable-sdl-parachute options when not using SDL 2023-11-07 02:45:49 +01:00
elasota bd857272f4 BACKENDS: SDL: Use null mixer if audio initialization fails, and add a flag to forcibly disable it for testing. Add an alternate call that returns true if the mixer manager is a null device.
SDL audio init will fail on Windows if all audio output devices are disabled.
Only about 10 engines are checking for this case and numerous pieces of common code (EmulatedOPL, VideoDecoder) fail as well, so this acts as a fallback to prevent instability.
2023-11-07 02:45:49 +01:00