Commit Graph

38020 Commits

Author SHA1 Message Date
Simonx22
a14014d9aa Android: Remove deprecated extractNativeLibs manifest flag
extractNativeLibs is deprecated. Native lib packaging is already controlled by
packaging.jniLibs.useLegacyPackaging (which we already have), so the manifest override is unnecessary.
2025-11-11 11:18:48 -05:00
Simonx22
cd62125385 Android: Upgrade AGP dependency from 8.11.0 to 8.13.0 2025-11-11 07:12:46 -05:00
Jordan Woyak
f51eaf3282
Merge pull request #14052 from jordan-woyak/DirectIOFile
Common and DiscIO: Introduce a thread safe DirectIOFile and make BlobReader implementations use it.
2025-11-10 17:29:43 -06:00
JosJuice
068947e2b6 Core: Remove IsHostThread
The core no longer cares which thread is the host thread.

Cleaning up Android's HostThreadLock is left for another PR, in part
because the HostThreadLock in NativeConfig.cpp still serves a purpose,
and in part to make any issues easier to bisect.
2025-11-10 21:14:56 +01:00
JosJuice
1bba42de45 RetroAchievements: Remove MemoryPeeker/MemoryPoker's copying approach
This makes the code simpler, and saves us from the slow operation of
copying the all of RAM on every frame when RAIntegration is enabled.
2025-11-10 21:14:20 +01:00
JosJuice
458bb05af9 Core: Let any thread call previously host-thread-only functions
By letting threads other than the host thread use things like
CPUThreadGuard, we can do a significant cleanup in AchievementsManager
in a later commit of this pull request.

Note: Some functions still can't be called from the CPU thread (or
threads the CPU thread might block on, like the GPU thread), but can
be called from any other thread.
2025-11-10 21:14:17 +01:00
JosJuice
cd4902f0ed
Merge pull request #13875 from JosJuice/jitarm64-orr-base-without-mirror
JitArm64: Add missing ORR pattern in MOVI2RImpl
2025-11-10 20:16:21 +01:00
Simonx22
4a3a0228ef Android: Keep main toolbar pinned on game grid
Prevents the version/build bar from sliding behind the status bar when scrolling so the time and build info remain readable instead of overlapping.
2025-11-10 06:47:10 -05:00
Simonx22
469782292c Android: Convert DolphinApplication to Kotlin 2025-11-09 19:45:41 -05:00
Jordan Woyak
a97627e736 Core: Make AddOnStateChangedCallback use HookableEvent. 2025-11-09 16:43:19 -06:00
OatmealDome
fdf822f430
Merge pull request #14093 from Simonx22/android/fix-system-update-dialog-dismissal
Android: Prevent dismissing the System Update dialog by tapping outside
2025-11-09 17:08:43 -05:00
Admiral H. Curtiss
31ca3bca47
Merge pull request #13956 from jordan-woyak/SA_RESTART
Main: Add SA_RESTART to sigaction sa_flags.
2025-11-09 15:30:27 +01:00
Admiral H. Curtiss
02b4b1ece3
Merge pull request #14010 from jordan-woyak/wmreal-iolinux-reopen-on-unplug
WiimoteReal/IOLinux: Reopen Bluetooth device if it was unplugged between scans.
2025-11-09 15:03:12 +01:00
Admiral H. Curtiss
c97d2af814
Merge pull request #14022 from TryTwo/fix_balloontip_width
Settings BalloonTip: Have wordwrap use max width.
2025-11-09 15:00:19 +01:00
Admiral H. Curtiss
ab2ceb10ae
Merge pull request #14073 from jordan-woyak/convert-dialog-min-size
DolphinQt: Make disc ConvertDialog have a better minimum size and use QFormLayout.
2025-11-09 14:57:46 +01:00
Admiral H. Curtiss
6435ee1d20
Merge pull request #14026 from jordan-woyak/move-only-function-fix
Common/Functional: Fix MoveOnlyFunction from inadvertently creating references from lvalues.
2025-11-09 14:49:20 +01:00
Admiral H. Curtiss
29e2b0ff01
Merge pull request #14068 from iTrooz/open_folder
feat(profiles): add "open profiles folder" button + add dropdown button for profile actions
2025-11-09 14:29:18 +01:00
Admiral H. Curtiss
e197163e9e
Merge pull request #14094 from OatmealDome/mac-nav-list
SettingsWindow: Set navigation list stylesheet in constructor
2025-11-09 14:10:39 +01:00
Jordan Woyak
9e2fc7f4dd Common/IOFile: Remove the Duplicate function. The duplicate handles shared a read/write position making them effectively not thread-safe. 2025-11-09 03:08:14 -06:00
Jordan Woyak
239330017c DiscIO: Make all BlobReader implementations use DirectIOFile to make CopyReader functionality thread safe. 2025-11-09 03:08:14 -06:00
Jordan Woyak
b98acb9a37 Common/BitUtils: Add overloads of AsU8Span/AsWritableU8Span that handle conversions from contiguous ranges. 2025-11-09 03:08:14 -06:00
Jordan Woyak
405baed805 Common: Add a DirectIOFile class that allows for copies which are entirely thread safe. 2025-11-09 03:08:14 -06:00
JosJuice
db997e9963
Merge pull request #14085 from cristian64/disable_wtrigraphs
CMakeLists: Disable `-Wtrigraphs`.
2025-11-09 09:51:33 +01:00
OatmealDome
448329e821
SettingsWindow: Set navigation list stylesheet in constructor 2025-11-09 01:55:52 -05:00
Simonx22
b733213bcf Android: Prevent dismissing the System Update dialog by tapping outside
Tapping outside the System Update dialog would previously close it and leave the update in a partially canceled, inconsistent state. This change disables outside-touch dismissal to avoid accidental interruptions and ensure the process completes cleanly.
2025-11-09 01:21:58 -05:00
Simonx22
bd93c09e38 CPUThreadConfigCallback: Use maximum value of size_t instead of -1 as default value ConfigChangedCallbackID
Co-Authored-By: OatmealDome <OatmealDome@users.noreply.github.com>
2025-11-08 23:23:33 -05:00
LillyJadeKatrin
cff0ba76c1 Init achievement manager in Android startup 2025-11-08 20:31:23 -05:00
JosJuice
f8cddf344d Android: Clear listener in SwitchSettingViewHolder
If bind was called more than once for a SwitchSettingViewHolder, the
line `binding.settingSwitch.isChecked = setting.isChecked` would
accidentally trigger the listener registered during the previous bind
call.
2025-11-08 20:31:22 -05:00
cristian64
7ec6692315 CMakeLists: Disable -Wtrigraphs.
Trigraphs support is generally disabled by default, but some compilers
(e.g. GCC) may still warn when one hypothetical trigraph is encountered.

