Commit Graph

14170 Commits

Author SHA1 Message Date
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 2058439598
Merge pull request #13028 from lycheefox/skylanders
Skylanders: Add Mobile Hot Streak and fix typo
2024-08-21 11:44:22 -04:00
lycheefox b71474ec64 Skylanders: Add Mobile Hot Streak and fix typo 2024-08-20 21:45:36 -04:00
Dr. Dystopia 9602f36248 Remove redundant semicolons 2024-08-20 14:59:54 +02:00
Tillmann Karras f358b67205 GameSettings: remove patches for "Wallace & Gromit in Project Zoo"
These patches were added in bde9a459cd
and enabled by default in 36ecfdd6b5.
They allowed the game to run in Dolphin but disabled dynamic shadows.
The game adds 4 to the start address of otherwise valid display lists
for no obvious reason. Now that Dolphin forces 32-byte alignment these
patches are no longer needed.
2024-08-18 05:00:38 +01:00
Tilka 36414bdb55
Merge pull request #12773 from Tilka/zelda_filters
DSPHLE/Zelda: Add two missing filters
2024-08-18 04:52:31 +01:00
Tilka 5f39db5876
Merge pull request #13008 from noahpistilli/kd-get-time-triggers
IOS/KD: Implement Get Time Triggers
2024-08-17 04:19:23 +01:00
Tilka b3652a6fe7
Merge pull request #12889 from mitaclaw/constexpr-bitutils-1
BitUtils: Constexpr BitCastToArray, Remove BitCastFromArray
2024-08-17 03:28:06 +01:00
mitaclaw 6ffd71ffae BitUtils: Constexpr BitCastToArray, Remove BitCastFromArray
`std::bit_cast` participates in overload resolution only if `sizeof(To) == sizeof(From)` and both `To` and `From` are *TriviallyCopyable* types, so the static assertions here can be removed. `[[nodiscard]]` was added as well.
2024-08-16 12:21:49 -07:00
Tilka 07557e5d9c
Merge pull request #13015 from tygyh/Use-boolean-literals
Replace boolean constants with boolean literals
2024-08-16 20:04:45 +01:00
mitaclaw de1c47a701 Misc. Container Find Changes 2024-08-15 14:25:51 -07:00
mitaclaw 9fa4eb9aab Use 'contains' method 2024-08-15 14:20:16 -07:00
Dr. Dystopia 309df9ed5b Replace boolean constants with boolean literals 2024-08-15 07:14:43 +02:00
Sketch 7bc09bba87 IOS/KD: Implement Get Time Triggers 2024-08-14 21:44:36 -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
OatmealDome a345cb0131
Merge pull request #12969 from mitaclaw/cached-interpreter-2.1a-profile
CachedInterpreter: Software JIT Profiling Support
2024-08-14 13:09:34 -04:00
Tilka d4ec524f21
Merge pull request #12996 from tygyh/Fix-retro-achievement-comment
Fix comment
2024-08-13 16:35:18 +01:00
Dr. Dystopia b86291f868 Fix comments 2024-08-13 06:58:23 +02:00
Tilka 5af0ae25e6
Merge pull request #12979 from lycheefox/skylanders
Skylanders: Fix some skylanders and add missing ones.
2024-08-13 03:41:15 +01:00
Tillmann Karras 88bd81931f DSPHLE/Zelda: Add two missing filters
The biquad filter is used in all Pikmin games for cursor sound effects
in the main menu, although the difference is subtle.

