Commit Graph

32778 Commits

Author SHA1 Message Date
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
Jordan Woyak
4a39ca249c WiimoteReal/IOhidapi: Move VID/PID check to a helper function that other backends can use in the future. 2025-10-03 04:45:19 -05:00
Jordan Woyak
6c91e30a0d WiimoteReal/IOhidapi: Remove accidentally included HID Profile byte from write test. 2025-10-03 04:36:16 -05:00
JMC47
70f9ae2432
Merge pull request #13907 from TryTwo/PR_Cheat_Refresh
Cheats: Refresh active code after editing it.
2025-10-02 17:48:00 -04:00
Jordan Woyak
dbb5a8eb0e
Merge pull request #13926 from Dentomologist/settings_open_file_dialog_at_user_path
Settings: Open file dialogs at user path instead of custom path
2025-10-02 15:13:31 -05:00
JosJuice
d669f8c3c8
Merge pull request #13986 from SuperSamus/dcbz-avx-fix
dcbz: Fix AVX path
2025-10-02 19:18:59 +02:00
Jordan Woyak
cd84d58a1a
Merge pull request #13982 from jordan-woyak/sdl-disable-dinput
SDL: Disable DirectInput handling to work around hangs on shutdown.
2025-10-02 03:21:33 -05:00
Martino Fontana
4f737b7aaf dcbz: Fix AVX path 2025-10-01 21:09:18 +02:00
Dentomologist
d311724750 Jit64: Fix dcbz regression
Fix a regression from d1ba84987 that caused freezes and/or
graphical/audio glitches in various games.
2025-09-30 22:15:36 -07:00
Jordan Woyak
ecb6dbbfd3 WiimoteReal: Use GetEnvForThread within IORead/IOWrite calls to fix real Wii remotes on Android. 2025-09-30 18:03:05 -05:00
JosJuice
0c89c00d8b
Merge pull request #13929 from SuperSamus/dcbz-jit-improvements
Jit: Small `dcbz` improvements
2025-09-30 18:52:09 +02:00
Jordan Woyak
c11132d2a6 SDL: Disable DirectInput handling to work around hangs with the "8BitDo Ultimate 2" controller. 2025-09-30 03:13:52 -05:00
Jordan Woyak
956f6cfbd2 SDL: Name the hotplug thread. 2025-09-30 03:04:58 -05:00
Joshua Vandaële
a8b40a218c
Externals: Update libiconv to 1.18
I also excluded libiconv from the Windows CMake builds since it's never used there
2025-09-29 21:52:58 +02:00
Mateus B. Cassiano
9bf6906432
RealtekFirmwareLoader: more RTL8761B device IDs 2025-09-28 22:04:06 -04:00
JMC47
7cf6e7258c
Merge pull request #13974 from JoshuaVandaele/system-glslang
Externals: Update glslang to 16.0.0 and allow using system glslang
2025-09-28 18:21:54 -04:00
JMC47
e5fbc74156
Merge pull request #13082 from Dentomologist/generalpane_hardcore_mode_tooltip_clarifications
GeneralPane: Add Hardcore Mode tooltip clarifications
2025-09-28 14:10:06 -04:00
JMC47
e1c7734ee4
Merge pull request #13260 from JosJuice/android-gcadapter-hotplug-callback
Android: Detect GCAdapter hotplug using BroadcastReceiver
2025-09-28 14:03:50 -04:00
JMC47
cbdb7ac38e
Merge pull request #12329 from Dentomologist/balloontip_fix_premature_close_on_balloontip_hover
BalloonTip: Don't hide when the BalloonTip blocks the cursor
2025-09-28 14:03:16 -04:00
JMC47
79a98b8235
Merge pull request #13161 from oltolm/fix_qt6_warnings
dolphinQt: fix Qt6 deprecation warnings
2025-09-28 14:02:56 -04:00
JMC47
a93754cb71
Merge pull request #13245 from JosJuice/mbp-condition-flush
Jit: Flush registers used in memory breakpoint conditions
2025-09-28 14:02:29 -04:00
JMC47
72397ccd87
Merge pull request #13909 from Dentomologist/codewidgets_show_code_approval_in_hardcore_mode
CodeWidgets: Show code approval in Hardcore mode
2025-09-28 14:01:59 -04:00
Joshua Vandaële
cdfb389509
Externals: Update glslang to 16.0.0 and allow using system glslang 2025-09-27 08:56:10 +02:00
JMC47
3b4fd0bc4f
Merge pull request #13961 from Sam-Belliveau/sdl-gamepad-profile
Add SDL Gamepad Profile
2025-09-26 17:27:58 -04:00
JMC47
a7d61dd2a5
Merge pull request #13969 from mspeder/ugreen
RealtekFirmwareLoader: Alternate USB PID for Ugreen CM390
2025-09-26 17:18:42 -04:00
JMC47
593d386496
Merge pull request #13968 from dwilliams27/remove-logs-mail
Logging: Remove unused Logs/Mail/ dir
2025-09-26 17:16:54 -04:00
JMC47
8f9c335633
Merge pull request #13954 from TryTwo/debug_crash_fix
Crash fix: Add debug check to JIT Profiling bool.
2025-09-26 17:15:02 -04:00
JMC47
a175985871
Merge pull request #13951 from TellowKrinkle/InterpreterOpt
Cached Interpreter: Speculative devirtualization
2025-09-26 17:14:24 -04:00
JMC47
ff9e0eb2c3
Merge pull request #13945 from iwubcode/math_transpose_function
Common: add transpose function to Matrix class
2025-09-26 17:14:09 -04:00
JMC47
f96837a321
Merge pull request #13940 from iwubcode/glslang_update
Externals / VideoCommon: update glslang to latest, turn into submodule
2025-09-26 17:13:54 -04:00
JMC47
70d5c85acd
Merge pull request #13897 from TryTwo/Imgui_Font_Size
Qt/Imgui: Add SpinBox to adjust imgui font size.
2025-09-26 17:13:40 -04:00
JMC47
d33c6346f0
Merge pull request #13884 from jordan-woyak/wiimote-report-timing
WiimoteReal: Send reports with proper timing for theoretically better speaker data.
2025-09-26 16:16:21 -04:00
JMC47
fa74c40e78
Merge pull request #13882 from jordan-woyak/sdl-win32-msg
SDL: Remove old Windows joystick bug workarounds.
2025-09-26 16:13:49 -04:00
JMC47
a8fe5c0303
Merge pull request #13634 from jordan-woyak/enum-concepts
Common: Replace enable_if with concepts and other minor modernizations.
2025-09-26 16:13:20 -04:00
TryTwo
f8a8ddeddf OSD / Imgui: Add font size spinbox to Interface Pane.
Adjust some imgui windows to work better with different font sizes.
2025-09-25 16:34:04 -07:00
Matthieu Speder
9d0b3e0e39 RealtekFirmwareLoader: Alternate USB PID for Ugreen CM390 2025-09-25 12:04:54 +02:00
Sam Belliveau
52071f3943 Prevent profiles with no device specification from resetting device 2025-09-24 21:38:02 -04:00
Farmerbilly27
8cbfee2136 chore: remove unused Logs/Mail/ dir 2025-09-24 17:42:59 -05:00
iwubcode
491e3390be Externals / VideoCommon: update glslang to latest, turn into submodule 2025-09-23 23:45:38 -05:00
Ryan McGrath
5a6730ab4e
macoS: update QoSSession with SO_NET_SERVICE_TYPE.
macOS does not support `SO_PRIORITY` on sockets, but it does apparently
support configuring sockets with a priority flag via a parameter called
`SO_NET_SERVICE_TYPE`. It doesn't appear to be especially well
documented, but it seems to exist as far back as 10.11 (El Capitan).

