Commit Graph

43579 Commits

Author SHA1 Message Date
eeae30e2bb Android: Don't dismiss AdvancedMappingDialog when pressing Clear
If you already have a mapping set in the advanced mapping dialog and
want to change it, the easiest way to do it is to press Clear and then
select the new mapping from the list. But pressing Clear causes the
dialog to close, forcing you to open it again, which is inconvenient.
This commit makes it so the Clear button doesn't close the dialog.
2025-05-12 21:40:55 +02:00
63572f15fc Merge pull request #13620 from JosJuice/logmanager-cleanup
LogManager: Stop using manual memory management
2025-05-02 15:24:34 -05:00
c8be819711 LogManager: Stop using manual memory management
This fixes a memory leak that would occur when the Android frontend
calls LogManager::Init more than once in order to reload settings.

Note that the log window listener is now owned by LogManager instead of
by the frontend, making it consistent with the other log listeners.
2025-05-02 21:14:32 +02:00
6515807685 Merge pull request #13278 from JoshuaVandaele/saves-import
Implement importing multiple saves from an export folder
2025-05-02 15:40:27 +02:00
b566e81644 Merge pull request #13596 from JosJuice/config-callback-locking
Config: Add locking for config changed callbacks
2025-05-02 08:49:22 +02:00
58d305f75c Merge pull request #13616 from parona-source/musl-cstdint
UICommon: Include implicit header
2025-05-02 08:03:01 +02:00
0066119e41 Merge pull request #13617 from OatmealDome/coretiming-include
CoreTiming: Add missing SystemTimers.h include
2025-05-01 21:33:22 -04:00
fcb4b04168 Merge pull request #13613 from JosJuice/android-ldrtl-list-item-mapping-id
Android: Fix incorrect ID in layout-ldrtl/list_item_mapping.xml
2025-05-01 21:33:09 -04:00
da4f643b9f Merge pull request #13611 from jordan-woyak/work-queue-thread-sp
Core and Vulkan: Change WorkQueueThread to WorkQueueThreadSP in a few places.
2025-05-01 21:32:16 -04:00
1963305bea Merge pull request #13605 from JosJuice/android-cinit-native
Android: Don't call NativeLibrary methods during class init
2025-05-01 21:31:21 -04:00
757e6aba46 Merge pull request #13597 from JosJuice/hide-boot-bin
Hide DirectoryBlob boot.bin files from game list
2025-05-01 21:30:10 -04:00
42f656bf0f Merge pull request #13595 from JosJuice/android-analytics-non-main
Android: Allow reporting start to analytics for non-main activity
2025-05-01 21:29:50 -04:00
2b568566ac Merge pull request #13535 from m-brodschi/mihaib/fix-shutdown-crash
Core, VideoCommon: Fix crash at shutdown due to destructor order
2025-05-01 21:29:02 -04:00
539a3ed021 Merge pull request #13464 from jordan-woyak/dont-toggle-skip-frames
DolphinQt: Don't auto toggle GFX_HACK_SKIP_DUPLICATE_XFBS.
2025-05-01 21:28:13 -04:00
7222779e21 Merge pull request #13448 from Dentomologist/fix_unresponsive_hotkeys_when_moving_overlay_during_framestep
DolphinQt: Fix unresponsive hotkeys when clicking overlay during a framestep
2025-05-01 21:27:30 -04:00
1bd2570d97 Merge pull request #13239 from JosJuice/jitarm64-rlwimix-imm-mask
JitArm64: Use AArch64 imm masks in rlwimix slow case
2025-05-01 21:26:27 -04:00
0bd7cc64c9 CoreTiming: Add missing SystemTimers.h include 2025-05-01 19:13:02 -04:00
fbb54604b6 UICommon: Include implicit header
The header isn't implicitly included on musl.

Bug: https://bugs.gentoo.org/952952
Signed-off-by: Alfred Wingate <parona@protonmail.com>
2025-05-02 02:03:41 +03:00
e4525ca7ee Merge pull request #13499 from jordan-woyak/frame-pacing-better-math
CoreTiming: Cleanups to avoid drift from cumulative rounding errors.
2025-05-01 15:58:33 -05:00
6c9138e5a6 Merge pull request #13592 from SuperSamus/kfp-single-core
GameINI: Enable Single Core for Kung Fu Panda and Shrek Forever After
2025-05-01 15:30:15 -04:00
d64c20a67c Android: Fix incorrect ID in layout-ldrtl/list_item_mapping.xml
Probably a copy-paste error from layout-ldrtl/list_item_setting.xml.
This error made it so a long setting name could overlap with the
checkbox next to it if Dolphin was running with right-to-left layout.

