1940 Commits

Author SHA1 Message Date
Miro Kropacek
3e85aa3f4b BACKENDS: ATARI: Provide dlmalloc locally
It's much cleaner and easier to use than to depend on an unofficial mintlib fork...

Plus we are going to use its MSPACES feature anyway.
2024-01-28 21:59:13 +01:00
Vladimir Serbinenko
15cae58aa4
CONFIGURE: Handle kolibrios that merges vorbisfile and vorbis
Kolibri doesn't have a separate -lvorbisfile
2024-01-20 23:52:50 +01:00
Eugene Sandulenko
7016605fe8
Revert "CONFIGURE: Switch vorbis and flac detection to pkg-config"
This reverts commit 7134f5e2c2f9f3052950382dbd7b8e7c074d2432.

At least on the buildbot vorbis is not in pkg-config
2024-01-17 23:28:25 +01:00
Eugene Sandulenko
7134f5e2c2
CONFIGURE: Switch vorbis and flac detection to pkg-config
Downstream patch from OpenBSD:
https://github.com/openbsd/ports/blob/master/games/scummvm/patches/patch-configure
2024-01-17 22:41:59 +01:00
Eugene Sandulenko
36f387e3d7
CONFIGURE: Take downstream patch from Redox
https://gitlab.redox-os.org/redox-os/cookbook/-/blob/master/recipes/emulators/scummvm/01_redox.patch
2024-01-17 22:38:31 +01:00
Jelle Raaijmakers
36d160a49a
CONFIGURE: Teach configure about serenity
https://github.com/SerenityOS/serenity/blob/master/Ports/scummvm/patches/0001-Teach-configure-about-serenity.patch
2024-01-17 22:38:13 +01:00
Miro Kropacek
48675ed9cf CONFIGURE: Don't use -ffast-math in for m68k-atari-mint*
This breaks calculation of sceneObject->walkCount in
engines/bbvs/walk.cpp (and possibly at other places, too).