This patch sets QoSSession to treat connections as
"responsive multimedia audio/video", which some docs appear to describe
as "low delay tolerant, low-medium, loss tolerant, elastic flow,
variable packet interval, rate and size".
2025-09-22 17:30:18 -04:00
Jordan Woyak
ed93e9481a WiimoteReal: Send reports with proper timing for theoretically better speaker data. 2025-09-19 22:11:48 -05:00
TellowKrinkle
0cde7ae79b Cached Interpreter: Speculative devirtualization 2025-09-18 21:07:09 -05:00
TryTwo
31ba2af9cb Crash fix: Add check to see if debugging is enabled in Jit's IsProfilingEnabled().
Enable JIT Block Profiling = On, with Enable Debugging UI = Off, will crash dolphin when starting a game.
2025-09-18 17:46:02 -07:00
JosJuice
e38fd1d26a i18n: Add comments 2025-09-17 19:50:31 +02:00
JosJuice
8c03702b9c i18n: Improve EditSymbolDialog's symbol vs note handling for translators 2025-09-17 19:50:08 +02:00
iwubcode
9a37c8081d Common: add transpose function to Matrix class 2025-09-17 11:14:09 -05:00
JMC47
fce5f7c74e
Merge pull request #13874 from sepalani/bitcast-ptr
Common/BitUtils: Add operator[] to BitCastPtrType
2025-09-17 04:42:22 -04:00
JMC47
1109dfb001
Merge pull request #13848 from JoshuaVandaele/USBDevicePicker
USBDevicePicker: Modify USBDeviceAddToWhitelistDialog to be more generic, and use it for a new "More Options..." selection in Bluetooth Passthrough adapters
2025-09-16 15:26:41 -04:00
JMC47
d9404e0274
Merge pull request #13941 from jordan-woyak/opcode-concepts
VideoCommon/OpcodeDecoding: Replace enable_if with concepts.
2025-09-16 14:55:16 -04:00
JMC47
1e3952c801
Merge pull request #13935 from iwubcode/matrix_inverted
Core: support inverting a 4x4 matrix
2025-09-16 14:51:42 -04:00
JMC47
5248471527
Merge pull request #13934 from jordan-woyak/stacked-settings-style-cleanup
DolphinQt: Clean up some of the style sheet hacks in StackedSettingsWindow.
2025-09-16 14:51:30 -04:00
JMC47
67b455007c
Merge pull request #13917 from cristian64/center_dialogs
DolphinQt: Center dialogs on top-level parent window.
2025-09-16 14:50:46 -04:00
JMC47
a8a6cfebc7
Merge pull request #13895 from iwubcode/update_shader_asset
VideoCommon: update shader asset to support additional features in custom pipelines
2025-09-16 14:49:33 -04:00
JMC47
5a153c3d41
Merge pull request #13892 from JosJuice/retroachievements-hookableevent
AchievementManager: Use HookableEvent instead of std::function callbacks
2025-09-16 14:48:43 -04:00
JMC47
8b0498f5f2
Merge pull request #13889 from iwubcode/texture_and_sampler_asset
VideoCommon: add TextureAndSamplerAsset for use in custom materials
2025-09-16 14:48:24 -04:00
JMC47
9845aa1541
Merge pull request #13864 from Dentomologist/branchwatch_extract_shared_function_logic
BranchWatch: Extract shared function logic
2025-09-16 14:46:03 -04:00
JMC47
e980927bce
Merge pull request #13863 from Dentomologist/enhancements_tab_fix_selection_of_disabled_postprocessing_option
EnhancementsWidget: Fix selection of disabled postprocessing option
2025-09-16 14:45:40 -04:00
JosJuice
770c74cc95
Merge pull request #13852 from Sintendo/jitarm64-subfcx
JitArm64_Integer: subfcx optimizations
2025-09-16 20:16:42 +02:00
JosJuice
36f49d140f
Merge pull request #13905 from JosJuice/arm64emitter-shift-4
Arm64Emitter: Replace shifting size by 4 with IntLog2 minus 3
2025-09-16 20:08:59 +02:00
Jordan Woyak
071dedd492 VideoCommon/OpcodeDecoding: Replace enable_if with concepts. 2025-09-13 19:05:33 -05:00
JMC47
695e06ca98
Merge pull request #13930 from Dentomologist/retroachievements_avoid_leaderboard_list_crash
RetroAchievements: Avoid crash due to uninitialized memory read
2025-09-13 03:36:56 -04:00
Jordan Woyak
ecb568c45a DolphinQt: Clean up some of the style sheet hacks in StackedSettingsWindow. 2025-09-09 16:47:30 -05:00
TryTwo
38cef5a3fc Fix broken imgui text in Metal backend. 2025-09-08 12:49:31 -07:00
cristian64
8a639bd13d DolphinQt: Center dialogs on top-level parent window.
The `QtUtils::AdjustSizeWithinScreen()` function now centers the
widget on their parent window after the widget's size is adjusted. This
is required in some desktop environments (generally on Linux systems) to
ensure that the just-resized widget remains aligned with its parent
window.

