Commit Graph

2972 Commits

Author SHA1 Message Date
Jordan Woyak 561aee7707 Config: Expose Default and 1x Anisotropic Filtering setting. 2025-03-17 20:46:24 -05:00
Jordan Woyak 4b711e1e0a DolphinQt: Allow ConfigComplexChoice to handle DefaultState values. 2025-03-17 20:46:24 -05:00
Tillmann Karras 6a90affa38 Fix -Wunused-lambda-capture warning 2025-03-17 20:08:19 +00:00
Joshua Vandaële 42fb43dacf
Implement multiple saves import
https://bugs.dolphin-emu.org/issues/12887
2025-03-17 10:43:09 +01:00
OatmealDome 9720b1f5f5
Merge pull request #13411 from jordan-woyak/gui-vconfig
DolphinQt/GeneralWidget: Eliminate unnecessary g_Config usage.
2025-03-16 14:54:24 -04:00
Tillmann Karras 90b6f0d16d Config: make SP2 configurable 2025-03-15 22:03:17 +00:00
Jordan Woyak ddb82a5e8c InputCommon/ControllerEmu: Break out functionality of EmulatedController
to eliminate redundant unused members in Wii Remote extension objects.
2025-03-15 14:30:43 -05:00
JMC47 225039f742
Merge pull request #13427 from LillyJadeKatrin/retroachievements-code-approval-fix
Fixed Multi Config Code Approvals
2025-03-15 13:57:48 -04:00
JosJuice 8c7ab286f5
Merge pull request #13181 from tygyh/Replace-'reinterpret_cast'
Replace 'reinterpret_cast' with 'static_cast'
2025-03-15 15:31:38 +01:00
JosJuice fd2c6918fa
Merge pull request #13388 from jordan-woyak/vsync-not-recommended
DolphinQt: Don't recommend v-sync for optimal frame pacing in tool-tip.
2025-03-15 14:24:29 +01:00
LillyJadeKatrin 0615ade725 Fixed Multi Config Code Approvals
Refactors the AR/Gecko/Patch code approval process to verify from every possible game ini, not just the base game ID. This fixes codes on specific revisions or codes general to any region.
2025-03-15 07:57:16 -04:00
Sam Belliveau f09ba10daa AudioCommon: Added Granular Synthesis 2025-03-14 01:22:35 -05:00
Jordan Woyak fdf00050a6 DolphinQt: Use tooltips on Advanced tab. 2025-03-13 05:32:16 -05:00
Jordan Woyak 5b88c0b90e DolphinQt/GeneralWidget: Eliminate unnecessary g_Config usage. 2025-03-10 20:19:45 -05:00
Jordan Woyak 7f3d8a1ad4 VideoConfig: Eliminate NetPlay related members. 2025-03-10 18:53:44 -05:00
JMC47 5ed8b7bc9d
Merge pull request #13403 from jordan-woyak/backend_info
VideoCommon: Move backend_info out of VideoConfig struct.
2025-03-10 15:06:19 -04:00
JMC47 3f73a39dbd
Merge pull request #13286 from JoshuaVandaele/xcb
Enforce XCB within code
2025-03-10 15:03:54 -04:00
mitaclaw c9f589faa5 Modernize `std::stable_sort` with ranges and projections 2025-03-09 13:26:38 -07:00
mitaclaw 00e147c722 Simplify `std::count_if` with `std::ranges::count` and projections 2025-03-09 13:26:37 -07:00
mitaclaw 62b2b939b5 Simplify `std::find_if` with `std::ranges::find` and projections
In LabelMap.cpp, the code is currently unused so I was unable to test it.