For example, one of these warnings was introduced as part of #14067:

```
.../Source/Core/DolphinQt/MainWindow.cpp:1433:77: warning: trigraph ??) ignored, use -trigraphs to enable [-Wtrigraphs]
 1433 |       this, tr("Select a File"), dialog_path, tr("All Save States (*.sav *.s??);; All Files (*)"));
      |
.../Source/Core/DolphinQt/MainWindow.cpp:1445:77: warning: trigraph ??) ignored, use -trigraphs to enable [-Wtrigraphs]
 1445 |       this, tr("Select a File"), dialog_path, tr("All Save States (*.sav *.s??);; All Files (*)"));
      |
```

The warning is generally not interesting and has been disabled now.
2025-11-08 22:38:03 +00:00
OatmealDome
4f849ec827
Merge pull request #14047 from Simonx22/reset-all-dolphin-settings-android
Android: Add Reset Dolphin Settings functionality
2025-11-08 14:03:44 -05:00
OatmealDome
5ee1ae43bb
Merge pull request #14077 from Simonx22/android-alert-message-kotlin
Android: Convert AlertMessage dialog to Kotlin
2025-11-08 14:03:19 -05:00
OatmealDome
02ad041866
Merge pull request #14086 from Simonx22/android/use-native-analytics
Android: Use the shared HTTP analytics backend
2025-11-08 14:03:06 -05:00
OatmealDome
a459dc0d25
Merge pull request #14082 from Simonx22/analytics/reload-on-setting-change
DolphinAnalytics: Reload backend when config changes
2025-11-08 14:00:03 -05:00
Simonx22
8ee767f292 Android: Convert AlertMessage dialog to Kotlin 2025-11-08 12:21:12 -05:00
Simonx22
82f658a28f Android: Use the shared HTTP analytics backend
We can now route Android analytics through Common::HttpAnalyticsBackend, drop the Volley sender, and keep the JNI layer limited to only transfer metadata since https://bugs.dolphin-emu.org/issues/11772 has been fixed.
2025-11-08 12:14:40 -05:00
JosJuice
958db7c78c
Merge pull request #14020 from jordan-woyak/string-util-cleanups
StringUtil: Cleanups and add some character encoding conversion unit tests.
2025-11-08 17:36:54 +01:00
Simonx22
f67691d564 Config: Use maximum value of size_t instead of -1 as default value in ConfigChangedCallbackID
Co-authored-by: OatmealDome <julian@oatmealdome.me>
2025-11-08 11:35:31 -05:00
Simonx22
f9b167d8c6 DolphinAnalytics: Reload backend when config changes
Co-Authored-By: OatmealDome <julian@oatmealdome.me>
2025-11-08 11:35:30 -05:00
JosJuice
ba14222a2b
Merge pull request #13939 from Dentomologist/logging_avoid_overwriting_debug_verbosity_in_release_builds
Logging: Don't overwrite LDEBUG level in Release builds
2025-11-08 14:47:27 +01:00
JosJuice
9d27c145b9
Merge pull request #14076 from Simonx22/remove-action1-interface
Android: Replace Action1 helper with Kotlin lambda
2025-11-08 11:42:38 +01:00
Jordan Woyak
5af9bd5e46
Merge pull request #14074 from jordan-woyak/HookableEvent-no-strings
Common: Remove the string parameters from the HookableEvent interface.
2025-11-07 16:32:06 -06:00
Jordan Woyak
51cd0a676a
Merge pull request #14079 from Dentomologist/use_asyncworkthread_pushblocking_instead_of_sync_event
CubebStream: Use WorkQueueThread::PushBlocking instead of sync_event
2025-11-07 16:31:46 -06:00
Dentomologist
3b97a7bded CubebStream: Use WorkQueueThread::PushBlocking instead of sync_event
Push and wait on WorkQueueThread items using PushBlocking. Previously we
created a Common::Event sync_event on the caller's stack, called Wait on
it, then had the WorkQueueThread call Set on the sync_event once the
thread was done.

In addition to being simpler the new way avoids a use-after-free that
could happen in convoluted and unlikely yet possible thread scheduling
sequences.

One such case can be triggered as follows:

* Set your audio backend to Cubeb
* In CubebStream::SetVolume set a breakpoint at the call to Wait and at
  the call to cubeb_stream_set_volume.
* Start a game.
* Continue until the Cubeb Worker thread hits the
  cubeb_stream_set_volume breakpoint and Emuthread hits the Wait
  breakpoint, freezing each thread when it hits its breakpoint.
* Unfreeze Cubeb Worker.
* In Event::Set set a breakpoint at the end of the scope containing the
  lock_guard such that the guard has been constructed but not destructed
  when the breakpoint is hit.
