144653 Commits

Author SHA1 Message Date
Wyatt Radkiewicz
bc20c0185d AGS: GRAPHICS: Changed bending functions templates 2023-08-28 21:16:42 +02:00
Wyatt Radkiewicz
153afb1081 AGS: Cleaned up blending funcs argument passing 2023-08-28 21:16:42 +02:00
Wyatt Radkiewicz
cf358fbc4e BUILD: AGS removed PPC blending files 2023-08-28 21:16:42 +02:00
Wyatt Radkiewicz
a1858e31f0 AGS: JANITORIAL: Cleaned up old bliting files 2023-08-28 21:16:42 +02:00
Wyatt Radkiewicz
6c353ba72b AGS: Use main SIMD detection features 2023-08-28 21:16:42 +02:00
Wyatt Radkiewicz
29a0903e5b AGS: Holding off PowerPC blitting optimizations
I'm taking GSOC in a slightly different direction. I will finish the
PowerPC blending/blitting optimizations, but first I'm going to focus
on the general Graphics::Surface and Graphics::ManagedSurface code for
now.
2023-08-28 21:16:42 +02:00
Wyatt Radkiewicz
f88d3633b4 AGS: Still trying to get PPC to compile 2023-08-28 21:16:42 +02:00
Wyatt Radkiewicz
ef265e68dd AGS: Still trying to get PPC to compile 2023-08-28 21:16:42 +02:00
Wyatt Radkiewicz
89fef524b8 AGS: Fixed more compiling issues for blitting PPC
PowerPC's <altivec.h> header redefines bool to be __vector(4) __bool which
is weird, so I changed the prototypes of the functions to use int instead
of bool. Hopefully this fixes things.
2023-08-28 21:16:42 +02:00
Wyatt Radkiewicz
01fa027296 AGS: Still trying to get PPC blitting to compile 2023-08-28 21:16:42 +02:00
Wyatt Radkiewicz
f5908486b9 AGS: Still trying to get PPC blitting to compile 2023-08-28 21:16:42 +02:00
Wyatt Radkiewicz
0f6da5b299 AGS: Still fixing PowerPC blitting issues 2023-08-28 21:16:42 +02:00
Wyatt Radkiewicz
f53e39bac4 AGS: Fixed last commit 2023-08-28 21:16:42 +02:00
Wyatt Radkiewicz
bdbceeb674 AGS: Fixed PowerPC code not compiler under GCC 6.59.21 2023-08-28 21:16:42 +02:00
Wyatt Radkiewicz
ff72736c49 AGS: PowerPC Altivec: initial support 2023-08-28 21:16:42 +02:00
Wyatt Radkiewicz
33cb39c2e8 AGS: Appeasing iOS compiler again 2023-08-28 21:16:42 +02:00
Wyatt Radkiewicz
9c11912da9 AGS: Not using Arm NEON on iOS sim. or Arm Windows
Not all of Arm NEON intrinsics aren't included in the iOS simulator's
arm_neon.h file, so we just don't compile arm neon for the simulator
anymore. Also, arm_neon.h on Windows seems to be just an empty header
or atleast a header with only a few intrinsics of the many that should
be there.
2023-08-28 21:16:42 +02:00
Wyatt Radkiewicz
b3681c5cb3 AGS: Making MSVC and iOS compilers happy
Made it so that iOS doesn't use Arm NEON since it only supports a very
limited set of instructions (like it apparently doesn't have intrinics
for something as simple as bit shifting?). I also changed every float
literal in surface_simd_sse from a double literal to float because
windows x64 was complaining about it.
2023-08-28 21:16:42 +02:00
Wyatt Radkiewicz
def889099e AGS: Added check for MSVC specific macros in simd
I was using just the GCC and CLANG macros to see what platform SCUMMVM
was being compiled on, but neglected the MSVC ones. This would lead it
to not compile on that compiler. I fixed that by adding those. I also
added the fallback simd implementation .cpp file into module.mk for the
ags engine.
2023-08-28 21:16:42 +02:00
wyatt-radkiewicz
ace1a346cc AGS: Finished SSE2 blending optimizations
Finished writing the code in surface_simd_sse.cpp. I also added a backup
option in case no processor simd extensions are found. In that case it
just defualts to the normal drawInnerGeneric. I also made
drawInnerGeneric a bit faster by moving certain things into compile
time. Tests were changed to also include SSE2.
2023-08-28 21:16:42 +02:00
Wyatt Radkiewicz
87656d66df AGS: Cleaned up blending/blitting pull request. 2023-08-28 21:16:42 +02:00
wyatt-radkiewicz
acc818a0cb AGS: Intel/AMD's SIMD path goes to the normal one. 2023-08-28 21:16:42 +02:00
wyatt-radkiewicz
45f093f4be AGS: Fixed SSE2 detector and unoptimized draw. 2023-08-28 21:16:42 +02:00
Wyatt Radkiewicz
0d29563122 AGS: Started on SSE version 2023-08-28 21:16:42 +02:00
Wyatt Radkiewicz
90df6233f8 AGS: Put comments in NEON blitting/blending code. 2023-08-28 21:16:42 +02:00
Wyatt Radkiewicz
b177d382b6 AGS: Moved arm neon bitmap code to new file. 2023-08-28 21:16:42 +02:00
Wyatt Radkiewicz
673cb4d659 AGS: Optimizations turns off if SSE is not found. 2023-08-28 21:16:42 +02:00
Wyatt Radkiewicz
a22396163f AGS: Created test code for blending modes 2023-08-28 21:16:42 +02:00
Wyatt Radkiewicz
4ad7a30b38 AGS: Just fixed kTintBlenderMode 2023-08-28 21:16:42 +02:00
Wyatt Radkiewicz
07107b19bd AGS: Fixed ARGB blending and finished benchmark 2023-08-28 21:16:42 +02:00
Wyatt Radkiewicz
d5b2cd4aea AGS: Added SIMD optimizations for stretchedDraw 2023-08-28 21:16:42 +02:00
Wyatt Radkiewicz
499dfd7d7a AGS: Added 2Bpp specifc code path optimization
Added a template specialization for 2bpp to 2bpp blits in
BITMAP::drawInner, makes 2bpp to 2bpp now around 2 times as fast as
normal 4bpp to 4bpp blitting.
2023-08-28 21:16:42 +02:00
Wyatt Radkiewicz
6c3c94b7ff AGS: Cleaning up and micro optimizations on bitmap
Added the micro optimizations to BITMAP::draw (on all blending modes and
combinations of source and destination pixel formats).
2023-08-28 21:16:42 +02:00
Wyatt Radkiewicz
dc6f6070b2 AGS: Finished first full version of optimizations
Optimized most if not all code paths in BITMAP::draw. All blending modes
have been optimized with ARM NEON intrensics, and multiple different
source and destination formats are optimized. (for bytes per pixel the
following have been optimized, 1 and 1, 2 and 2, 4 and 4, 2 and 4).
After this, I am going to clean up this code and apply more optmizations
where I can, then make the SSE versions of the functions, and try to
optimize the slow path as much as I can. Then I will see what I can do
with BITMAP::stretched draw.
2023-08-28 21:16:42 +02:00
Wyatt Radkiewicz
1e47d7fc56 AGS: Accounted for hflip in drawing optimizations
Just added code to make the SIMD BITMAP::draw to make it work when art
is flipped.
2023-08-28 21:16:42 +02:00
Wyatt Radkiewicz
b7505b93c5 AGS: Optimized the kRgbToRgbBlend 32 bit code path
Fixed the blending code and it should now be 1 to 1 with the original
allegro source code but just using simd intrensics.
2023-08-28 21:16:42 +02:00
Wyatt Radkiewicz
aa9d13f84a AGS: Preliminary optimizations of blending funcs
Just commiting my first attempts at optimizing BITMAP::draw and the
blendPixel function. Here's an overview of the changes (some are
temporary):

