3151 Commits

Author SHA1 Message Date
Jordan Woyak
63372b8dea Merge pull request #14169 from JosJuice/i18n-2025-11-25
DolphinQt: Adjust capitalization of "Select A Bluetooth Device"
2025-11-25 16:47:48 -06:00
JosJuice
807488caf9 Merge pull request #14066 from Biendeo/master
IOS: Logitech USB Microphone Basic Support
2025-11-25 23:12:39 +01:00
JosJuice
ab0601b06a DolphinQt: Adjust capitalization of "Select A Bluetooth Device" 2025-11-25 21:17:35 +01:00
Biendeo
07324ca067 USB: Add emulated Logitech USB Microphone
Co-authored by: supermilkdude67 <w.f.s.jazzfyre@gmail.com>
2025-11-25 10:40:30 +11:00
Jason E. Hale
6b3d24b481 Fix build for non-Linux with Qt 6.10+
There was a LINUX check added in b3bdad4, but this should be removed as this change applies to all Qt supported platforms. Simply put, GuiPrivate CMake files were introduced in Qt 6.9 and are now enforced in Qt 6.10 and are not platform-dependent.
2025-11-24 06:53:51 -05:00
JosJuice
30dbcb2f80 Merge pull request #14128 from jordan-woyak/fix-run-on-object-race
DolphinQt/QtUtils: Simplify RunOnObject and eliminate Common::Event race. Introduce Common::OneShotEvent class.
2025-11-22 21:52:17 +01:00
JMC47
3fd8d072bf Merge pull request #14037 from jordan-woyak/presentation-timing
Add "Rush Frame Presentation" and "Smooth Early Presentation" settings.
2025-11-22 04:49:03 -05:00
Jordan Woyak
c9b0e4928a DolphinQt/OnScreenDisplayPane: Swap the positions of "Show Performance Graphs" and "Show Speed Colors". 2025-11-21 01:35:28 -06:00
Jordan Woyak
8efc4086f0 DolphinQt/OnScreenDisplayPane: Rename "Graph Update Rate" back to "Performance Sample Window" and don't disable it based on "Show Performance Graphs". 2025-11-21 01:35:22 -06:00
Jordan Woyak
5a6fce31b2 DolphinQt/QtUtils: Simplify RunOnObject and eliminate Common::Event race. 2025-11-18 14:19:21 -06:00
JosJuice
b6e062f2e3 Merge pull request #13689 from JosJuice/lock-core-any-thread
Core: Let any thread call previously host-thread-only functions
2025-11-16 18:35:17 +01:00
JosJuice
91c3a58889 Merge pull request #13922 from TryTwo/imgui_add_default_font
OSD/Imgui: Add a better default font
2025-11-16 13:58:18 +01:00
cristian64
71e15c2875 DolphinQt: Add Fusion-based styles.
Fusion is one of the built-in styles that Qt ships with, and that is
generally supported in all platforms and handles custom color palettes
properly.

The color palettes have been borrowed from the Dolphin Memory Engine
buddy application.

The new styles are:

- **Fusion Light**
- **Fusion Dark Gray**
- **Fusion Dark**

A demo of each style on Windows:

| System | Light | Dark | Fusion Light | Fusion Dark Gray | Fusion Dark |
| ------ | ----- | ---- | ------------ | ---------------- | ----------- |
| <img width="1920" height="1080" alt="Dolphin Emulator  System style" src="https://github.com/user-attachments/assets/7f55a19d-d9a1-43d1-a435-1e1d5b29abe2" /> | <img width="1920" height="1080" alt="Dolphin Emulator  Light style" src="https://github.com/user-attachments/assets/4c70f2f9-16b8-4777-b72b-55b2dffcd1e4" /> | <img width="1920" height="1080" alt="Dolphin Emulator  Dark style" src="https://github.com/user-attachments/assets/5e669477-d2a5-4d19-b2c5-a2ed9bb1e6fe" /> | <img width="1920" height="1080" alt="Dolphin Emulator  Light Fusion style" src="https://github.com/user-attachments/assets/b1f95c47-0691-4809-bd74-99e913c17684" /> | <img width="1920" height="1080" alt="Dolphin Emulator  Dark Gray Fusion style" src="https://github.com/user-attachments/assets/c9d30aa3-f941-4fc5-806f-d3fbd2cae0cc" /> | <img width="1920" height="1080" alt="Dolphin Emulator  Dark Fusion style" src="https://github.com/user-attachments/assets/123d2125-e126-4e8c-aa42-793ded8ffacc" /> |

> [!NOTE]
> Notice that the **Light** and **Dark** styles remain available only on
> Windows due to limitations on how styles in the various platforms
> handle (or mishandle) custom color palettes.

> [!IMPORTANT]
> Due to [`KDE-511547`](https://bugs.kde.org/show_bug.cgi?id=511547),
> after having used Breeze (default style in Plasma systems), top tool
> bars in tools areas will lose their correct background color; a
> restart will be required in order to get the updated color in the main
> window.
>
> UPDATE: The issue has been fixed upstream and should be available in
> KDE Plama 6.5.3 and newer.
2025-11-14 19:21:58 +00:00
cristian64
ff9b8c4b9c DolphinQt: Define tool tip padding as factor of font size. 2025-11-14 19:12:02 +00:00
Jordan Woyak
c08fda96ca Merge pull request #14100 from AndrewGDX/master
Improved stereoscopic 3D settings
2025-11-12 16:43:21 -06:00
AndrewGDX
113c86f1b4 Improved stereoscopic 3D settings 2025-11-12 12:29:03 +03:00
Jordan Woyak
c2a1dce246 VideoCommon: Add "Smooth Early Presentation" setting to improve frame pacing with ImmediateXFB and/or RushFramePresentation. 2025-11-11 20:01:52 -06:00
Jordan Woyak
16260040e0 CoreTiming: Add "Rush Frame Presentation" setting to throttle only once after each presentation for lower input latency. 2025-11-11 20:01:52 -06:00
JMC47
8495e01668 Merge pull request #14096 from jordan-woyak/state-changed-hookable-event
Core: Make AddOnStateChangedCallback use HookableEvent.
2025-11-11 20:58:45 -05:00
JMC47
b8236d4662 Merge pull request #14070 from VampireFlower/master
Debugger: Ignore bctr when stepping out
2025-11-11 20:57:45 -05:00
JMC47
c44ea1389a Merge pull request #13236 from JosJuice/jit-set-msr-on-fallback
Call JitInterface::UpdateMembase from PowerPC::MSRUpdated
2025-11-11 20:55:24 -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
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
Jordan Woyak
a97627e736 Core: Make AddOnStateChangedCallback use HookableEvent. 2025-11-09 16:43:19 -06: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
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
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
239330017c DiscIO: Make all BlobReader implementations use DirectIOFile to make CopyReader functionality thread safe. 2025-11-09 03:08:14 -06:00
OatmealDome
448329e821 SettingsWindow: Set navigation list stylesheet in constructor 2025-11-09 01:55:52 -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
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
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
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
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
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
f289b06e0d Common: Make HookableEvent use non-static data.
Co-authored-by: Dentomologist <dentomologist@gmail.com>
2025-11-02 17:30:43 -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
JosJuice
91fd53a98c Merge pull request #14035 from Dentomologist/pauseandlock_refactoring
PauseAndLock Refactoring
2025-11-01 10:06:08 +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