* Continue until that breakpoint is hit by Cubeb Worker. If other
  threads hit it first keep going.
* Freeze Cubeb Worker.
* For convenience remove the breakpoint in Event::Set so other threads
  don't trigger it.
* In CubebStream::SetRunning set a breakpoint at the call to Wait.
* Unfreeze Emuthread and continue until the breakpoint is hit.
* In Cubeb Worker go to Event::Set and examine the values of m_mutex's
  member variables. In Visual Studio Debug these are locking_thread_id
  == 0xcccccc01 and ownership_levels == 0xcccccccc. This is the result
  of Visual Studio overwriting the memory used on the stack by
  sync_event in CubebStream::SetVolume with cc bytes to represent
  uninitialized memory on the stack (since that function already
  returned), and then allocating enough memory on the stack when calling
  AudioCommon::SetSoundStreamRunning and then CubebStream::SetRunning
  that it overwrote one byte of the memory formerly occupied by
  locking_thread_id.
* If you unfreeze Cubeb Worker at this point it will trigger the lock
  guard's destructor which will then try to unlock m_mutex. Since
  m_mutex is no longer in scope this is a use-after-free, and in VS
  debug triggers a debug assert due to locking_thread_id not matching
  the current thread id.
2025-11-07 13:19:18 -08:00
Simonx22
ddbbb2ea4b Android: Replace Action1 helper with Kotlin lambda 2025-11-07 11:56:11 -05:00
JosJuice
5ed4823ebc
Merge pull request #13858 from LillyJadeKatrin/retroachievements-message-adjustments
Retroachievements message adjustments
2025-11-07 16:50:48 +01:00
Jordan Woyak
da6c65bf3b Common: Remove the string parameters from the HookableEvent interface. 2025-11-06 22:34:40 -06:00
Jordan Woyak
5650be6842
Merge pull request #14069 from jordan-woyak/ciface-hookable-event
InputCommon: Make ControllerInterface RegisterDevicesChangedCallback use Common::HookableEvent.
2025-11-06 20:06:53 -06:00
LillyJadeKatrin
dd941bed70 Improve Achievements Window message
Special message on the Achievements window if the token is invalid/expired.
2025-11-06 20:44:08 -05:00
OatmealDome
852b7d85b2
Merge pull request #14062 from Simonx22/macos-design-fixes
macOS: UI fixes for dark mode
2025-11-06 20:20:05 -05:00
LillyJadeKatrin
1ad0a771d9 Delete Invalid RetroAchievements Tokens 2025-11-06 19:42:14 -05:00
LillyJadeKatrin
b1f27b6cfd Added message for bad RetroAchievements token
Displays a different message at game launch if RetroAchievements fails specifically due to an invalid or expired API token, instructing the player to log back in with the game closed.
2025-11-06 19:30:22 -05:00
LillyJadeKatrin
4985a1e19b Adjusted mastery message
Wes from RetroAchievements requested a minor phrasing change to the mastery message.
2025-11-06 19:30:22 -05:00
Jordan Woyak
a7df85a626 DolphinQt: Make disc ConvertDialog have a better minimum size, use QFormLayout, and clean up the code a bit. 2025-11-06 04:34:07 -06:00
Jordan Woyak
1e144a7cfd CMakeLists: Fix build on Linux with CMake versions less than 3.25. 2025-11-06 02:41:55 -06:00
iwubcode
2f20c12d82 VideoCommon: pass the EFB buffer scale into the FramebufferManager instead of pulling it from config, in the future this will allow us to have multiple framebuffers 2025-11-05 21:52:54 -06:00
Jordan Woyak
ca6d8e1f0b InputCommon: Make ControllerInterface RegisterDevicesChangedCallback use Common::HookableEvent. 2025-11-05 17:12:56 -06:00
Simonx22
cd16ec02bd macOS: UI fixes for dark mode 2025-11-04 15:49:55 -05:00
Jordan Woyak
2170080f53
Merge pull request #14061 from jordan-woyak/config-info-spin-mutex
ConfigInfo: Cleanups and change mutex to a spin lock.
2025-11-04 14:09:35 -06:00
Jordan Woyak
7d617878e0
Merge pull request #13626 from jordan-woyak/non-global-hookable-event
Common: Make HookableEvent use non-static data.
2025-11-04 13:57:08 -06:00
VampireFlower
294044a02e Debugger: Ignore bctr when stepping out 2025-11-04 11:41:48 -05:00
iTrooz
a99cb008db
feat(profiles): add "open profiles folder" button + add dropdown button for profile actions
Co-Authored-By: iTrooz <hey@itrooz.fr>
Co-Authored-By: Max Chateau <maxban.chateau@gmail.com>
Co-Authored-By: Damien R. <rodriguezdamien1677@gmail.com>
2025-11-04 08:09:25 +01:00
VampireFlower
40fa9ddadd MainWindow: Change save state file filter to use *.s?? pattern 2025-11-03 18:50:56 -05:00
Jordan Woyak
999333c0a1 Config: Make ConfigInfo use Common::SpinLock to protect the CachedValue. These locks are nearly always uncontested and this makes Config::Get faster. 2025-11-02 20:45:55 -06:00
Jordan Woyak
46369ef1b1 Common: Add AtomicMutex and SpinMutex classes as faster alternatives to std::mutex. 2025-11-02 20:45:55 -06:00
Jordan Woyak
fc9f25a418 Config/ConfigInfo: Cleanups. 2025-11-02 20:30:35 -06:00
Simonx22
f718a6b72f Android: Add Reset Dolphin Settings functionality 2025-11-02 20:09:23 -05:00
Jordan Woyak
f289b06e0d Common: Make HookableEvent use non-static data.
Co-authored-by: Dentomologist <dentomologist@gmail.com>
2025-11-02 17:30:43 -06:00
iwubcode
ef87af2985 VideoCommon: fix wrong path to glslang include 2025-11-02 14:29:14 -06:00
JosJuice
8749855643 Call JitInterface::UpdateMembase from PowerPC::MSRUpdated
When the interpreter calls MSRUpdated, we should update the membase
variable. Not because the interpreter itself needs it, but because the
JIT needs it if it's falling back to the interpreter for an instruction
that sets the MSR.

