Commit Graph

31292 Commits

Author SHA1 Message Date
SimoneN64
2dcb612497 Change OperandDesc variables to not be underscore-prefixed in order to comply with https://eel.is/c++draft/lex.name#3.1 (fixes compilation under newlib; e.g. devkitPro) 2024-07-21 18:35:38 +02: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
1fcb2ee5c1
Merge pull request #12936 from vabold/ios-inaccuracy
IOS: Fix return code inaccuracy
2024-07-19 21:27:07 +02: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
8bb2f98c6a Properly Populate Player Index
The player_index field in question is ultimately what gets used to determine which ranks get displayed in the leaderboards chart, and because this was missing the chart was simply displaying the top four results no matter what.
2024-07-17 22:53:15 -04:00
LillyJadeKatrin
5ccd157c94 Re-enable Leaderboards Tab 2024-07-17 22:51:43 -04:00
LillyJadeKatrin
e7504d0b12 Remove Leaderboard Fetch when Getting Info
The cause of the leaderboard spam was primarily this call where if there was an attempt to get leaderboard info and there wasn't already, there would be a fetch request. This is bad for many reasons: some games have hundreds of boards that will be fetched at startup, if there's simply no data to populate that board, this will just continue to fetch every time the dialog needs to update. To mitigate this, I simply don't load leaderboard information until there are events for that leaderboard - less information for the player, sadly, but heavily cuts down on the number of leaderboard fetches.
2024-07-17 22:51:24 -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
63e1419396
AchievementManager: Don't point to stack for login error message 2024-07-15 23:24:04 +02:00
Aiden
c50689355b IOS: Fix return code inaccuracy
Co-Authored-By: Mike <99037623+MikeIsAStar@users.noreply.github.com>
2024-07-15 16:11:15 -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
Admiral H. Curtiss
d665175a2b
AchievementManager: Return the default player and game badges if the current one isn't loaded yet
This saves some copying and fixes an issue where the default badges disappear after a game was closed
2024-07-15 21:55:23 +02:00
Admiral H. Curtiss
b18661f15d
Merge pull request #12931 from AdmiralCurtiss/cannot-pause-message
AchievementManager: Improve error message for repeated pausing
2024-07-15 12:05:45 +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
7a36d5373a
AchievementManager: Improve error message for repeated pausing 2024-07-14 23:09:53 +02: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
a273dc2de2
Merge pull request #12924 from JosJuice/ra-unverified-ini-osd
RetroAchievements: Show OSD messages also for unverified INI files
2024-07-14 04:15:05 +02: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
Admiral H. Curtiss
95933d5158
Merge pull request #12907 from GaryOderNichts/fix/init_ipc_running
IOS::HLE::EmulationKernel::InitIPC: Fix WiiIPC ack generation
2024-07-12 16:48:37 +02:00
LillyJadeKatrin
193c863f20 Disable Leaderboards Tab
Emergency PR to disable the leaderboards tab for launch if we are not satisfied with its testing yet.
2024-07-12 07:45:04 -04:00
GaryOderNichts
82b97ca904 IOS::HLE::EmulationKernel::InitIPC: Fix WiiIPC ack generation 2024-07-11 19:41:28 +02:00
LillyJadeKatrin
e035db9127 Update game progress bar to match achievement progress bar 2024-07-10 18:51:37 -04:00
LillyJadeKatrin
073426ead7 Force progress bar to 100% on completed achievements 2024-07-10 08:51:13 -04:00
JosJuice
1bf12a50c2 RetroAchievements: Show OSD messages also for unverified INI files
Currently we're showing OSD messages for unknown patches in known INI
files, but not for unknown patches in unknown INI files. I don't think
this distinction makes much sense to the user. If there's a patch the
user can't use, they probably want to be aware of that fact.
2024-07-10 13:16:54 +02:00
Admiral H. Curtiss
321c4649a5
Merge pull request #12921 from VampireFlower/master
BreakpointWidget: Correct icon position
2024-07-10 03:25:49 +02:00
VampireFlower
afa6e26e5d BreakpointWidget: Correct icon position
Co-Authored-By: TryTwo <10532806+TryTwo@users.noreply.github.com>
2024-07-09 15:20:56 -07:00
JosJuice
e6b9091ffc RetroAchievements: Skip LoadApprovedList if there are no patches
There being no active patches is by far the most common case, so let's
optimize for this case.
2024-07-09 09:55:51 +02:00
JosJuice
f59678842b RetroAchievements: Delay calling LoadApprovedList
0c14b0c8a7 made Dolphin load a file from
the Sys folder the first time AchievementManager::GetInstance() is
called. Because Android calls AchievementManager::GetInstance() from
setBackgroundExecutionAllowedNative, this had two negative consequences
on Android:

