Commit graph

10177 commits

Author SHA1 Message Date
Daniel Nylander
93a4af58d9 I18N: Rename "se" to "sv", which is the correct Swedish language code 2025-03-30 22:19:13 +03:00
Giovanni Cascione
b179e3bca0 LIBRETRO: update in-laucher playlist generator help 2025-03-30 10:42:33 +02:00
Giovanni Cascione
34c7bcb070 LIBRETRO: update README.md 2025-03-30 10:42:16 +02:00
Giovanni Cascione
5ef493824a LIBRETRO: JANITORIAL: fix typo 2025-03-30 10:41:59 +02:00
Giovanni Cascione
92597f2996 LIBRETRO: BUILD: drop third party db supported extensions 2025-03-30 10:41:43 +02:00
Giovanni Cascione
746cc04b8d LIBRETRO: add kFeatureShadersForGame flag 2025-03-30 10:41:25 +02:00
Giovanni Cascione
17e399b480 LIBRETRO: add kFeatureOpenGLForGame 2025-03-30 10:41:05 +02:00
Filippos Karapetis
3221471035 BACKENDS: Use pointers when deleting inside range loops 2025-03-27 13:47:57 +08:00
Filippos Karapetis
ce51fd937f BACKENDS: Use C++ 11 range-based for loops 2025-03-27 13:47:57 +08:00
Donovan Watteau
858847e1ba BACKENDS: FS: Use stat() fallback for all unexpected dirent d_type values
On systems where dirent provides a `d_type` field, we currently fall
back to stat() only for DT_UNKNOWN values.

Do so for all unexpected `d_type` values instead (that is, anything
different from DT_DIR, DT_REG and DT_LNK).

This is because there's no guarantee that `d_type` will be meaningful
for all OSes and filesystems. One such example is macOS Tiger, where
`d_type` will hold bogus values for the .aiff files of cddafs mount
points (as triggered by MacOSXAudioCDManager). (This bug appears to
have been fixed in cddafs-242.0.1, around the Snow Leopard area.)

When using stat() over the same files, the proper file type is
returned, though. Hence the need for the stat() fallback to be
triggered in more cases than DT_UNKNOWN.

This fixes Indy3 FM-TOWNS music being silent on macOS Tiger, when
playing from the original CD.
2025-03-26 11:50:53 +08:00
Donovan Watteau
fb2500e16b BACKENDS: MACOS: Print a warning when no files are found in CDDAFS volumes
getChildren() may have succeeded but found no children at all, for some
reason. Properly print a warning in this case as well.
2025-03-26 11:50:53 +08:00
Giovanni Cascione
8e9d265d81 LIBRETRO: BUILD: re-enable MT32 by default 2025-03-09 00:33:33 +01:00
Giovanni Cascione
f2be482cd0 LIBRETRO: BUILD: fix ctr defines 2025-02-23 17:08:47 +01:00
Giovanni Cascione
efae51003f LIBRETRO: BUILD: disable opengl for osx 2025-02-23 17:08:31 +01:00
Giovanni Cascione
25a65e555b LIBRETRO: fix mapper_get_mapper_key_index loop 2025-02-23 17:08:11 +01:00
Le Philousophe
f4c9ddf78a BACKENDS: SDL: Now fix build for older SDL... 2025-02-23 12:23:54 +01:00
Le Philousophe
42cfd6fbef BACKENDS: SDL: Fix build for SDL3 2025-02-23 09:23:47 +01:00
Le Philousophe
93d9504798 BACKENDS: SDL: Let the user prevent resizing of the window
This adds a new shortcut (Ctrl+R) which toggles the resizable state of
the window and allows the user to lock the window size and prevents
resizing.