Additionally, the JIT's FallBackToInterpreter needs to read back the new
membase value afterwards.

This fixes games crashing on JitArm64 if mtmsr is set to fall back to
interpreter. I was unable to reproduce the issue on Jit64, presumably
due to a fortunate series of coincidences (instructions that set MSR are
always followed by an exception exit, and
PowerPCManager::CheckExternalExceptions was always calling
JitInterface::UpdateMembase, and Jit64::WriteExceptionExit was always
calling Jit64::EmitUpdateMembase.)
2025-11-02 21:18:07 +01:00
JMC47
a4a4416ff2
Merge pull request #14042 from iwubcode/bp_functions_global
VideoCommon: move global variables out of BPFunctions
2025-11-02 13:17:38 -05:00
JMC47
1d9c743ef7
Merge pull request #13975 from iwubcode/shader_includes
VideoBackends / VideoCommon: add support for specifying include files in shader code
2025-11-02 13:17:28 -05:00
Jordan Woyak
5650b2ef37 StringUtil: Replace strerror with Common::LastStrerrorString. 2025-11-02 00:36:04 -05:00
Jordan Woyak
0ebc54a0fa UnitTests: Add some StringUtil character encoding conversion tests. 2025-11-02 00:36:04 -05:00
Jordan Woyak
da7c813edf StringUtil: Make non-Windows WStringToUTF8 implementation use iconv instead of deprecated std::codecvt features. 2025-11-02 00:36:04 -05:00
Jordan Woyak
b073b5303b StringUtil: Fix many clang-tidy warnings. 2025-11-02 00:36:04 -05:00
Jordan Woyak
57d7485ea6 Core/IOS/FS: Clean up some hard to read NAND state saving logic. 2025-11-01 12:33:30 -05:00
JosJuice
249f999c6a
Merge pull request #13655 from JosJuice/android-always-expand-sheets
Android: Expand bottom sheets on devices with touch too
2025-11-01 12:22:45 +01:00
JosJuice
35c5b51b62
Merge pull request #14048 from Simonx22/android-instant-settings-saving
Android: Save settings instantly after edits
2025-11-01 12:22:35 +01:00
JosJuice
da1d45dbd4
Merge pull request #14057 from TellowKrinkle/VkRenderWrongLayout
VideoCommon: Fix render to texture in wrong layout
2025-11-01 10:06:41 +01:00
JosJuice
91fd53a98c
Merge pull request #14035 from Dentomologist/pauseandlock_refactoring
PauseAndLock Refactoring
2025-11-01 10:06:08 +01:00
JosJuice
828e72d604
Merge pull request #14034 from JoshuaVandaele/byeprofile
JitRegister: Remove OProfile profiler
2025-11-01 10:05:11 +01:00
JosJuice
998a3577ce
Merge pull request #14054 from Dentomologist/libmgba_fix_build_when_disabled
libmgba: Fix build when disabled
2025-11-01 10:01:48 +01:00
iwubcode
6728007cb4 VideoCommon: rename ScissorResult 'm_result' to 'rectangles' to better reflect what the member is 2025-10-31 13:28:14 -05:00
iwubcode
ee7c476e24 VideoCommon: move global variables out of BPFunctions 2025-10-31 13:27:50 -05:00
TellowKrinkle
21ac489d57 VideoCommon: Fix render to texture in wrong layout 2025-10-30 20:50:17 -05:00
Jordan Woyak
c12d3a6d22
Merge pull request #14045 from JoshuaVandaele/warn-fix
Fix various warnings
2025-10-30 20:47:42 -05:00
JMC47
d065f1ae12
Merge pull request #14041 from jordan-woyak/lockless-async-requests
VideoCommon: Clean up and eliminate the mutex in AsyncRequests.
2025-10-30 19:26:22 -04:00
Sepalani
ba8f4ca6a2 IP/Top: Make InetAToN async 2025-10-31 01:13:36 +04:00
JosJuice
1b8a54024c Android: Expand bottom sheets on devices with touch too
In a few places in Dolphin, we're using BottomSheetDialogFragments.
These unhelpfully tend to start out in a "collapsed" state when in
landscape mode (presumably depending on factors like screen size). The
user then has to manually expand them before they can meaningfully
interact with them.

We've been automatically setting BottomSheetDialogFragments to the
expanded state if the device Dolphin is running on doesn't support
touch, since with d-pad navigation it's impossible to expand these
sheets. But I think we should set them to expanded on devices that
support touch too. I haven't encountered a single case where you can do
anything useful with any of Dolphin's BottomSheetDialogFragments while
they're collapsed, so the user always has to expand sheets manually if
they start out collapsed. And just because a device supports touch
doesn't necessarily mean you're interacting with it through the touch
screen right now - you could be using a gamepad, for instance.
2025-10-30 21:22:41 +01:00
Dentomologist
2836dd2b5e libmgba: Fix build when disabled 2025-10-30 12:00:13 -07:00
Joshua Vandaële
5c12677705
OnScreenDisplayPane: Fix unused-variable warning
This is used in AdvancedPane and was seemingly accidentally copied over
2025-10-30 12:35:22 +01:00
Joshua Vandaële
b66b2f71af
GameConfigEdit: Fix unused-result warning 2025-10-30 12:35:22 +01:00
Joshua Vandaële
2383e68fd8
x64Emitter: Fix missing-declarations warning 2025-10-30 12:35:22 +01:00
Joshua Vandaële
33152740d0
CustomPipeline.cpp: Fix unused-function warning
This whole file is apparently going away soon.
2025-10-30 12:35:19 +01:00
Jordan Woyak
478fb20bc2
Merge pull request #14050 from Dentomologist/android_input_fix_unused_value_warning
Android: Fix unused value warning
2025-10-30 01:44:12 -05:00
Dentomologist
32a8128b53 AchievementManager: Fix unused private field warnings
Remove several unused members from AchievementManager.

