Commit Graph

35978 Commits

Author SHA1 Message Date
Martino Fontana 719af828e5 BreakpointWidget: Can create new breakpoints when emulation isn't running
It works perfectly fine, so why not? Also, consistency with CodeViewWidget.
2024-07-05 21:33:23 +02:00
Martino Fontana bd3cf67cbc Debugger: Rework temporary breakpoints
Before:
1. In theory there could be multiple, but in practice they were (manually) cleared before creating one
2. (Some of) the conditions to clear one were either to reach it, to create a new one (due to the point above), or to step. This created weird behavior: let's say you Step Over a `bl` (thus creating a temporary breakpoint on `pc+4`), and you reached a regular breakpoint inside the `bl`. The temporary one would still be there: if you resumed, the emulation would still stop there, as a sort of Step Out. But, if before resuming, you made a Step, then it wouldn't do that.
3. The breakpoint widget had no idea concept of them, and will treat them as regular breakpoints. Also, they'll be shown only when the widget is updated in some other way, leading to more confusion.
4. Because only one breakpoint could exist per address, the creation of a temporary breakpoint on a top of a regular one would delete it and inherit its properties (e.g. being log-only). This could happen, for instance, if you Stepped Over a `bl` specifically, and pc+4 had a regular breakpoint.

Now there can only be one temporary breakpoint, which is automatically cleared whenever emulation is paused. So, removing some manual clearing from 1., and removing the weird behavior of 2. As it is stored in a separate variable, it won't be seen at all depending on the function used (fixing 3., and removing some checks in other places), and it won't replace a regular breakpoint, instead simply having priority (fixing 4.).
2024-07-05 21:33:22 +02:00
Martino Fontana 037de1ce92 Debugger: fix Run to Here
Now it actually does what it says on the name, instead of creating a breapoint and doing nothing else (not even updating the widget).
Also, it now can't be selected if emulation isn't running.
Closes https://bugs.dolphin-emu.org/issues/13532
2024-07-02 18:29:42 +02:00
Martino Fontana 8235c38df7 Debugger: Small other cleanup
Change misleading names.
Fix function usage: Intepreter and Step Out will not check breakpoints in their own wrong way anymore (e.g. breaking on log-only breakpoints).
2024-07-02 18:29:42 +02:00
Martino Fontana 9aeeea3762 Debugger: Small Breakpoint cleanup
Reuse more code, change misleading names, remove useless documentation, add useful documentation
2024-07-02 18:29:42 +02:00
OatmealDome 656a5a18db
Merge pull request #12903 from MayImilae/logos-update
Logo refresh for android, windows, and linux
2024-07-02 02:11:12 -04:00
OatmealDome 1bec2b6484
Merge pull request #12823 from JosJuice/android-new-version-code
Android: Adopt a new versionCode scheme
2024-07-01 22:04:18 -04:00
JMC47 f4c6311b91
Merge pull request #12904 from LillyJadeKatrin/retroachievements-challenge-popups
Add Messages for Challenges
2024-07-01 14:35:15 -04:00
MayImilae 3f71928860 Logo refresh for android, windows, and linux 2024-07-01 06:29:57 -07:00
LillyJadeKatrin 44af48a11f Add Messages for Challenges
Starting or ending a challenge now displays a popup naming and describing the challenge along with the active icon.
2024-07-01 06:56:59 -04:00
Admiral H. Curtiss 0ab2f56258
Merge pull request #12899 from OatmealDome/release-tag-commits-ahead
ScmRevGen: Set commits ahead to zero when on a tag
2024-06-30 20:45:22 +02:00
Tilka 7f0ee9dddd
Merge pull request #12894 from deReeperJosh/infinity-base-numbers
IOS/USB: Use Enum for Infinity Base Positions
2024-06-30 16:04:20 +01:00
Tilka c19187f0c7
Merge pull request #12898 from AdmiralCurtiss/speedhacks
Core/PatchEngine: Remove remnants of Speedhack system
2024-06-30 15:58:51 +01:00
Sintendo 9af7772d91 JitArm64_Paired: Remove unused temp_gpr from ps_arith 2024-06-30 09:54:09 +02:00
Sintendo 0e58b3cfb7 JitArm64_FloatingPoint: Remove unused temp_gpr from fp_arith 2024-06-30 09:53:48 +02:00
JMC47 cff37a9f4f
Merge pull request #12896 from LillyJadeKatrin/retroachievements-visual-improvements
RetroAchievements - Dialog Visual Improvements
2024-06-30 01:30:34 -04:00
OatmealDome 35f383d9b0 ScmRevGen: Set commits ahead to zero when on a tag 2024-06-29 22:59:40 -04:00
LillyJadeKatrin de7bf2b6a5 Move achievement dialog scrollbars to top when changing games 2024-06-29 07:02:17 -04:00
LillyJadeKatrin 0615db9e2e Made progress bars more legible in dark mode 2024-06-29 07:02:17 -04:00
LillyJadeKatrin 56e1c23413 Fixed floating overlapping leaderboard bucket headers 2024-06-29 07:02:17 -04:00
Admiral H. Curtiss bef2275f31
Core/PatchEngine: Remove remnants of Speedhack system
All usages of this have been removed many years ago in cbe9c3e040
2024-06-28 17:57:53 +02:00
Dentomologist c46c010ae3 AchievementManager: Fix -Wignored-qualifiers warning
Fix warning on Android builder by returning bool instead of const bool.
2024-06-27 14:36:14 -07:00
Joshua de Reeper cfcdaab514 IOS/USB: Use Enum for Infinity Base Positions 2024-06-27 20:57:27 +01:00
Admiral H. Curtiss 233ea58446
Merge pull request #12877 from LillyJadeKatrin/retroachievements-auto-update
Update Achievement List when Rich Presence Updates
2024-06-27 20:30:01 +02:00
LillyJadeKatrin 7ffcde3ab3 Fixed misaligned borders on unlocked achievement badges 2024-06-26 22:41:39 -04:00
LillyJadeKatrin 16e868b46a Removed large empty space at the bottom of achievement/leaderboard lists 2024-06-26 22:41:11 -04:00
JosJuice bc67fc97c3 Revert "Audit uses of IsRunning and GetState"
This reverts commit 72cf2bdb87.

