Dentomologist
c29b3e098d
MemoryWidget: Fix splitter state restoration
...
Fix a copy-paste error causing MemoryWidget's splitter to load the wrong
state data when creating the MemoryWidget.
For me this caused the side panel to be scrunched up every time I
started Dolphin, but the exact effects probably depend on the state of
your MemoryWidget and CodeWidget.
2025-07-17 14:40:14 -07:00
Dentomologist
43ab79ae23
MemoryViewWidget: Fix updates at end of address space
...
Fix two bugs that occurred when viewing a memory range starting shortly
before 0xffffffff.
Bug 1: When there was at least one visible memory address at or after
0x0 none of the values would be displayed even when some of the
addresses were valid. This happened because the loop condition in
GetValues immediately returned false since m_address_range.first >
m_address_range.second, causing m_values to be empty. This in turn led
every address to be considered INVALID_MEMORY in UpdateColumns.
Bug 2: When m_address_range.second was equal to 0xffffffff GetValues
would enter an infinite loop. This happened because address would
overflow to 0 after printing the last value in the table, causing the
loop condition address <= m_address_range.second to be true forever.
2025-07-17 13:45:08 -07:00
JMC47
b6be5ee5d3
Merge pull request #13801 from jordan-woyak/usb-add-device-dialog-adjust-size
...
USBDeviceAddToWhitelistDialog: Use adjustSize for a better default dialog size.
2025-07-16 20:30:36 -04:00
JMC47
9e05063929
Merge pull request #13793 from jordan-woyak/libusb-unicode-descriptor
...
LibusbUtils: Add GetStringDescriptor function.
2025-07-16 20:30:12 -04:00
JMC47
295ae819f5
Merge pull request #13792 from Tilka/wii_banners
...
WiiSaveBanner: fall back to $userdir/Load/WiiBanners
2025-07-16 20:29:46 -04:00
JMC47
9f076d4707
Merge pull request #13783 from jordan-woyak/schedule-event-from-thread-fix
...
CoreTiming: Fix unsafe usage of m_globals.global_timer in ScheduleEvent from non-CPU thread.
2025-07-16 20:29:18 -04:00
Jordan Woyak
d3336d1129
Merge pull request #13808 from LillyJadeKatrin/retroachievements-submodule
...
Update rcheevos submodule to latest version
2025-07-16 18:01:59 -05:00
Joshua Vandaële
4a520c62a0
Translation: Remove deprecated --sorted-output/-s option
...
See https://lists.nongnu.org/archive/html/info-gnu/2024-12/msg00000.html
2025-07-16 23:54:29 +02:00
JMC47
c2bace5967
Merge pull request #13798 from TryTwo/PR_CodeWidget_NoUpdate
...
CodeWidget: Add button that locks the view's address
2025-07-16 14:32:21 -04:00
LillyJadeKatrin
79230c38f1
Update rcheevos submodule to latest version
2025-07-16 00:03:20 -04:00
TryTwo
d53e766d65
CodeWidget: Add button that prevents automatic updates to the address, such as navigating to the PC on pause.
2025-07-15 12:23:47 -07:00
JosJuice
5674afa63d
Merge pull request #13804 from jordan-woyak/add-device-shorter-placeholder-text
...
USBDeviceAddToWhitelistDialog: Remove examples from VID/PID entry placeholder text.
2025-07-15 18:44:21 +02:00
JosJuice
2e26c03378
Merge pull request #13802 from Dentomologist/cexiagp_dont_create_save_file_if_path_is_empty
...
CEXIAgp: Don't create save file if path is empty
2025-07-15 18:32:39 +02:00
Dentomologist
8a28b95480
IOFile: Require trivially copyable types
...
Require ReadArray and WriteArray to be called with a trivially copyable
type.
ReadArray and WriteArray call std::fread and std::fwrite respectively.
These functions trigger undefined behavior when the objects are not
trivially copyable, so this adds that requirement to the callers.
2025-07-14 11:55:24 -07:00
Jordan Woyak
9e57447fd3
USBDeviceAddToWhitelistDialog: Limit VID/PID entry to 4 characters.
2025-07-12 16:58:46 -05:00
Jordan Woyak
2bbd1fcf6b
USBDeviceAddToWhitelistDialog: Remove examples from VID/PID entry placeholder text.
2025-07-12 16:54:44 -05:00
Jordan Woyak
633fd5df70
Merge pull request #13775 from jordan-woyak/sdl-gamepad-rename
...
InputCommon: Rename SDL input backend GameController to Gamepad.
2025-07-12 16:50:04 -05:00
Dentomologist
30bd7e18f0
CEXIAgp: Don't create save file if path is empty
...
Fix creation of a ".sav" file in the current working directory on
emulation shutdown when a slot is set to "Advance Game Port" and the
"GBA Cartridge Path" is empty.
Fixes https://bugs.dolphin-emu.org/issues/12975 .
2025-07-12 13:07:44 -07:00
Joshua Vandaële
06882bd2dc
Fix various warnings
2025-07-12 12:47:30 +02:00
Jordan Woyak
3f314c81e9
USBDeviceAddToWhitelistDialog: Use adjustSize for a better default dialog size.
2025-07-12 05:13:47 -05:00
ITotalJustice
8d2a15be3f
AudioCommon/Mixer: make large array in Mixer::MixerFifo::Enqueue() static so that it's not created on the stack.
2025-07-11 01:01:03 +01:00
Dentomologist
72ea7a2128
VideoBackendBase: Remove redundant unique_ptr reset
...
Remove redundant reset of g_presenter in ShutdownShared, which is
already reset earlier in the function.
2025-07-09 14:12:06 -07:00
Sintendo
f2392e4048
Avoid map/set double lookups
...
Fix some common anti-patterns with these data structures.
- You can dereference the iterator returned by `find` to access the
underlying value directly, without an extra `operator[]`/`at`.
- Rather than checking for an element before insertion/deletion, you can
just do the operation and if needed check the return value to
determine if the insertion/deletion succeeded.
2025-07-08 06:53:42 +02:00
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
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
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
Jordan Woyak
60156f4f94
VideoCommon: Fix "Force Nearest" texture filter setting.
2025-06-28 15:52:27 -05: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
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
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
TryTwo
5836ca133c
PPCSymbolDB: Move function for finding file path to PPCSymbolDB, so MenuBar doesn't have to randomly access boot.cpp to get the file path.
2025-06-22 11:03:03 -07:00
JMC47
c2aaca2b16
Merge pull request #13765 from TryTwo/CodeWidget_clear_unused
...
CodeWidget: Clear calls/callers if no symbol exists.
2025-06-22 01:05:59 -04:00
JMC47
19f3b7e61f
Merge pull request #13691 from TryTwo/PR_Notes
...
Debugger Add note-type symbols .
2025-06-22 01:05:42 -04:00
JosJuice
ac84ea17a6
Memmap: Optimize UpdateLogicalMemory by merging mappings
...
Instead of creating many 128 KiB mappings, we can create a few large
mappings. On my Windows PC, this speeds up GameCube (FakeVMEM) game boot
times by about 200 ms and Wii game boot times by about 60 ms. Loading
savestates is also faster, by about 45 ms for GameCube (FakeVMEM) games
and 5 ms for Wii games. The impact is presumably smaller on other OSes
because Windows is particularly slow at creating mappings.
2025-06-21 20:54:05 +02:00
TryTwo
10c3b0b4e4
CodeWidget: Clear calls and callers box if there is no symbol, otherwise outdated data will persist.
2025-06-20 10:55:11 -07:00
JosJuice
e002fcdf2f
PowerPC: Use SPR_LR constant in an additional location
2025-06-20 10:42:47 +02:00
JosJuice
8c643693a9
PowerPC: Add missing SDRUpdated/MSRUpdated calls
2025-06-20 10:42:43 +02:00
TryTwo
c9b815526c
Debugger CodeViewWidget: Add context options for making and managing Notes. Add popup dialog for editing functions and notes.
2025-06-19 18:00:10 -07:00
TryTwo
78065359bb
Debugger CodeWidget : Add search box for notes.
2025-06-19 17:55:45 -07:00
TryTwo
040d9a4336
Debugger symbols: Add new symbol type: Notes.. Notes are for naming single instructions, or small groups of instructions.
...
Notes are separate from function symbols, and can be searched separately.
Unlike functions, notes of different length can overlap each other.
In the instruction window, a note will always display over the function symbol.
2025-06-19 17:55:35 -07:00
Dentomologist
e21ae90073
MainWindow: Show hardcore mode error for recording playback
...
Show an error message when attempting to play an input recording while
RetroAchievements hardcore mode is active, instead of silently doing
nothing.
2025-06-17 12:21:39 -07:00
Jordan Woyak
413b7475ec
Merge pull request #13762 from Dentomologist/dolphinqt_add_vcxproj_clinclude
...
DolphinQt: Add DolphinQt.vcxproj ClInclude line
2025-06-17 13:06:04 -05:00
Dentomologist
e8c9c7a403
DolphinQt: Add DolphinQt.vcxproj ClInclude line
...
Add a missing ClInclude line in DolphinQt.vcxproj for
NonAutodismissibleMenu.h. Missing the ClInclude doesn't break
compilation, but prevents various IntelliSense features in Visual
Studio from working properly with the file.
2025-06-16 23:11:11 -07:00
Dentomologist
c488545091
GameListModel: Update tag list and sorting immediately
...
Emit the dataChanged signal when adding or removing tags from a game.
This both updates the contents of the game's Tags column immediately
(instead of having to wait for the context menu to be closed), and
updates the sorting if games are being sorted by the Tags column.
2025-06-16 22:58:30 -07:00
Dentomologist
2fd74990b7
Qt: Use NonAutodismissibleMenu in more places
...
Use NonAutodismissibleMenu for MenuBar's Options, JIT, and
Tools->"Connect Wii Remotes" menus, as well as for the Tags menu in
GameList's context menu.
NonAutodismissibleMenu allows users to check or uncheck multiple
checkable menu items without closing the menu between selections.
2025-06-16 22:56:26 -07:00
Dentomologist
ab25632992
ThreadWidget: Don't set fixed width on QLineEdits
...
Fix clipping of QLineEdit contents by having them take up half the grid
width instead of trying to match the contents width in an unreliable
manner.
2025-06-16 22:33:20 -07:00
Dentomologist
6a0d8ca3f8
MenuBar: Rename menu variable
...
The Tools menu has a number of submenus, so rename menu to
connect_wii_remotes_menu for clarity.
2025-06-16 21:06:55 -07:00
Jordan Woyak
5f6cc197ce
DolphinQt: Always enable the "Skip Main Menu" checkbox when "SkipIPL" is disabled.
2025-06-15 20:37:50 -05:00
Jordan Woyak
28a6eb26cc
Merge pull request #13703 from jordan-woyak/map-and-calibrate
...
DolphinQt/InputCommon: Make the "Calibrate" button also map inputs.
2025-06-15 15:45:04 -05:00
Jordan Woyak
3a94289ad6
Merge pull request #13744 from JoshuaVandaele/windows-specific-getdevicename
...
Host: Implement a Windows-only implementation of `GetDeviceNameFromVIDPID`
2025-06-15 15:44:31 -05:00
Jordan Woyak
2fb66e9708
Merge pull request #12938 from tygyh/Split-IsTranslatedRAMAddress
...
Core/PowerPC: Split 'IsRAMAddress' method into 'IsEffectiveRAMAddress' and 'IsPhysicalRAMAddress' methods
2025-06-14 17:12:24 -05:00
Jordan Woyak
83beebaf8b
DolphinQt/InputCommon: Move some calibration logic to InputCommon and make the "Calibrate" button also map inputs.
2025-06-14 16:29:25 -05:00
Dr. Dystopia
6591fa3751
Core/PowerPC: Split 'IsRAMAddress' method into 'IsEffectiveRAMAddress' and 'IsPhysicalRAMAddress' methods
2025-06-14 23:29:03 +02:00
Jordan Woyak
0780458069
InputCommon: Make InputDetector::Start take a span instead of a vector.
2025-06-14 16:28:09 -05:00
Jordan Woyak
11c3f7ea8d
InputCommon: Fix occasional misidentification of analog input detection.
2025-06-14 16:28:09 -05:00
Jordan Woyak
344080b7a9
DolphinQt: Fix ControllersPane group box spacing.
2025-06-14 16:26:09 -05:00
Jordan Woyak
89b8edea03
DolphinQt: Move graphics config to main Settings window.
2025-06-14 16:26:09 -05:00
Dr. Dystopia
ca8f9b672b
Source: Remove redundant lambda parameter lists
2025-06-14 10:19:31 +02:00
Joshua Vandaële
d93245cc7a
Host: Implement a Windows-only implementation of GetDeviceNameFromVIDPID
2025-06-13 17:46:53 +02:00
Jordan Woyak
4f3e527186
ControllerInterface/Xlib: Combine keycodes with the same name to fix non-working inputs.
2025-06-12 04:50:13 -05:00
JMC47
a163877413
Merge pull request #13746 from LillyJadeKatrin/retroachievements-hardcore-changed
...
MainWindow - Avoid excessive emulation state changes
2025-06-10 17:32:04 -04:00
LillyJadeKatrin
417badc55c
MainWindow - Avoid excessive emulation state changes
...
Updates the Hardcore Changed callback to only signal EmulationStateChanged if the new Hardcore Mode setting is different from the previous one.
2025-06-10 16:03:14 -04:00
iwubcode
6ab83bdd05
VideoCommon: fix regression where scenes with expanded lines or points would cause issues if doing per-vertex transformations in the vertex shader
2025-06-09 19:08:21 -05:00
JMC47
1526c06133
Merge pull request #13658 from jordan-woyak/vk-present-done-race
...
Vulkan: Eliminate m_last_present_done flag.
2025-06-09 00:10:31 -04:00
JMC47
7ad85e875d
Merge pull request #13738 from Tilka/convert_banner
...
QtUtils/ImageConverter: simplify
2025-06-09 00:10:03 -04:00
JMC47
42d5f2b705
Merge pull request #13702 from CostPerUnit/master
...
MappingWidget: Add Advanced Configuration Button to Point And Point Passthrough "Enable" boxes
2025-06-09 00:09:35 -04:00
JMC47
5064b615ba
Merge pull request #13737 from LillyJadeKatrin/retroachievements-gamecube-bulk-fix
...
AchievementManager - Fix Gamecube Bulk Copy
2025-06-08 13:08:02 -04:00
JMC47
33b529a510
Merge pull request #13719 from LillyJadeKatrin/retroachievements-wii-menu-fix
...
AchievementManager - Block Wii Menu Exploits
2025-06-08 13:04:27 -04:00
JMC47
8c3ca46988
Merge pull request #13676 from LillyJadeKatrin/retroachievements-allowlist-test-improvements
...
RetroAchievements: Updated PatchAllowlistTest to generate new allowlist
2025-06-08 12:56:19 -04:00
JosJuice
1b7d42f775
AudioCommon: Re-add missing includes
...
7c237bb ("AudioCommon: Remove unused includes") removed some includes
that were in fact in use.
2025-06-08 11:35:02 +02:00
JMC47
24b0bf01d5
Merge pull request #12836 from JosJuice/opensles-buffer-size
...
Android: Ask system for optimal audio buffer size and sample rate
2025-06-07 23:07:37 -04:00
Tilka
19fbbf0dba
Merge pull request #13727 from JoshuaVandaele/fmt-11.2.0-localtime-deprec
...
fmt: Replace deprecated `fmt::localtime` usage with `Common::LocalTime`
2025-06-08 04:04:37 +01:00
Jordan Woyak
1786e34bd3
Merge pull request #13665 from jordan-woyak/dark-mode-filter
...
DolphinQt: Replace widespread SetQWidgetWindowDecorations calls with an event filter.
2025-06-07 18:19:13 -05:00
Jordan Woyak
65f3ba70f5
Merge pull request #13522 from tygyh/Enforce-overriding-destructor-style-Core&UnitTests
...
Core & UnitTests: Make overriding explicit and remove redundant virtual specifiers on overriding destructors
2025-06-07 17:55:14 -05:00
Jordan Woyak
8b7669550f
Merge pull request #13454 from tygyh/Use-constants-DolphinQt-FifoAnalyzer
...
DolphinQt/FIFO/FIFOAnalyzer: Make parameters, arguments etc. constant
2025-06-07 17:50:08 -05:00
Jordan Woyak
46e66fe945
Merge pull request #13544 from tygyh/DolphinNoGUI-Replace-deprecated-signal-header
...
DolphinNoGUI: Apply style-alignment refactorings
2025-06-07 17:47:11 -05:00
Jordan Woyak
056ece6f29
Merge pull request #13697 from tygyh/AudioCommon/Remove-unused-includes
...
AudioCommon: Remove unused includes
2025-06-07 17:45:50 -05:00
Jordan Woyak
a07a2fe398
Merge pull request #13698 from tygyh/AudioCommon/Remove-unused-qualifiers-and-make-variables-constant
...
AudioCommon: Remove unused qualifiers and make variables constant
2025-06-07 17:45:33 -05:00
Tillmann Karras
61e8fa060b
QtUtils/ImageConverter: simplify
2025-06-07 23:06:07 +01:00
Jordan Woyak
6da3f5f26a
InputCommon: Update to use SDL3 and bump the SDL submodule in Externals to release-3.2.16.
2025-06-07 16:27:54 -05:00
Jordan Woyak
5906512847
DolphinQt: Replace widespread SetQWidgetWindowDecorations calls with an event filter.
2025-06-07 16:15:34 -05:00
JMC47
52fcdde485
Merge pull request #13386 from iwubcode/resource_manager_system
...
VideoCommon: add resource manager, tracks resources to load assets in optimal way and manage memory
2025-06-07 15:51:34 -04:00
JMC47
5eb61024c6
Merge pull request #13740 from JoshuaVandaele/bsod-fix-i-hope
...
Host: Clean up device handle in all cases
2025-06-07 12:27:49 -04:00
Admiral H. Curtiss
a27b845514
Merge pull request #13710 from TryTwo/UI_Sliders_Update
...
Advanced Panel convert QSliders into ConfigSliders
2025-06-07 17:39:40 +02:00
Admiral H. Curtiss
1b1ca019a4
Merge pull request #13724 from SuperSamus/gamelist-properties-noduplicates
...
GameList: Prevent opening Properties multiple times for the same game
2025-06-07 17:24:50 +02:00
Joshua Vandaële
241834709b
Host: Clean up device handle
2025-06-07 16:55:45 +02:00
LillyJadeKatrin
c68549e9ef
AchievementManager - Load unknown games
...
Prior to this change, any game unrecognized by RetroAchievements would ultimately result in the game being "Closed" by AchievementManager. As a result, if any game was run while in this state without any other closing being done, AchievementManager would simply load it like a new game, despite memory already being accessed.
However, testing and documentation determined that the rcheevos client doesn't actually complain when it fails to hash a game; it just runs this as "Unidentified Game" with RA ID = 0. As such, this change utilizes that in AchievementManager to differentiate between no software running and unidentified software running.
As a result of this, now LoadGame needs to be called for every piece of runnable software, supported format or otherwise. If a supported format is not available, LoadGame can now be called with a nullptr to ensure that rcheevos still properly sets up an unidentified game.
2025-06-07 07:02:24 -04:00
LillyJadeKatrin
5545a386cf
AchievementManager - Fix Gamecube Bulk Copy
...
The memory copy algorithm (only needed for RetroAchievements devs) was broken for Gamecube as it assumed EXRAM size was zero when in reality it's using ARAM. For the time being, we do not need to use or access ARAM so instead this sets that value to zero for Gamecube titles.
2025-06-07 07:00:47 -04:00
JosJuice
185b080f03
Merge pull request #13142 from JosJuice/fifo-window-starting-stopping
...
DolphinQt: Call FIFOPlayerWindow::UpdateControls for Starting/Stopping
2025-06-07 10:43:19 +02:00
JosJuice
43b254aaad
Android: Update advanced mapping dialog when devices change
...
Without this, there was a bug where if you turned the device's screen
off and on again while in the advanced mapping dialog, the input
indicators would stop updating. This is because turning the screen on
again causes devices to refresh, which causes all devices to be
recreated, leaving the AdvancedMappingControlViewHolders stuck
referencing controls belonging to devices that are no longer being
updated.
2025-06-07 10:20:21 +02:00
JosJuice
4214cb6eb8
Android: Make input state changes observable
2025-06-07 10:20:18 +02:00
iwubcode
c3d3b81533
VideoCommon: remove 'GetByteSizeInMemory()' from custom asset, it is not needed anymore
2025-06-06 23:03:02 -05:00
iwubcode
774a84a953
VideoCommon: avoid race conditions with asset load/unload by moving the lock to the entire function, favor atomics for the memory/time getters
2025-06-06 23:03:02 -05:00
iwubcode
b3f50c969e
VideoCommon: rename m_bytes_loaded in asset library to bytes_loaded
2025-06-06 23:03:02 -05:00
iwubcode
3b83907b88
VideoCommon: update CustomAsset's load time to be before the load occurs (this prevents issues where the load time might be incorrectly inflated by long load operations)
...
Co-authored-by: Jordan Woyak <jordan.woyak@gmail.com>
2025-06-06 23:03:02 -05:00
iwubcode
d940d62cae
VideoCommon: watch texture pack folder for texture reloads (from dynamic input textures)
2025-06-06 23:03:02 -05:00
iwubcode
7afa9e6c6f
VideoCommon: use CustomResourceManager in the texture cache and hook up to our hires textures
2025-06-06 23:03:02 -05:00
iwubcode
12d178a8df
VideoCommon: initialize and shutdown the CustomResourceManager when the video thread initializes and shuts down
2025-06-06 23:03:02 -05:00
iwubcode
f910c1d934
Core: add CustomResourceManager to System
2025-06-06 23:03:02 -05:00
iwubcode
70abcb2030
VideoCommon: add resource manager and new asset loader; the resource manager uses a least recently used cache to determine which assets get priority for loading. Additionally, if the system is low on memory, assets will be purged with the less requested assets being the first to go. The loader is multithreaded now and loads assets as quickly as possible as long as memory is available
...
Co-authored-by: Jordan Woyak <jordan.woyak@gmail.com>
2025-06-06 23:03:02 -05:00
iwubcode
d8ea31ca46
VideoCommon: rename GameTextureAsset into TextureAsset and make it only contain CustomTextureData. Move validation and load logic to individual functions
2025-06-06 23:03:02 -05:00
iwubcode
2ae43324cb
VideoCommon: move AssetMap to a types header file, so it can be pulled in without the DirectFilesystemAssetLibrary dependencies, the header will be expanded later
2025-06-06 23:03:02 -05:00
iwubcode
7d59c2743d
Common: Add class 'FilesystemWatcher' that is used to watch paths and receive callbacks about filesystem level events for anything under that path
2025-06-06 23:03:02 -05:00
iwubcode
bafe78203d
VideoCommon: remove 'GetLastAssetWriteTime' and switch to a steady_clock for asset times
2025-06-06 23:03:02 -05:00
iwubcode
15f125ebee
VideoCommon: change asset loading to return the number of bytes loaded instead of a pass/fail
2025-06-06 23:03:02 -05:00
iwubcode
316740daed
VideoCommon: add 'Unload' functionality to CustomAsset
2025-06-06 23:03:02 -05:00
Dentomologist
2a7e8a4003
DolphinQt: Remove redundant window hints
...
Remove window hints clearing the flag Qt::WindowContextHelpButtonHint,
which is already off by default in Qt 6.
In Qt 5 this flag was set by default for QDialogs, and on Windows put a
? button in the corner of the title bar allowing users to activate Qt's
QWhatsThis help system for a given widget. Since we don't set that text
the ? button was useless and so we hid it manually.
2025-06-06 19:35:13 -07:00
iwubcode
9ec69b5925
VideoCommon: add a handle to custom asset, this is an id that is only relevant for a particular game session but is slightly faster as a numeric value for lookups than the traditional asset id
2025-06-06 19:20:25 -05:00
iwubcode
d7de49ccf6
Core / VideoCommon: Remove original custom asset loader
2025-06-06 19:20:25 -05:00
JMC47
5ec5db9240
Merge pull request #13392 from jordan-woyak/frame-pacing-accurate-time
...
CoreTiming: Add setting to pursue accurate overall emulation runtime
2025-06-06 19:17:44 -04:00
JMC47
974c56d3c5
Merge pull request #13731 from iwubcode/pixel_shader_gen_fix_complete_initialize
...
VideoCommon: ensure pixel shader gen input structure is completely initialized
2025-06-06 19:08:57 -04:00
JMC47
b1d114f7f7
Merge pull request #13730 from jordan-woyak/controllers-on-main-config-dialog
...
DolphinQt: Move "Controllers" to main settings window.
2025-06-06 18:54:12 -04:00
Javier Martinez
d766c527c7
Common: Replace Contains and ContainsSubrange with C++23 std::ranges equivalents
...
Common: Use feature macros for better compatibility
Common/Contains.h: fix linting issue
Common/Contains.h: Add C++23 TODO
Common/Contains.h: Fix comment lint issue.
2025-06-05 19:18:08 -04:00
Jordan Woyak
a0611b512b
Merge pull request #13713 from Dentomologist/filesystemwidget_center_header_text
...
FilesystemWidget: Center header text
2025-06-05 14:34:36 -05:00
Admiral H. Curtiss
ea959f2651
DSP/Jit: Don't return to dispatcher if no exception was generated
2025-06-05 20:57:27 +02:00
Admiral H. Curtiss
a43fc68452
DSPAnalyzer: Set store instructions as potentially generating exceptions
2025-06-05 19:10:42 +02:00
iwubcode
ae26b38fc0
VideoCommon: fix pixel shader gen error about structure not being fully initialized
2025-06-05 01:37:45 -05:00
Jordan Woyak
b9bea58f0f
DolphinQt: Move "Controllers" to main settings window.
2025-06-04 19:33:01 -05:00
Martino Fontana
2de9122b5f
GameList: Prevent opening Properties multiple times for the same game
2025-06-04 23:11:09 +02:00
JMC47
8665b22822
Merge pull request #13651 from jordan-woyak/config-list
...
DolphinQt: Change Config QTabWidget into a QListWidget and QStackedWidget.
2025-06-04 16:01:51 -04:00
Dr. Dystopia
bae0e5f67a
DolphinNoGUI: Make override explicit
2025-06-04 21:49:29 +02:00
Dr. Dystopia
2ae928ca79
DolphinNoGUI: Make parameters constant
2025-06-04 21:49:15 +02:00
Dr. Dystopia
f04f659710
DolphinNoGUI: Replace C-style cast with reinterpret_cast
2025-06-04 21:49:01 +02:00
Dr. Dystopia
ec1d659363
DolphinNoGUI: Make classes final
2025-06-04 21:48:53 +02:00
Dr. Dystopia
c37933932d
DolphinNoGUI: Make variables constant
2025-06-04 21:48:40 +02:00
Dr. Dystopia
23af1e025b
DolphinNoGUI: Make function static
2025-06-04 21:30:59 +02:00
Dr. Dystopia
135b6840e5
DolphinNoGUI: Remove unused include directives
2025-06-04 21:30:59 +02:00
Dr. Dystopia
e3df00b7f4
DolphinNoGUI: Make variables constexpr
2025-06-04 21:30:59 +02:00
Dr. Dystopia
71da0f2d24
DolphinNoGUI: Replace deprecated signal.h header
2025-06-04 21:30:59 +02:00
JMC47
3f090dd474
Merge pull request #13681 from iwubcode/material_overhaul_custom_vertex
...
VideoCommon: move vertex shader gen logic to a 'process_vertex()' for use in future custom shaders
2025-06-04 15:27:47 -04:00
JMC47
8def02072b
Merge pull request #13379 from JoshuaVandaele/system-ng
...
Use minizip-ng in non-compatibility mode
2025-06-04 15:21:05 -04:00
Jordan Woyak
19a3f25a71
Merge pull request #13723 from Dentomologist/wavefile_add_prefix_to_member_variables
...
WaveFile: Add m_ prefix to member variables
2025-06-04 13:11:14 -05:00
Joshua Vandaële
4b65cc9a4c
fmt: Replace deprecated fmt::localtime usage with Common::LocalTime
2025-06-04 13:32:12 +02:00
Sam Belliveau
d7f45c7b96
Fade audio after an entire loop
2025-06-02 14:37:30 -04:00
Dentomologist
61ccdb0a3c
WaveFile: Add m_ prefix to member variables
2025-06-01 11:41:09 -07:00
Dr. Dystopia
8192d9d2a9
Make parameters, arguments etc. constant
2025-05-31 20:57:54 +02:00
Jordan Woyak
31d0756808
Config: Make s_callbacks_lock recursive to fix hardcore mode deadlock.
2025-05-30 17:33:01 -05:00
Dr. Dystopia
a6b04f53e0
AudioCommon: Remove unused qualifiers and make variables constant
2025-05-30 21:48:38 +02:00
Jordan Woyak
a8eafa4ccd
DolphinQt: Move the "Point (Passthrough)" "Enabled" checkbox below the mapping indicator.
2025-05-29 19:46:53 -05:00
CostPerUnit
a5b4a0b9e4
InputCommon/DolphinQt: Add advanced settings button for "Point" and "Point (Passthrough)" "Enabled" checkboxes.
2025-05-29 19:39:10 -05:00
LillyJadeKatrin
fd285f6348
AchievementManager - Minor cleanup
...
Deleting the unused m_game_data and m_is_game_loaded fields.
2025-05-29 18:35:30 -04:00
Dentomologist
3dc1605569
FilesystemWidget: Center header text
...
Center header text to match all the other headers.
2025-05-27 12:34:20 -07:00
TryTwo
a6a5e201b6
Qt Advanced Panel: Convert QSliders into ConfigSliders.
...
Part of the refactor into the config system.
2025-05-26 19:52:30 -07:00
Jordan Woyak
aafe961177
DolphinQt: Make GeckoCodeWidget default size not taller than it needs to be.
2025-05-26 20:58:48 -05:00
Jordan Woyak
eed7843d4a
DolphinQt: Add stretch to the end of the game config Info tab.
2025-05-26 20:58:48 -05:00
Jordan Woyak
1e4dfc0956
DolphinQt: Fix the WiiPane hinting a larger than required size.
2025-05-26 20:58:48 -05:00
Jordan Woyak
5bc661aeca
DolphinQt/AudioPane: Fix Volume QGroupBox title uglyness on Windows and inconsistent percent-sign spacing.
2025-05-26 20:58:48 -05:00
Jordan Woyak
fcff7a3a49
DolphinQt: Fix FilesystemWidget QTreeView visual style.
2025-05-26 20:58:48 -05:00
Jordan Woyak
543b85a451
DolphinQt: Make WrapInScrollArea and GetWrappedWidget less hacky.
2025-05-26 20:58:48 -05:00
Jordan Woyak
e796e82e8c
DolphinQt: Change game properties QTabWidget to QListWidget.
2025-05-26 20:58:48 -05:00
Jordan Woyak
2b9935e6f4
DolphinQt: Change main settings window QTabWidget into a QListWidget and QStackedWidget.
2025-05-26 20:58:48 -05:00
Admiral H. Curtiss
4e8a863d8b
Merge pull request #13709 from JosJuice/hide-header-bin
...
Hide DirectoryBlob header.bin files from game list
2025-05-26 19:41:07 +02:00
JosJuice
66f181a621
Hide DirectoryBlob header.bin files from game list
...
This is a continuation of 552b6da . That commit hid sys/boot.bin, but not
disc/header.bin, which is only present for Wii games.
Fixes https://bugs.dolphin-emu.org/issues/13810 .
2025-05-25 20:37:52 +02:00
JosJuice
18a78a9bab
Merge pull request #13647 from jordan-woyak/sha1-avoid-memcpy
...
Crypto/SHA1: Re-add memcpy avoiding optimization to BlockContext::Update.
2025-05-25 12:40:43 +02:00
JosJuice
f99d3dbd5c
Android: Ask system for optimal audio buffer size and sample rate
...
This can reduce audio latency according to
https://developer.android.com/ndk/guides/audio/opensl/opensl-prog-notes#perform .
Previously we were using the hardcoded values of 48000 Hz and 256 frames
per buffer. The sample rate we use with this change is 48000 Hz on all
devices I'm aware of, but the buffer size does vary across devices.
Terminology note: The old code used the term "sample" to refer to what
Android refers to as a "frame". "Frame" is a clearer term to use for
this, so I've changed OpenSLESStream's terminology. One frame consists
of one sample per channel.
2025-05-25 11:59:33 +02:00
JosJuice
34e8fb068f
Android: Get rid of OpenSLESStream's global state
...
Not sure if we're ever going to want to have more than one of these at
the same time, but these global variables are a code smell nonetheless.
I'm also deleting the existing member variables because they were
unused.
2025-05-25 11:55:22 +02:00
Dr. Dystopia
7c237bbd7c
AudioCommon: Remove unused includes
2025-05-25 10:30:41 +02:00
JosJuice
776086fa1c
Merge pull request #13692 from jordan-woyak/work-queue-thread-command-queue
...
WorkQueueThread: Fix Cancel() race with internal command queue.
2025-05-24 16:26:10 +02:00
iwubcode
b23dddea4e
VideoCommon: move vertex shader gen logic to a 'process_vertex()' function, to eventually allow for custom shaders to override vertex logic
2025-05-24 01:27:58 -05:00
Sketch
35d70fd531
IOS/KD: Set Checksum when flushing NWC24Config
2025-05-23 18:01:06 -04:00
JosJuice
7c8d53a51d
Merge pull request #13699 from JosJuice/force-typo
...
DolphinQt: Fix verb agreement in Immediate XFB description
2025-05-22 23:22:53 +02:00
JosJuice
260f0225a4
DolphinQt: Don't translate Wii Speak OSD string
...
We have a general policy of not translating OSD strings due to the OSD
font not having good enough support for languages other than English.
2025-05-22 16:51:28 +02:00
JosJuice
98b0d1db05
DolphinQt: Fix verb agreement in Immediate XFB description
2025-05-22 16:48:10 +02:00
Joshua Vandaële
2ed5f16600
minizip-ng: Stop using compatibility mode
2025-05-22 12:51:55 +02:00
LillyJadeKatrin
c23b4e1020
RetroAchievements: Updated PatchAllowlistTest to generate new allowlist
...
Refactors the PatchAllowlistTest to streamline the experience for developers. Instead of a textual description of what needs to change in ApprovedInis.json for RetroAchievements compatibility, the test will now generate a replacement file and instruct the coder where to copy it in their local branch, and what to update APPROVED_LIST_HASH to. The result should be easier and more instructive for developers to make changes, while still maintaining that allowed codes cannot be added or modified without recompiling Dolphin.
As ApprovedInis.json no longer needs to be user-readable for this process, it no longer contains titles or pretty formatting and as such is updated in this commit, hash included.
2025-05-21 21:38:34 -04:00
Admiral H. Curtiss
f90508ff99
Merge pull request #13661 from jordan-woyak/info-first
...
DolphinQt: Make the Info tab first in the game properties dialog.
2025-05-21 20:43:51 +02:00
Admiral H. Curtiss
a6bc251677
Merge pull request #13693 from jordan-woyak/focus-render-window-on-click
...
DolphinQt/RenderWidget: Grab focus on mouse button press.
2025-05-21 20:28:58 +02:00
JMC47
a62449711f
Merge pull request #12769 from sepalani/wii-speak
...
IOS/USB: Emulate Wii Speak using cubeb
2025-05-21 13:54:56 -04:00
Jordan Woyak
9ba71448cc
WorkQueueThread: Fix Cancel() race with internal command queue.
2025-05-20 21:51:25 -05:00
Jordan Woyak
f1b7f8a72e
DolphinQt/RenderWidget: Grab focus on mouse button press.
2025-05-20 21:06:32 -05:00
JMC47
1dc4dc6b6d
Merge pull request #13675 from LillyJadeKatrin/retroachievements-close-deadlock
...
AchievementManager - LoadGameCallback
2025-05-20 11:54:31 -04:00
Jordan Woyak
faaf13eaad
Merge pull request #13562 from sanjay900/santroller-support
...
LibusbDevice: Send wakeup command to Santroller devices
2025-05-20 01:13:39 -05:00
LillyJadeKatrin
dac023af15
Resolve clang-tidy violation
2025-05-18 05:16:17 -04:00
Jordan Woyak
94888d250e
Merge pull request #13527 from tygyh/Replace-msg-with-structured-binding-VideoCommon/NetPlayChatUI
...
VideoCommon/NetPlayChatUI: Replace msg with structured binding
2025-05-17 17:09:13 -05:00
Jordan Woyak
dacb004516
Merge pull request #13190 from tygyh/Move-to-inner-scope-DolphinQT
...
DolphinQT: Move variables to inner scope
2025-05-17 16:52:25 -05:00
LillyJadeKatrin
b6803d00fe
Revert "RetroAchievements: Fix potential deadlock on shutdown."
...
This reverts commit 826f04d06c .
2025-05-17 08:29:50 -04:00
LillyJadeKatrin
137e50dc25
AchievementManager: Remove CloseGame from LoadGameCallback
...
This was causing deadlocks when a game didn't load (including if RetroAchievements does not yet support it) because it was attempting to close the queue the the callback was currently running on, forcing LoadGameCallback to wait for LoadGameCallback to finish. However, it appears that recent changes to the queue have independently resolved the reason CloseGame was being called here in the first place.
2025-05-17 08:29:34 -04:00
Jordan Woyak
88389146d3
Merge pull request #13662 from Dentomologist/wiimotecontrollerswidget_scan_for_bluetooth_adapters_on_separate_thread
...
WiimoteControllersWidget: Fix UI hang when opening Controllers window
2025-05-16 19:43:35 -05:00
Jordan Woyak
7804c16dbb
Merge pull request #13531 from tygyh/DiscIO-Make-functions-constant
...
DiscIO: Make functions constant
2025-05-16 14:49:05 -05:00
Jordan Woyak
3b3bf6a04c
Merge pull request #13459 from tygyh/Make-parameters-constants-DolphinQt-Netplay
...
DolphinQt/NetPlay: Make variables constant
2025-05-16 14:29:44 -05:00
Dr. Dystopia
9dfcbcecff
DiscIO: Make functions constant
2025-05-16 19:11:39 +02:00
Dentomologist
ffd46cd10c
WiimoteControllersWidget: Fix UI hang on opening
...
Fix the UI hanging for several seconds when opening the Controllers
window.
Move the scan for Bluetooth adapters onto a separate thread so the Host
thread doesn't have to wait for it.
Only automatically scan for adapters once, when opening the Controllers
window for the first time. Add a Refresh button to let the user refresh
the adapter list afterward.
2025-05-15 20:36:21 -07:00
Jordan Woyak
fc833f845c
Merge pull request #13660 from jordan-woyak/consistent-icon-text
...
DolphinQt: Add utility function for creating label text with a standard icon.
2025-05-15 13:24:18 -05:00
Jordan Woyak
17eb1b1a34
DolphinQt/Mapping: Replace Motion Input "WARNING: " text with a warning icon.
2025-05-15 10:58:43 -05:00
Jordan Woyak
afb27952ee
DolphinQt: Make the Info tab first in the game properties dialog.
2025-05-15 02:13:48 -05:00
Jordan Woyak
a45d00d84d
DolphinQt: Add utility function for creating label text with a standard icon.
2025-05-15 01:49:38 -05:00
Jordan Woyak
c211efd84a
Merge pull request #13603 from tygyh/FifoPlayer-Make-functions-static
...
FifoPlayer: Make functions static
2025-05-14 23:01:34 -05:00
Jordan Woyak
826f04d06c
RetroAchievements: Fix potential deadlock on shutdown.
2025-05-14 01:10:53 -05:00
Jordan Woyak
1554e4ab6c
Vulkan: Eliminate m_last_present_done flag.
2025-05-13 20:13:18 -05:00
JMC47
57dce8bd7c
Merge pull request #13650 from JosJuice/stswx-uncached
...
PowerPC: Correctly handle stswi/stswx to uncached memory
2025-05-12 19:19:52 -04:00
JMC47
cf3702cbc8
Merge pull request #13046 from SuperSamus/vi-overclock
...
Add VBI Frequency Override
2025-05-12 13:36:55 -04:00
Martino Fontana
c720211542
VideoCommon: Limit maximum denominator for MPEG4
...
It happened to be under the limit normally, but now that the VBI rate can be changed, that's no longer the case.
2025-05-12 18:54:42 +02:00
Martino Fontana
832570c658
Core: Add VBI Frequency Override
...
This feature allows overriding the frequency of the Vertical Blank Interrupt. For many games, this means that their gameplay speed will change without affecting audio, which would be useful by itself (e.g. grinding in RPGs).
However, there are games that use delta time for their game logic, which allows them to be played at >60 FPS at the same gameplay speed!
Some games aren't dynamic though, and require a patch to adjust their game speed variable.
2025-05-12 18:54:36 +02:00
JMC47
f19a33340a
Merge pull request #13631 from LillyJadeKatrin/retroachievements-mem2
...
AchievementManager: MEM2 Support
2025-05-10 14:56:14 -04:00
JosJuice
2b376a92ae
PowerPC: Correctly handle stswi/stswx to uncached memory
...
On real hardware, stswi and stswx don't trigger any of the special
behavior for uncached unaligned writes that was implemented in 543ed8a .
This is confirmed by a hwtest (a new commit in
https://github.com/dolphin-emu/hwtests/pull/42 ).
This change fixes Dolphin's stswi and stswx implementations so they stop
triggering the special behavior, bringing them back to the behavior they
had before 543ed8a . No games are known to be affected, but Extrems has
reported that it affects homebrew they've made.
2025-05-10 19:47:15 +02:00
Dr. Dystopia
cb30862cfb
DolphinQT/Netplay: Make variables constant
2025-05-10 13:05:54 +02:00
JMC47
b2e5d6df25
Merge pull request #13350 from iwubcode/custom_shader_overhaul_vertex_pos
...
VideoCommon: move transform matrices to accessible functions in VertexShaderGen
2025-05-10 01:20:28 -04:00
Jordan Woyak
bb77d61967
Crypto/SHA1: Re-add memcpy avoiding optimization to BlockContext::Update.
2025-05-09 20:59:17 -05:00
JMC47
0351fd56b1
Merge pull request #10766 from xperia64/dsp_format_fun
...
DSP accelerator improvements
2025-05-09 19:04:23 -04:00
JMC47
463bd86145
Merge pull request #13641 from jordan-woyak/sha1-fix
...
Crypto/SHA1: Fix past-the-last-element std::array access and modernize code.
2025-05-09 18:56:20 -04:00
JMC47
7113bafd94
Merge pull request #13586 from Tilka/spr_disasm
...
GekkoDisassembler: standardize SPR names and add missing ones
2025-05-09 18:55:53 -04:00
JMC47
b18bca11e8
Merge pull request #13440 from jordan-woyak/si-dev-change-tweak
...
HW/SI: Don't require waiting a second before disconnecting an SIDevice.
2025-05-09 18:55:18 -04:00
Dentomologist
55cfb958c7
GeneralPane: Add Hardcore Mode tooltip clarification
...
When Hardcore Mode is active, clarify in the Speed Limit tooltip that
values less than 100% won't slow emulation.
2025-05-08 15:45:15 -07:00
Admiral H. Curtiss
37f97cabb4
Merge pull request #13639 from Tilka/move
...
AchievementManager: fix -Wpessimizing-move warning
2025-05-08 21:40:06 +02:00
Admiral H. Curtiss
083ffd5fdb
Merge pull request #13643 from parona-source/no-retroachievments-buildfix
...
Remove filename option from stubbed AchievementManager::LoadGame
2025-05-08 21:37:11 +02:00
JMC47
721175b0d2
Merge pull request #13642 from sepalani/hid-log
...
IOS/USB: Change HIDv4.cpp LogLevel to avoid INTRMSG killing performance
2025-05-08 15:19:51 -04:00
Alfred Wingate
85bbaf6563
Remove filename option from stubbed AchievementManager::LoadGame
...
Fixes: c796691d00
Signed-off-by: Alfred Wingate <parona@protonmail.com>
2025-05-08 22:05:42 +03:00
Sepalani
17e57f550c
IOS/USB: Change HIDv4.cpp LogLevel to avoid INTRMSG killing performance
...
This message can be sent a lot when polling inputs from a keyboard. HIDv5.cpp doesn't log INTRMSG in such a way. If needed, log messages can be added into specific devices instead.
2025-05-08 22:14:01 +04:00
Jordan Woyak
a9ab0e979e
Crypto/SHA1: Fix past-the-last-element std::array access and modernize code.
2025-05-08 03:03:59 -05:00
Jordan Woyak
d922ba31f7
DolphinQt: Fix unnecessarily created Triforce widget in game properties Info tab.
2025-05-08 01:58:20 -05:00
Tillmann Karras
a8fb4153d7
AchievementManager: fix -Wpessimizing-move warning
2025-05-08 00:15:17 +01:00
Jordan Woyak
01bb9d1f8c
Merge pull request #13584 from tygyh/Core/HW/SI-Make-variables-constant
...
Core/HW/SI: Make variables constant
2025-05-07 16:06:00 -05:00
Jordan Woyak
a52e8ff9bd
Merge pull request #13585 from tygyh/Core/HW/GCMemcard-Make-variables-constant
...
Core/HW/GCMemcard: Make variables constant
2025-05-07 16:04:44 -05:00
Jordan Woyak
d74d1d42d6
Merge pull request #13511 from tygyh/Use-range-based-loops-Core-VideoBackends
...
Core/VideoBackends: Use range-based loops
2025-05-07 15:53:18 -05:00
Jordan Woyak
921ffe153d
Merge pull request #13542 from tygyh/DiscIO-Pass-parameters-by-constant-reference
...
DiscIO: Pass parameters by constant reference
2025-05-07 15:50:11 -05:00
Jordan Woyak
b8ca3c8d15
Merge pull request #13575 from tygyh/DolphinTool-Make-variables-constant
...
DolphinTool: Make variables constant
2025-05-07 15:47:14 -05:00
Jordan Woyak
c4616226ab
Merge pull request #13589 from tygyh/Core/HW/EXI-Remove-redundant-inline-specifiers
...
Core/HW/EXI: Remove redundant `inline` specifiers
2025-05-07 15:44:53 -05:00
Sepalani
eff334524a
HotkeyManager: Add HK_TOGGLE_WII_SPEAK_MUTE
2025-05-07 21:27:50 +04:00
Sepalani
4efbd35a5e
IOS/USB: Implement Wii Speak SAMPLER_FREQ register properly
...
Fix the default sampling rate which should be 16KHz
2025-05-07 20:33:22 +04:00
Sepalani
74a875e9d6
IOS/USB: Implement a bare-bones Wii Speak loudness level
...
Add a volume modifier to the UI which relies on gain.
2025-05-07 20:33:22 +04:00
Sepalani
1f0ff42aa0
IOS/USB: Implement Wii Speak REQUEST_SET_INTERFACE command
...
Based on LibusbDevice::SubmitTransfer code
2025-05-07 20:33:22 +04:00
Sepalani
61ab0faab8
Config: Rename MAIN_WII_SPEAK_CONNECTED to MAIN_WII_SPEAK_MUTED
2025-05-07 20:33:22 +04:00
Sepalani
aea5054509
CubebUtils: Add COM helper class
2025-05-07 20:33:22 +04:00
Sepalani
407218a8b4
IOS/USB: Report Wii Speak packet size properly
2025-05-07 20:33:22 +04:00
Sepalani
dbc09bfb0d
Android: Add emulated Wii Speak
2025-05-07 20:33:22 +04:00
Sepalani
a85ffc116e
IOS/USB: Only sample Wii Speak data when necessary
...
Skip data when HLE Wii Speak is not connected
Lock microphone buffer less frequently
2025-05-07 20:33:22 +04:00
Sepalani
f5dd80bb5b
IOS/USB: Try to fix the Wii Speak Channel record/playback feature
...
1. Fix Wii Speak SAMPLER_MUTE register:
The register should be 12 (i.e. 0x0c) instead of 0xc0.
2. Fix Wii Speak buffer memcpy size parameter:
It seems to fix random echoes and reduce noises when nobody is speaking.
3. Change the isochronous transfer timing:
It is based on empirical testing.
2025-05-07 20:33:22 +04:00
Sepalani
6a36930c74
IOS/USB: Add more logs to the Wii Speak code
2025-05-07 20:33:22 +04:00
Sepalani
1ac40f25a2
IOS/USB: Emulate Wii Speak using cubeb
...
Based on @noahpistilli (Sketch) PR:
https://github.com/dolphin-emu/dolphin/pull/12567
Fixed the Windows support and the heisenbug caused by uninitialized
members.
Config system integration finalized.
2025-05-07 20:33:22 +04:00
Sketch
451e36defc
IOS/USB: Emulate Wii Speak (OpenAL)
...
Credits to @degasus and shuffle2 (godisgovernment):
https://github.com/degasus/dolphin/tree/wiispeak
2025-05-07 17:45:59 +04:00
LillyJadeKatrin
85bb066cb0
AchievementManager: update dev memory clone for Wii
...
The clone of system memory used by AchievementManager during achievement development for the sake of thread decoupling was only copying MEM1; this grabs MEM2 as well if it exists.
2025-05-06 16:59:27 -04:00
LillyJadeKatrin
599f28045e
AchievementManager: verify MEM2 if it exists
...
Adds MEM2 to MemoryVerifier.
2025-05-06 16:59:27 -04:00
Jordan Woyak
845fecff22
Common/BitField: Make deleted functions public.
2025-05-05 19:34:35 -05:00
Jordan Woyak
2dc975fa92
Common: Replace enable_if with concepts and other minor modernizations.
2025-05-05 19:34:24 -05:00
JMC47
c9bdda63dc
Merge pull request #13342 from Tilka/fifo_reset
...
VideoCommon: reset some CP registers during PI_FIFO_RESET
2025-05-05 20:20:40 -04:00
Jordan Woyak
2f1d8272a8
DolphinQt/TAS: Use non-default std::atomic struct constructor to fix build with libstdc++ 15.
2025-05-05 16:29:15 -05:00
Tillmann Karras
6f25e20c6a
VideoCommon: reset some CP registers during PI_FIFO_RESET
...
This fixes the shutdown error in SpongeBob Globs of Doom.
2025-05-05 21:18:37 +01:00
Jordan Woyak
6e22e145a0
HW/SI: Don't require waiting a second before disconnecting an SIDevice.
2025-05-04 15:00:48 -05:00
Admiral H. Curtiss
d2db9d9590
Merge pull request #13608 from jordan-woyak/async-work-thread
...
Common: Add AsyncWorkThread.
2025-05-04 18:45:14 +02:00
Admiral H. Curtiss
2a3580fda5
Merge pull request #13482 from jordan-woyak/string-util-concepts
...
StringUtil: Use concepts instead of enable_if.
2025-05-04 17:47:37 +02:00
Admiral H. Curtiss
380a9291ad
Merge pull request #13602 from jordan-woyak/move-only-function
...
Common: Add MoveOnlyFunction.
2025-05-04 17:28:06 +02:00
Admiral H. Curtiss
fc0601e55f
Merge pull request #13628 from jordan-woyak/unique-buffer-texture-data
...
Common and VideoCommon: Change texture data from std::vector to Common::UniqueBuffer.
2025-05-04 14:03:10 +02:00
LillyJadeKatrin
6b52336bf7
AchievementManager: Fix unknown hash achievements deadlock
...
Within AchievementManager, CloseGame being called when LoadGame fails was causing m_queue.Cancel to be called within a lock when Cancel itself locks until it is empty, causing a deadlock. This is resolved by cancelling the queues outside of the lock when they are safe to wait for resolutions.
2025-05-03 22:51:07 -04:00
Jordan Woyak
5a80105555
Common and VideoCommon: Change texture data from std::vector to Common::UniqueBuffer.
2025-05-03 18:32:30 -05:00
iwubcode
e80ed595ac
VideoCommon: move position/normal matrices to be gettable by function in VertexShaderGen
2025-05-03 16:51:34 -05:00
cristian64
2eeb2fd2b9
DolphinQt: Use non-autodismissable menus in menu bar.
...
A new class that derives from `QMenu` has been introduced. Menus of this
`NonAutodismissibleMenu` type will stay visible when a _checkable_
action is triggered.
This is convenient in menus that feature a series of check boxes that
toggle visibility of third components (e.g. the **List Columns** menu),
allowing the user to toggle several actions at once.
For now, the new type is used in the top menu bar.
2025-05-03 20:29:21 +02:00
Admiral H. Curtiss
7774dccc9d
Merge pull request #13509 from Dentomologist/gamelist_fix_right_doubleclick_starting_games
...
GameList: Ignore non-left double-clicks
2025-05-03 20:15:11 +02:00
JMC47
78465693ad
Merge pull request #13607 from LillyJadeKatrin/retroachievements-wiiware
...
RetroAchievements - Wii and WiiWare Support
2025-05-03 13:21:00 -04:00
Admiral H. Curtiss
dcc09906e5
Merge pull request #13622 from TryTwo/Settings_Bugfix
...
Settings: Bugfix. GFX settings getting set without user input
2025-05-03 18:36:36 +02:00
Admiral H. Curtiss
ffd78711be
Merge pull request #13618 from jordan-woyak/cubeb-logging
...
AudioCommon/CubebUtils: Fix logged file name.
2025-05-03 18:33:06 +02:00
TryTwo
c1d0a49f35
Settings: Bugfix. Fix some combo boxes setting a value without user input. Prevents initial Load from calling the connection to save value.
2025-05-02 18:21:45 -07:00
TryTwo
1aabae49ed
Settings: Bugfix. Remove Aspect Ratio combobox signal so it doesn't trigger a settings changed save.
2025-05-02 18:21:18 -07:00
Dentomologist
77744169be
SDL: Check if touchpad exists before getting input
...
Verify a touchpad is present before polling it for input. Without this
check the Debug log is spammed with the message "error: Parameter
'touchpad' is invalid" if you have a controller without a touchpad.
One would think every touchpad supports at least 1 finger, but in case
there's some weird edge case check the finger count to be sure.
2025-05-02 17:21:42 -07:00
Jordan Woyak
63572f15fc
Merge pull request #13620 from JosJuice/logmanager-cleanup
...
LogManager: Stop using manual memory management
2025-05-02 15:24:34 -05:00
Jordan Woyak
ec29d120b5
CoreTiming: Add a setting to pursue accurate emulation time.
2025-05-02 15:23:43 -05:00
JosJuice
c8be819711
LogManager: Stop using manual memory management
...
This fixes a memory leak that would occur when the Android frontend
calls LogManager::Init more than once in order to reload settings.
Note that the log window listener is now owned by LogManager instead of
by the frontend, making it consistent with the other log listeners.
2025-05-02 21:14:32 +02:00
JosJuice
6515807685
Merge pull request #13278 from JoshuaVandaele/saves-import
...
Implement importing multiple saves from an export folder
2025-05-02 15:40:27 +02:00
Jordan Woyak
06826319c7
AudioCommon/CubebUtils: Fix logged file name.
2025-05-02 02:54:15 -05:00
JosJuice
b566e81644
Merge pull request #13596 from JosJuice/config-callback-locking
...
Config: Add locking for config changed callbacks
2025-05-02 08:49:22 +02:00
JosJuice
58d305f75c
Merge pull request #13616 from parona-source/musl-cstdint
...
UICommon: Include implicit header
2025-05-02 08:03:01 +02:00
Jordan Woyak
4e736d60db
Core and AudioCommon: Use AsyncWorkThread.
2025-05-01 22:55:23 -05:00
Jordan Woyak
be4b0af971
Common: Add AsyncWorkThread.
2025-05-01 22:54:40 -05:00
JMC47
0066119e41
Merge pull request #13617 from OatmealDome/coretiming-include
...
CoreTiming: Add missing SystemTimers.h include
2025-05-01 21:33:22 -04:00
JMC47
da4f643b9f
Merge pull request #13611 from jordan-woyak/work-queue-thread-sp
...
Core and Vulkan: Change WorkQueueThread to WorkQueueThreadSP in a few places.
2025-05-01 21:32:16 -04:00
JMC47
757e6aba46
Merge pull request #13597 from JosJuice/hide-boot-bin
...
Hide DirectoryBlob boot.bin files from game list
2025-05-01 21:30:10 -04:00
JMC47
2b568566ac
Merge pull request #13535 from m-brodschi/mihaib/fix-shutdown-crash
...
Core, VideoCommon: Fix crash at shutdown due to destructor order
2025-05-01 21:29:02 -04:00
JMC47
539a3ed021
Merge pull request #13464 from jordan-woyak/dont-toggle-skip-frames
...
DolphinQt: Don't auto toggle GFX_HACK_SKIP_DUPLICATE_XFBS.
2025-05-01 21:28:13 -04:00
JMC47
7222779e21
Merge pull request #13448 from Dentomologist/fix_unresponsive_hotkeys_when_moving_overlay_during_framestep
...
DolphinQt: Fix unresponsive hotkeys when clicking overlay during a framestep
2025-05-01 21:27:30 -04:00
JMC47
1bd2570d97
Merge pull request #13239 from JosJuice/jitarm64-rlwimix-imm-mask
...
JitArm64: Use AArch64 imm masks in rlwimix slow case
2025-05-01 21:26:27 -04:00
OatmealDome
0bd7cc64c9
CoreTiming: Add missing SystemTimers.h include
2025-05-01 19:13:02 -04:00
Alfred Wingate
fbb54604b6
UICommon: Include implicit header
...
The header isn't implicitly included on musl.
Bug: https://bugs.gentoo.org/952952
Signed-off-by: Alfred Wingate <parona@protonmail.com>
2025-05-02 02:03:41 +03:00
Jordan Woyak
20874124c2
StringUtil: Use concepts instead of enable_if.
2025-05-01 16:30:37 -05:00
Jordan Woyak
e4525ca7ee
Merge pull request #13499 from jordan-woyak/frame-pacing-better-math
...
CoreTiming: Cleanups to avoid drift from cumulative rounding errors.
2025-05-01 15:58:33 -05:00
Dr. Dystopia
f240e20e3f
Make overriding explicit and remove redundant virtual specifiers on overriding destructors - Core & UnitTests
2025-05-01 15:00:37 +02:00
Dr. Dystopia
5c0cf0788f
VideoCommon/NetPlayChatUI: Replace msg with structured binding
2025-05-01 14:11:55 +02:00
LillyJadeKatrin
1633011d2a
Add achievement support for Wii and WiiWare
...
Add a method to detect console ID from an input file and instruct rcheevos to load as Gamecube or Wii accordingly. Also, hash .wads upon loading, to support achievements on WiiWare titles.
2025-05-01 07:54:12 -04:00
LillyJadeKatrin
c796691d00
Remove filename option from achievement manager load
...
The only option that was currently using this was a pass-by-executable that wouldn't hash correctly anyways.
2025-05-01 07:54:12 -04:00
JosJuice
0ce929220d
Merge pull request #13553 from tygyh/Core/PowerPC/JitArm64-Replace-zeroes-in-boolean-context-with-false
...
JitArm64: Replace zeroes in boolean context with `false`
2025-05-01 10:11:44 +02:00
LillyJadeKatrin
999c7aed98
Don't close achievements on games that don't hash
...
Minor bugfix necessary for future development; issue brought on by a conflict resolving wrong.
2025-05-01 00:17:20 -04:00
Jordan Woyak
0987c03693
Merge pull request #13453 from tygyh/Use-underlying-method
...
DolphinQt/FIFO/FIFOAnalyzer: Use Common::ToUnderlying
2025-04-30 22:18:02 -05:00
Admiral H. Curtiss
2e20e24136
Merge pull request #13587 from jordan-woyak/manual-value
...
Common: Move some duplicate container element construction logic into a ManuallyConstructedValue template.
2025-04-30 23:45:33 +02:00
Jordan Woyak
ec940e6a2e
VideoBackends/Vulkan: Use WorkQueueThreadSP for swap commands.
2025-04-30 16:29:35 -05:00
Jordan Woyak
753fe5bed1
Core: Use WorkQueueThreadSP in NetKDRequestDevice.
2025-04-30 16:29:21 -05:00
Jordan Woyak
c14101534f
Core: Use WorkQueueThreadSP in NetIPTopDevice.
2025-04-30 16:28:57 -05:00
Jordan Woyak
bdb4fd8376
Core: Use WorkQueueThreadSP in DVDThread.
2025-04-30 16:17:21 -05:00
Jordan Woyak
8e64a02a42
Merge pull request #13579 from jordan-woyak/work-queue-thread-cleanup
...
WorkQueueThread: Implement in terms of WaitableSPSCQueue. Add unit tests.
2025-04-30 16:10:28 -05:00
Jordan Woyak
43e4e8f182
Merge pull request #13581 from jordan-woyak/dvd-WorkQueueThread
...
DVDThread: Implement with WorkQueueThread and WaitableSPSCQueue.
2025-04-30 16:09:36 -05:00
Jordan Woyak
4899913446
Common: Move some duplicate container element construction logic into a ManuallyConstructedValue template.
2025-04-30 14:56:07 -05:00
Jordan Woyak
a149b9d62d
WorkQueueThread: Cleanups. Implement in terms of WaitableSPSCQueue. Add single producer WorkQueueThreadSP.
2025-04-30 14:31:51 -05:00
OatmealDome
0b0151770a
Merge pull request #13436 from JoshuaVandaele/clang-format-19
...
Update clang-format to version 19
2025-04-30 01:17:31 -04:00
Dr. Dystopia
c32ca0696e
FifoPlayer: Make functions static
2025-04-28 20:09:14 +02:00
Mihai Brodschi
bad78cfed4
Core, VideoCommon: Fix crash at shutdown due to destructor ordering
...
Previously, PerformanceTracker registered a callback to be updated on
emulation state changes. PerformanceTrackers live in a global variable
(g_perf_metrics) within libvideocommon. The callback was stored in a
global variable in libcore. This created a race condition at shutdown
between these libraries, when the PerfTracker's destructor tried to
unregister the callback.
Notify the PerfTracker directly from libcore, without callbacks, since
Core.cpp already references g_perf_metrics explicitly. Also rename
Core::CallOnStateChangedCallbacks to NotifyStateChanged to better
reflect what it's doing.
2025-04-28 07:11:53 +03:00
Jordan Woyak
4ec2072beb
Core: Use MoveOnlyFunction for RunOnCPUThread.
2025-04-27 20:07:13 -05:00
Jordan Woyak
37aa65afc4
VideoCommon: Use MoveOnlyFunction for AsyncRequests.
2025-04-27 20:07:13 -05:00
Jordan Woyak
e403dee3da
Common: Add MoveOnlyFunction.
2025-04-27 20:07:13 -05:00
Joshua Vandaële
97e696e524
CMake: Explicitely link udev if LIBUDEV_FOUND is set
2025-04-27 22:03:15 +02:00
Jordan Woyak
2e6e7eddd1
DVDThread: Implement with WorkQueueThread and WaitableSPSCQueue.
2025-04-27 04:16:27 -05:00
JosJuice
552b6da9c4
Hide DirectoryBlob boot.bin files from game list
...
Extracted games contain a boot.bin file that contains the disc header.
These boot.bin files are considered valid volumes by Dolphin, since
Dolphin only checks the disc header to determine if something is a valid
GC/Wii disc. Running them doesn't make any sense, though.
boot.bin files used to not be scanned by Dolphin due to their file
extension, but .bin was added to the list of file extensions to scan for
in 494e2c0 . To stop them from showing up in the game list, let's update
the ShouldHideFromGameList mechanism.
2025-04-26 20:54:32 +02:00
Tilka
8ee64a84c7
Merge pull request #13590 from tygyh/UCodes-Remove-redundant-qualifiers
...
UCodes: Remove redundant qualifiers
2025-04-26 16:23:27 +01:00
JosJuice
f060baa257
Config: Add locking for config changed callbacks
...
Different threads are adding and calling callbacks, so this should have
some locking. This is both to ensure thread safety when accessing
`s_callbacks` and to ensure that there won't be situations where a
callback gets called after it's removed.
`s_callback_guards` is also accessed from multiple threads and has
therefore been made atomic.
2025-04-26 12:56:37 +02:00
JosJuice
741ffc3114
Merge pull request #13514 from LillyJadeKatrin/retroachievements-failed-load-bug
...
Call AchievementManager CloseGame on load failures
2025-04-26 10:36:09 +02:00
Dentomologist
3a883f28d6
Config: Add [[nodiscard]] to AddConfigChangedCallback
...
Require callers of Config::AddConfigChangedCallback and
CPUThreadConfigCallback::AddConfigChangedCallback to handle the returned
ConfigChangedCallbackIDs to hopefully prevent future issues with
callbacks getting called after their associated objects have been
destroyed.
2025-04-25 16:04:12 -07:00
Dentomologist
45b9def42c
VideoConfig: Remove ConfigChangedCallback on shutdown
2025-04-25 16:00:43 -07:00
Dentomologist
d0dc8ae5e1
FreeLook: Remove ConfigChangedCallback on shutdown
2025-04-25 16:00:43 -07:00
Dentomologist
9db4067957
UICommon: Merge ConfigChangedCallbacks
...
Use a single lambda as a callback which calls InitCustomPaths and
RefreshConfig instead of having separate callbacks for each of them.
This fixes the callback for InitCustomPaths not being removed on
shutdown; the callback for the lambda (previously for RefreshConfig) is
already removed in Shutdown().
2025-04-25 16:00:43 -07:00
Dentomologist
8724daf44e
Settings: Remove ConfigChangedCallback on shutdown
2025-04-25 16:00:19 -07:00
Dentomologist
9c40a7976b
AchievementManager: Remove ConfigChangedCallback on shutdown
...
Prevent SetHardcoreMode from being called after m_client is set to
nullptr. rc_client_set_hardcore_enabled() checks for nullptr so this
didn't cause any problems, but better not to rely on that.
Also prevents multiple SetHardcoreMode callbacks from piling up when
repeatedly toggling Config::RA_ENABLED.
2025-04-25 15:29:29 -07:00
Dentomologist
e37a195192
MainWindow: Fix use-after-free during shutdown
...
Remove ConfigChangedCallback in MainWindow's destructor to prevent the
callback from accessing the destroyed MainWindow afterward.
After MainWindow is destroyed UICommon::Shutdown calls
LogManager::Shutdown which ultimately triggers any remaining callbacks.
This resulted in calling MainWindow::OnHardcoreChanged, which crashed in
debug builds and didn't have any obvious effect in release builds.
2025-04-25 15:29:29 -07:00
Dr. Dystopia
9868138c22
UCodes: Remove redundant qualifiers
2025-04-25 13:18:56 +02:00
Dr. Dystopia
066408326c
Core/HW/EXI: Remove redundant inline specifiers
2025-04-25 12:03:52 +02:00
Dr. Dystopia
50ca32352f
Core/HW/GCMemcard: Make variables constant
2025-04-25 11:35:59 +02:00
Tilka
805307f432
Merge pull request #13451 from vyuuui/numeric_labels
...
Add numeric label support to assembler
2025-04-25 01:56:43 +01:00
Tilka
fe307a06c6
Merge pull request #13476 from jordan-woyak/sdl-header
...
InputCommon: Move SDL Device class into its own cpp/h files.
2025-04-25 01:49:52 +01:00
Tilka
5523b9a01b
Merge pull request #13487 from Dentomologist/performancemetrics_fix_window_arrangement
...
PerformanceMetrics: Fix window arrangement
2025-04-25 01:40:58 +01:00
Tilka
50026ab795
Merge pull request #13497 from hoogmin/modernize_fs_path
...
Core/Common/FileUtil.cpp: Use std path utility for automatic path separator handling.
2025-04-25 01:38:35 +01:00