In WiiUtils.cpp, the magic value `1u` was replaced by the constant value `DiscIO::PARTITION_UPDATE`.
2025-03-09 13:26:35 -07:00
Jordan Woyak c18c039089 VideoCommon: Move backend_info out of VideoConfig struct. 2025-03-09 01:42:45 -06:00
Jordan Woyak e217d6c939 InputCommon: Use Clock from CommonTypes. 2025-03-02 15:42:26 -06:00
Jordan Woyak 5d16c51963 DolphinQt: Don't recommend v-sync for optimal frame pacing in tool-tip. 2025-03-02 05:43:00 -06:00
Tilka 030892abd9
Merge pull request #13369 from Tilka/qt_warnings
CMake: disable Qt deprecation warnings we can't fix
2025-02-25 18:32:28 +00:00
Jordan Woyak 104a25fe0d DolphinQt: Fix MappingButton not updating text on middle-click clear. 2025-02-24 21:17:41 -06:00
Florin9doi 7afc3df76f USB: Infinity window icon 2025-02-24 00:08:42 +02:00
Tillmann Karras a8363854ee CMake: disable Qt deprecation warnings we can't fix 2025-02-23 14:18:05 +00:00
Aneesh Maganti 3c44fe592b
DolphinQt: Add "Time Played" column to game list view
Shows minutes/hours in the list view and handles column visibility.
2025-02-16 23:15:11 +01:00
Aneesh Maganti 276f043db8
DolphinQt: Create toggle for enabling/disabling time tracking
Introduce a new "Enable Time Tracking" checkbox in the InterfacePane UI. The checkbox is dynamically enabled or disabled based on the emulation state, preventing changes while emulation is active.
2025-02-16 23:15:11 +01:00
JMC47 343007fa9e
Merge pull request #13343 from jordan-woyak/dark-theme-indicator-gate-colors
DolphinQt/Mapping: Adjust dark theme indicator gate color calculation.
2025-02-15 16:34:30 -05:00
Jordan Woyak 66624abb12 DolphinQt/Mapping: Clear and skip "Modifier" iterative input mappings when using
analog inputs.
2025-02-15 14:15:51 -06:00
Jordan Woyak 3189de6c7a DolphinQt: Add setting to enable iterative input mappings. 2025-02-15 14:15:51 -06:00
JMC47 a8fae9b826
Merge pull request #13320 from jordan-woyak/detect-alternations
DolphinQt/Mapping: Add setting to enable waiting for alternate mappings.
2025-02-15 12:59:23 -05:00
Jordan Woyak adc5b81c31 DolphinQt: Rename the pack/unpack SD Card buttons. 2025-02-12 13:30:48 -06:00
Jordan Woyak 165e35ed5d DolphinQt/Mapping: Adjust dark theme indicator gate color calculation. 2025-02-10 01:15:58 -06:00
Admiral H. Curtiss dcfb1361d2
Merge pull request #13223 from mitaclaw/branch-watch-tool-fixes-5
Branch Watch Tool: Refresh Context Menus OnEmulationStateChanged
2025-02-06 21:52:50 +01:00
Admiral H. Curtiss 6ee08fb9db
Merge pull request #13302 from TryTwo/Breakpoints_Fix_Lag
Breakpoints: Fix lag when loading multiple memory breakpoints
2025-02-05 18:27:22 +01:00
TryTwo bbf72e79f9 Breakpoints: Fix lag when adding or removing multiple memory breakpoints by only calling DBATUpdated() once. 2025-02-04 00:21:13 -07:00
Admiral H. Curtiss 77056ba7b7
Merge pull request #13208 from Dentomologist/wiitasinputwindow_update_on_attachment_change
WiiTASInputWindow: Update controls when attachment changes
2025-02-02 18:02:58 +01:00
Admiral H. Curtiss 6a3a74508d
Merge pull request #13317 from cristian64/spurious_config_file
DolphinQt: Use global settings object also for debugger settings.
2025-02-02 17:25:24 +01:00
JMC47 8291cff46d
Merge pull request #13280 from jordan-woyak/input-expressions-highlighting
InputCommon/DolphinQt: Fix sometimes broken syntax highlighting in IOWindow.
2025-02-02 02:01:34 -05:00
Jordan Woyak 6e7e808b66 DolphinQt/Mapping: Add setting to enable waiting for alternate mappings
using the OR-operator.
2025-02-01 01:54:10 -06:00
cristian64 a153c7cb7c DolphinQt: Use global settings object also for debugger settings.
A number of settings in the `debugger` group were wrongly using a newly
constructed `QSettings` object instead of the singleton object that
`GetQSettings()` provides.

This made the application create a spurious, extra configuration file in
the user directory:

```
~/.config/Dolphin Emulator/dolphin-emu.conf
```

Notice that,  by default, the application configuration files are stored
in `~/.config/dolphin-emu`; not in `~/.config/Dolphin Emulator`.
2025-01-30 22:02:03 +00:00
JMC47 f92f174450
Merge pull request #13297 from jordan-woyak/config-ext-btn
DolphinQt: Add a "Configure Extension" button under the extension selection combo box.
2025-01-27 21:17:41 -05:00
JMC47 e18a4d04b4
Merge pull request #13178 from jordan-woyak/input-expressions-conditional-op
InputCommon: Add ternary conditional operator to input expressions.
2025-01-27 21:16:29 -05:00
JMC47 2b5cd96cb1
Merge pull request #11261 from TryTwo/PR_MemoryView_Auto_Update
MemoryView auto-update while running and color recently changed cells.
2025-01-27 21:15:57 -05:00
Joshua Vandaële a76ed94120
AboutDialog: Disable resizing the About window 2025-01-24 10:45:54 +01:00
Jordan Woyak a33368b102 DolphinQt: Add a "Configure Extension" button under the extension
selection combo box.
2025-01-22 02:58:32 -06:00
Jordan Woyak ae72a781d4 DolphinQt: Remove MappingButton bold/italic text indication. 2025-01-20 17:55:10 -06:00
Jordan Woyak d8cf835f07 MappingWidget: Fix shadowed variable warning. 2025-01-20 17:55:10 -06:00
Jordan Woyak d19304dc15 MappingIndicator: Add graphical indicators on the left of MappingButton
that don't have a large indicator.
2025-01-20 17:55:10 -06:00
Joshua Vandaële a3b06b0572
Enforce XCB within code 2025-01-20 11:57:21 +01:00
TryTwo 0b8301ff97 MemoryViewWidget: Add auto update toggle. 2025-01-19 23:24:59 -07:00
TryTwo 7b19192134 MemoryViewWidget: Color recently changed memory when auto updating. 2025-01-19 23:24:08 -07:00
TryTwo 6d8f40c245 MemoryViewWidget: Reduce amount of unnecessary update calls. 2025-01-19 23:19:40 -07:00
TryTwo 32e135e6a9 MemoryViewWidget: Add OnFrameEnd callback to auto-update memory while a game is running. 2025-01-19 23:18:38 -07:00
Admiral H. Curtiss d87ee2daa5
Merge pull request #13281 from jordan-woyak/iowindow-signal-proper-fix
DolphinQt: Fix QObject::connect: signal not found in IOWindow error.
2025-01-19 23:52:58 +01:00
JMC47 8e9596e221
Merge pull request #13259 from TryTwo/PR_Config_signals
Qt: Fix some options not changing enabled status on game start.
2025-01-18 18:11:04 -05:00
Dentomologist fb3a727fcc WiiTASInputWindow: Update controls when attachment changes
Change the displayed controls in the TAS Input window when the
controller's extension (including MotionPlus) is changed.

