Commit Graph

35898 Commits

Author SHA1 Message Date
Scott Mansell 7128befb39 Fix copy filter clamping regression in Spyro
This fixes horizontal lines in the bloom effect of Spyro: A Hero's Tail,
which is a regression caused by PR #10204

Screenshot of regression:
https://user-images.githubusercontent.com/138484/142030503-90fcd8d5-63d3-4820-874a-72e9be0c4768.png

Fixed:
https://user-images.githubusercontent.com/138484/142031598-b85ff55c-1302-4e4d-bcb2-57848974056b.png

Spyro uses an 640x80 pixel sub-buffer within the EFB to calculate
it's bloom effects, which it places below the main 640x448 buffer.

EFB layout:
https://user-images.githubusercontent.com/138484/142030573-e933b6ae-c37e-4be6-86d4-0bc779b92535.png
Note: Colors are wrong because the main color buffer uses RGBA6,
      while the bloom is calculated in RGB8

This allows it to do bloom without backing up part of the EFB to
main memory, as most games do.

But, since some of the sub-buffers used in the bloom effect are taller
than 80 pixels, they need to be sliced up into smaller sub, sub buffers
which get combined later when copied to main memory.

At one point, a 320x224 buffer is broken up into 320x80, 320x64 and
320x80 slices. These are copied out with the copy filter set to a
vertical blur.

Because there was an off-by-one errror in the clamping coordinates,
the bottom line of the color buffer would be blurred into
the top of each slice.

Final combined EFB copy:
https://user-images.githubusercontent.com/138484/142031360-2c076839-7c96-4b3b-a093-d899d0a2c7ae.png

Fixed version:
https://user-images.githubusercontent.com/138484/142031370-72e41a35-3b3e-4662-a483-79203e357ecc.png

Before #10204 the copy filter wasn't enabled for efb copies, and most
other games don't do this type of slicing.

FIFO CI shows that a few other games are effected, it's always just a minor difference to the top line where there was previously a slight hint of garbage.
2021-11-17 06:12:46 +13:00
JMC47 26fdc19c8d
Merge pull request #10204 from Pokechu22/efb-copy-filter
VideoCommon: Use the copy filter for EFB copies as well as XFB copies
2021-11-15 17:04:27 -05:00
Mai M b919557e25
Merge pull request #10219 from shuffle2/extern
msbuild: use /external:anglebrackets
2021-11-15 11:10:38 -05:00
Léo Lam d17dcf72ff
Merge pull request #10201 from JMC47/mp6-codeadjust
GameINI: Fix Comment Causing Parsing Errors in Mario Party 6/7 INIs.
2021-11-15 14:59:31 +01:00
JMC47 658eed405a GameINI: Fix Comments in Mario Party 6/7 AR Codes
Using the "*" symbol as a comment only works for Gecko Codes for some
reason.  I changed it to "#".
2021-11-15 07:33:49 -05:00
Shawn Hoffman a69adafdd8 msbuild: use /external:anglebrackets
Revert usage of ExternalIncludePath, as that var is specifically
for external includes which do not get scanned for changes.
2021-11-15 00:33:51 -08:00
Mai M a58b1dc38b
Merge pull request #10216 from JosJuice/user-not-global
DSP: Reword inappropriate references to Global User Directory
2021-11-14 20:12:50 -05:00
JosJuice da0be24b2f DSP: Reword inappropriate references to Global User Directory
These messages apply to the User directory regardless of
whether it's global or local, so we shouldn't specify "global".

