Commit graph

44095 commits

Author SHA1 Message Date
Jordan Woyak
d55012f8d0
Merge pull request #13726 from hoogmin/cpp23_ranges_patch
Common: Replace Contains and ContainsSubrange with C++23 std::ranges equivalents
2025-07-07 21:05:28 -05:00
Joshua Vandaële
57cbd98f42
miniupnpc: Update to 2.3.3 and make it a submodule 2025-07-08 03:48:37 +02:00
Jordan Woyak
b23da4f15c
Merge pull request #13678 from JoshuaVandaele/SFML-cmake4
SFML: Update to 3.0.1
2025-07-07 20:40:46 -05:00
Jordan Woyak
c37882de77
Merge pull request #13753 from JoshuaVandaele/netplay-hoverblur
ClickBlurLabel: Create a label which is blurred until it is clicked
2025-07-07 20:07:11 -05:00
Jordan Woyak
13784f842e LibusbUtils: Add GetStringDescriptor function to return unicode strings and replace our libusb_get_string_descriptor_ascii calls. 2025-07-06 19:41:14 -05:00
Tillmann Karras
fe6fd2279c WiiSaveBanner: fall back to $userdir/Load/WiiBanners
Unlike custom banners which work as an override, this mechanism works as
a fallback. The use case is if you have games you don't really play but
want to keep around for testing purposes without filling up your NAND
with lots of saves. For ease of use, the directory structure is the same
but only title/$title_hi/$title_lo/data/banner.bin files are
relevant.
2025-07-04 23:15:50 +01:00
Jordan Woyak
a5e85caf0a
Merge pull request #13736 from jordan-woyak/main-config-gfx
DolphinQt: Move graphics config to main Settings window.
2025-07-03 01:31:01 -05:00
Admiral H. Curtiss
b03a7821f2
Merge pull request #13778 from matheuswillder/GameINI-Disable-Dual-Core-for-Rally-Championship
GameINI: Disable Dual Core for Rally Championship
2025-07-01 23:09:07 +02:00
Admiral H. Curtiss
a84fa387de
Merge pull request #13785 from Dentomologist/memorywidget_fix_hex_input_validation_errors
MemoryWidget: Fix hex input validation errors
2025-07-01 22:54:37 +02:00
Admiral H. Curtiss
74eeeebfde
Merge pull request #13788 from jordan-woyak/post-proc-config-window-adjust-size
DolphinQt: Adjust PostProcessingConfigWindow size on creation.
2025-07-01 22:51:30 +02:00
Jordan Woyak
4126b4e904 DolphinQt: Adjust PostProcessingConfigWindow size on creation. 2025-07-01 15:26:13 -05:00
JMC47
2871fe08c9
Merge pull request #13782 from noahpistilli/wii_no_pad
IOS/KD: Pad Wii Numbers to 16 digits
2025-07-01 14:52:41 -04:00
Dentomologist
0093ed1ac8 MemoryWidget: Fix "Hex Byte String" validation failures
Fix the input string failing to validate when the "Hex Byte
String" input type is selected and either the user adds a 0x prefix or
the "Hex" box is checked (or both).

The latter failure was particularly troublesome because when "Hex Byte
String" is selected the "Hex" checkbox is disabled. Users would have to
switch to a data type that enabled the box, toggle it, then switch back
to "Hex Byte String" to fix it.

Fix these errors by not adding a prefix when the "Hex" box is checked,
and removing the "0x" prefix from the user's input if present.
2025-06-30 11:34:20 -07:00
Jordan Woyak
8b2d569932 BTReal: Always restore link keys on HCI reset. 2025-06-30 04:07:45 -05:00
Dentomologist
8f4a0b0e77 MemoryWidget: Allow 0x prefix when Hex box is checked.
Fix validation failing when the user has checked the Hex box and also
includes a "0x" or "-0x" prefix in their input.