This previously required restarting Dolphin after the attachment was
changed, as the controls were never updated after the WiiTASInputWindow
was created at Dolphin startup.
2025-01-18 14:15:20 -08:00
Jordan Woyak 205a85b991 DolphinQt: Fix QObject::connect: signal not found in IOWindow error. 2025-01-17 20:17:01 -06:00
Jordan Woyak e91b83d166 DolphinQt: Make input expression syntax highlighting less hacky. 2025-01-17 02:44:31 -06:00
Jordan Woyak a618854413 ExpressionParser: Remove RemoveInertTokens. 2025-01-17 02:31:33 -06:00
Jordan Woyak c3f66e83e6 DolphinQt: Fix ASSERT failure in IOWindow in debug build. 2025-01-15 16:39:45 -06:00
Tilka e24e107b3c
Merge pull request #13265 from Sintendo/warnings
Fix several minor warnings
2025-01-08 21:44:24 +00:00
Tilka ffa312f8e8
Merge pull request #13158 from jordan-woyak/wiiu-rename
DolphinQt: Rename "GameCube Adapter for Wii U".
2025-01-08 21:39:08 +00:00
TryTwo 3edb5accca MemoryViewWidget: Refactor updates using a dispatch function. Isolate memory reads from table updates.
Preparations for auto update while a game is running.
2025-01-08 13:40:46 -07:00
TryTwo 2e006d9787 MemoryViewWidget: Refactor. Remove OnItemChanged signal and QSignalBlocker - replace with a signal that is only sent at the correct time. 2025-01-07 15:57:53 -07:00
OatmealDome 696b363f47
Merge pull request #13162 from jordan-woyak/non-blocking-input-detection
DolphinQt/InputCommon: Make input mapping and output testing non-blocking.
2025-01-07 16:55:55 -05:00
TryTwo 5395f21ae5 Qt, Config controls system: Remove signal block so signals can refresh the enabled status of certain options when a new config is loaded (such as on starting a game). Blocks previously unwanted behavior with a new safety check.
QCheckBox::toggled and other similar signals are used to save changes and to update widget status (such as enabled).. OnConfigChanged needs to load new values and trigger widget updates, but the new value shouldn't trigger a save. A save is unnecessary (the config has the correct values and the UI is being updated to those values) and it'd trigger another ConfigChanged signal.   This commit blocks the save without blocking the signal entirely.
2025-01-07 03:02:39 -07:00
Sintendo 532e25be12 Fix several minor warnings 2025-01-06 11:31:39 +01:00
OatmealDome 8d9ec2fde9
Merge pull request #13210 from OatmealDome/fix-scmrevgen
ScmRevGen: Don't generate Info.plist files directly
2025-01-06 01:18:20 -05:00
JMC47 6b686be5f1
Merge pull request #13233 from TryTwo/PR_Codec
AdvancedWidget: Replace FFV1 codec with Ut Video
2025-01-04 22:26:36 -05:00
Jordan Woyak f12846a0e9 DolphinQt: Make input mapping and output testing non-blocking. 2025-01-01 16:48:32 -06:00
mitaclaw d92c68e1de Simplify `std::find_if` with `Common::Contains` 2025-01-01 09:52:03 -08:00
mitaclaw 110d32729e Simplify `std::find` with `Common::Contains`
In NandPaths.cpp, the `std::initializer_list<char>` of illegal characters has been turned into a `char[]` (similar to the one in GameList.cpp).

The reverse iteration in ResourcePack.cpp seemed to provide no benefits, and doing without it it seemed to have no ill effects.
2025-01-01 09:52:03 -08:00
TryTwo 3d248d000f Frame Dumping: Change lossless codec from FFV1 to Ut Video.
Ut Video is faster and more compatible with editing programs, but produces larger files.
2024-12-30 14:07:43 -07:00
Admiral H. Curtiss 4fc50226c6
DolphinQt/HacksWidget: Convert accuracy slider to ConfigSlider 2024-12-27 05:40:24 +01:00
Admiral H. Curtiss 98ee3836e5
DolphinQt: Add option for value mappings to ConfigSlider 2024-12-27 05:40:13 +01:00
JMC47 532a8621da
Merge pull request #13116 from mitaclaw/ranges-modernization-8-trivial-of
Ranges Algorithms Modernization - Of
2024-12-26 16:51:53 -05:00
TryTwo 27ac5fa777 Qt crash fix. Don't store Config::Info variable as a reference. 2024-12-23 15:40:07 -07:00
JosJuice 5641b83d4e
Merge pull request #13063 from TryTwo/PR_GameSettings
Add ability to edit game-specific GFX settings from game properties tab.
2024-12-22 20:42:28 +01:00
JMC47 1ba8541da9
Merge pull request #13091 from mitaclaw/ranges-modernization-2-returns
Ranges Algorithms Modernization - Return
2024-12-20 12:50:19 -05:00
mitaclaw 2b0cd16c8c Modernize `std::none_of` with ranges
In JitRegCache.cpp, the lambda predicate were replaced by a pointer to member function because ranges algorithms are able to invoke those.

In ConvertDialog.cpp, the `std::mem_fn` helper was removed because ranges algorithms are able to handle pointers to member functions as predicates.

In BoundingBox.cpp, the lambda predicate was returning the bool element unchanged, so `std::identity` was a better fit.
2024-12-15 19:54:17 -08:00
mitaclaw 140252ffc0 Modernize `std::any_of` with ranges
In WiimoteReal.cpp, JitRegCache.cpp, lambda predicates were replaced by pointers to member functions because ranges algorithms are able invoke those.