SYSCONF settings are getting cleared when they shouldn't be. Let's
revert the change until I get proper time to figure out why it's broken.
2024-06-26 20:36:46 +02:00
LillyJadeKatrin 1a33e28452 Update Achievement Sort and Progress on RP
Whenever a request to update the Rich Presence comes in, typically every ten seconds, the Achievement Progress Widget will update the sort order of the achievements and all of their measured values.
2024-06-25 23:05:56 -04:00
OatmealDome 04b0ceedcd Android: Update copyright year in About dialog to 2024 2024-06-24 15:08:12 -04:00
OatmealDome 9c432e960b AboutDialog: Update copyright year to 2024 2024-06-24 15:06:54 -04:00
OatmealDome f8f117e599 GeneralPane: Update "Beta" auto update track to "Releases" 2024-06-24 15:06:37 -04:00
JMC47 c536754ffe
Merge pull request #12878 from LillyJadeKatrin/retroachievements-hardcore-state-changed
Decouple Hardcore from EmulationStateChanged
2024-06-23 18:13:56 -04:00
Admiral H. Curtiss e9e29daca4
Merge pull request #12872 from LillyJadeKatrin/retroachievements-start-session-bug
Add MemoryVerifier to AchievementManager Startup
2024-06-23 21:18:34 +02:00
Admiral H. Curtiss 2aec195ec8
Merge pull request #12876 from dreamsyntax/advanced-cpu-clock-override-step-adjustment
DolphinQt: Adjust CPU Clock Override slider
2024-06-23 15:28:29 +02:00
Admiral H. Curtiss c337ab6473
Merge pull request #12884 from Tilka/qt_this
DolphinQt: fix some warnings
2024-06-23 15:08:13 +02:00
Admiral H. Curtiss a75c65bde2
Merge pull request #12879 from LillyJadeKatrin/retroachievements-1200-shines
Trim extra characters from measured progress
2024-06-23 15:05:09 +02:00
Admiral H. Curtiss 28692681ad
Merge pull request #12883 from LillyJadeKatrin/retroachievements-cutoff-text
Fix cut off text in Achievements dialog
2024-06-23 14:59:54 +02:00
LillyJadeKatrin bf230a9909 Trim extra characters from measured progress
The measured_progress C string for achievements to display potentially contains junk data after the null terminator, which was rendering in the QString in the dialog. This trims those junk characters.
2024-06-22 23:36:06 -04:00
Admiral H. Curtiss ce2f4101f3
Core/VideoCommon: Revert change from #12828
This causes Dual Core to lock up during the boot sequence, because it tries to wait for a not-yet-running GPU thread.