Previously an extra "0x" would be inserted, causing the user's input of
"0x13" to become "0x0x13" which would then fail to validate.
2025-06-30 00:12:48 -07:00
Jordan Woyak
c597c70316 CoreTiming: Fix unsafe usage of m_globals.global_timer in ScheduleEvent from non-CPU thread. 2025-06-29 20:55:43 -05:00
JMC47
9a0d4501f8
Merge pull request #13751 from jordan-woyak/btreal-improvements
Bluetooth Passthrough Improvements
2025-06-29 18:00:02 -04:00
JMC47
626315d50a
Merge pull request #13750 from TryTwo/PR_Symbol_Loading
PPCSymbols: Restructure loading on boot and add a mutex to prevent crashes.
2025-06-29 15:44:52 -04:00
Jordan Woyak
936887838a BTReal: Don't falsely increase a controller's ACL packet number buffer size. WARN_LOG if the size is smaller than that of the original BT module. 2025-06-28 18:54:21 -05:00
Jordan Woyak
7fe4a6e4f3 LibUSBBluetoothAdapter: Change the request type of our generated HCI commands from LIBUSB_RECIPIENT_INTERFACE to LIBUSB_RECIPIENT_DEVICE.
This changes the value from 0x21 to 0x20 which now matches the value that Wii software generates.
2025-06-28 18:54:21 -05:00
Jordan Woyak
25583658d2 State: Increase STATE_VERSION. 2025-06-28 18:54:21 -05:00
Jordan Woyak
0e25979449 BTReal: Attempt to configure HCI_SERVICE_TYPE_GUARANTEED on all connections for improved performance with certain adapters. 2025-06-28 18:54:21 -05:00
Jordan Woyak
350ec54779 BTReal: Improvements:
Separate LibUSB logic into LibUSBBluetoothAdapter class.
Submit transfers on thread with proper timing.
Throttle before ACL input for reduced input latency.
Immediately send IPC replies for outgoing data.
Continuously submit libusb transfers to fill HCI/ACL input queues.
Simplify endpoint handling and state saving.
Other cleanups.
2025-06-28 18:54:16 -05:00
Jordan Woyak
541dbdfead IOS: Move DoStateForMessage from BTEmu to BTBase. 2025-06-28 18:45:52 -05:00
Jordan Woyak
b3e349b4df
Merge pull request #13772 from rastshawn/use-btdevice-selection
BTReal: bugfix - BT passthrough uses selected device rather than first compatible device in list
2025-06-28 18:45:05 -05:00
Noah Pistilli
f8e22f448d IOS/KD: Pad Wii Numbers to 16 digits 2025-06-28 19:22:14 -04:00
Dentomologist
c613d3ca10 ControllerInterface: Fix Windows deadlock
Remove the redundant s_populate_mutex and only use
ControllerInterface::m_devices_population_mutex instead to prevent a
deadlock caused by locking them in opposite orders.

The device population functions in the win32 InputBackend previously
locked s_populate_mutex first before calling various functions that
locked m_devices_population_mutex. This normally worked but
ControllerInterface::RefreshDevices locks m_devices_population_mutex
first and then calls HandleWindowChange which then locked
s_populate_mutex, potentially causing the deadlock.

Fix this by using PlatformPopulateDevices to lock
m_devices_population_mutex before running the code that was previously
protected by s_populate_mutex. The functions in question lock
m_devices_population_mutex anyway, so this shouldn't meaningfully
increase contention on the lock.

Reproduction steps:

* Let Dolphin finish startup.
* In Win32.cpp::OnDevicesChanged set a breakpoint on the call to
  PlatformPopulateDevices. When the breakpoint is triggered the function
  will have locked s_populate_mutex, but since PlatformPopulateDevices
  won't have run yet m_devices_population_mutex will still be unlocked.
* Unplug a device from your computer.
* Wait for the breakpoint to trigger. (At this point you can plug the
  device back in).
* Freeze the ntdll.dll!TppWorkerThread() that triggered the breakpoint.
* Resume Dolphin and start a game.
* Core::EmuThread will call ControllerInterface::ChangeWindow which
  calls RefreshDevices. It locks m_devices_population_mutex, then calls
  InputBackend::HandleWindowChange, which tries to lock
  s_populate_mutex.
* Unfreeze ntdll.dll!TppWorkerThread().

At this point EmuThread and TppWorkerThread are deadlocked. The UI is
still responsive since the Host thread is unaffected, but trying to stop
the game or close Dolphin normally will fail since EmuThread is unable
to stop.
2025-06-28 14:00:27 -07:00
JosJuice
8d7bb0a44a Translation resources sync with Transifex 2025-06-28 22:45:47 +02:00
Jordan Woyak
3a32013740
Merge pull request #13773 from JosJuice/i18n-2025-06-22
i18n: Add comments
2025-06-28 15:13:03 -05:00
JosJuice
bc1d8ffcbb i18n: Add comments 2025-06-28 21:41:44 +02:00
Matheus Willder
48a209d76e
GameINI: Disable Dual Core for Rally Championship
When selecting cars, this game crashes with GFX FIFO: Unknown Opcode. This is solved by disabling Dual Core, as the error message suggests.