Closes bug:15124.
2025-02-23 01:10:03 +02:00
Le Philousophe
2d1b05bf17 BACKENDS: SDL: Fix sdlGetAttribute shim on SDL2
sdlGetAttribute returns true on success (like SDL_GL_GetAttribute on
SDL3), but SDL_GL_GetAttribute on SDL2 return 0 on success.
2025-02-22 10:57:49 +01:00
Le Philousophe
19f735adf7 BACKENDS: SURFACESDL: Fix memory leak
There was a copy paste error.
Also use the new shim instead of an ifdef to destroy the mouse surface.
2025-02-19 22:30:17 +01:00
scemino
8afb2c1f62 BACKENDS: Add SDL3 backend + update imgui 2025-02-18 22:13:56 +01:00
Le Philousophe
37305ba22c SDL: Allow to use ImGui with a GLES2 context
Init ImGui after our GLContext object has been initialized and check the
context type to specify the proper GLSL version.
Also make sure we are not in GLES mode before setuping ImGui.
2025-02-16 18:43:41 +01:00
Michael Ball
97129b9f96 3DS: Fix improper memory freeing (Sprite.vertices) 2025-02-16 11:31:41 +01:00
Le Philousophe
106f9caa89 ANDROID: Improve emulated gamepad buttons handling
When triggering buttons on the virtual gamepad, the down and up events
are sent on release. That's a leftover from the previous virtual gamepad
which didn't allow to select the buttons easily.
On the new virtual gamepad, the button choice is better so we can
trigger a button down as soon as the finger is on it.
This fixes a bug in some AGS games which missed the button press because
the release was sent too soon.
Fixes Trac#15444.
2025-02-09 14:00:19 +01:00
Giovanni Cascione
3b17472f7d TETRAEDGE: BUILD: remove obb_archive.o from DETECT_OBJS 2025-02-05 13:12:52 +01:00
Giovanni Cascione
fd66964efd LIBRETRO: BUILD: fix gcw0 PRId64 / PRIu64 missing defines 2025-02-05 11:01:24 +01:00
Giovanni Cascione
72550dec75 LIBRETRO: BUILD: add workaround for android 2025-02-05 11:01:13 +01:00
Giovanni Cascione
e0046d539e LIBRETRO: BUILD: fix new module.mk rules depending on config.mk 2025-02-05 11:01:01 +01:00
Giovanni Cascione
60bdbf8255 LIBRETRO: BUILD: add components handling 2025-02-05 11:00:51 +01:00
Le Philousophe
dc13fcf633 ANDROID: Use the proper USAGE category
We are more game than movies.
2025-02-02 12:22:36 +01:00
Le Philousophe
0fe46dbebf DLC: Fix build 2025-01-27 23:10:07 +01:00
Le Philousophe
ddfccef675 ANDROID: Add a LED widget and use it to indicate IO activity in SAF
This will notify the user of IOs by blinking the LED. This indicates
that ScummVM is busy and not hung.
2025-01-26 18:17:05 +01:00
Le Philousophe
b82bfc006b ANDROID: Track time spent in SAF queries
This allows to monitor times where we are busy because of I/Os and we
will be able to notify the user.
2025-01-26 18:17:05 +01:00
Le Philousophe
402f31122c ANDROID: Don't track SAFFSNode using JNI global references anymore
The JNI global references are limited in count and we overflow it for
games with a huge number of files (like Zork Nemesis).
Instead, track all the nodes from Java side using a unique identifier
generated using an atomic counter.
Then, all JNI calls either use a temporary local reference to access
node data or use the unique identifier.
2025-01-26 18:17:05 +01:00
Le Philousophe
e08b8203bc ANDROID: Use a SharedPtr to track SAF tree global references
This makes us use a single global reference per tree instead of
duplicating them on each filesystem node creation.
Thanks to the SharedPtr, the global reference is automatically
deallocated when needed.
This is the first step to avoid global references overflow.
2025-01-26 18:17:05 +01:00
Le Philousophe
8ae47f50e2 ANDROID: Store the main activity layout in XML
This lightens the code a bit and make it simpler to understand.
In addition, migrate the buttons layout to GridLayout for future
additions.
2025-01-26 18:17:05 +01:00
Le Philousophe
57c4599dcd ANDROID: Make assets installation depend on config.mk
This makes sure new needed files following a reconfigure are copied.
This does not do the cleanup though.
2025-01-26 18:17:05 +01:00
Le Philousophe
3c4df9614a ANDROID: Don't call error too early
When the backend is not yet set up, avoid using error which ends up
using exit without any useful error log.
2025-01-26 18:17:05 +01:00
Le Philousophe
2efc9dd830 ANDROID: Don't use a 0 API level
That doesn't exist, use 1 instead.
2025-01-26 18:17:05 +01:00
Le Philousophe
d0909e102d ANDROID: Allocate enough stack
Default stack allocation for Java thread is 1MB which is shared with
Java side.
On a traditional Linux, the main thread is often up to 8MB.
2025-01-22 19:14:15 +01:00
Le Philousophe
663333de4e BACKENDS: ANDROID: Fix memchr calls
Android libc (Bionic) had a bug in their memchr function where the
needle wasn't considered as an unsigned char for Android below 6.0
except for aarch64 where the implementation was in assembly and behaves
correctly.
This means that on every impacted platform, passing a needle made of a
char >= 0x80 makes memchr never find a match because the value is signed
extended.
Make sure we avoid this case by forcing a cast to unsigned char before
passing an int.
2025-01-13 13:23:06 +01:00
Cameron Cawley
e03b609cdc GRAPHICS: Remove masks from ManagedSurface::transBlitFrom 2025-01-08 19:29:46 +02:00
Miro Kropacek
b2f98611e7 BACKENDS: STMIDI: Fix a typo 2025-01-06 14:08:59 +01:00
Miro Kropacek
9a47e0d4d2 DEVTOOLS: Add Atari to update-version.pl
And regenerate for current 2.10.0git
2024-12-30 19:50:12 +01:00
Miro Kropacek
a4ed12b04d BACKENDS: ATARI: Cleanup overlay code
Pretending that the manager starts in the overlay mode was really
confusing.