In ConvertDialog.cpp, the `std::mem_fn` helper was removed because ranges algorithms are able to handle pointers to member functions as predicates.
2024-12-15 19:54:16 -08:00
mitaclaw 860e6cf5cb Modernize `std::all_of` with ranges
In DITSpecification.cpp, MaterialAsset.cpp, and ShaderAsset.cpp, lambda predicates were replaced by pointers to member functions because ranges algorithms are able invoke those.

In NetPlayClient.cpp, the non-trivial `NetPlay::Player` elements were being passed by value in `NetPlayClient::DoAllPlayersHaveGame()`. This has been fixed.

In WIABlob.cpp, the second example's predicate was returning the `std::optional` by value instead of implicitly converting it to a bool. This has been fixed.
2024-12-15 19:50:34 -08:00
mitaclaw 826e2bbf98 StringUtil: More Wrappers For <cctype>
`Common::IsLower(char)` was omitted as nothing needed it.
2024-12-15 19:50:34 -08:00
mitaclaw 97e2a43eac Branch Watch Tool: Refresh Context Menus OnEmulationStateChanged 2024-12-14 14:47:47 -08:00
TryTwo 9541bb6cf7 Add method to bold slider/spin labels when a user game ini setting is being used 2024-12-10 13:42:30 -07:00
TryTwo ac129d318b EnhancementsWidget:: Move to using ConfigControls and add new control for ComboBoxes that set two settings at once. 2024-12-10 13:42:17 -07:00
TryTwo 84a937ae65 Add GFX property tabs to game properties window, allowing them to be set to the user game ini. Additionally, refactor ConfigWidgets to reduce duplication. Refactor GameConfigWidget to use config system.
Creates a layer outside the game config layer system and passes it to the created gfx widows, so as to not interfere with the global config system.

Supports multiple game properties being open at once.
Supports editing while a game is playing, but the options only save and update the active game when the window is closed.
Right-clicking will remove a property from the game ini.
2024-12-10 13:40:30 -07:00
OatmealDome 57b1234feb
Merge pull request #13113 from CelestialAmber/mwld-map
Core: Store object name separately for symbols
2024-12-07 17:13:13 -05:00
TryTwo 08df9a66e0 DolphinQt: Refactor, add ConfigControl class
This reduces code duplication in the different ConfigControls. This is
helpful for the next commit, which will modify the now deduplicated
code.
2024-12-07 16:31:34 +01:00
JosJuice 0a84d93a8e
Merge pull request #13196 from jordan-woyak/expanding-numeric-settings
DolphinQt: Make mapping window spinboxes horizontally expanding.
2024-12-07 11:14:55 +01:00
OatmealDome e05b033dd2 ScmRevGen: Don't generate Info.plist files directly
Some generators (like Unix Makefiles and Xcode) copy an app's Info.plist at configure time.
This causes a problem when we need to generate the Info.plist at build time, like how we
currently do it with ScmRevGen. Instead of generating the Info.plist directly in ScmRevGen,
provide an Info.plist without any version information to CMake at configure time, have
ScmRevGen generate a separate plist file with the version information at build time, and
then merge the two together to create the final Info.plist.
2024-12-05 14:56:08 -05:00
JosJuice c6b0629275
Merge pull request #13200 from Dentomologist/irwidget_move_header_constants_into_class
IRWidget: Move header constants into class
2024-12-05 18:53:17 +01:00
OatmealDome 3c27c38e71 DolphinQt: Use TARGET_BUNDLE_DIR generator expression instead of specifying the bundle path ourselves 2024-12-04 22:53:39 -05:00
JMC47 26ba8f5481
Merge pull request #13197 from jordan-woyak/vrr-mapping-indicators
DolphinQt: Update mapping indicators at screen refresh rate.
2024-12-03 12:51:18 -05:00
LillyJadeKatrin 8447ce99f4 Scale back hardcore code block
Now that patches and codes are enabled on a case by case basis, remove patcher code blocking codes entirely in hardcore mode, and reword the warning to be more accurate.
2024-11-27 21:21:26 -05:00
LillyJadeKatrin 3c255b55e8 Add AR Code Whitelist Approval 2024-11-27 21:21:26 -05:00
LillyJadeKatrin 13a1956cfa Add Gecko Code Whitelist Approval 2024-11-27 21:21:25 -05:00
Dentomologist a9b1c1f5f8 IRWidget: Move header constants into class
This apparently didn't compile on macOS six years ago before c++20, but
it should be fine by now.