There is no information about this on the Wiki, just a link to a gameplay on YouTube.

This is my first PR here and one of the first ones on GitHub. Due to personal issues I don't have much free time to dedicate to this, but I'm doing my best to get everything right.
2025-06-27 20:47:28 -03:00
Martino Fontana
99be5eb6c8 GameINI: Misc updates 2025-06-28 00:44:51 +02:00
Jordan Woyak
4af2e27821 DolphinQt: Fix Windows dark theme when using external stylesheets. 2025-06-25 21:53:04 -05:00
TryTwo
9395238159 PPCSymbolDB: Add a mutex to prevent m_functions from being accessed by two different threads on boot.
On boot should be the only time this happens.
2025-06-25 12:11:46 -07:00
TryTwo
fe121e4c6e PPCSymbolDB: Move loading map on boot logic from boot.cpp into PPCSymbolDB, as it will be needing a mutex.
Cleanup loading code and reduce amount of signals.

On boot. allow previously loaded map to be kept, if its filename matches. Useful for restarting a game with a large symbol map.
2025-06-25 12:01:16 -07:00
Jordan Woyak
609d91156a InputCommon: Rename SDL input backend GameController to Gamepad. 2025-06-25 00:23:48 -05:00
Joshua Vandaële
8f0ef62a71
ClickBlurLabel: Create a label which is blurred until it is clicked
This is particularly useful for people who stream their desktop and don't want to accidentally leak their IP or room.
2025-06-25 04:08:04 +02:00
JMC47
43aa7e9b96
Merge pull request #13694 from jordan-woyak/sdl3
Update to SDL3
2025-06-24 18:59:48 -04:00
JMC47
43c156084b
Merge pull request #13759 from jordan-woyak/calibrate-autocomplete
DolphinQt: Make Calibration autocomplete when data is "sensible" and stick is returned to neutral position.
2025-06-24 18:22:48 -04:00
Shawn Rast
71fa08813a BT passthrough uses selected device rather than first alphabetical compatible device 2025-06-24 15:39:46 -05:00
JMC47
e9b57393a6
Merge pull request #13766 from JosJuice/powerpc-missing-updates
PowerPC: Add missing SDRUpdated/MSRUpdated calls
2025-06-24 16:36:49 -04:00
JMC47
97febd9477
Merge pull request #13763 from Dentomologist/mainwindow_show_hardcore_mode_error_for_recording_playback
MainWindow: Show hardcore mode error for recording playback
2025-06-24 16:35:56 -04:00
JMC47
0946814711
Merge pull request #13761 from Dentomologist/qt_use_nonautodismissiblemenu_in_more_places
Qt: Use NonAutodismissibleMenu in more places
2025-06-24 16:35:40 -04:00
JMC47
3627cfb7b1
Merge pull request #13758 from Dentomologist/threadwidget_fix_line_edit_margins
ThreadWidget: Fix line edit margins
2025-06-24 16:35:12 -04:00
JMC47
2e8da29ca2
Merge pull request #13756 from Tilka/price_is_right
GameSettings: some updates
2025-06-24 16:34:47 -04:00
JMC47
f7fa59e05d
Merge pull request #13754 from SuperSamus/nsmbw-pal-remove-speedhack
GameINI: Remove NSMBW PAL speed hack
2025-06-24 16:34:27 -04:00
Jordan Woyak
fbced5d0f5
Merge pull request #13774 from Tilka/cp_cleanup
VideoCommon: remove unused struct fields
2025-06-24 14:41:25 -05:00
Tillmann Karras
59d2611a94 VideoCommon: remove unused struct fields 2025-06-24 19:38:45 +01:00
Jordan Woyak
6a0963908d DolphinQt: Make Calibration autocomplete when data is "sensible" and stick is returned to neutral position. 2025-06-24 02:18:25 -05:00
JMC47
fa9f71e482
Merge pull request #13769 from JosJuice/merge-dbat-mappings
Memmap: Optimize UpdateLogicalMemory by merging mappings
2025-06-22 15:29:51 -04:00