These became unused in https://github.com/dolphin-emu/dolphin/pull/12639
which switched from the rcheevos rc_runtime interface to rc_client.
2025-10-29 16:50:00 -07:00
Dentomologist
570ec7c322 Android: Fix unused value warning
Remove "env, " from "return env, GetControlPointer..." since the left
side of a comma operator has no effect.

This was presumably a copy/paste error from the function above it.
2025-10-29 16:19:15 -07:00
Simonx22
82c86221d6 Android: Save settings instantly after edits 2025-10-29 16:49:16 -04:00
Joshua Vandaële
280d0e7f8d
MaterialAsset: Fix shadowed field 2025-10-29 11:12:31 +01:00
Joshua Vandaële
0b7d581af5
UICommon.cpp: Revert changes from #13866 2025-10-29 09:56:39 +01:00
JMC47
b920182c97
Merge pull request #13870 from cristian64/broadband_adapter_ipc
Core/HW: Add Broadband Adapter (IPC).
2025-10-28 19:16:17 -04:00
JMC47
1ed86e1b16
Merge pull request #13866 from JoshuaVandaele/reset-button-third-attempt
AdvancedPane: Add a button to restore default settings
2025-10-28 18:56:03 -04:00
Jordan Woyak
09a125fec4 VideoCommon: Clean up and eliminate the mutex in AsyncRequests using WaitableSPSCQueue. 2025-10-28 17:22:04 -05:00
cristian64
f5012ef457 Core/HW: Add Broadband Adapter (IPC).
This is a hassle-free BBA option intended for local play with multiple
Dolphin instances running *in the same system*. After selecting
**Broadband Adapter (IPC)** in the **SP1** slot in the GameCube section
in the settings, games that support LAN play will be able to discover
each other, without requiring third-party software or relatively complex
TAP setups.

The implementation is based on cpp-ipc, a high-performance inter-process
communication library that uses shared memory as transport layer.

Supported platforms are:

- [x] Linux
- [x] Windows
- [ ] macOS (cpp-ipc does not support this platform)
- [ ] FreeBSD (cpp-ipc does not support this platform)
- [ ] Android (cpp-ipc needs some adjustments; while it could work,
  launching two Dolphin instances within the same Android system may be
  both challenging and impractical)
2025-10-28 18:50:59 +00:00
cristian64
4677a92b13 Core/HW: Add Visual Studio project files for cpp-ipc library. 2025-10-28 18:50:58 +00:00
Joshua Vandaële
e1088659b1
AdvancedPane: Use ConfigControls where applicable 2025-10-27 16:22:02 +01:00
Joshua Vandaële
3cf4b02a91
PathPane: Use ConfigControls where applicable 2025-10-27 16:22:02 +01:00
Joshua Vandaële
02d84ddc78
WiiPane: Use ConfigControls where applicable 2025-10-27 16:22:02 +01:00
Joshua Vandaële
b6766e1ca0
GameCubePane: Use ConfigControls where applicable 2025-10-27 16:21:59 +01:00
Joshua Vandaële
1e227bd736
FreeLookWidget: Use ConfigControls where applicable 2025-10-27 15:59:33 +01:00
Joshua Vandaële
33fd06d7f3
AdvancedPane: Add a button to restore default settings 2025-10-27 15:59:33 +01:00
Jordan Woyak
c69f868fff Core/HW: Remove RoundingModeUpdated call from CPUManager::Run. This is now properly handled on initialization. 2025-10-26 23:07:14 -05:00
Jordan Woyak
700abd68e3 VideoCommon/AsyncRequests: Remove now unnecessary SetEnable function. Requests are now always enabled. Call SetPassthrough on initialization to not be racy. 2025-10-26 23:07:14 -05:00
Jordan Woyak
6416b0a6ec Core: Make EmuThread spawn the Video thread and become the CPU thread in dual-core mode instead of the other way around. 2025-10-26 23:07:14 -05:00
iwubcode
96fe6a1575 VideoBackends / VideoCommon: add support for specifying include files in shader code 2025-10-26 22:47:23 -05:00
Dentomologist
70d8bc6fd7 CPU: Update PauseAndLock comment 2025-10-26 18:06:38 -07:00
Dentomologist
c47db6dba7 DSPEmulator: Remove redundant parameter and code
PauseAndLock is only called with do_lock=true, so remove the parameter
and modify PauseAndLock accordingly.
2025-10-26 18:03:31 -07:00
Dentomologist
d5f079d78b DSPEmulator: Extract UnpauseAndUnlock from PauseAndLock
Replace call to PauseAndLock(do_lock=false) with new function
UnpauseAndUnlock.
2025-10-26 18:03:06 -07:00
Dentomologist
933071dd57 FifoManager: Remove redundant PauseAndLock parameters
PauseAndLock was only called with do_lock=true, and the function only
used unpauseOnUnlock when do_lock was false.
2025-10-26 18:01:51 -07:00
Dentomologist
f497eb519e FifoManager: Extract RestoreState from PauseAndLock
Replace calls of FifoManager::PauseAndLock(do_lock=false) with new
function RestoreState for clarity.
2025-10-26 18:01:51 -07:00
Dentomologist
f628a979c4 Core: Remove pointless call to FifoManager::PauseAndLock
FifoManager::PauseAndLock doesn't do anything when doLock and
unpauseOnUnlock are both false, so remove the call.
2025-10-26 18:01:51 -07:00
Dentomologist
2d888ea4d3 Core: Remove unnecessary PauseAndLock parameters
PauseAndLock is now only called with do_lock=true, and unpause_on_unlock
only ever was used when do_lock is false (which is now handled in
RestoreStateAndUnlock instead), so both parameters are unnecessary.
2025-10-26 18:01:51 -07:00
Dentomologist
c9c8461d36 Core: Extract RestoreStateAndUnlock from PauseAndLock
Replace calls of PauseAndLock(do_lock=false) with new function
RestoreStateAndUnlock for clarity.