Fixes https://bugs.dolphin-emu.org/issues/13559
2024-06-23 03:44:05 +02:00
Tillmann Karras 8e7d11d1a1 DolphinQt: fix -Wunused-const-variable warning 2024-06-23 02:38:04 +01:00
Tillmann Karras 5c46716d28 DolphinQt: fix two -Wshadow-uncaptured-local warnings 2024-06-23 02:38:00 +01:00
Tillmann Karras 0f659508ea DolphinQt: fix two -Wunused-lambda-capture warnings
Also clean up signals a bit.
2024-06-23 00:13:58 +01:00
Admiral H. Curtiss 9b33b777cf
Merge pull request #12828 from JosJuice/unify-state-variables-2
Clean up Core::GetState
2024-06-22 20:20:54 +02:00
Admiral H. Curtiss 3e0bd82f81
Merge pull request #12771 from deReeperJosh/moreinfinityslots
IOS/USB Add 2 more Spaces for Disney Infinity figures
2024-06-22 20:03:26 +02:00
Admiral H. Curtiss d49304a629
Merge pull request #12875 from luiscondesdi/updatevkheaders
Vulkan: Update Vulkan headers, VulkanMemoryAllocator
2024-06-22 19:53:10 +02:00
LillyJadeKatrin aa393dfb6e Add MemoryVerifier to AchievementManager Startup
rc_client calls the provided memory peeker asynchronously in the callback for starting a session, to validate/invalidate the memory used for achievements. Dolphin cannot access memory from any thread but host or CPU so this access has a small chance of being invalid. This commit adds a MemoryVerifier that the AchievementManager will use to perform this, before changing the peek method back to the original MemoryPeeker for normal operation.
2024-06-22 09:31:00 -04:00
Luis Condes Diaz 3f64031cbb Migrate Vulkan-Headers to submodule and update to v1.3.288 2024-06-22 08:03:20 +02:00
LillyJadeKatrin e1a8dc65ce Fix cut off text in Achievements dialog 2024-06-22 00:26:52 -04:00
JosJuice 72cf2bdb87 Audit uses of IsRunning and GetState
Some pieces of code are calling IsRunning because there's some
particular action that only makes sense when emulation is running, for
instance showing the state of the emulated CPU. IsRunning is appropriate
to use for this. Then there are pieces of code that are calling
IsRunning because there's some particular thing they must avoid doing
e.g. when the CPU thread is running or IOS is running. IsRunning isn't
quite appropriate for this. Such code should also be checking for the
states Starting and Stopping. Keep in mind that:

* When the state is Starting, the state can asynchronously change to
  Running at any time.
* When we try to stop the core, the state gets set to Stopping before we
  take any action to actually stop things.

This commit adds a new method Core::IsUninitialized, and changes all
callers of IsRunning and GetState that look to me like they should be
changed.
2024-06-21 20:52:55 +02:00
JosJuice 962230f91e Core: Store current state in less places
Core::GetState reads from four different pieces of state: s_is_stopping,
s_hardware_initialized, s_is_booting, and CPUManager::IsStepping.
I'm keeping that last one as is for now because there's code in Dolphin
that sets it directly, but we can unify the other three to make things
easier to reason about.

This commit also gets rid of s_is_started. This was previously used in
Core::IsRunningAndStarted to ensure true wouldn't be returned until the
CPU thread was started, but it wasn't used in Core::GetState, so
Core::GetState would happily return State::Running after we had
initialized the hardware but before we had initialized the CPU thread.
As far as I know, there are no callers that have any real need to know
whether the boot process is currently initializing the hardware or the
CPU thread. Perhaps once upon a time there was a desire to make the
apploader debuggable, but a long time has passed without anyone stepping
up to implement it, and the way CBoot::RunApploader is implemented makes
it rather difficult. So this commit makes all the functions in Core.cpp
consider the core to still be starting until the CPU thread is started.
2024-06-21 20:46:44 +02:00