- Put the loop of BITMAP::draw into its own function drawInner.
 I templated it so that I could put different paths into the loop that
 could be optimized out at compile time if a certain blending function
 didn't need it etc.

- I added apple NEON (SIMD) intrensics to the drawInner function,
 haven't ported it to SSE yet, but there is a small library that actually
 maps neon intrensics to sse ones.

- Removed a few ifs from the normal x loop and put it in the y loop.
2023-08-28 21:16:42 +02:00
Wyatt Radkiewicz
1e4a03313c AGS: First blending optimizations
Moved the loop of BTIMAP::draw into a templated function so that certain
checks could be done at runtime. When src and dst formats are both 4
bytes per pixel it skips colorToARGB and does a quicker method. This is
still a very early work in progress.
2023-08-28 21:16:42 +02:00
wyatt-radkiewicz
bf1f3dbb8b AGS: Refined the temporary bitmap benchmark
The old benchmark benchmarked the render_to_screen function, which
wasn't specific enough to what is needing to be benchmarked (
BITMAP::draw, and blending functions), so it was changed to just use the
drawing functions of allegro's bitmap directly. Also from just looking
at other games, it seems like AGS games use truecolor graphics more
often than not, so the benchmark test graphic was changed to truecolor.
2023-08-28 21:16:42 +02:00
wyatt-radkiewicz
9b77e3bf03 AGS: Preliminary bitmap benchmark code
Made basic benchmarking code in engines/ags/engine/main/engine.cpp, by
adding the code into the seemingly unused allegro_bitmap_test_init
function.
2023-08-28 21:16:42 +02:00
neuromancer
23dd458999 FREESCAPE: initial implementation of dark for cpc 2023-08-28 20:34:03 +02:00
ScummVM-Translations
97b3408330 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/
2023-08-28 18:05:13 +00:00
Kaloyan Chehlarski
0154a4565c NANCY: Silence MSVC warning 2023-08-28 21:04:52 +03:00
ScummVM-Translations
1ab7f2af38 I18N: Update translations templates 2023-08-28 16:55:39 +00:00
Kaloyan Chehlarski
efcd1757f5 NANCY: Add keymap for opening main menu
The original engine allowed players to go to the main menu
via the Esc button, but only when they were in the Scene state.
This is now implemented here as well.
2023-08-28 19:53:33 +03:00
Kaloyan Chehlarski
7e5f7030dd NANCY: Fix cursor transparency in save/load menu
Fixed an issue with the blinking cursor in LoadSaveMenu not
displaying properly.
2023-08-28 19:53:33 +03:00
Kaloyan Chehlarski
cb60680d37 NANCY: Use original menus by default 2023-08-28 19:53:33 +03:00
Kaloyan Chehlarski
1bb5d42a2e NANCY: Implement save prompt on quit
Later games added a prompt to save before quitting, which is now implemented.
2023-08-28 19:53:33 +03:00
Kaloyan Chehlarski
99b358b056 NANCY: Fix Coverity warnings 2023-08-28 19:53:33 +03:00
Kaloyan Chehlarski
f25b6e42a7 NANCY: Implement original load/save menu 2023-08-28 19:53:33 +03:00