The incorrect ID was apparently also causing the app:lintVitalRelease
build task to fail. I guess we're not running that build task, because I
only heard of this from someone building Dolphin locally.
2025-05-01 11:57:07 +02:00
0ce929220d Merge pull request #13553 from tygyh/Core/PowerPC/JitArm64-Replace-zeroes-in-boolean-context-with-false
JitArm64: Replace zeroes in boolean context with `false`
2025-05-01 10:11:44 +02:00
0987c03693 Merge pull request #13453 from tygyh/Use-underlying-method
DolphinQt/FIFO/FIFOAnalyzer: Use Common::ToUnderlying
2025-04-30 22:18:02 -05:00
e3f7486ca7 Merge pull request #13567 from tygyh/UnitTests-Rename-lambda-parameters-which-hide-previous-declarations
UnitTests: Rename lambda parameters which hide previous declarations
2025-04-30 22:07:35 -05:00
2e20e24136 Merge pull request #13587 from jordan-woyak/manual-value
Common: Move some duplicate container element construction logic into a ManuallyConstructedValue template.
2025-04-30 23:45:33 +02:00
cae82b62f8 Merge pull request #13610 from AdmiralCurtiss/zstd-asm-fix
Externals/zstd: Disable ASM for MSVC compiler in CMake
2025-04-30 23:31:55 +02:00
ec940e6a2e VideoBackends/Vulkan: Use WorkQueueThreadSP for swap commands. 2025-04-30 16:29:35 -05:00
753fe5bed1 Core: Use WorkQueueThreadSP in NetKDRequestDevice. 2025-04-30 16:29:21 -05:00
c14101534f Core: Use WorkQueueThreadSP in NetIPTopDevice. 2025-04-30 16:28:57 -05:00
bdb4fd8376 Core: Use WorkQueueThreadSP in DVDThread. 2025-04-30 16:17:21 -05:00
8e64a02a42 Merge pull request #13579 from jordan-woyak/work-queue-thread-cleanup
WorkQueueThread: Implement in terms of WaitableSPSCQueue. Add unit tests.
2025-04-30 16:10:28 -05:00
43e4e8f182 Merge pull request #13581 from jordan-woyak/dvd-WorkQueueThread
DVDThread: Implement with WorkQueueThread and WaitableSPSCQueue.
2025-04-30 16:09:36 -05:00
b5dd545b8e Merge pull request #13504 from Filoppi/patch-23
Improve gamma corrected resampling by acknowledging the perceptual luminance
2025-04-30 16:09:08 -05:00
2049896cab Improve gamma corrected resampling by acknowledging the perceptual luminance 2025-04-30 15:22:06 -05:00
4899913446 Common: Move some duplicate container element construction logic into a ManuallyConstructedValue template. 2025-04-30 14:56:07 -05:00
e8b63fe090 UnitTests: Add tests for WorkQueueThread. 2025-04-30 14:31:51 -05:00
a149b9d62d WorkQueueThread: Cleanups. Implement in terms of WaitableSPSCQueue. Add single producer WorkQueueThreadSP. 2025-04-30 14:31:51 -05:00
2d9a61bd0e Externals/zstd: Disable ASM for MSVC compiler in CMake
Results in a "MSVC_RUNTIME_LIBRARY value 'MultiThreadedDLL' not known for this ASM compiler" otherwise, and zstd doesn't support the relevant ASM code for MSVC anyway.
2025-04-30 20:32:01 +02:00
852bd6df1a Merge pull request #13598 from AdmiralCurtiss/zstd157
Externals: Update zstd from 1.4.4 to 1.5.7
2025-04-30 19:06:52 +02:00
0b0151770a Merge pull request #13436 from JoshuaVandaele/clang-format-19
Update clang-format to version 19
2025-04-30 01:17:31 -04:00
23a5ea3504 Merge pull request #13604 from fox8091/nstrike
GameINI: Disable Dual Core for NERF N-Strike
2025-04-29 14:56:32 -04:00
b49711fefb Merge pull request #13600 from JoshuaVandaele/nixfix
CMake: Explicitely link udev if LIBUDEV_FOUND is set
2025-04-29 14:55:50 -04:00
d591e3b4e3 GameINI: Enable Single Core for Kung Fu Panda and Shrek Forever After
These games (both are made with the Lux Engine) randomly freeze with Dual Core.
2025-04-29 11:35:09 +02:00
7fa92160a2 Android: Don't call NativeLibrary methods during class init
There's no guarantee that directory initialization has completed by this
point, so we can't safely use NativeLibrary.

