Commit graph

37630 commits

Author SHA1 Message Date
JosJuice
5c7e8db26e Android: Opt out of back invoked callback
When 9d9b6d8 changed our target SDK version to Android 16, it made
Android 16 stop calling onBackPressed and stop delivering KEYCODE_BACK
events. Dolphin's code isn't ready for that yet.

Android lets us opt out of this new behavior for now, so let's do so.
But the opt-out will presumably stop working once we start targeting
Android 17, so we're going to have to update Dolphin's code within the
next one or two years to support the replacement API.
2025-08-01 19:18:09 +02:00
JMC47
c63d74e6c0
Merge pull request #13790 from SuperSamus/retroachivements-update
GameSettings: Minor approved cheats update
2025-07-31 16:34:19 -04:00
Sintendo
e9d28649dc JitArm64_Integer: Clean up includes 2025-07-31 20:18:33 +02:00
Sintendo
ed5cea2635 JitArm64_Integer: subfex - Explicitly handle a == b
Number of instructions stays the same, but we remove the false
dependency on the input registers.

Before:
0x7a1b037a   sbcs   w26, w27, w27

After:
0x5a9f23fa   csetm  w26, lo
2025-07-31 20:18:21 +02:00
Tillmann Karras
9ff5943ac6 VideoSW: allow disabling the copy filter 2025-07-31 15:51:51 +01:00
TryTwo
f7e7b0f6b0 MemoryWidget: Add symbols and Notes.
Add option to hide them.
Add box to search.
Add ability to edit data symbols and notes in MemoryViewWidget.
2025-07-30 17:40:24 -07:00
Tilka
812c6c2ea4
Merge pull request #13830 from CrossVR/broken-depth-clamp-control
DriverDetails: Disable depth_clamp_control on official AMD drivers
2025-07-31 01:06:00 +01:00
Jordan Woyak
9224d2f827
Merge pull request #13821 from AlexanderHarrison/codeview-update-timer
CodeViewWidget: Improve Update performance
2025-07-30 17:42:45 -05:00
JosJuice
f26af63c6d
Merge pull request #13828 from JosJuice/retroachievements-ipl
Boot: Fix RetroAchievements for GameCube games launched with IPL
2025-07-30 21:51:03 +02:00
JosJuice
62bc93473f
Merge pull request #13781 from Dentomologist/controllerinterface_fix_windows_deadlock
ControllerInterface: Fix Windows deadlock
2025-07-30 21:49:23 +02:00
Alex Harrison
56f04b5406 PPCSymbolDB: Fill in callers after loading map files 2025-07-30 13:43:02 -06:00
Alex Harrison
6cb7868286 CodeViewWidget: Improve performance by removing unnecessary FillInCallers computation during update 2025-07-30 13:41:42 -06:00
Sintendo
854979937c JitArm64_Integer: subfex - Improve codegen for zero with InHostCarry
Another instance where we needlessly materialized constant zero in a
register. We can just write the carry flag directly.

Before:
0x5280001a   mov    w26, #0x0                 ; =0
0x1a1f035a   adc    w26, w26, wzr

After:
0x1a9f37fa   cset   w26, hs
2025-07-30 21:29:10 +02:00
Tillmann Karras
cc71401e29 VideoCommon: drop unused XF enumerators
We handle all six registers (scale/offset * xyz) via the viewport name.
Keeping around unused enumerators only for the z component is confusing.
2025-07-30 19:56:30 +01:00
Tilka
131ca1ba9b
Merge pull request #13786 from JosJuice/symboldb-locking
PPCSymbolDB: Improve locking
2025-07-30 17:15:28 +01:00
CrossVR
0d87f835e2 VKPipeline: Don't include depth clamp control struct when not supported
This should not be needed
2025-07-29 08:42:22 +09:00
CrossVR
59e9267e3d DriverDetails: Disable depth_clamp_control on AMD official drivers 2025-07-29 08:42:22 +09:00
Jordan Woyak
4e0d41627e HW/EXI_DeviceEthernet: Make interrupt state atomic. 2025-07-28 18:30:46 -05:00
Joshua Vandaële
ee68efeee8
Config: Change default value for Dual Core from enabled to disabled
Dual Core is primarily known as one of the first troubleshooting steps when emulation or NetPlay misbehave.