Callers of PauseAndLock ignored the return value when do_lock is
false, so RestoreStateAndUnlock doesn't need to return anything.
2025-10-26 18:01:23 -07:00
Dentomologist
4e64d8e94f CPUManager: Remove redundant parameter from RestoreStateAndUnlock
RestoreStateAndUnlock was only called with control_adjacent=true. Remove
the parameter and unconditionally call the function that was gated
behind it being true.
2025-10-26 17:59:47 -07:00
Dentomologist
8d0dbb0ef6 CPUManager: Remove redundant parameter from PauseAndLock
PauseAndLock was only called with control_adjacent=false. Remove the
parameter and the function call that was only made when it was true.
2025-10-26 17:56:31 -07:00
Dentomologist
48d48fe1af CPUManager: Remove unnecessary PauseAndLock parameters
CPUManager::PauseAndLock is now only called with do_lock=true, and
unpause_on_unlock only ever was used when do_lock is false (which is now
handled in RestoreStateAndUnlock instead), so both parameters are
unnecessary.
2025-10-26 17:54:41 -07:00
Dentomologist
1a6e285685 CPU: Remove default arguments for PauseAndLock
For clarity in the next commit.
2025-10-26 17:54:41 -07:00
Dentomologist
691743fbc4 CPU: Extract RestoreStateAndUnlock from PauseAndLock
Replace call of CPUManager::PauseAndLock(do_lock=false) with new
function RestoreStateAndUnlock for clarity.