While I'm at it, make the constants upper case per convention.
2024-11-26 13:50:13 -08:00
Jordan Woyak e7a8e2fca1 DolphinQt: Update mapping indicators at screen refresh rate. 2024-11-25 14:58:48 -06:00
Jordan Woyak 26f2e5f022 DolphinQt: Make mapping indicators compatible with a variable update frequency. 2024-11-25 14:43:03 -06:00
Jordan Woyak ea93b65d21 DolphinQt: Make mapping window spinboxes horizontally expanding. 2024-11-24 18:59:18 -06:00
JMC47 e0c387416d
Merge pull request #13153 from LillyJadeKatrin/retroachievements-netplay-hardcore
Force NetPlay Clients to Host Hardcore Status
2024-11-22 22:01:00 -05:00
mitaclaw 62d7166e6a GDBStub: Signal Breakpoint Changes To Host 2024-11-15 15:12:11 -08:00
Amber Brault 1c4bfc35d9 Core: Store object name separately for symbols 2024-11-11 12:36:53 -05:00
LillyJadeKatrin ef71c75458 Add Config Changed Callback for Hardcore Mode 2024-11-10 08:38:00 -05:00
Dr. Dystopia 6d44afc7dd Replace 'reinterpret_cast' with 'static_cast' 2024-11-08 07:26:47 +01:00
Jordan Woyak 5078a63084 InputCommon: Add ternary conditional operator to input expressions. 2024-11-07 08:31:25 -06:00
Dentomologist 47a86d920f GeneralWidget: Recommend default video backend in tooltip
Recommend the platform's default video backend in the Backend tooltip
instead of always recommending OpenGL.
2024-11-03 12:28:30 -08:00
Tilka 97931a718f
Merge pull request #13151 from mitaclaw/core-global-system-6
MainWindow: Avoid Global System Accessor
2024-11-02 12:04:28 +00:00
Jordan Woyak d920064779 Add include guard to QtUtils.h 2024-11-02 01:27:07 -05:00
Jordan Woyak 149a3721ff DolphinQt: Ensure skylanders QDateTimeEdit shows a four digit year without forcing dd-mm-yyyy format. 2024-10-31 02:38:45 -05:00
Jordan Woyak bffc26da27 DolphinQt: Rename "GameCube Adapter for Wii U" to "GameCube Controller Adapter". 2024-10-31 01:25:36 -05:00
JMC47 adafe1f347
Merge pull request #13147 from mitaclaw/jit-block-table-model-fix
JitBlockTableModel: Catch All Block Invalidating Events (I Hope)
2024-10-30 17:00:27 -04:00
JMC47 bab34ca060
Merge pull request #13140 from dreamsyntax/skip-efb-default-flip
GraphicsSettings: EFBAccessEnable=false by default
2024-10-28 18:58:37 -04:00
JMC47 1012803f2e
Merge pull request #12954 from LillyJadeKatrin/retroachievements-confirm
Achievements Confirmation Dialogs
2024-10-28 12:54:37 -04:00
JMC47 96c9591b99
Merge pull request #13096 from mitaclaw/ranges-modernization-7-rewrite
Ranges Algorithms Modernization - Rewrite
2024-10-27 19:17:01 -04:00
mitaclaw 12f8b11452 MainWindow: Avoid Global System Accessor 2024-10-24 21:41:35 -07:00
mitaclaw 0371b74ebf JitBlockTableModel: Update For Symbols Too
Flushing efficiency down the drain because I wrote unsafe code to achieve it... I hope I can recover this.
2024-10-24 18:10:52 -07:00
JosJuice 5165ddea52 DolphinQt: Remove a stray period from the Audio tab 2024-10-24 21:24:40 +02:00
mitaclaw 3d9c728910 Host: Rename `JitCacheInvalidation`
There are two hard problems in computer science...
2024-10-23 23:43:24 -07:00
dreamsyntax 9dacefcbf1 GraphicsSettings: EFBAccessEnable=false by default
Makes Graphics -> Hacks -> Skip EFB Access from CPU enabled by default. Some GPU drivers stall when EFB access occurs in games where EFB is not used. Most games that require this setting set to 'true' already have this defined in their game inis.
2024-10-22 12:28:14 -07:00
JMC47 f412e2488c
Merge pull request #12714 from mitaclaw/jit-widget-refresh
DolphinQt: JIT Widget Refresh
2024-10-21 12:03:50 -04:00
JosJuice d48e6e25ad DolphinQt: Call FIFOPlayerWindow::UpdateControls for Starting/Stopping
Follow-up for
https://github.com/dolphin-emu/dolphin/pull/12918#discussion_r1785153070.
2024-10-20 13:38:24 +02:00
JMC47 88cf25e915
Merge pull request #13114 from TryTwo/PR_Turbo_Mutes_Audio
Audio: Add option to temporarily mute audio when using turbo
2024-10-19 13:11:05 -04:00
mitaclaw 9afd09598c DolphinQt: JIT Widget Refresh
Fulfilling a certain six-year-old todo.
2024-10-19 02:30:44 -07:00
mitaclaw ca9222a16b Move UICommon/Disassembler to Common/HostDisassembler
A preliminary commit for a cleaner diff and an easier review
2024-10-19 00:14:54 -07:00
mitaclaw ff9be97ea1 JitCache: Add WipeBlockProfilingData Function
Accessible from DolphinQt and Android.
2024-10-18 23:50:26 -07:00
mitaclaw be0b13da97 Simplify `std::remove` with `std::erase`
`std::erase` is a replacement for the remove-erase idiom.

