Commit Graph

2720 Commits

Author SHA1 Message Date
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
JosJuice a62f8eac1a DolphinQt: Delete output Sys folder before copying to it
For a long time now, we've had a problem where game INIs persist in
the copied Sys folder if they've been deleted from the original Sys
folder. (I still have hundreds of game INIs locally that only set
EmulationStateId, and we removed those game INIs 6 years ago. On the
buildbot, we do occasionally clear out the build directories manually,
so I'd assume it's not quite as bad there.)

This commit fixes the problem by deleting the output Sys folder before
copying the original Sys folder to the output Sys folder. This should be
a bit slower, but in my testing, the difference seems small. At least if
you have an SSD, which I really hope people have nowadays!

Operating systems other than Windows have not been touched, because:

* Android: Already explicitly deletes the output Sys folder.
* macOS: Does some magic to put the Sys folder in the app bundle, which I
  will simply assume isn't affected by this problem, without testing.
* Linux: Expects the person building to manually manage the Sys folder.
2024-08-16 21:09:10 +02:00
JosJuice 30c58eba96 MSBuild: Use SkipUnchangedFiles with Copy
Just a bit of simplification.
2024-08-16 21:09:10 +02:00
Tilka 45d6653a6d
Merge pull request #13010 from OatmealDome/goodbye-steam
Remove Steam support
2024-08-16 20:03:38 +01:00
Tillmann Karras 214756dd18 Small wording changes for dump conversions 2024-08-16 18:39:23 +01:00
Tilka d10c3aaf29
Merge pull request #13012 from mitaclaw/Use-contains-method-2
Use contains method 2
2024-08-16 18:31:07 +01:00
LillyJadeKatrin 8bcaf6ef26 Fixed missing game badge in achievements dialog 2024-08-15 21:48:50 -04:00
mitaclaw 9fa4eb9aab Use 'contains' method 2024-08-15 14:20:16 -07:00
OatmealDome c28fd445d7 DolphinQt: Remove Steam runtime build support 2024-08-15 12:42:16 -04:00
OatmealDome 8a93620d06 DolphinQt: Remove entitlements for Steam overlay 2024-08-15 12:42:15 -04:00
Tilka 18ac8bf405
Merge pull request #12990 from tygyh/Use-contains-method
Use 'contains' method
2024-08-14 23:54:16 +01:00
Dr. Dystopia 618b41a459 Use 'contains' method 2024-08-14 22:18:28 +02:00
Tilka d5522e218f
Merge pull request #12997 from tygyh/Remove-constness
Constness of 'result' prevents automatic move [performance-no-automatic-move]
2024-08-14 02:28:23 +01:00
Tilka f712ea71f1
Merge pull request #13004 from Dentomologist/menubar_update_select_state_slot_on_hotkey
MenuBar: Update checkmarked Select State Slot when hotkeys are pressed
2024-08-14 02:27:36 +01:00
Dentomologist 134313e313 MenuBar: Update checkmarked Select State Slot when hotkey pressed
Update the checkmarked slot in the Select State Slot menu when the
Increase Selected State Slot or Decrease Selected State Slot hotkeys are
pressed.