1. The first time setBackgroundExecutionAllowedNative gets called is
   often before directory initialization is done. Getting the path of
   the Sys folder before directory initialization is done causes a crash.
2. setBackgroundExecutionAllowedNative is called from the GUI thread,
   and we don't want file I/O on the GUI thread for performance reasons.

This change makes us load the data from the Sys folder the first time
the data is needed instead. This also saves us from having to load the
data at all when hardcore mode is inactive.
2024-07-09 09:55:07 +02:00
Admiral H. Curtiss
01a2cf8db9
Merge pull request #12919 from JosJuice/set-background-execution-allowed-crash
Fix AchievementManager::SetBackgroundExecutionAllowed crash
2024-07-08 01:13:25 +02:00
JosJuice
95e2064099 Fix AchievementManager::SetBackgroundExecutionAllowed crash
We mustn't use m_system when it is nullptr. This was causing Dolphin to
crash on Android whenever an activity was recreated or resumed while
emulation is running, which is super common.
2024-07-07 23:56:10 +02:00
Admiral H. Curtiss
c4db83ce09
Merge pull request #12920 from TellowKrinkle/XXHashLink
Properly link against xxhash
2024-07-07 23:49:01 +02:00
Admiral H. Curtiss
b10d62cf66
Merge pull request #12913 from LillyJadeKatrin/retroachievements-allowlist-test
RetroAchievements - Patch Allowlist Unit Test
2024-07-07 23:48:09 +02:00
Admiral H. Curtiss
3ca50f7879
Implement File::GetExePath() for FreeBSD 2024-07-07 21:09:50 +02:00
LillyJadeKatrin
0c14b0c8a7 Add Approved Patch Allowlist for Achievements
Prototype of a system to whitelist known game patches that are allowed to be used while RetroAchievements Hardcore mode is active. ApprovedInis.txt contains known hashes for the ini files as they appear in the repo, and can be compared to the local versions of these files to ensure they have not been edited locally by the player. ApprovedInis.txt is hashed and verified similarly first, with its hash residing as a const string within AchievementManager.h, ensuring ApprovedInis and the hashes within cannot be modified without editing Dolphin's source code and recompiling completely.
2024-07-07 13:42:09 -04:00
TellowKrinkle
cab6e7c12e Properly link against xxhash
Things using dolphin_find_optional_system_library need to link against the name used there or they won't work with both the system and bundled cases
2024-07-06 16:56:44 -05:00
Admiral H. Curtiss
02e1b94149
Merge pull request #12905 from LillyJadeKatrin/retroachievements-hotkey
Add Open Achievements Hotkey
2024-07-06 14:23:47 +02:00
LillyJadeKatrin
8b427de28f Remove popups for challenges
The challenge popups have proven to be excessive and are no longer useful thanks to the achievements hotkey. Instead, those events will ask for an immediate RP-level update to the achievements dialog, which will among other things re-sort the dialog to show challenges on top faster.
2024-07-06 07:36:31 -04:00
LillyJadeKatrin
2372b6a386 Add Open Achievements Hotkey
Adds a hotkey to pause emulation and bring up the Achievements dialog.
2024-07-06 07:36:31 -04:00
Martino Fontana
5b13903e6a Intepreter: Step before checking for breakpoints
This way, by pressing Continue on top of a breakpoint, the emulation will actually continue (like on Cached Interpreter and JIT), instead of doing nothing.
2024-07-05 21:33:23 +02:00
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
Admiral H. Curtiss
6ddfdc1483
Merge pull request #12915 from AdmiralCurtiss/sha1-span
Common/Crypto/SHA1: Use span and string_view for Context::Update()
2024-07-05 21:15:00 +02:00
JMC47
2812e6116e
Merge pull request #12851 from iwubcode/texture_asset_from_to_json_sampler
VideoCommon: add way to serialize Texture Asset to json, update to deserialize values independently
2024-07-05 14:36:42 -04:00
Admiral H. Curtiss
5ea3d9fca0
Merge pull request #12856 from LillyJadeKatrin/retroachievements-pause-v2
Handle Pausing in AchievementManager
2024-07-04 22:53:04 +02:00
Admiral H. Curtiss
3a63633be3
Common/Crypto/SHA1: Use span and string_view for Context::Update() 2024-07-04 22:37:07 +02:00
LillyJadeKatrin
bf97305a60
AchievementManager: Cache Badges on Disk
Badges are saved in /User/Cache/RetroAchievements on first download and reused from there instead of redownloaded.
2024-07-04 22:12:28 +02:00
LillyJadeKatrin
360f899f68
Common/Crypto/SHA1: Add DigestToString() utility function 2024-07-04 22:12:20 +02:00
Admiral H. Curtiss
bb4e8d0d01
Merge pull request #12888 from TryTwo/Fix_Window_Titlebar
MainWindow: Bugfix. Windows Dark mode titlebar not being set.
2024-07-04 21:13:19 +02:00
Admiral H. Curtiss
1fb4dbcea4
Merge pull request #12784 from TryTwo/PR_Frame_Advance_Fix
Frame Advance:  Fix UI update spam when continuously advancing.
2024-07-04 20:07:03 +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
GaryOderNichts
b5ccb59feb IOS::HLE::STMImmediateDevice: Add IOCTL_STM_WRITEDMCU 2024-07-02 15:40:59 +02:00
JMC47
f4c6311b91
Merge pull request #12904 from LillyJadeKatrin/retroachievements-challenge-popups
Add Messages for Challenges
2024-07-01 14:35:15 -04: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
LillyJadeKatrin
33081184bb Handle Pausing in AchievementManager
There are two pieces of functionality to be added here. One, we want to disallow pausing too frequently, as it may be used as an artificial slowdown. This is handled within the client, which can tell us if a pause is allowed. Two, we want to call rc_client_idle on a periodic basis so the connection with the server can be maintained even while the emulator is paused.
2024-06-30 07:05:54 -04: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
Sintendo
d877cfa4e2 JitArm64_Integer: Optimize subfic for zero
When the immediate value is zero, we can do a negation. On ARM64 the NEG
/NEGS instructions are just an alias for SUB/SUBS with a hardcoded WZR.