Changes to `OpenModeToAndroid` inadvertently revealed that the prior implementation had UB (potentially deleting the end iterator). This is now fixed.
2024-10-17 18:38:34 -07:00
JosJuice 07605bf67c
Merge pull request #13090 from mitaclaw/ranges-modernization-1-trivial
Ranges Algorithms Modernization - Trivial
2024-10-15 17:08:55 +02:00
TryTwo a56a27a219 Audio: Add option to AudioPane to temporarily mute audio when emulation speed limit is disabled. 2024-10-15 03:05:19 -07:00
Tilka 2024d9f8ff
Merge pull request #13126 from jordan-woyak/no-big-banner
DolphinQt: Restrict size of banner image in game properties info tab.
2024-10-12 09:40:20 +01:00
Tilka f635c71f28
Merge pull request #13125 from jordan-woyak/mapping-tab-bar-auto-hide
DolphinQt: Auto hide the mapping window tab bar.
2024-10-12 09:36:19 +01:00
Jordan Woyak 23ba1c9133 DolphinQt: Restrict size of banner image in game properties info tab. 2024-10-11 22:56:33 -05:00
Jordan Woyak 3d762c20ee DolphinQt: Auto hide the mapping window tab bar. 2024-10-11 22:03:05 -05:00
Jordan Woyak 863889a34e DolphinQt/MappingIndicator: Use Settings::IsThemeDark instead of reimplementing it. 2024-10-11 18:50:32 -05:00
Tilka d6e10e586a
Merge pull request #13076 from robxnano/dbus-inhibit
Linux: Use D-Bus to inhibit screensaver
2024-10-12 00:31:58 +01:00
Tilka f4e0a42cfc
Merge pull request #13075 from robxnano/qt-color-scheme
Remove unneeded Win32 code for color scheme
2024-10-11 22:20:42 +01:00
Tilka c1832d17f6
Merge pull request #13117 from mitaclaw/ranges-modernization-9-trivial-find
Ranges Algorithms Modernization - Find
2024-10-11 20:27:18 +01:00
mitaclaw e8d5fb89e4 C++20: Synthesize `operator!=` From `operator==`
The inequality operator is automatically generated by the compiler if `operator==` is defined.
2024-10-10 20:23:55 -07:00
mitaclaw d296b2613c Modernize `std::adjacent_find` with ranges 2024-10-10 15:28:11 -07:00
mitaclaw e4fb837f4b Modernize `std::find_if` with ranges
In BTEmu.cpp, `std::mem_fn` was not necessary for the predicate to compile.
2024-10-10 15:28:11 -07:00
mitaclaw 6ca7e2856b Modernize `std::find` with ranges 2024-10-10 15:28:11 -07:00
mitaclaw e572081ac3 Modernize `std::min_element` with ranges 2024-10-10 00:53:48 -07:00
mitaclaw c99a0c25e0 Modernize `std::max_element` with ranges 2024-10-10 00:53:48 -07:00
mitaclaw ebf7cebc32 Modernize `std::sort` with ranges 2024-10-10 00:53:48 -07:00
mitaclaw 72436a0d1f Modernize `std::transform` with ranges
In StringUtil.h, the lambdas wrapping `Common::ToLower(char)` and `Common::ToUpper(char)` were only necessary due to the function names being overloaded.
2024-10-10 00:53:48 -07:00
mitaclaw 249defa72b Modernize `std::equal` with ranges 2024-10-10 00:53:48 -07:00
mitaclaw 519da8297c Simplify `std::stable_sort` with `std::ranges::stable_partition` 2024-10-09 17:26:10 -07:00
JosJuice 6ca2da53e8 Partially revert "Revert "Audit uses of IsRunning and GetState""
This reverts the revert commit bc67fc97c3,
except for the changes in BaseConfigLoader.cpp, which caused the bug
that made us revert 72cf2bdb87. PR 12917
contains an improved change to BaseConfigLoader.cpp, which can be merged
(or rejected) independently.

A few changes have also been made based on review comments.
2024-10-04 18:35:41 +02:00
LillyJadeKatrin a36746a79a Turn off debug mode if hardcore is active on emulator start
Found this bug while testing; if I manually edit the config files while Dolphin is closed I was able to get debug and hardcore on at the same time, this resolves that.
2024-10-03 09:01:00 -04:00
LillyJadeKatrin 72f682ab13 Add Confirm Popups for Achievements Logout and Hardcore Off 2024-10-03 08:59:54 -04:00
LillyJadeKatrin 415fa3c6a5 Migrate Hardcore Toggle Code to Achievement Manager
AchievementManager::SetHardcoreMode now handles the (non-Qt) settings disabled by hardcore mode, instead of doing this on the Qt layer. Also ensured Init/Enable Achievements paths run this code, fixing the bug wherein the player can manipulate things when achievements are disabled that persist when turned back on.
2024-10-03 07:52:07 -04:00
JMC47 122bce08de
Merge pull request #12953 from LillyJadeKatrin/retroachievements-fail-messaging
Achievements Fail Messaging
2024-10-02 14:50:21 -04:00
LillyJadeKatrin 2f40bc25ae Properly Notify when Achievements Login Fails 2024-10-01 18:03:46 -04:00
robxnano 2748771cb3
linux: Use D-Bus to inhibit screensaver 2024-09-27 21:22:57 +01:00
robxnano 5e8f5afb52
DolphinQt: Remove unneeded Win32 code
Dolphin already uses QStyleHints::colorScheme to detect dark mode,
so this code is now redundant.
2024-09-27 10:41:01 +01:00
Tilka 2cb124bd3a
Merge pull request #13062 from Dentomologist/graphics_clarify_relationship_between_incompatible_settings
Graphics: Clarify relationship between incompatible settings
2024-09-27 05:40:30 +01:00
Tilka 61836e5d8e
Merge pull request #13077 from Dentomologist/graphicswindow_fix_first_opening_during_emulation_startup_crash
GraphicsWindow: Fix crash when opening for the first time during emulation startup
2024-09-27 05:38:37 +01:00
Dentomologist 0a1084fad5 VideoBackendBase: Check Core state in PopulateBackendInfo
Remove the PopulateBackendInfoFromUI function, which had a single caller
(GraphicsWindow::OnBackendChanged) and checked that the core wasn't
running or starting before calling PopulateBackendInfo.

Move the core state check into PopulateBackendInfo and have
OnBackendChanged call that instead. This guarantees the check is
performed by all callers of PopulateBackendInfo, preventing
potential reintroduction of the crash fixed in 3d4ae63f if another call
to PopulateBackendInfo is added.

