Commit Graph

404 Commits

Author SHA1 Message Date
Miro Kropacek
f7d78ec70a BACKENDS: ATARI: Implement internal downsampling to 8-bit
So we don't rely on STFA's questionable algorithms and we can use
X-SOUND, too.
2023-11-09 18:20:06 +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
Ankush Dutt
a26d00a2b7 DLC: Remove Playstore code 2023-09-14 08:22:56 +02:00
Ankush Dutt
4ae119d63f DLC: Add USE_DLC in configure for general DLC integration
- Developers will need to use --enable-dlc with configure if they want to integrate
the DLC downloader. The kFeatureDLC will determine if the target platform is supported
- USE_SCUMMVMDLC will be used specifically to compile curl based ScummVMCloud (USE_DLC
will be automatically enabled if ScummVMCloud is supported)
2023-09-14 08:22:56 +02:00
Ankush Dutt
22f912d7e0 DLC: Wrap ScummVM DLC in configure enabled feature, disabled by default 2023-09-14 08:22:56 +02:00
Ankush Dutt
c0f91421cc BACKENDS: Initial code for downloading DLCs using CURL 2023-09-14 08:22:56 +02:00
Ankush Dutt
99af2be9c0 BACKENDS: Initial implementation of Android PlayStore DLC Manager 2023-09-14 08:22:56 +02:00
Ankush Dutt
6e8bdee909 BACKENDS: Add initial code for DLC Manager 2023-09-14 08:22:56 +02:00
Thierry Crozat
e73b277589 IOS7: Add missing file in module.mk
The iOSGraphics3dManager uses the OpenGL::FrameBuffer class, so the
corresponding code needs to be compiled for the ios7 backend.
2023-07-03 22:09:25 +01:00
Lars Sundström
6a74f7b32b IOS7: Implement iOSGraphics3dManager
Add a graphic manager rendering 3D graphics for engines supporting
3D games. The manager is implemented using the 3D graphic managers
for Android and SDL as models.

Most probably Android and iOS can share much more of the code, but
that will be a separate work to refactor.
The iOSGraphics3dManager handles resize since the screen dimension
changes on rotation.

Games not supporting arbitary resolutions, e.g. Grim, are rendered
on an intermediate framebuffer with the size requested by the
engine and then rendered to the backbuffer (a framebuffer bound to
the renderbuffer) and stretched to the screen resolution off the
device.

This commit just adds the manager. It will be utilised in next
commit.

Update gitlab ci worker and update documentation.
2023-07-03 21:50:32 +02:00
Lars Sundström
e6232547d5 IOS7: Add iOSGraphicsManager class
The ios7 backend implements the graphic handling in the backend code.
iOS supports OpenGL through the OpenGL Framework since iOS 2.0. It's
marked as deprecated but is still shipped with the SDKs for iPhoneOS
and tvOS and will hopefully be so for some time.
The ios7 backend can therefore utilize the OpenGLGraphicsManager to
handle all graphics.

Implement an iOSGraphicsManager class that can be used in the ios7
backend. The iOSGraphicsManager will require some callback functions
in the ios7 backend. createOpenGLContext() will be called to ask the
backend to create an OpenGL context in which the graphic manager can
draw. The function returns the ID of the renderbuffer which shall be
used when creating the framebuffer object this differ iOS from other
platforms). A custom RenderBufferTarget class is added to address
this.

destroyOpenGLContext() will be called to make sure that the old GLES
context is not reused. notifyContextDestroy() does call the function
OpenGLContext.reset() but that will not destroy the context.

refreshScreen() will be called to ask the backend to present the
drawn graphics on the screen. getSystemHiDPIScreenFactor() is called
to get the screen scaling factor. getScreenWidth() and
getScreenHeight() are called to get the width and height of the
surface to draw on.

This commit adds the class but the ios7 backend doesn't make use of
it quite yet. To use it require the ios7 to be a child class of the
ModularGraphicsBackend. That change requires a lot of changes which
will be targeted in separate commits.