Also changing "directory" to "folder", just for consistency
with "GC folder" in the same sentence.
2021-11-14 22:55:50 +01:00
Mai M f19ed1be56
Merge pull request #10213 from JosJuice/android-ndk
Android: Bump NDK and CMake versions
2021-11-14 02:59:34 -05:00
Léo Lam 0d4c8270d0
Merge pull request #9981 from OatmealDome/mvk-external-project
MoltenVK: Use an external project instead of a pre-compiled dylib
2021-11-13 23:26:55 +01:00
OatmealDome 2209dc0355 MoltenVK: Use an external project instead of a pre-compiled dylib
Also, update MoltenVK to match Vulkan SDK 1.2.189.
2021-11-13 11:43:23 -08:00
JosJuice 5a23d5cedf Android: Bump NDK and CMake versions
This should make C++20 and std::filesystem work. (Not that
we really can use std::filesystem much on Android since
it doesn't work with scoped storage...)
2021-11-13 20:41:11 +01:00
JosJuice 3e84279919
Merge pull request #10208 from thatSteveFan/patch-1
Minor comment fix in Matrix.cpp
2021-11-13 15:09:28 +01:00
Pokechu22 868de78f16 VideoCommon: Use the copy filter for EFB copies as well as XFB copies
This fixes the pink screens in EA Sports Active.  See https://gist.github.com/Pokechu22/49455f9094ed0ff017da64e3f7aa0404 for details.
2021-11-11 17:22:50 -08:00
Mai M c55721c754
Merge pull request #10210 from shuffle2/vs2022
msvc: update to vs2022 and windows sdk 10.0.22000
2021-11-11 17:29:37 -05:00
Shawn Hoffman 58dc9e7049 msvc: fix compile warning on arm64 2021-11-11 08:01:39 -08:00
Shawn Hoffman 4008188654 msvc: update to vs2022 and windows sdk 10.0.22000 2021-11-11 08:01:26 -08:00
thatSteveFan 834a59d89b
Minor comment fix in Matrix.cpp
Fix comment to say (NxM times MxP).
2021-11-08 15:30:39 -08:00
JosJuice aa6db1e029
Merge pull request #10205 from merryhime/pure-rot-rlwimix
Jit_Integer: Fix pure rotation rlwimix case
2021-11-07 20:58:42 +01:00
Merry 850d281cb8 Jit_Integer: Fix pure rotation rlwimix case
We are writing to a.
2021-11-07 14:10:19 +00:00
Mai M be9035454a
Merge pull request #10197 from sepalani/mh-tex-corruption
GameINI: Change Texture Cache to Safe in RMHJ08.ini and ROM.ini
2021-11-07 00:09:15 -04:00
Mai M 6c72e6814d
Merge pull request #10169 from leoetlino/fmt-localtime
Use fmt::localtime instead of thread-unsafe std::localtime
2021-11-07 00:08:14 -04:00
Mai M c89226cbd4
Merge pull request #10203 from merryhime/ctx_lr
MachineContext: Correct CTX_LR for Apple ARM64
2021-11-07 00:06:24 -04:00
Mai M 58f8c6e529
Merge pull request #10202 from merryhime/fctiwx
JitArm64: Implement fctiwx
2021-11-07 00:05:51 -04:00
Merry c385e7e57b MachineContext: Correct CTX_LR for Apple ARM64 2021-11-06 21:46:35 +00:00
Merry 9c75957319 JitArm64_FloatingPoint: Implement fctiwx in ARM64 JIT
We implement this by first rounding to nearest integer using the current
rouding mode, then converting this value from floating point to an integral
value.
2021-11-06 20:54:26 +00:00
Merry 7c2b09e156 Arm64Emitter: Add FRINTI instruction 2021-11-06 19:15:26 +00:00
Léo Lam 2c5d11cace
Merge pull request #9721 from linkmauve/fix-warnings
Fix some warnings found with gcc 11 and ffmpeg master
2021-11-06 14:38:07 +01:00
Mai M 39ccdc1f98
Merge pull request #10199 from Sintendo/jit64divwxnits
Jit64: divwx - One more micro-optimization
2021-11-03 17:10:39 -04:00
Sintendo dfb32040bf Jit64: divwx - Micro-optimize division by 2
Prefer using eax to isolate the sign bit. This saves a byte when the
destination ends up as r8-15, because those require a REX prefix.

Before:
41 8B C5             mov         eax,r13d
41 C1 ED 1F          shr         r13d,1Fh
44 03 E8             add         r13d,eax
41 D1 FD             sar         r13d,1

After:
41 8B C5             mov         eax,r13d
C1 E8 1F             shr         eax,1Fh
44 03 E8             add         r13d,eax
41 D1 FD             sar         r13d,1
2021-11-03 21:01:41 +01:00
Sintendo f18f6cd0a2 Jit64: divwx - Improve comments 2021-11-02 21:50:28 +01:00
Emmanuel Gil Peyrot 5a1333026b VideoCommon: Add missing algorithm include for std::none_of
Otherwise this is an error on gcc/libstdc++, and there are no transitive
includes for this header.
2021-11-02 13:50:21 +01:00
Emmanuel Gil Peyrot 7590f07b80 FrameDump: Remove deprecated call to av_init_packet()
This function was deprecated in ffmpeg in January[1], while its
replacement got introduced in 2015[2], so now might be the time to start
using it in Dolphin. :)