As of the previous commit the only other caller of PopulateBackendInfo
is Core::Init shortly before s_state is set to Starting, so it will
always pass the check and so maintain its current behavior.
2024-09-26 17:12:26 -07:00
JMC47 d4d3acb796
Merge pull request #13065 from mitaclaw/ppc-breakpoints-signal
DolphinQt: A Ubiquitous Signal For When Breakpoints Change
2024-09-26 18:20:43 -04:00
Pokechu22 b34b7f63ee Fix random crash when using the cheat search
Before, Dolphin would randomly crash when updating the cheat search when automatic refresh was enabled. (Having a large number of addresses listed, e.g. by starting with an "any value" search, may contribute). The crash was due to QTableWidget::item returning nullptr in RefreshGUICurrentValues, presumably due to the table being resized on the UI thread while the emulated CPU thread was updating the values. I've fixed this by pausing the CPU thread for the entirety of OnNextScanClicked; this eliminated crashes in my testing.
2024-09-23 22:47:44 -07:00
JMC47 3b9a70a435
Merge pull request #13053 from Dentomologist/texture_dumping_show_osd_on_startup_and_toggle
Texture Dumping: Show OSD message on startup and when toggled
2024-09-21 15:17:54 -04:00
mitaclaw 4f821f4332 BreakpointWidget: Update when `Host::PPCSymbolsChanged`
Otherwise, outdated symbol names will remain.
2024-09-20 18:39:20 -07:00
mitaclaw 7c2a39706e DolphinQt: A Ubiquitous Signal For When Breakpoints Change
There were three distinct mechanisms for signaling breakpoint changes in DolphinQt, and the wiring had room for improvement. The behavior of these signals has been consolidated into the new `Host::PPCBreakpointsChanged` signal, which can be emitted from anywhere in DolphinQt to properly update breakpoints everywhere in DolphinQt.

This improves a few things:
- For the `CodeViewWidget` and `MemoryViewWidget`, signals no longer need to propagate through the `CodeWidget` and `MemoryWidget` (respectively) to reach their destination (incoming or outgoing).
- For the `BreakpointWidget`, by self-triggering from its own signal, it no longer must manually call `Update()` after all of the emission sites.
- For the `BranchWatchDialog`, it now has one less thing it must go through the `CodeWidget` for, which is a plus.
2024-09-20 18:37:39 -07:00
Dentomologist 694f2ee995 Graphics: Clarify relationship between incompatible settings
Explicitly state that Manual Texture Sampling disables Anisotropic
Filtering and that GPU Texture Decoding disables Arbitrary Mipmap
Detection.
2024-09-10 11:35:15 -07:00
JMC47 2c15d7af7f
Merge pull request #12966 from Dentomologist/cheatsmanager_create_code_widgets_only_once
CheatsManager: Create Action Replay and Gecko code widgets only once
2024-09-07 15:13:18 -04:00
Dentomologist c3d6d2189a Texture Dumping: Show OSD message on startup and when toggled
If texture dumping is enabled, notify the user on emulation startup
using an On Screen Display message.

Also notify the user when texture dumping is toggled.

Addresses https://bugs.dolphin-emu.org/issues/12445.
2024-09-06 13:00:25 -07:00
JMC47 efc395f7f4
Merge pull request #12977 from mitaclaw/branch-watch-tool-fixes-4
Branch Watch Tool: Refactors, Fixes, and Features
2024-09-04 19:36:24 -04:00
mitaclaw 2a20e6e3df Branch Watch Tool: Toolbar Visiblity Menu
Adds the ability to hide unneeded features of the controls toolbar.
2024-08-31 15:37:34 -07:00
mitaclaw 8f76a32be4 Branch Watch Tool: New Conditional Branch Inspection Tools
Invert conditions, invert decrement checks, and make conditional branches unconditional. USnapshotMetadata in prior versions of Dolphin is forward-compatible with these changes (tested on x86_64).
2024-08-31 15:37:34 -07:00
mitaclaw 8bdfdc88b2 Branch Watch Tool: Ignore Apploader Branch Hits Concurrency Fix
Also removed worthless `Start` and `Pause` helpers from `Core::BranchWatch`.
2024-08-31 15:37:34 -07:00
mitaclaw e4500b5798 BranchWatchDialog: Improve Branch Was/Not Overwritten Buttons
Giving a warning if these are used when not usable is bad UX.
2024-08-31 15:37:34 -07:00
mitaclaw f5e7b45773 BranchWatchDialog: Listen For `clicked` Signal Rather Than `pressed`
The latter signal was used by mistake, see PR #8263.
2024-08-31 15:37:24 -07:00
mitaclaw 0c889c715d BranchWatchDialog: Const Correctness
m_index_list_temp should not be imagined as a member of `BranchWatchDialog`, so it is now mutable to allow for more const member functions.
2024-08-31 15:31:26 -07:00
mitaclaw 7ce703a4a8 BranchWatchDialog: Refactor Context Menus
Instead of one wildly complex context menu constructed lazily, now three manageable context menus are constructed proactively.
2024-08-31 15:11:25 -07:00
mitaclaw 107c08b77f BranchWatchDialog: Clean Up Object Parenting and Prefer Auto
Objects which get parented automatically by later processing now pass a nullptr to the constructor to make the intent clearer. Also fixed "true" and "false" not being translatable strings.
2024-08-31 15:11:25 -07:00
mitaclaw f9f0806022 BranchWatchDialog: Disconnect Slots When Hidden 2024-08-31 15:11:24 -07:00
Admiral H. Curtiss e1b1e4b4cf
Merge pull request #13031 from parona-source/libfmt-11
Add support for libfmt-11
2024-08-31 15:34:48 +02:00
Tilka 38b189e13d
Merge pull request #13039 from Dentomologist/mainwindow_fix_hidden_confirm_on_stop_dialog
MainWindow: Prevent Confirm On Stop dialog from being hidden by the Render window
2024-08-31 00:08:45 +01:00
Dentomologist 9bdf862460 MainWindow: Prevent Confirm On Stop dialog from being hidden
Set the Render Window as the parent of the Confirm On Stop confirmation
dialog when Keep Window On Top is enabled, ensuring it will always be
visible.