Before:
```
ldr    w22, [x29, #0x28]
mov    w21, #0x0                 ; =0
subs   w22, w21, w22
```

After:
```
ldr    w22, [x29, #0x28]
negs   w22, w22
```
2024-06-29 23:08:02 +02:00
iwubcode
36ccbbc06e VideoCommon: add ability to serialize a texture asset metadata to json 2024-06-29 14:50:40 -05:00
iwubcode
1c3402502b VideoCommon: set individual texture asset filter/wrap values when loading from json 2024-06-29 14:50:40 -05:00
iwubcode
75a0a1ed67 VideoCommon: update texture asset to properly set near sampler state value 2024-06-29 14:50:40 -05: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
TryTwo
f29fe15d77 FrameAdvance: Fix continuous frame advancing while the debug UI is open. Blocks signals from being spammed to update the UI. 2024-06-26 16:19:03 -07: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
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
JosJuice
01b44837f4 Android: Track whether app is in foreground 2024-06-23 18:16:33 -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
TryTwo
81fc60f888 MainWindow: Remove Show() and redistribute its logic to other places.
bugfix:  SetQWidgetWindowDecorations(this); not called before show() for Windows darkmode titlebars.

The actual call to (QWidget) show() needed to come sooner. Show() was originally left alone, but with other checks needing to move with (QWidget) show(), this function became less useful.  Show()  was originally created to fix the render widget appearing behind the main window, but that appears to work fine in this iteration.
2024-06-23 10:49:14 -07: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
Admiral H. Curtiss
8b9ac5d767
Merge pull request #12800 from Tilka/unused_result
AudioCommon: release mutex explicitly to avoid -Wunused-result warning
2024-06-21 20:02:40 +02:00
Admiral H. Curtiss
5728ebf7ad
Merge pull request #12867 from AdmiralCurtiss/uicommon-dependency
CMake dependency fixes
2024-06-21 20:01:44 +02:00
LillyJadeKatrin
d50407d800 Make achievement progress text label transparent
This field was completely hiding the progress bar in dark mode without this.
2024-06-21 07:17:05 -04:00
LillyJadeKatrin
9b9e6c4582 Refactored AchievementProgress UpdateData to Re-Sort
When AchievementProgress::UpdateData(false) is called, it will now empty itself and reinsert all existing boxes, re-sorted into their current buckets, and call UpdateProgress on them all.
2024-06-20 09:03:30 -04:00
LillyJadeKatrin
29f1b82f5e Decouple Hardcore from EmulationStateChanged
Rerendering the entire Achievements dialog every EmulationStateChanged signal is far too often when it turns out that signal fires multiple times to confirm game close, for example. This change results in only the settings changing on EmulationStateChanged, and having the Hardcore mode toggle (which DOES require redrawing the entire dialog) emit its own signal alongside EmulationStateChanged.
2024-06-20 07:59:59 -04:00
deReeperJosh
a87ea694a9 Add 2 More Slots for Power Discs on Emulated Base 2024-06-20 10:22:26 +01:00
LillyJadeKatrin
75c2360aea Split AchievementBox UpdateData
AchievementBox now has UpdateData and UpdateProgress, which is called from UpdateData, but may be called elsewhere to update just the progress measurement of the achievement.
2024-06-19 22:12:30 -04:00
Tillmann Karras
1d8b1715ab AudioCommon: unlock mutex explicitly to avoid -Wunused-result warning 2024-06-20 02:25:15 +01:00
LillyJadeKatrin
45563a872c Scale challenge icons based on screen height 2024-06-19 13:59:59 -04:00
Admiral H. Curtiss
8435bccbc0
Merge pull request #12853 from LillyJadeKatrin/retroachievements-percent-fix
Improved Achievement Progress Label
2024-06-19 19:49:28 +02:00
JMC47
d1874b1fd8
Merge pull request #12873 from LillyJadeKatrin/retroachievements-sorting
Add Sorting to Achievements Dialog
2024-06-19 02:29:48 -04:00
JMC47
9886199cb1
Merge pull request #12859 from LillyJadeKatrin/retroachievements-challenge-hide
Hide Challenge Icons when OSD Messages Disabled
2024-06-19 02:29:08 -04:00
dreamsyntax
55ba014fed DolphinQt: Adjust CPU Clock Override slider
CPU Clock Override slider now increments 1% in the UI, with the new lower limit
being 1% instead of 6%.