Callers of Core::PauseAndLock ignore the return value when do_lock is
false, so in that case was_unpaused in Core::PauseAndLock doesn't need
to be set and so RestoreStateAndUnlock doesn't need to return anything.
2025-10-26 17:54:41 -07:00
Dentomologist
bebeba29c3 CPU: Convert static variable to class member
Make s_have_fake_cpu_thread a class member instead. In addition to
getting rid of a bit of static state, this simplifies refactoring in an
upcoming commit.
2025-10-26 17:53:45 -07:00
Jordan Woyak
7608dbbfbd Core: Remove GDBStub::Deinit call from EmuThread. The CpuThread function is already doing this. 2025-10-26 16:53:52 -05:00
Jordan Woyak
c22a483431
Merge pull request #14031 from TellowKrinkle/GlslangFix
CMake: Fix bundled glslang
2025-10-26 15:42:36 -05:00
Joshua Vandaële
713dfb41df
JitRegister: Remove OProfile profiler
OProfile is not used at all these days, most major distributions do not ship it anymore (Debian, Fedora, and Alpine to name the few I've checked) and following a discussion on Discord, nobody is apparently using it, most devs not even being aware of it. This removes an optional dependency from Dolphin.
2025-10-26 20:48:15 +01:00
TellowKrinkle
d404805b7f CMake: Fix bundled glslang 2025-10-24 22:58:22 -05:00
Martino Fontana
fe63d95e02 GameINI: Add patches to limit FPS for some uncapped games 2025-10-23 00:38:14 +02:00
Martino Fontana
2542c79d6b GameINI: Add patches for idle loop detection (speed hack) 2025-10-23 00:03:59 +02:00
Martino Fontana
d423eb5a75 GameINI: Fix Egg Mania Japanese "Force Progressive" hack 2025-10-22 23:32:18 +02:00
Jordan Woyak
ba5edce2af Common/Functional: Fix MoveOnlyFunction from inadvertently creating references from lvalues. 2025-10-22 05:06:41 -05:00
Jordan Woyak
06b4c89c51
Merge pull request #14024 from cobalt2727/patch-5
DolphinQt: explicitly include QAction for building with older QT6 libs
2025-10-21 21:55:55 -05:00
cobalt2727
7c63750e53 DolphinQT: explicitly include QAction for older QT6 libs
this fixes an exotic build environment I've got using QT6.2 on Ubuntu 18.04 without breaking any sane operating systems.
2025-10-21 22:52:43 -04:00
Jordan Woyak
e34ef86be9
Merge pull request #13947 from JosJuice/i18n-2025-08-17-type
i18n: Improve EditSymbolDialog's symbol vs note handling for translators
2025-10-21 19:19:13 -05:00
JMC47
be131ddc59
Merge pull request #13984 from jordan-woyak/wmreal-quick-connect-and-disconnect
WiimoteReal: Quickly connect and disconnect Wii remotes with hidapi / Android.
2025-10-21 19:49:22 -04:00
Jordan Woyak
26c5b2f57a WiimoteReal/IOLinux: Fix warning. 2025-10-21 14:51:54 -05:00
Jordan Woyak
590b94975d WiimoteReal: Make WiimoteScannerBackend classes use separate FindNewWiimotes and FindAttachedWiimotes functions.
Return results as vector of unique_ptr instead of raw pointers.
2025-10-19 22:36:39 -05:00
Jordan Woyak
99cc5e7bb7 WiimoteReal/IOAndroid: Only "find" DolphinBar remotes which are actually connected. 2025-10-19 22:36:39 -05:00
Jordan Woyak
c84d30c782 WiimoteReal/IOAndroid: Don't "find" already in-use Wii remotes. 2025-10-19 22:36:39 -05:00
TellowKrinkle
e599ae37c3 VideoBackends:Vulkan: Prevent hazards when restarting render passes 2025-10-18 05:24:37 -05:00
JMC47
7b994d9654
Merge pull request #14019 from JosJuice/android-ndk-29
Android: Update NDK version to 29.0.14206865
2025-10-17 18:47:20 -04:00
JMC47
0755218617
Merge pull request #14012 from jordan-woyak/wmreal-name-check
WiimoteReal: Check just the start of Bluetooth device names to match the test performed by Wii software.
2025-10-17 18:46:42 -04:00
JMC47
2e490cefa0
Merge pull request #13978 from JoshuaVandaele/libiconv-1.18
Externals: Update libiconv to 1.18
2025-10-17 18:45:48 -04:00
TryTwo
2bc944e1a3 Settings BalloonTip: Wrapped tips were not using the maximum width, resulting in a much smaller width than they should have. 2025-10-16 15:58:32 -07:00
TryTwo
c135af22dd Imgui: Add a new default font (VeraMono - 49kb) that scales better than the old default.
Allow loading a custom font by naming it OSD_Font.ttf and placing the file in the User/Load folder, to load that font instead. Useful for future testing.
2025-10-16 15:36:50 -07:00
JMC47
e8d9c124e5
Merge pull request #13953 from TryTwo/add_osd_tab
Qt Settings: Transfer OSD settings to a new OSD pane.
2025-10-15 16:35:26 -04:00
JosJuice
f05f89e6b4 Android: Update NDK version to 29.0.14206865 2025-10-15 19:57:53 +02:00
Jordan Woyak
a49514eb7b HLE_VarArgs: Replace enable_if with concepts. 2025-10-13 23:42:31 -05:00
Jordan Woyak
c2b5a1a35c WiimoteReal: Check just the start of Bluetooth device names to match the test performed by Wii software. 2025-10-13 21:13:37 -05:00
Dentomologist
5b4df5ae98 VideoBackend: Rename GetName to GetConfigName
Make the function name more explicit and a better match for
GetDisplayName.

Change NAME to CONFIG_NAME while I'm at it.
2025-10-13 17:38:20 -07:00
Jordan Woyak
94be0e466e WiimoteReal/IOLinux: Reopen Bluetooth device if it was unplugged between scans. 2025-10-13 18:39:47 -05:00
Dentomologist
4e359cf1c5 WindowsDevice: Silence missing property log spam
Don't log a warning in GetPropertyHelper when the property isn't
present. The function returns an optional, so any callers that want to
log a warning when nullopt is returned can do so themselves.

This prevents plugged-in devices (an Xbox One controller in my case)
from spamming the message "W[COMMON]: CM_Get_DevNode_Property returned:
37" twice per second (that value being CR_NO_SUCH_VALUE).
2025-10-13 11:55:12 -07:00
JosJuice
1067754d21
Merge pull request #13983 from jordan-woyak/wmreal-android-fix
WiimoteReal: Use GetEnvForThread within IORead/IOWrite calls to fix real Wii remotes on Android.
2025-10-13 19:52:05 +02:00
JMC47
8edef722ce
Merge pull request #14008 from jordan-woyak/qt6.10-buildfix
CMakeLists: Fix build with Qt6.10.
2025-10-13 13:51:19 -04:00
Jordan Woyak
b3bdad416c CMakeLists: Fix build with Qt6.10. GuiPrivate component is needed to #include qplatformnativeinterface.h in MainWindow.cpp. 2025-10-12 23:53:05 -05:00
Jordan Woyak
801f38d4e5 DolphinQt: Add buttons to create and reset Wii remote pairings on Windows. 2025-10-12 12:37:04 -05:00
Jordan Woyak
8845fbdb7e WiimoteReal: Detect already connected Wii remotes on Windows without having to use the Refresh button. 2025-10-12 12:37:04 -05:00
Jordan Woyak
e0c40025a9 WiimoteReal/IOWin: Major cleanups and improvements. 2025-10-12 12:37:04 -05:00
Jordan Woyak
3978e1eb2c WindowsDevice: Add some utility functions for getting device properties using CfgMgr32. 2025-10-12 12:33:13 -05:00
Jordan Woyak
e8d22923c6 WiimoteReal: Send periodic writes to test for disconnect. 2025-10-12 12:33:13 -05:00
Jordan Woyak
94ecf4df39 WiimoteReal: Add function to test specifically for a wii remote name. 2025-10-12 12:33:13 -05:00
TryTwo
fcb3d2fb05 Qt Setting Panes: Remove original location of options transferred to the OSD pane. 2025-10-10 17:02:00 -07:00
TryTwo
3b11280c20 Movie Window: Move customization options from Menu Bar to OSD pane, but add options to toggle the window and to open the OSD pane.
Add new setting to show/hide the Movie Window.
2025-10-10 16:59:16 -07:00
TryTwo
13ac387197 Qt: Add OnScreenDisplayPane to settings window. Transfer OSD options to pane. 2025-10-10 02:47:27 -07:00
JMC47
d8bcd6d82e
Merge pull request #13996 from SuperSamus/jit64-dynamic-known-jmp-len
Jit64: Dynamic length of regular jump instruction (for known addresses)
2025-10-09 14:07:13 -04:00
JMC47
f43b78efb6
Merge pull request #13989 from jordan-woyak/wmreal-hidapi-cleanup
WiimoteReal/IOhidapi: Minor changes / cleanups.
2025-10-09 14:06:57 -04:00
JMC47
39944a61d1
Merge pull request #13979 from mbc07/RealtekFirmwareLoader_newIDs
RealtekFirmwareLoader: more RTL8761B device IDs
2025-10-09 14:06:17 -04:00
JMC47
4f7a910e92
Merge pull request #13964 from ryanmcgrath/macos/qos
macoS: update QoSSession with SO_NET_SERVICE_TYPE.
2025-10-09 14:05:42 -04:00
JMC47
efa9245565
Merge pull request #13963 from jordan-woyak/point-passthru-needs-bound-inputs
WiimoteEmu: Require IRPassthrough has any bound inputs to operate.
2025-10-09 14:05:16 -04:00
JMC47
1aae1ecbaa
Merge pull request #13712 from SuperSamus/cheat-search-improvements
CheatSearchWidget: New feature, writing a value to all selected addresses
2025-10-09 13:58:00 -04:00
Martino Fontana
f8d30e796c CheatSearchWidget: New feature, writing a value to all selected addresses 2025-10-08 11:33:44 +02:00
Martino Fontana
c002861041 CheatSearchWidget: "Add to watch" to all selected items
Instead of just the right-clicked item.
2025-10-08 11:27:06 +02:00
Martino Fontana
8a97ce9124 MMU: Use templates for Read/Write functions 2025-10-08 11:27:06 +02:00
fizzlepicklepop
3cb8f234a7 fixed the lint error 2025-10-07 23:57:53 -04:00
fizzlepicklepop
7ed61c50a1 Add toggles for Speedrun timer + Achievement badges visibility
Added some new visibility toggles so players can choose what to show (or hide) during their RetroAchievements runs:

Toggle for the Speedrun Leaderboards timer

Toggle for Achievement Challenge badges
2025-10-07 22:45:04 -04:00
Martino Fontana
f6e5448b43 Jit64: Dynamic length of regular jump instruction (for known addresses)
Conditional jumps already do that, so let's be consistent.
2025-10-08 00:15:57 +02:00
JosJuice
03ef9b4995
Merge pull request #13995 from Dentomologist/deletedirrecursively_dont_report_error_if_directory_is_absent
DeleteDirRecursively: Don't report error for absent directory
2025-10-06 20:04:32 +02:00
Dentomologist
f64e57442c DeleteDirRecursively: Don't report error for absent directory
Check if the return value of std::filesystem::remove_all is -1 rather
than 0; the former is the specified return value if there's an error
while 0 just means the directory already didn't exist (which is the end
result we want).