The low-pass filter is used at least by Pikmin 2 Wii during the
spaceship crash in the intro and fixes the missing "puff" sound effects
whenever there is black smoke coming out of the engine.
2024-08-13 03:36:09 +01:00
lycheefox 194a5f3996 Skylanders: Fix some skylanders and add missing ones. 2024-08-11 19:34:51 -04:00
JMC47 e4bd14257f
Merge pull request #12783 from Tilka/zelda_square
DSPHLE/Zelda: fix Pikmin 2 save sound (issue 8855)
2024-08-11 14:16:28 -04:00
JosJuice 6cc2133f27
Merge pull request #12811 from JosJuice/ppcanalyst-refactor-mtspr
PPCAnalyst: Refactor mtspr handling code
2024-08-11 15:33:46 +02:00
Dr. Dystopia 8995975892 Replace redundant dereferencing 2024-08-10 14:18:44 +02:00
LillyJadeKatrin 8fac6061ac Display Achievements Message for Old Version
With this change, a different message is displayed if starting a game with RetroAchievements fails due to the Dolphin version being blocked as opposed to failing because the game hash is unsupported.
2024-08-08 21:38:16 -04:00
mitaclaw e0e0c074ef JITs: Consistently Use Trivial `IsDebuggingEnabled` Getter 2024-08-07 04:44:45 -07: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
JMC47 68fe6779eb
Merge pull request #12959 from SuperSamus/sysconf-dirty-fix
Config: Don't depend on `is_dirty` to save SYSCONF during restore
2024-08-05 11:42:56 -04:00
Tilka bc72226668
Merge pull request #12891 from Sintendo/jitarm64-subfic
JitArm64_Integer: Optimize subfic for zero
2024-08-04 23:27:40 +01:00
mitaclaw cde64b6a3d CachedInterpreter: Software JIT Profiling Support 2024-08-02 06:00:56 -07:00
Sketch ebb6255441 Display Taiwanese covers for Taiwanese games 2024-08-01 14:42:52 -04:00
JMC47 8a50676b83
Merge pull request #12952 from LillyJadeKatrin/retroachievements-change-discs-bug
Fixed achievements not working after a disc change.
2024-07-31 19:58:21 -04:00
Martino Fontana 991bce2d68 Config: Don't depend on `is_dirty` to save SYSCONF during restore
`Layer::Save` only does its thing if the layer has `is_dirty == true`.
But SYSCONF could have been modified by other layers, so if the base layer wasn't made dirty by anything else, then it wouldn't be restored.
Fixes https://bugs.dolphin-emu.org/issues/13580
2024-07-27 16:45:33 +02: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
LillyJadeKatrin 347aab7ab3 Fixed achievements not working after a disc change. 2024-07-25 20:46:46 -04:00
mitaclaw 6c3024c3b1 CachedInterpreter: Combine Interpret, CheckDSI, CheckProgram, and WritePC
I tried making the new templated Interpret callback test only the relevant exceptions (EXCEPTION_DSI, EXCEPTION_PROGRAM, or both), but didn't find a significant performance boost in it. As I am learning, the biggest bottleneck is the number of callbacks emitted, not usually the actual contents of them.
2024-07-23 14:09:57 -07:00
mitaclaw ae43b10eff CachedInterpreter: Use `CodeOp::canEndBlock`
This was a bigger performance boost than I expected.
2024-07-23 14:07:02 -07:00
mitaclaw 818647d694 CachedInterpreter: WritePC optimizations
WritePC is now needed far less, only for instructions that end the block. Unfortunately, WritePC still needs to update `PowerPCState::npc` to support the false path of conditional branch instructions. Both drawbacks should be smoothed over by optimized cached instructions in the future.
2024-07-23 14:06:40 -07:00
mitaclaw 0282fa7adb CachedInterpreter: Exception Check Callback Micro-Optimization
This saves two register pushes / pops.
2024-07-23 14:06:22 -07:00
mitaclaw f79520a906 Cached Interpreter 2.0
It now supports variable-sized data payloads and memory range freeing. It's a little faster, too.
2024-07-23 14:06:21 -07:00
Admiral H. Curtiss c71ccb548e
AchievementManager: Fix incorrect check on network request return value in FetchBadge() 2024-07-23 20:49:12 +02:00
Admiral H. Curtiss 2d8f54fdd2
Merge pull request #12862 from SuperSamus/debugger-fixes
Debugger: Various fixes
2024-07-23 20:36:34 +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
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 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
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 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 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 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
GaryOderNichts 82b97ca904 IOS::HLE::EmulationKernel::InitIPC: Fix WiiIPC ack generation 2024-07-11 19:41:28 +02: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
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 b10d62cf66
Merge pull request #12913 from LillyJadeKatrin/retroachievements-allowlist-test
RetroAchievements - Patch Allowlist Unit Test
2024-07-07 23:48:09 +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
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 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 5ea3d9fca0
Merge pull request #12856 from LillyJadeKatrin/retroachievements-pause-v2
Handle Pausing in AchievementManager
2024-07-04 22:53:04 +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
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
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
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
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
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
JosJuice 01b44837f4 Android: Track whether app is in foreground 2024-06-23 18:16:33 -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 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
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
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 5728ebf7ad
Merge pull request #12867 from AdmiralCurtiss/uicommon-dependency
CMake dependency fixes
2024-06-21 20:01:44 +02:00
deReeperJosh a87ea694a9 Add 2 More Slots for Power Discs on Emulated Base 2024-06-20 10:22:26 +01:00
LillyJadeKatrin ff25403e0e Disable GDB Stub in Hardcore Mode 2024-06-17 01:07:43 -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 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