The creation of the **Cheats Manager** dialog is now deferred to first
show, as creating it within the main window's constructor prevents the
dialog from knowing the real position of its parent window, which is
only properly calculated on first show.

For the same reasons, the analytics prompt is now shown only when the
application is ready (i.e. when the main window has been shown).

| Before | After |
| ------ | ----- |
| <img width="1920" height="1080" alt="[Dolphin Emulator] Misplaced analytics prompt" title="[Dolphin Emulator] Misplaced analytics prompt" src="https://github.com/user-attachments/assets/c3e43b3b-cf79-4398-b531-7de6068c583e" /> | <img width="1920" height="1080" alt="[Dolphin Emulator] Centered analytics prompt" title="[Dolphin Emulator] Centered analytics prompt" src="https://github.com/user-attachments/assets/a10d06d9-7438-4032-b96c-dfcb48826349" /> |
| <img width="1920" height="1080" alt="[Dolphin Emulator] Misplaced Settings dialog" title="[Dolphin Emulator] Misplaced Settings dialog" src="https://github.com/user-attachments/assets/f35b10ee-4f07-48d4-86f9-2537ad5ca7ca" /> | <img width="1920" height="1080" alt="[Dolphin Emulator] Centered Settings dialog" title="[Dolphin Emulator] Centered Settings dialog" src="https://github.com/user-attachments/assets/33e37237-77a4-44f6-a0e2-b709f65b672b" /> |
| <img width="1920" height="1080" alt="[Dolphin Emulator] Misplaced Cheats Manager dialog" title="[Dolphin Emulator] Misplaced Cheats Manager dialog" src="https://github.com/user-attachments/assets/1fbd3836-5639-4d5a-b57e-e2e21f21c9db" /> | <img width="1920" height="1080" alt="[Dolphin Emulator] Centered Cheats Manager dialog" title="[Dolphin Emulator] Centered Cheats Manager dialog" src="https://github.com/user-attachments/assets/3f2b1b50-de16-49b7-bac4-c444c6cab0bc" /> |
2025-09-07 21:28:05 +01:00
iwubcode
d403bc3985 Core: support inverting a 4x4 matrix 2025-09-07 11:41:09 -05:00
Joshua Vandaële
83cbedd609
RealtekFirmwareLoader: Fix shadowed variable warning 2025-09-07 16:54:11 +02:00
Dentomologist
85a89eb420 RetroAchievements: Avoid uninitialized memory access
Avoid creating and then destroying a leaderboard list when game is null,
as doing so causes an access to uninitialized memory due to a bug in
rcheevos.