I believe(?) the original intent with having it on by default was likely to support users with weaker machines. However, I believe it would be a lot more reasonable for users to manually enable dual core if they really need the performance boost, rather than it is for them to have come ask us in support channel why their cleanly-installed Dolphin is not emulating their games properly.

Instead, this creates a fragile first impression where a clean install of Dolphin is already set up in a way that leads to inexplicable crashes, subtle timing bugs, and NetPlay desyncs.

Note: This changes only applies to the Desktop application, since mobile devices *do* really need the performance boost.
2025-07-27 19:07:08 +02:00
JosJuice
9f32562e36 PPCSymbolDB: Don't return non-const pointers
For thread safety, we shouldn't return any pointers or references that
can be used to mutate the state of the PPCSymbolDB. This should be the
final part of making PPCSymbolDB thread safe unless I've missed
something.
2025-07-27 17:03:57 +02:00
JosJuice
fef77a5f20 PPCSymbolDB: Add missing locking
9395238 added locking in some PPCSymbolDB functions that access member
variables, but far from all. To ensure thread safety, this commit adds
the missing locking.
2025-07-27 16:26:47 +02:00
JosJuice
803e6b017b PPCSymbolDB: Reduce lock contention in LoadMap/LoadMapOnBoot
By building the map in a local variable and then swapping it with the
member variable, we avoid the need to hold a lock while building the
map.
2025-07-27 16:26:47 +02:00
JosJuice
59d126d215 PPCSymbolDB: Rename m_write_lock to m_mutex
This mutex needs to be locked both when reading and writing, not just
when writing.
2025-07-27 16:26:46 +02:00
JosJuice
d62e21e7b6 PPCSymbolDB: Wait for locking to succeed
9395238 added a mutex to PPCSymbolDB, and made functions return with an
"empty" result if called while the mutex is locked. This new behavior
has the potential to affect not only less important call sites like the
symbol printing mentioned in a comment, but also the JIT deciding if it
should HLE a function.

A later commit in this pull request decreases the amount of lock
contention, reducing the performance impact of this commit.
2025-07-27 16:26:46 +02:00
Martino Fontana
e2ecafcaf3 GameSettings: Minor approved cheats update 2025-07-27 11:22:28 +02:00
JosJuice
02e32ffaaf Jit: Flush registers used in memory breakpoint conditions
Aims to fix https://bugs.dolphin-emu.org/issues/13686.

I'm using a less efficient approach for Jit64 than for JitArm64. In
JitArm64, I'm flushing in the slow access code, but in Jit64, I'm
flushing before the split between the slow access code and the fast
access code, because Jit64 doesn't keep register mappings around for
when it's time to emit the slow access code. But the flushing code is
only emitted when there are memory breakpoints with conditions, so I'd
say that this is a performance loss we can live with.
2025-07-27 08:49:41 +02:00
JosJuice
a06bc5417d JitArm64: Document an assumption we've been making in EmitBackpatchRoutine
The next commit will add another piece of code that depends on this
assumption that we've been making. Good opportunity to document it.