I'm making this change because of a crash being reported in Google Play
Console. The exact way it's crashing is mysterious to me, so I'm not
sure if this commit fixes the crash, but I think this commit is
a reasonable change to make even if it doesn't fix the crash. Backtrace
from Google Play Console:

  #00  pc 0x0000000000469074  /data/app/~~m0kqybFNfeqnDenQFc53XQ==/org.dolphinemu.dolphinemu-Mtaw0lU8DVUQbte2ZjBp3w==/lib/arm64/libmain.so (std::__ndk1::pair<std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char>> const, std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char>>>::pair[abi:nn180000]<char const* const&, char const* const&, 0>(char const* const&, char const* const&)) (BuildId: 64cfebf5b574b6729ebc51799aa94ccc3238cbcc)
  #01  pc 0x0000000000468e9c  /data/app/~~m0kqybFNfeqnDenQFc53XQ==/org.dolphinemu.dolphinemu-Mtaw0lU8DVUQbte2ZjBp3w==/lib/arm64/libmain.so (std::__ndk1::pair<std::__ndk1::__tree_iterator<std::__ndk1::__value_type<std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char>>, std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char>>>, std::__ndk1::__tree_node<std::__ndk1::__value_type<std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char>>, std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char>>>, void*>*, long>, bool> std::__ndk1::__tree<std::__ndk1::__value_type<std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char>>, std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char>>>, std::__ndk1::__map_value_compare<std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char>>, std::__ndk1::__value_type<std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char>>, std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char>>>, std::__ndk1::less<std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char>>>, true>, std::__ndk1::allocator<std::__ndk1::__value_type<std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char>>, std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char>>>>>::__emplace_unique_impl<char const* const&, char const* const&>(char const* const&, char const* const&)) (BuildId: 64cfebf5b574b6729ebc51799aa94ccc3238cbcc)
  #02  pc 0x0000000000462f08  /data/app/~~m0kqybFNfeqnDenQFc53XQ==/org.dolphinemu.dolphinemu-Mtaw0lU8DVUQbte2ZjBp3w==/lib/arm64/libmain.so (Common::Log::LogManager::GetLogTypes()) (BuildId: 64cfebf5b574b6729ebc51799aa94ccc3238cbcc)
  #03  pc 0x000000000044339c  /data/app/~~m0kqybFNfeqnDenQFc53XQ==/org.dolphinemu.dolphinemu-Mtaw0lU8DVUQbte2ZjBp3w==/lib/arm64/libmain.so (Java_org_dolphinemu_dolphinemu_NativeLibrary_GetLogTypeNames+56) (BuildId: 64cfebf5b574b6729ebc51799aa94ccc3238cbcc)
  #04  pc 0x000000000031456c  /data/misc/apexdata/com.android.art/dalvik-cache/arm64/boot.oat (art_jni_trampoline+108)
  #05  pc 0x0000000000781508  /apex/com.android.art/lib64/libart.so (nterp_helper+152)
  #06  pc 0x00000000002d94d4  /data/app/~~m0kqybFNfeqnDenQFc53XQ==/org.dolphinemu.dolphinemu-Mtaw0lU8DVUQbte2ZjBp3w==/base.apk (org.dolphinemu.dolphinemu.features.settings.ui.SettingsFragmentPresenter.<clinit>+16)
[...]
2025-04-28 21:37:03 +02:00
26ae66297d GameINI: Disable Dual Core for NERF N-Strike 2025-04-28 13:11:50 -05:00
bad78cfed4 Core, VideoCommon: Fix crash at shutdown due to destructor ordering
Previously, PerformanceTracker registered a callback to be updated on
emulation state changes. PerformanceTrackers live in a global variable
(g_perf_metrics) within libvideocommon. The callback was stored in a
global variable in libcore. This created a race condition at shutdown
between these libraries, when the PerfTracker's destructor tried to
unregister the callback.
Notify the PerfTracker directly from libcore, without callbacks, since
Core.cpp already references g_perf_metrics explicitly. Also rename
Core::CallOnStateChangedCallbacks to NotifyStateChanged to better
reflect what it's doing.
2025-04-28 07:11:53 +03:00
97e696e524 CMake: Explicitely link udev if LIBUDEV_FOUND is set 2025-04-27 22:03:15 +02:00
2e6e7eddd1 DVDThread: Implement with WorkQueueThread and WaitableSPSCQueue. 2025-04-27 04:16:27 -05:00
891833d1a1 Externals: Update zstd from 1.4.4 to 1.5.7 and convert to submodule 2025-04-26 22:07:59 +02:00
552b6da9c4 Hide DirectoryBlob boot.bin files from game list
Extracted games contain a boot.bin file that contains the disc header.
These boot.bin files are considered valid volumes by Dolphin, since
Dolphin only checks the disc header to determine if something is a valid
GC/Wii disc. Running them doesn't make any sense, though.

boot.bin files used to not be scanned by Dolphin due to their file
extension, but .bin was added to the list of file extensions to scan for
in 494e2c0. To stop them from showing up in the game list, let's update
the ShouldHideFromGameList mechanism.
2025-04-26 20:54:32 +02:00