Prior implementation made it impossible to set exactly 150% in the GUI.
147% -> 152%. Now users can set exact clock % without needing to edit INIs.
2024-06-18 18:52:35 -07:00
LillyJadeKatrin
6b3a9a0bcd Add Sorting to Achievements Dialog
rc_client provides basic sorting buckets as a possible option when retrieving the list of achievements or leaderboards; this enables them and labels them in the dialog.
2024-06-18 08:20:04 -04:00
Admiral H. Curtiss
a0d8c1088d
Merge pull request #12870 from LillyJadeKatrin/retroachievements-gdb-disable
Disable GDB Stub in Hardcore Mode
2024-06-17 22:39:23 +02:00
Admiral H. Curtiss
69fc754c65
Merge pull request #12799 from mitaclaw/branch-watch-tool-fixes-3
Branch Watch Tool: Add Set Breakpoints Submenu
2024-06-17 22:36:04 +02:00
LillyJadeKatrin
ff25403e0e Disable GDB Stub in Hardcore Mode 2024-06-17 01:07:43 -04:00
mitaclaw
eb26937a93 Branch Watch Tool: Add Set Breakpoints Submenu 2024-06-16 20:46:56 -07:00
JMC47
0c2b8fd587
Merge pull request #12857 from LillyJadeKatrin/retroachievements-osd-tweaks
RetroAchievements On Screen Tweaks
2024-06-16 12:26:58 -04:00
LillyJadeKatrin
9e1f5ed4b5 Stack Challenge Icons Horizontally 2024-06-15 22:42:40 -04:00
LillyJadeKatrin
a79f428972 Fix margins on icon-only messages
Messages with an icon and no text (such as in the game start sequence) had an oversized margin due to ImGui adding padding for an empty string.
2024-06-15 22:42:35 -04:00
LillyJadeKatrin
1b00b4e3d8 OSD messages display horizontally
OSD messages with an icon and text will display the text to the right of the icon instead of below it.
2024-06-15 22:30:39 -04:00
Admiral H. Curtiss
b8381bfa7c
CMake: Make the rcheevos dependency public
Since rcheevos headers are included in AchievementManager.h, and everyone that depends on Core can include that, we must also pass on the include directory and defines to those dependencies
2024-06-15 23:12:19 +02:00
Admiral H. Curtiss
693607f1d3
CMake: Let UICommon depend on Core
This is already the case implicitly by UICommon including several headers from Core, so just make it explicit
2024-06-15 23:12:19 +02:00
Admiral H. Curtiss
c5a030e7ab
VideoCommon: Fix format string injection vulnerability from leaderboards 2024-06-15 23:12:19 +02:00
Admiral H. Curtiss
ed4a09fa56
Merge pull request #12850 from jordan-woyak/device-sorting
ControllerInterface: Adjust sort priorities to ensure default keyboard-mouse device is first.
2024-06-15 21:12:08 +02:00
Jordan Woyak
42e73547eb ControllerInterface: Adjust sort priorities to ensure default keyboard-mouse device is first. 2024-06-15 12:41:25 -05:00
Admiral H. Curtiss
56fd9c177c
Merge pull request #12865 from LillyJadeKatrin/retroachievements-dialog-sizing
Add word wrap to Achievement Dialog text
2024-06-15 18:27:15 +02:00
LillyJadeKatrin
e1ed19d48a Add word wrap to Achievement Dialog text 2024-06-15 11:38:13 -04:00
Admiral H. Curtiss
e282649b57
Merge pull request #12798 from mitaclaw/branch-watch-tool-fixes-2
Branch Watch Tool: Optimizations
2024-06-15 16:57:05 +02:00
Admiral H. Curtiss
a95c3dbc97
Merge pull request #12818 from iwubcode/json_file_operations
Common: add Json helper utilities for loading or saving to a file
2024-06-15 16:43:38 +02:00
Admiral H. Curtiss
f71d6498d0
Merge pull request #12855 from LillyJadeKatrin/retroachievements-challenge-refactor
Refactored Challenge Icons to handle icon updates
2024-06-15 16:24:24 +02:00
Admiral H. Curtiss
1ba040f9a6
Merge pull request #12854 from LillyJadeKatrin/retroachievements-update-dialog
Added missing dialog updates to achievement events
2024-06-15 15:58:22 +02:00
Admiral H. Curtiss
3edc663467
Merge pull request #12816 from Tilka/stm
IOS/STM: fix IPC reply for unknown ioctl requests
2024-06-15 15:31:58 +02:00
Admiral H. Curtiss
3f0f5b3b4e
Merge pull request #12815 from Dentomologist/enable_hotkeys_and_controllers_for_focused_tas_input
TAS Input: Enable emulator hotkeys and controller input when TAS Input window has focus
2024-06-15 15:25:40 +02:00
Admiral H. Curtiss
34f81ad9ac
Merge pull request #12838 from sepalani/sock-reshade
Socket: Fix connect issues when using ReShade
2024-06-15 15:12:51 +02:00
LillyJadeKatrin
cee3d9126b Added missing dialog updates to achievement events
Now should properly update the Achievements dialog whenever the displayed state of an achievement/leaderboard changes.
2024-06-15 07:56:21 -04:00
LillyJadeKatrin
3d5a1f7d33 Refactored Challenge Icons to handle icon updates
If an icon is displayed on screen before it downloads, it was displaying a default icon but it would fail to load the actual icon even after it was downloaded. This fixes that.
2024-06-15 07:36:49 -04:00
JMC47
a13b198ba0
Merge pull request #12860 from LillyJadeKatrin/retroachievements-progress-spam
Only Display One Progress At A Time
2024-06-15 02:42:04 -04:00
LillyJadeKatrin
cb05ed29fe Only Display One Progress At A Time
Add a two second timer to Achievement Progress Indicators to wait until two seconds after the previous message (when it should have decayed out automatically) before posting any new ones.
2024-06-14 23:02:14 -04:00
JMC47
4502b60f71
Merge pull request #12852 from LillyJadeKatrin/retroachievements-speed-limit-fix
Remove Extra Speed Limit Message
2024-06-14 15:38:45 -04:00
LillyJadeKatrin
7eec723f3f Hide Challenge Icons when OSD Messages Disabled 2024-06-14 00:19:45 -04:00
Admiral H. Curtiss
b0f8520a3d
Merge pull request #12849 from LillyJadeKatrin/retroachievements-change-disc-bug
Release Achievement Manager Loaded Volume
2024-06-12 20:02:22 +02:00
LillyJadeKatrin
fe517ad2c6 Remove Extra Speed Limit Message
Prior to this change, attempting to decrease the speed limit below 100% in hardmode would display the new attempted speed and then warn that the speed can not be decreased below 100%; this disables that first message under those conditions.
2024-06-12 06:39:46 -04:00
LillyJadeKatrin
12467ffcfa Improved Achievement Progress Label
Label now appears atop the progress bar and reports the progress as the formatted text returned by rcheevos instead of a simple percentage.
2024-06-12 06:25:26 -04:00
LillyJadeKatrin
d18dc1785d Release Achievement Manager Loaded Volume
AchievementManager maintains a unique pointer to a copy of the current volume so it can asynchronously hash that volume. It is not needed otherwise, so I can release that pointer when hashing is complete. This change fixes a bug whereby changing discs in a game and then changing to a different game would result in the loaded volume pointer still being loaded with and hashing to the previous game.
2024-06-11 23:35:28 -04:00