Previously, when Confirm On Stop and Keep Window On Top were both
enabled the Confirm On Stop dialog could be hidden by the render window
in the following situations:
* Clicking Stop in the Main Window
* Clicking the Main Window's close button
* Pressing the Stop hotkey while in FullScreen mode

This was particularly troublesome because the confirm dialog is modal,
preventing the user from moving the render window out of the way if it
was obscuring the dialog.

Fixes https://bugs.dolphin-emu.org/issues/13247.
2024-08-27 15:28:05 -07:00
Tilka 22ed1dddca
Merge pull request #13037 from Dentomologist/hotkeyscheduler_handle_wiimote_connections_independently
HotkeyScheduler: Handle Wii Remote connections independently
2024-08-27 18:54:52 +01:00
Dentomologist 16bf5a86d3 HotkeyScheduler: Handle Wii Remote connections independently
Allow connecting or disconnecting multiple Wii Remotes simultaneously
instead of only handling the highest index whose hotkey is pressed. This
allows using a single hotkey to toggle multiple remotes.
2024-08-26 21:30:30 -07:00
Dentomologist 9e6a4e9d35 ARCodeWidget: Remove unnecessary call to OnSelectionChanged
Before the call to OnSelectionChange, m_code_edit and m_code_remove are
disabled and UpdateList calls m_code_list->clear(), thereby deselecting
any selected items.

When no items are selected, OnSelectionChange disables m_code_edit and
m_code_remove and then returns. Since that was already done, the call
doesn't change anything and can be removed.
2024-08-25 23:44:17 -07:00
Dentomologist f4db168a8e CheatsManager: Create ARCodeWidget and GeckoCodeWidget only once.
Create ARCodeWidget and GeckoCodeWidget once on startup rather than
every time a game is launched or shutdown.

In addition to losing focus on the tab (since the previous widget and
tab no longer existed), the behavior prior to this commit could cause a
crash if the user initiated a game shutdown and then opened a code edit
window since the AR/GeckoCodeWidget would get deleted in the meantime.
2024-08-25 23:44:17 -07:00
Dentomologist 232d24109d Extract ARCodeWidget/GeckoCodeWidget code loading to functions 2024-08-25 23:44:17 -07:00
Dentomologist ee35aa49a2 ARWidget: Disable Edit and Remove buttons when no code is selected
Also some minor refactoring of nearby/related code:
* Make non-obvious variable types explicit instead of auto.
* Throw some consts around.
* Use setDisabled(empty) instead of setEnabled(!empty).
2024-08-25 23:44:17 -07:00
mitaclaw ffaba26830 BranchWatchDialog: Refactor For LoadQSettings / SaveQSettings 2024-08-24 00:29:53 -07:00
mitaclaw 7b89730daa BranchWatchDialog: Defer Layout Construction When Possible
The main layout, tool controls layout, and misc. controls layout all don't need the QLayout constructed so early.
2024-08-24 00:29:52 -07:00
mitaclaw 9eb79f1d28 BranchWatchDialog: De-lambda-ize Constructor 2024-08-24 00:29:52 -07:00
Alfred Wingate d7c93d87be
Add support for libfmt-11
fmt::join was moved into fmt/ranges.h

Signed-off-by: Alfred Wingate <parona@protonmail.com>
2024-08-22 16:54:35 +03:00
Bryan Jacobs 7ec6d116e8 Graphics: Adapt aspect ratio when SBS/TAB 3D is used
Adds support for choosing to present the full resolution
independently to each eye when using side-by-side or
top-and-bottom 3D.
2024-08-22 07:11:43 +10:00
OatmealDome 93617e96c3
Merge pull request #13029 from JosJuice/sddress
DolphinQt: Fix "Sddress" typo
2024-08-21 12:32:49 -04:00
JosJuice 9f95a8fa8a DolphinQt: Fix "Sddress" typo 2024-08-21 18:12:04 +02:00
Dr. Dystopia 9602f36248 Remove redundant semicolons 2024-08-20 14:59:54 +02:00
NivekH db9b3592e1
Add instructive text to disabled RetroAchievements login button
Changes the RetroAchievements "Log In" button's text to "To log in, stop the current emulation." when the button is disabled because an emulation session is active. This allows a user to understand why the button is disabled, and how this state can be resolved.

Previously, it could be unclear why this button was disabled without an understanding of the underlying system.

Co-Authored-By: JosJuice <josjuice@gmail.com>
2024-08-19 10:15:44 +02:00
JosJuice 0b33d293ee DolphinQt: Simplify the Speed Limit description
The description of the Speed Limit setting currently uses a lot of
complicated terms, like "emulated time" (known to many Dolphin
developers, but in my experience not known by even advanced emulator
users) and "maximum time scale" (I have never heard it before). The
meaning of "sustainable" is also unclear in context.

This commit rewords the description to be easier to understand.
2024-08-18 15:35:19 +02:00
Pokechu22 307c8c273e Fix postprocessing shader not changing when setting stereo mode
Fixes https://bugs.dolphin-emu.org/issues/13593. Before, it would attempt to
use the old shader, which did not exist for the new stereo mode. Changing the
postprocessing shader afterwards would work properly, although passive 3D only
has one option, so it was just broken without restarting Dolphin.

This also fixes the UI not updating when using one of the stereo toggle hotkeys.
2024-08-17 22:09:12 -07:00