[1] f7db77bd87
[2] a9a6010637
2021-11-02 13:50:21 +01:00
Emmanuel Gil Peyrot 24db6e467a DolphinQt: Fix a -Wunused-result in gcc 11
Also use the correct error check for other similar calls in the same
file, despite nothing being doable on error.
2021-11-02 13:50:21 +01:00
Emmanuel Gil Peyrot 25b136ac17 VideoCommon: Fix a -Wclass-memaccess in gcc 11 2021-11-02 13:50:21 +01:00
Emmanuel Gil Peyrot 7e39a0405b DolphinQt, VideoBackends: Fix all cases of -Wswitch in gcc 11 2021-11-02 13:50:21 +01:00
Emmanuel Gil Peyrot 3d662e746b Core: Fix a -Wshadow warning in gcc 11
This moves the only direct call to zlib’s crc32() into its own
translation unit, but that operation is cold enough that this won’t
matter in the slightest.  crc32_z() would be more appropriate, but
Android has an older zlib version…
2021-11-02 13:50:21 +01:00
Emmanuel Gil Peyrot ab252aedfa Core, DolphinQt, UICommon: Fix all cases of -Wrange-loop-construct in gcc 11 2021-11-02 13:50:21 +01:00
Sepalani 3c73e46aab GameINI: Change Texture Cache to Safe in RMHJ08.ini and ROM.ini 2021-11-01 21:55:54 +04:00
JosJuice db02b50d2e
Merge pull request #10196 from JMC47/haruhi
GameINI:  Change Texture Cache to Safe in R44J8P
2021-11-01 18:28:58 +01:00
JMC47 fb2404a4a7 GameINI: Change Texture Cache to Safe in R44J8P 2021-11-01 13:09:27 -04:00
JosJuice 96a6d6fd95
Merge pull request #10184 from JosJuice/android-riivolution
Android: Allow starting game with Riivolution patches from the GUI
2021-10-31 23:44:54 +01:00
Léo Lam fb8b9f3251
Merge pull request #10194 from AdmiralCurtiss/riivolution-edge-cases
Fix some Riivolution file patching edge cases.
2021-10-31 21:24:03 +01:00
Léo Lam 98a1027c79
Merge pull request #10195 from sepalani/fix-hle-rii
HLE: Fix hooks overlapping Riivolution patches
2021-10-31 21:12:06 +01:00
Sepalani e51119c4ce HLE: Fix hooks overlapping Riivolution patches 2021-11-01 00:07:14 +04:00
JosJuice c39b3df6e7 Translation resources sync with Transifex 2021-10-31 19:00:30 +01:00
Admiral H. Curtiss e91e04fe1e
RiivolutionPatcher: More closely match behavior of filename searching file patches to actual Riivolution. 2021-10-31 05:47:39 +01:00
Admiral H. Curtiss 335a1b5cb5
RiivolutionPatcher: More closely match behavior of folder patches to actual Riivolution. 2021-10-31 05:47:39 +01:00
JosJuice 8b0624f53e Android: Show SD root path in Riivolution activity 2021-10-30 23:24:37 +02:00
JosJuice 22a1f3422c Android: Add Riivolution patch configuration 2021-10-30 23:24:37 +02:00