Also, the concept of _workScreen seemed great in theory but lead to
various subtle errors which were very hard to debug (related to cursor
handling, resolution changing etc).
2024-12-30 18:37:55 +01:00
Miro Kropacek
b779b2038f JANITORIAL: ATARI: Unify enum names 2024-12-30 18:37:54 +01:00
Cameron Cawley
645f5d2e36 GRAPHICS: Remove overrideColor from ManagedSurface::transBlitFrom 2024-12-30 10:59:16 +02:00
Lars Sundström
018a1dba1c IOS7: Log to console when debugger is attached
When the device is attached to the debugger console in Xcode it is
more convenient to get the logs in the console than in a log file.
2024-12-28 17:14:59 +01:00
Lars Sundström
1ab097a7a9 IOS7: Use OpenGL ES 3 context when possible
The OpenGL ES version support is decided by the device hardware
processors, (PowerVR SGX graphics processors).
Most older devices support OpenGL ES 2.0 as documented here:
https://developer.apple.com/library/archive/documentation/OpenGLES/Conceptual/OpenGLESHardwarePlatformGuide_iOS/OpenGLESPlatforms/OpenGLESPlatforms.html

OpenGL ES 2.0 is the baseline profile for iOS devices while
support for OpenGL ES 3.0 was added in iOS 7 and later.

Devices supporting OpenGL ES 3.0 is listed here (plus the newer
devices than listed, Apple doesn't update the list for every new
device):
https://developer.apple.com/library/archive/documentation/DeviceInformation/Reference/iOSDeviceCompatibility/HardwareGPUInformation/HardwareGPUInformation.html#//apple_ref/doc/uid/TP40013599-CH106-SW1
2024-12-28 17:14:59 +01:00
Le Philousophe
95c65cd30a BACKENDS: MACOS: Cleanup nullptr use in ObjC files 2024-12-28 11:45:49 +01:00