Previously error messages such as the following were possible:
E[COMMON]: DeleteDirRecursively: [path]/User/RedirectSession/ failed The
operation completed successfully.

Also adds a period in the error string to make it look nicer.
2025-10-05 16:29:41 -07:00
Jordan Woyak
b3b4020095
Merge pull request #13994 from Dentomologist/visual_studio_fix_dolphinnogui_build
Visual Studio: Fix DolphinNoGUI build
2025-10-05 17:53:37 -05:00
Dentomologist
ff45bfbcdc Visual Studio: Fix DolphinNoGUI build 2025-10-05 15:38:43 -07:00
Admiral H. Curtiss
70bd0943a7
Merge pull request #13871 from Dentomologist/cheatsearchwidget_small_refactoring
CheatSearchWidget: Minor refactoring
2025-10-05 00:32:30 +02:00
Admiral H. Curtiss
e1fd8c8e8c
Merge pull request #13957 from jordan-woyak/wmreal-iolinux-fixes
WiimoteReal/IOLinux: Improvements, fixes, and code cleanups.
2025-10-05 00:06:08 +02:00
Dentomologist
3235f3f58f CheatSearchWidget: Rename member variable
Rename m_session to m_last_value_session to better reflect its meaning
and distinguish it from m_current_value_session which will be introduced
in another commit.
2025-10-04 14:27:15 -07:00
Dentomologist
d364a244d7 CheatSearchWidget: Add GetTableRowCount function 2025-10-04 14:27:14 -07:00
Jordan Woyak
38dc8ae3b6 WiimoteReal/IOLinux: Improvements, fixes, and code cleanups. 2025-10-04 14:51:27 -05:00
Jordan Woyak
b2fef6ee1f Common/Network: Add BluetoothAddress struct and string conversion functions. 2025-10-04 14:51:17 -05:00
Jordan Woyak
b1e8de82a6 Common: Add some utilities to a new UnixUtil header. 2025-10-04 14:51:17 -05:00
Jordan Woyak
504ea99cfa CommonFuncs: Add StrerrorString version of LastStrerrorString that accepts an error number. 2025-10-04 14:51:17 -05:00
Jordan Woyak
eec7f65e33 WiimoteReal/IOLinux: Increase inquiry length to 3.84 seconds. This is what Wii games use and it seems to work better. 2025-10-04 14:50:58 -05:00
Jordan Woyak
4d53de5d84 WiimoteReal/IOhidapi: Log the currently attached hid driver on Linux. 2025-10-04 14:43:28 -05:00
Jordan Woyak
572459bc25 WiimoteEmu: Require IRPassthrough has any bound inputs to operate. Users get confused and mistakenly enable it. 2025-10-04 14:34:49 -05:00
Admiral H. Curtiss
c9c57f8ba4
Merge pull request #13752 from jordan-woyak/xlib-duplicate-key-names
ControllerInterface/Xlib: Combine keycodes with the same name to fix non-working inputs.
2025-10-04 17:18:16 +02:00
Admiral H. Curtiss
14ce952519
Merge pull request #13946 from JosJuice/i18n-2025-09-17
i18n: Add comments
2025-10-04 16:24:14 +02:00
Jordan Woyak
7609220e61 WiimoteReal/IOhidapi: Minor warning fixes and cleanups. 2025-10-03 18:10:11 -05:00