Added "-fno-unsafe-math-optimizations" to prevent reciprocal
approximations which break fixed point delta calculations.
2024-01-16 22:59:35 +01:00
elasota
0fb047fcc8 GRAPHICS: Disable SIMD extensions on GCC <4.9 (no #pragma GCC target support) 2024-01-08 23:37:39 +01:00
Cameron Cawley
4fdd1f7cc0 CONFIGURE: Check if fopen64 is available before using it 2024-01-08 16:23:00 +02:00
Alexander Reim
98b7231047 WII: Disable unsupported features by default
Various crashes can be attributed to these 3 features. The main problem is the lack of RAM and the slow performance of the Wii in connection with these 3 features.
2023-12-19 14:24:47 +01:00
Miro Kropacek
59748b028f BACKENDS: ATARI: Prepare for release 2023-12-16 10:10:31 +01:00
Eugene Sandulenko
b88dba59c3
CONFIGURE: Implement sanity check of dynamic detection vs static plugins mismatch. Bug #13746
This patches the problem instead of enforcing dynamic plugins. However, we explicitely
disable dynamic plugins on many platform (mainly when those are not implemented),
thus, by this sanity check, we enforce the developer to test explicit configuration.
2023-12-03 12:59:52 +01:00
Eugene Sandulenko
8d8875159f
BUILD: Cleanup plugin files on RiscOS and PSP2. Bug #13902 2023-12-03 12:59:49 +01:00
Eugene Sandulenko
de9287759b
Revert "IOS7: Disable SCUMMVM_NEON in iOS builds"
This reverts commit f6585ae5f5787fa9f8fce87f983511dc077e0695.

Since the NEON codepath was fixed by fracturehill
2023-11-20 15:25:52 +01:00
Torbjörn Andersson
49dc93a409 CONFIGURE: Remove endianness check .dwo file 2023-11-06 22:37:12 +01:00
Torbjörn Andersson
f29c7103d9 CONFIGURE: Update DWARF version comment after Discord feedback 2023-10-15 07:39:34 +02:00
Torbjörn Andersson
18fbb84d00 CONFIGURE: Work around segfault when detecting best debug mode
I'm not pretending I understand this, but until someone comes up with a
better way, forcing it to use DWARF version 4 instead of the default
(which is 5 "for most targets") seems to work for me. But if it breaks
for anyone else, please don't hesitate to speak up.
2023-10-14 19:21:23 +02:00
Lars Sundström
f6585ae5f5 IOS7: Disable SCUMMVM_NEON in iOS builds
Due to the current graphic problems when enabling the NEON
optimisations, disable it for the iOS port until the problems
have been fixed.
2023-10-10 20:55:48 +02:00
Miro Kropacek
dcab5d3369 CONFIGURE: Add support for m68k-atari-mintelf
This is basically the same as m68k-atari-mint host os but with a
different compiler/file format.
2023-09-24 17:48:54 +02:00
Eugene Sandulenko
1193ca12ef
CONFIGURE: Fix output when libmikmod is not present 2023-09-19 16:32:10 +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
Cameron Cawley
0c98d170ca CONFIGURE: Enable NEON for all IOS7 targets
The SCUMMVM_NEON definition is alredy added by default for aarch64
host cpus. NEON is also supported on iOS devices running on armv7
cpus. Make sure to enable NEON for all ios7 devices.
2023-09-03 22:26:37 +02:00
Silke Hofstra
7798ab4ccc CONFIGURE: Ignore --runstatedir
Silently ignore `--runstatedir` flag, which was introduced in Autoconf 2.70.
2023-08-28 22:32:53 +02:00
Le Philousophe
a1d97ffbe2 GRAPHICS: Use -mfpu=neon flag only on armv7
aarch64 doesn't need it and it fails to build with GCC when it's present

Enable NEON by default on Android
2023-08-14 00:39:43 +02:00
Le Philousophe
79c3063979 ANDROID: Improve CPU detection
CPU architecture can be determined at build time.
Add support for x86 extensions.
2023-08-13 12:58:45 +02:00
Le Philousophe
3b1465120a ANDROID: Fix build
cpu-features needs to be compiled by us
2023-08-13 12:58:45 +02:00
Eugene Sandulenko
7cf76b22fa
CONFIGURE: Fix architecture names for CPU features 2023-08-13 00:23:41 +02:00
Wyatt Radkiewicz
41f82fbab8 BUILD: Change wording for AVX2 option 2023-08-13 00:22:10 +02:00
Wyatt Radkiewicz
f802ad16d0 BUILD: Simplify SIMD options 2023-08-13 00:22:10 +02:00
Wyatt Radkiewicz
c45918ea91 BUILD: SIMD flags only enabled on blit-blend.o 2023-08-13 00:22:10 +02:00
Wyatt Radkiewicz
bf7b6c1cf6 BUILD: Fixed typo in Arm NEON feature 2023-08-13 00:22:10 +02:00
Wyatt Radkiewicz
9b312eb16a BUILD: Removed unnessesary SIMD engine features 2023-08-13 00:22:10 +02:00
Wyatt Radkiewicz
480a77f310 BUILD: Configure automatically detects SIMD 2023-08-13 00:22:10 +02:00
Wyatt Radkiewicz
01e2183161 BUILD: Make ./configure POSIX compliant 2023-08-13 00:22:10 +02:00
Wyatt Radkiewicz
e4c984cd3a BUILD: Configure flags for SIMD extensions
--enable-ext-neon
--enable-ext-sse2
--enable-ext-avx2
2023-08-13 00:22:10 +02:00
Cameron Cawley
37764d86fc AUDIO: Support building the EAS MIDI driver on non-Android platforms 2023-08-06 14:10:50 +02:00
Le Philousophe
29a02151d1 COMMON: Only apply alignment on supported platforms 2023-07-14 20:48:13 +02:00
Lars Sundström
fb4f7d6de2 IOS7: Remove old IOS7 graphic handling
Delete the old graphic handling in the IOS7 backend which is not
used anymore after implementing iOSGraphicsManager.

The Accelerate framework is not used anymore. The OpenGLGraphics
manager handles the different color formats.
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
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
Thierry Crozat
7af069b110 CONFIGURE: Rename iphone host_os to iphoneos 2023-05-31 19:33:48 +01:00
Thierry Crozat
0eca37a262 BACKENDS: Remove old iPhone backend
This backend was no longer maintained and have had no release
and no daily builds for several years.
2023-05-31 19:31:19 +01:00
D G Turner
f1d2ba701a WII: Add Code for GDB Debugging Over Ethernet using TCP
The Gecko USB serial adapter is no longer easy to obtain and using
the Ethernet adapter instead is supported by devkitPro/libogc.

However, when enabled, this fails to link when dynamic plugins are
enabled due to missing symbols for gdbstub_getoffsets() found in
devkitPro/libogc/libdb/debug_supp.c. To be exact, this is the
u8 __text_fstart[],__data_fstart[],__bss_fstart[] which should be
implicitly provided by the linker(?)

A monolithic static build with this enabled does succeed, but has not
yet been tested.
2023-05-15 00:51:27 +01:00
Miro Kropacek
76d3706492 BACKENDS: ATARI: Add build scripts
- consolidate public #define's (just ATARI)
- cpu compiler flags are specified in the script
- allow explicit move16, SV and SV Blitter features enabled/disabled

Provide two build scripts:

1. "Fat" one targeted at 040/060 machines (possibly with SuperVidel)

This one is optimized for 68020-60 (so it's still possible to try
highres engines on 68030 machines).

2. "Slim" one targeted at 030 machines (Falcon030+DFB/CT2 or TT030)

This one is optimized for 68030 and stripped from even more features:
"fancy" (highres) themes, move16 & SuperVidel routines and most
importantly the highres engines.
2023-05-10 22:58:26 +02:00
Einar Johan Trøan Sømåen
0c4190679f BUILD: Add support for flagging opengl_game_classic as an engine dep. 2023-04-29 13:01:08 +02:00
Thierry Crozat
a0e32ee370 IOS7: Remove support for non-sandboxed mode 2023-04-26 22:31:31 +01:00
Miro Kropacek
740aefcedf BACKENDS: ATARI: Re-enable DOSBOX OPL
After hearing the difference between MAME and DOSBOX OPL I have decided
to keep it available. Some games select it by default (and therefore
the game takes more CPU time) but the reason is valid.
2023-04-08 20:27:44 +02:00
Miro Kropacek
cb5b2dc021 ATARI: DISABLE_SID, DISABLE_NES_APU & DISABLE_DOSBOX_OPL
Doesn't save much space but limits the number of options to confuse
users.

For instance if DOSBOX OPL is compiled in, it is automatically used for
the Gob engine which perhaps sounds better but making the engine crawl
without further user interaction.
2023-04-03 20:36:33 +02:00
Miro Kropacek
d3ba1c49ee ATARI: Add DISABLE_TEXT_CONSOLE for release builds
Saves about 900 KB and relaxes a few games like Toonstruck (11.17% CPU
utilisation) or Bear Stormin' (1.26%).

Not the same as --disable-text-console (USE_TEXT_CONSOLE_FOR_DEBUGGER),
this one is better enabled as it saves a few KBs from Debugger class.

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 --enable-text-console && make -j 16 && rm -rf dist-generic; make dist-generic
2023-04-03 20:19:46 +02:00