Commit graph

43577 commits

Author SHA1 Message Date
Jordan Woyak
ec29d120b5 CoreTiming: Add a setting to pursue accurate emulation time. 2025-05-02 15:23:43 -05:00
JosJuice
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
JosJuice
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
JosJuice
58d305f75c
Merge pull request #13616 from parona-source/musl-cstdint
UICommon: Include implicit header
2025-05-02 08:03:01 +02:00
JMC47
0066119e41
Merge pull request #13617 from OatmealDome/coretiming-include
CoreTiming: Add missing SystemTimers.h include
2025-05-01 21:33:22 -04:00
JMC47
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
JMC47
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
JMC47
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
JMC47
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
JMC47
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
JMC47
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
JMC47
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
JMC47
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
JMC47
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
OatmealDome
0bd7cc64c9 CoreTiming: Add missing SystemTimers.h include 2025-05-01 19:13:02 -04:00
Alfred Wingate
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
Jordan Woyak
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
JMC47
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
JosJuice
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
JosJuice
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
Jordan Woyak
0987c03693
Merge pull request #13453 from tygyh/Use-underlying-method
DolphinQt/FIFO/FIFOAnalyzer: Use Common::ToUnderlying
2025-04-30 22:18:02 -05:00
Jordan Woyak
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
Admiral H. Curtiss
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
Admiral H. Curtiss
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
Jordan Woyak
ec940e6a2e VideoBackends/Vulkan: Use WorkQueueThreadSP for swap commands. 2025-04-30 16:29:35 -05:00
Jordan Woyak
753fe5bed1 Core: Use WorkQueueThreadSP in NetKDRequestDevice. 2025-04-30 16:29:21 -05:00
Jordan Woyak
c14101534f Core: Use WorkQueueThreadSP in NetIPTopDevice. 2025-04-30 16:28:57 -05:00
Jordan Woyak
bdb4fd8376 Core: Use WorkQueueThreadSP in DVDThread. 2025-04-30 16:17:21 -05:00
Jordan Woyak
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
Jordan Woyak
43e4e8f182
Merge pull request #13581 from jordan-woyak/dvd-WorkQueueThread
DVDThread: Implement with WorkQueueThread and WaitableSPSCQueue.
2025-04-30 16:09:36 -05:00
Jordan Woyak
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
Filippo Tarpini
2049896cab Improve gamma corrected resampling by acknowledging the perceptual luminance 2025-04-30 15:22:06 -05:00
Jordan Woyak
4899913446 Common: Move some duplicate container element construction logic into a ManuallyConstructedValue template. 2025-04-30 14:56:07 -05:00
Jordan Woyak
e8b63fe090 UnitTests: Add tests for WorkQueueThread. 2025-04-30 14:31:51 -05:00
Jordan Woyak
a149b9d62d WorkQueueThread: Cleanups. Implement in terms of WaitableSPSCQueue. Add single producer WorkQueueThreadSP. 2025-04-30 14:31:51 -05:00
Admiral H. Curtiss
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
Admiral H. Curtiss
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
OatmealDome
0b0151770a
Merge pull request #13436 from JoshuaVandaele/clang-format-19
Update clang-format to version 19
2025-04-30 01:17:31 -04:00
JMC47
23a5ea3504
Merge pull request #13604 from fox8091/nstrike
GameINI: Disable Dual Core for NERF N-Strike
2025-04-29 14:56:32 -04:00
JMC47
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
Martino Fontana
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
JosJuice
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
fox8091
26ae66297d GameINI: Disable Dual Core for NERF N-Strike 2025-04-28 13:11:50 -05:00
Mihai Brodschi
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
Joshua Vandaële
97e696e524
CMake: Explicitely link udev if LIBUDEV_FOUND is set 2025-04-27 22:03:15 +02:00
Jordan Woyak
2e6e7eddd1 DVDThread: Implement with WorkQueueThread and WaitableSPSCQueue. 2025-04-27 04:16:27 -05:00
Admiral H. Curtiss
891833d1a1
Externals: Update zstd from 1.4.4 to 1.5.7 and convert to submodule 2025-04-26 22:07:59 +02:00
JosJuice
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
Tilka
8ee64a84c7
Merge pull request #13590 from tygyh/UCodes-Remove-redundant-qualifiers
UCodes: Remove redundant qualifiers
2025-04-26 16:23:27 +01:00
JosJuice
f060baa257 Config: Add locking for config changed callbacks
Different threads are adding and calling callbacks, so this should have
some locking. This is both to ensure thread safety when accessing
`s_callbacks` and to ensure that there won't be situations where a
callback gets called after it's removed.

`s_callback_guards` is also accessed from multiple threads and has
therefore been made atomic.
2025-04-26 12:56:37 +02:00