This can be triggered by starting a game with an invalid or expired
login token.
2025-09-05 17:23:39 -07:00
Martino Fontana
667c523755 Jit: Use dcbz() emitter for dcbz_l instead of interpreter fallback
Without cache emulation, these instructions are functionally identical.
In the interpreter, their only difference is related to HID registers checks, which the JIT already doesn't do for `dcbz`.
A loop with `dcbz_l` is used in the SDK function `LCEnable`, which is called frequently in some games.
2025-09-02 23:15:28 +02:00
Martino Fontana
d1ba849876 Jit64: dcbz, use VMOVAPS with YMM registers on AVX CPUs
LLVM does this, so let's do it as well.
2025-09-02 23:15:27 +02:00
Martino Fontana
5e69da7eba x64Emitter: Support YMM registers
This is accomplished by adding a 0x100 bit the the register.
Made sure that, on AVX instructions, that bit is trucated.
2025-09-02 22:15:16 +02:00
Dentomologist
e44c99cb59 Settings: Open file dialogs at user path
When opening a file dialog to set the location of a custom path, use the
corresponding user path as the starting location instead of the current
custom path.

When no custom path was set the dialog would be opened with a blank path
which causes Windows (not sure about other platforms) to open the dialog
at the same location where the last dialog was closed, or at the current
working directory if no previous dialog had been opened.

If a nonempty custom path has been set then it has also set the
corresponding user path, so the behavior in that case is unchanged.
2025-09-01 14:51:29 -07:00
Admiral H. Curtiss
c7ff0bf475
DolphinQt/Styles/Dark: Adjust progress bar 2025-08-31 22:02:00 +02:00
Admiral H. Curtiss
88ef583c0e
DolphinQt/Styles/Dark: Fix inconsistent formatting 2025-08-31 21:41:42 +02:00
Tilka
033a0540f7
Merge pull request #13899 from SuperSamus/patch-cheats-osd
PatchEngine: OSD message showing number of enabled patches and cheats
2025-08-31 00:27:23 +01:00