Update docportal and github ci worker to only disable the feature
opengl_classic_game since opengl and opengl_shaders are required to
compile the OpenGLGraphicsManager.
2023-07-03 21:50:32 +02:00
Le Philousophe
f337abae70 BACKENDS: SDL: Remove superfluous ifdef
This block is already dedicated to SDL_BACKEND
2023-07-03 21:50:32 +02:00
Miro Kropacek
2ce02658ec BACKENDS: ATARI: DMA playback is not always active
E.g. in the overlay there's no need to steal cycles for playing empty
sample buffer.

Also make STMIDI default audio driver for the slim version.
2023-06-15 22:57:55 +02:00
Miro Kropacek
5537759c53 BACKENDS: ATARI: Rework
- Atari TT support
- all video and audio is now handled via XBIOS
- reworked IKBD handling using Kbdvbase vectors, esp. Kbdvec()
- video uses proper triple buffer
- arbitrary game screen size support
- many fixes and optimizations
2023-06-15 22:57:55 +02:00
Alexander Tkachov
b4dd48f395 CLOUD: Add new flow (WIP)
- allow OPTIONS HTTP method to be handled by local webserver;
- add /connect_cloud endpoint;
- add new DropboxStorage constructor that works with JSON response instead of requesting that via shortcode;
- add CloudManager::connectStorage() overload for this new JSON flow.

/connect_cloud endpoint allows cross-origin request (via CORS HTTP headers) from cloud.scummvm.org, so user's browser sends the JSON response directly to ScummVM app, instead of the app requesting that response from the site.

This commit is WIP, introducing a new constructor for Dropbox only, and not changing the GUI part at all.
2023-04-08 16:20:11 +02:00
Little Cat
1cf1f302ad BACKENDS: LIBCURL: URL Parsing. 2023-03-06 00:07:13 +01:00
Little Cat
f42930ba66 BACKENDS: CURL: Ability to create raw sockets.
This can be used to create custom protocols with an SDL_net like
interface while being able to connect to SSL/TLS servers.
2023-03-06 00:07:13 +01:00
Little Cat
c16244a23a BACKENDS: ENET: Compile stable 1.3.17 source. 2023-03-06 00:07:13 +01:00
Little Cat
64200c8643 BACKENDS: ENET: Raw UDP socket creation. 2023-03-06 00:07:13 +01:00
Little Cat
129b56cd3e BACKENDS: ENET: Host creation. 2023-03-06 00:07:13 +01:00
Little Cat
68425432ab BACKENDS: ENET: Preliminary ENet backend. 2023-03-06 00:07:13 +01:00
Miro Kropacek
276cf354bf BACKENDS: ATARI: Separate AtariEventSource from OSystem_Atari 2023-03-04 23:38:42 +01:00
Miro Kropacek
4d21a496d2 BACKENDS: ATARI: Add new backend (graphics, mixer, platform)
Compile as:

./configure --backend=atari --host=m68k-atari-mint --enable-release --disable-mt32emu --disable-lua --disable-nuked-opl --disable-16bit --disable-scalers --disable-translation --disable-eventrecorder --disable-tts --disable-bink --opengl-mode=none --enable-verbose-build --prefix=/usr --bindir=/ --datarootdir=share --datadir=data && make -j 16 && m68k-atari-mint-flags -S -r ./scummvm && make install DESTDIR=$PWD/_release/ && mv $PWD/_release/scummvm $PWD/_release/scummvm.ttp
2023-03-04 23:38:42 +01:00
Cameron Cawley
8adcc29df9 RISCOS: Use double buffering in full screen mode when V-sync is enabled 2023-02-19 21:27:45 +00:00
Vladimir Serbinenko
31071d7938 CONFIGURE: Support for kolibri OS 2023-02-05 22:55:40 +01:00
Vladimir Serbinenko
4bcd4671ab KOLIBRI: Add kolibrios backend 2023-02-05 22:55:40 +01:00
Le Philousophe
ca1dbfc9d6 ANDROID: Add SAF support 2023-01-20 14:14:03 +01:00
Vladimir Serbinenko
576b2be0cb SDL: Workaround for broken SDL on Miyoo Mini 2023-01-18 00:51:38 +03:00
Vladimir Serbinenko
1bc4fe5279 SDL: Move RS90-specific code to opendingux directory 2023-01-17 13:48:50 +03:00
Vladimir Serbinenko
3701325b0e OPENDINGUX: Don't add posix files twice
They are already added by POSIX conditional as OpenDingux is POSIX compliant
(Linux-based). Adding it twice confuses some linkers.
2023-01-12 10:27:20 +03:00
Johannes Schickel
9f3249286f BACKENDS: OPENGL: Initial WIP import for shader support 2022-10-08 23:39:18 +02:00
Le Philousophe
2a84d3e988 VITA: Add plugins support 2022-08-07 18:15:09 +02:00
Cameron Cawley
863988fee4 OPENGL: Add proper error checking to the Shader class 2022-06-29 22:37:38 +01:00
Le Philousophe
4ab044a254 OPENGL: Merge both OpenGL contexts 2022-06-26 18:32:10 +02:00
Cameron Cawley
dd72e0e488 RISCOS: Add a native MIDI driver 2022-06-20 23:33:42 +01:00
Le Philousophe
02808a019a RISCOS: Add an ELF plugin provider
This will allow do dynamically load plugins and not be limited by
24-bits relocations
2022-06-17 21:31:04 +02:00
Donovan Watteau
4672ba71dd PLUGINS: Let macOS use its resource bundle as a valid plugin directory 2022-05-22 23:42:45 +01:00
Paweł Kołodziejski
e87773484c
BACKENDS: Add guard for SDL backend code under USE_OPENGL flag 2022-03-04 18:02:29 +01:00
Le Philousophe
9f84198643 ANDROIDSDL: Remove deprecated port 2022-02-06 21:34:08 +01:00
Le Philousophe
6fbd4a3abc ANDROID3D: Remove deprecated backend 2022-02-05 21:50:00 +01:00
Le Philousophe
f11295edda GRAPHICS3D: Don't build opengl stuff when it's not needed 2022-01-18 16:49:03 +01:00
Paweł Kołodziejski
e291436b54 ANDROID: Attempt to fix Android linking 2022-01-10 03:08:57 +01:00
Paweł Kołodziejski
3dd3e76bc2 BACKENDS3D: Shader code files shouldn't be moved 2022-01-10 02:38:44 +01:00
Paweł Kołodziejski
d1d77f887e BACKENDS3D: Moved Surfaces and Texture specific backend code to backends 2022-01-10 01:21:49 +01:00
Le Philousophe
e4390abd86 ANDROID: Introduce back the touch controls for 3D 2021-11-29 00:04:45 +01:00
Le Philousophe
5d56c1cdf0 ANDROID: Merge 3D graphics backend
Move each graphic part in backends/graphics and backends/graphics3d
2021-11-29 00:04:45 +01:00
Eugene Sandulenko
cf1b6c5eb6
BACKENDS: NETWORKING: Add session.cpp to compilation 2021-11-18 22:38:42 +01:00
Cameron Cawley
5022489277 BACKENDS: Refactor the API for creating Mutexes 2021-11-12 20:19:45 +01:00
Christophe Branchereau
849d05b5e2 OPENDINGUX: Add support for Opendingux Beta
OD Beta is a mips linux OS based on buildroot, that runs on ingenic gaming handhelds
like the gcw0, rg350 and many more.

There was a previous GCW0 port, that was running on legacy opendingux, but that
OS is not maintained since 2014 and has an outdated kernel and toolchain.

Od Beta on the other hand, runs with linux 5.15, has a GCC 10 toolchain and
an active developpment community.

This adds support for 3 flavors :

gcw0 that runs on all jz4770 cpus
lepus that runs on all jz4760 cpus
rg99 which is a jz4725 device

Signed-off-by: Christophe Branchereau <cbranchereau@gmail.com>
2021-11-01 17:39:26 +01:00
Cameron Cawley
c4699cb280 SDL: Move getDisplayDpiFromSdl and getDpiScalingFactor into the SdlWindow class 2021-08-14 19:09:33 +01:00