In practice, all callers of EmitBackpatchRoutine are locking X30.
2025-07-27 08:32:44 +02:00
JosJuice
78afea1312 PowerPC: Track registers used in memory breakpoint conditions 2025-07-27 08:32:44 +02:00
JosJuice
c3be049571 Android: Don't let RetroAchievements override onPause
When Android sends Dolphin to the background, emulation *must* pause,
otherwise emulation continues running and continues outputting audio to
the user. RetroAchievements mustn't be allowed to override it.
2025-07-26 19:59:08 +02:00
JosJuice
0fa15342ec Boot: Fix RetroAchievements for GameCube games launched with IPL
The SetDisc function calls AchievementManager::LoadGame with the game's
volume. Calling AchievementManager::LoadGame again afterwards with
nullptr prevents RetroAchievements from working.
2025-07-26 18:08:19 +02:00
JosJuice
a6642d5f79
Merge pull request #13789 from Simonx22/update-sdk36-gradle813
Android: Bump SDK to 36 and Gradle to 8.13
2025-07-26 11:19:44 +02:00
Jordan Woyak
57b145990d
Merge pull request #13446 from JosJuice/breakpoints-delayed-update
PowerPC: Add RAII handling for breakpoint updates
2025-07-25 23:26:25 -05:00
Jordan Woyak
81ebf45c9b Core: Make play time tracking use SteadyAwakeClock. 2025-07-24 23:56:10 -05:00
Jordan Woyak
62c773ac75 Common/Timer: Add a SteadyAwakeClock class which counts non-suspended system running time. 2025-07-24 23:56:10 -05:00
Jordan Woyak
dcb289be8f InputCommon/ControllerEmu: Fix saving of Wii Remote "Attach MotionPlus" setting. 2025-07-24 18:44:42 -05:00
Admiral H. Curtiss
64d4c4020c
Merge pull request #13822 from jordan-woyak/libusb-init-error
LibusbUtils: Change libusb_init failure from an ASSERT_MSG to an ERROR_LOG_FMT
2025-07-25 00:20:34 +02:00
Simon
9d9b6d8705 Android: Bump SDK to 36 and Gradle to 8.13
Starting August 31, 2025, targeting at least Android 15 (API level 35) will be required: https://support.google.com/googleplay/android-developer/answer/11926878
This commit sets the target SDK to API level 36 (Android 16), the latest available version.
2025-07-24 15:43:52 -04:00
Dentomologist
e2a8e7da48 GameConfigWidget: Unify tooltips
Use ToolTipWidget::SetDescription insead of QWidget::setTooltip to put
the description in the BalloonTip with the title, instead of having the
description be in a separate standard tooltip.
2025-07-24 12:03:57 -07:00
Jordan Woyak
7871b24b59 LibusbUtils: Change libusb_init failure from an ASSERT_MSG to an ERROR_LOG_FMT. 2025-07-23 21:16:04 -05:00
Jordan Woyak
95ad2d804d RealtekFirmwareLoader: Automatically download missing firmware from gitlab.com. 2025-07-23 19:58:25 -05:00
Jordan Woyak
bfef65a9d1 BTReal: Implement Realtek Bluetooth firmware loading.
Logic and structures are largely taken from Linux source:
drivers/bluetooth/btusb.c
drivers/bluetooth/btrtl.c
drivers/bluetooth/btrtl.h
2025-07-23 19:58:25 -05:00
Jordan Woyak
0e90b85bab LibUSBBluetoothAdapter: Add SendBlockingCommand function. 2025-07-23 19:58:25 -05:00
Jordan Woyak
5336c23329 Core: Move HCICommandPayload struct template from BTReal to LibUSBBluetoothAdapter header. 2025-07-23 19:58:25 -05:00
Jordan Woyak
2b541361c6 Common: Move AsU8Span utility function from BTReal to Common/BitUtils. 2025-07-23 19:58:25 -05:00
JMC47
45ba6ed6b1
Merge pull request #13770 from JoshuaVandaele/usbutils
USBUtils: Refactor USB device handling
2025-07-23 20:57:17 -04:00
Jordan Woyak
ff0560574e AudioCommon/Mixer: Skip sample processing when NullSoundStream is being used. 2025-07-23 17:53:21 -05:00
JosJuice
f4a86931a4
Merge pull request #13818 from Amphitryon0/show-code-default
DolphinQt: Stop re-enabling Code widget when toggling debug mode
2025-07-23 18:13:33 +02:00
Jules Blok
69f331e989
Merge pull request #13100 from CrossVR/unrestricted-depth-range
Vulkan: Add support for unrestricted depth range.
2025-07-23 19:25:09 +09:00
Joshua Vandaële
4ae195ee60
USBUtils: Refactor USB device handling 2025-07-23 03:26:25 +02:00
Amphitryon
8e84943e37 DolphinQt: Stop re-enabling Code widget when toggling debug mode
It is useful enough for the Code widget to be enabled the first time
debugging is enabled, but it should not be re-enabled every time the
setting is toggled off and then back on. This also ensures that the
interface is consistent if debugging is enabled without using the
checkbox.
2025-07-21 22:46:55 -05:00