The actual selected save slot was being changed correctly before this
commit; this just fixes the menu checkmark.
2024-08-13 12:53:29 -07:00
Dr. Dystopia c6eb7c566d Constness of 'result' prevents automatic move [performance-no-automatic-move] (0 issues) 2024-08-13 21:51:43 +02:00
Dr. Dystopia 49134afb42 Remove unused lambda capture 2024-08-13 10:26:25 +02:00
mitaclaw 8e546e79aa DolphinQT: Listen For `clicked` Signal Rather Than `pressed`
The latter signal was likely used by mistake, e.g. https://github.com/dolphin-emu/dolphin/pull/8263.
2024-08-08 08:09:38 -07:00
OatmealDome 644508cfd7
Merge pull request #12968 from OatmealDome/mac-updater-embed-3
Embed the Updater into DolphinQt's app bundle on macOS
2024-08-08 02:07:58 -04:00
Tilka 9ae560d8a0
Merge pull request #12947 from Dentomologist/qtutils_clearlayoutrecursively_fix_potential_crash
QtUtils/ClearLayoutRecursively: Fix potential crash
2024-08-07 03:29:52 +01:00
Tilka e736d611fc
Merge pull request #12963 from JosJuice/i18n-2024-07-28
i18n: Add comments and improve source strings
2024-08-07 03:28:01 +01:00
Tilka 56e7e37d4f
Merge pull request #12957 from Dentomologist/adjust_include_order_and_spacing
Adjust order and spacing of various #includes
2024-08-07 03:27:23 +01:00
Dentomologist 316f7bfcbf GeneralPane: Fix building with analytics disabled
Add #if statements to only create and set analytics descriptions if
analytics are enabled in the build settings.
2024-08-06 14:30:33 -07:00
Tilka 0fe2abf53c
Merge pull request #12973 from Tilka/debugger
Debugger: keep breakpoints ordered by address
2024-08-06 19:58:24 +01:00
Tillmann Karras f1366a4546 Debugger: keep breakpoints ordered by address
Previously, breakpoints would move to the end of the list whenever
they were edited.
2024-08-04 19:36:20 +01:00
OatmealDome 37a7b1e5c9 DolphinQt: Switch to mac-codesign script for code signing 2024-08-01 22:06:55 -04:00
OatmealDome 22dda0b0c4 DolphinQt: Disable Xcode code signing to avoid double code signing 2024-08-01 22:06:55 -04:00
OatmealDome bb5326adf4 DolphinQt: Rename output bundle on macOS to DolphinQt 2024-07-30 21:44:46 -04:00
Dentomologist 6a735f3758 GeneralPane: Add BalloonTip to generate new identity checkbox 2024-07-29 14:00:46 -07:00
Dentomologist 5512b68020 GeneralPane: Add BalloonTip to enable analytics checkbox 2024-07-29 14:00:46 -07:00
Dentomologist bfbc4c8cc7 GeneralPane: Add BalloonTip to fallback region combobox 2024-07-29 14:00:46 -07:00
Dentomologist fa4803f38a GeneralPane: Add BalloonTip to auto update combobox 2024-07-29 14:00:46 -07:00
Dentomologist 427b85f2a1 GeneralPane: Add BalloonTip to speed limit combobox 2024-07-29 14:00:46 -07:00
Dentomologist 809b8a683f GeneralPane: Add BalloonTip to discord presence checkbox 2024-07-29 14:00:46 -07:00
Dentomologist ce0ab58dc9 GeneralPane: Add BalloonTip to auto disc change checkbox 2024-07-29 14:00:46 -07:00
Dentomologist 755866b771 GeneralPane: Add BalloonTip to override region settings checkbox 2024-07-29 14:00:46 -07:00
Dentomologist d9336a5de0 GeneralPane: Add BalloonTip to cheats checkbox 2024-07-29 14:00:46 -07:00
Dentomologist b2107023ba GeneralPane: Add BalloonTip to dualcore checkbox 2024-07-29 14:00:46 -07:00
JosJuice 9d2f5245f4 i18n: Add comments and improve source strings
Most of these changes are to improve consistency in capitalization.
2024-07-28 14:38:20 +02:00
MayImilae 9a730bacce Change Dual Core (speedup) to Dual Core (speedhack) 2024-07-28 03:56:58 -07:00
Dentomologist d627b78c46 Adjust order and spacing of various #includes
Move some #includes around to match the Contributing guidelines.
2024-07-26 14:28:34 -07:00
Admiral H. Curtiss 2d8f54fdd2
Merge pull request #12862 from SuperSamus/debugger-fixes
Debugger: Various fixes
2024-07-23 20:36:34 +02:00
Dentomologist 384e044437 QtUtils/ClearLayoutRecursively: Fix potential crash
Use QObject->deleteLater() instead of the delete operator to destroy
child widgets of the layout. This prevents crashes caused by pending
events trying to access the now-destroyed widget.
2024-07-21 17:36:05 -07:00
Tillmann Karras 982893b04c Use C++20 erase_if() instead of erase(remove_if()) (NFC) 2024-07-21 16:36:06 +01:00
Admiral H. Curtiss 139e6f6f1b
Merge pull request #12941 from LillyJadeKatrin/retroachievements-leaderboard-spam-fix
RetroAchievements - Leaderboard Spam Fix
2024-07-18 21:15:38 +02:00
LillyJadeKatrin 5ccd157c94 Re-enable Leaderboards Tab 2024-07-17 22:51:43 -04:00
LillyJadeKatrin d19aa934ae Fixed incorrect unlock information in Achievements dialog 2024-07-17 04:36:53 -04:00
OatmealDome cc3ff347b4
Merge pull request #12928 from LillyJadeKatrin/retroachievements-disable-lboard-tab
Disable Leaderboards Tab
2024-07-15 21:33:08 -04:00
Admiral H. Curtiss 50b318cc31
Qt/AchievementHeaderWidget: Don't crash when we get an empty player or game badge 2024-07-15 21:55:47 +02:00
OatmealDome 12a1607385
Merge pull request #12749 from LillyJadeKatrin/retroachievements-menubar
Show Achievements in Menu Bar always
2024-07-14 19:13:08 -04:00
Admiral H. Curtiss a0fc8e6b13
Merge pull request #12929 from LillyJadeKatrin/retroachievements-leaderboard-fixes
Fix Leaderboards Tab
2024-07-14 16:47:59 +02:00
LillyJadeKatrin 0108ecebcb Fix Leaderboards Tab
Now that we have some test data, it wasn't showing up in the leaderboards tab; this fixes it to ensure (1) that the right ID is being passed to UpdateRow and (2) the map of leaderboard entries is being populated correctly.
2024-07-14 10:13:27 -04:00
Admiral H. Curtiss f928fe97af
Merge pull request #12925 from LillyJadeKatrin/retroachievements-unlocked-progress
Achievements Progress Bar Tweaks
2024-07-14 04:11:02 +02:00