Commit Graph

36283 Commits

Author SHA1 Message Date
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
Tilka 1e8b3a58b2
Merge pull request #13006 from tygyh/Remove-self-comparison
Remove self-comparison
2024-08-14 19:49:44 +01:00
OatmealDome 1b808789bc
Merge pull request #12986 from mitaclaw/actually-fix-llvm
CMakeLists: Fix LLVM Usage In UICommon
2024-08-14 13:10:44 -04: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
Dr. Dystopia 15500198d8 Remove self-comparison 2024-08-14 14:50:15 +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
Tilka d4ec524f21
Merge pull request #12996 from tygyh/Fix-retro-achievement-comment
Fix comment
2024-08-13 16:35:18 +01:00
Admiral H. Curtiss 54fdeb50b1
Merge pull request #12998 from tygyh/Remove-unused-lambda-capture
Remove unused lambda capture
2024-08-13 16:14:18 +02:00
Dr. Dystopia 49134afb42 Remove unused lambda capture 2024-08-13 10:26:25 +02: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
Carles Pastor 7bef0188af Detect when running inside a flatpak sandbox 2024-08-12 18:53:12 +02: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
OatmealDome 430416484b
Merge pull request #12983 from OatmealDome/mac-updater-embed-3-cleanup
AutoUpdate: Remove the old updater app on macOS if it exists
2024-08-11 01:38:15 -04: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 9c5cd817e3 CMakeLists: Fix LLVM Usage In UICommon
This compile definition was removed in 68cbd2640d because it was complicated by changes in 50dc0ffbce. Thus, the LLVM disassembler would never be used in UICommon's Disassembler class.
2024-08-08 10:14:22 -07: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 feb2b287e8 AutoUpdate: Remove the old updater app on macOS if it exists 2024-08-08 02:51:18 -04: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
mitaclaw e0e0c074ef JITs: Consistently Use Trivial `IsDebuggingEnabled` Getter 2024-08-07 04:44:45 -07: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 603c8fad85
Merge pull request #12961 from JosJuice/expression-parser-translation
InputCommon: Translate ExpressionParser error messages
2024-08-07 03:28:48 +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
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
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
JosJuice c824ee9758
Merge pull request #12829 from Dentomologist/generalpane_add_balloontips
GeneralPane: Add BalloonTips
2024-08-04 15:22:18 +02:00
mitaclaw cde64b6a3d CachedInterpreter: Software JIT Profiling Support 2024-08-02 06:00:56 -07:00
OatmealDome 058000851b AutoUpdate: Use the embedded Updater on macOS 2024-08-01 22:09:52 -04:00
OatmealDome 7c94edb02c CMakeLists: Embed macOS Updater app inside DolphinQt
I accomplish this by adding a new step where a copy of the DolphinQt bundle is created, and then the Updater is inserted into it.
2024-08-01 22:06:55 -04:00
OatmealDome 16acdb630b MacUpdater: Post-process the bundle 2024-08-01 22:06:55 -04: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 cbbffce79a MacUpdater: Switch to mac-codesign script for code signing 2024-08-01 22:06:51 -04:00
Sketch ebb6255441 Display Taiwanese covers for Taiwanese games 2024-08-01 14:42:52 -04:00
OatmealDome f74f748ff6 MacUpdater: Change bundle ID to org.dolphin-emu.updater
The domain "dolphinteam.com" is not under our control, so we shouldn't be using it.
2024-08-01 12:36:53 -04:00
OatmealDome 5c401bd5da MacUpdater: Change CFBundleName to match the bundle's output name 2024-08-01 12:36:53 -04:00
OatmealDome 8499b43501 MacUpdater: Always use the same signing identity as the DolphinQt bundle 2024-08-01 12:36:49 -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
OatmealDome bb5326adf4 DolphinQt: Rename output bundle on macOS to DolphinQt 2024-07-30 21:44:46 -04:00
OatmealDome 0c18393691
Merge pull request #12965 from JosJuice/android-ndk-27
Android: Update to NDK 27.0.12077973
2024-07-30 13:09:53 -04:00
JosJuice 91a323df96 Android: Update to NDK 27.0.12077973 2024-07-30 18:24:48 +02: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
OatmealDome 75d49842c4
Merge pull request #12964 from mitaclaw/jit-profiling-android-correctness
MainAndroid: Thread Correctness In WriteJitBlockLogDump
2024-07-29 16:05:47 -04:00
OatmealDome 4883483d09 MacUpdater: Don't set bundle name via a CMake variable 2024-07-29 12:17:08 -04:00
OatmealDome d4e6bd9d18 MacUpdater: Remove unused variables in CMakeLists 2024-07-29 12:16:13 -04:00
mitaclaw 4f0954dd44 MainAndroid: Thread Correctness In WriteJitBlockLogDump
In a race condition, the core could shut down between the `JitInterface::GetCore` nullptr check and the `JitInterface::JitBlockLogDump` call which constructs a `CPUThreadGuard`. In this scenario, nothing horrible happens—`JitBlockLogDump` also checks for a nullptr—but it would be a failure to display the correct feedback to the user.
2024-07-28 16:10:59 -07:00
OatmealDome 53d2311163
Merge pull request #12960 from mitaclaw/jni-false
MainAndroid: Use JNI_FALSE instead of static_cast<jboolean>(false)
2024-07-28 17:16:32 -04: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
JosJuice defc38b258 InputCommon: Translate ExpressionParser error messages
The _trans macro marks strings for translation but doesn't do anything
at runtime. For that, we need to use a function like GetStringT.
2024-07-28 12:09:15 +02:00
JosJuice 9193045989 Revert "Android: Disable input device sensor input due to crash"
This reverts commit 75fb1a7edf.
2024-07-28 11:29:17 +02:00
JosJuice 59cbe5a843 Android: Add workaround for AOSP input device sensor suspend bug 2024-07-28 11:29:17 +02:00
JosJuice 7b0a7f15b0 Android: Use structural equality for sensorDetails
To fix the crash in input device sensor handling, we should look up
Sensors using structural equality. Unfortunately, Sensor.equals
implements referential equality, and HashMap doesn't let us provide a
custom comparator. Because the number of sensors is relatively small,
and because we have a reason to keep a sorted list of sensors around
anyway, let's switch from HashMap to ArrayList.
2024-07-28 11:29:02 +02:00
mitaclaw 7cafd78ffc MainAndroid: Use JNI_FALSE instead of static_cast<jboolean>(false) 2024-07-27 20:22:25 -07: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
Admiral H. Curtiss 7db5caf43e
Merge pull request #12943 from Tilka/list_recursively
DolphinTool: list filesystem recursively
2024-07-23 19:56:07 +02:00
mitaclaw ffc7bcfbf8 Emitters: Define Trivial Getters Inline 2024-07-21 21:35:29 -07: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 191b36976c DolphinTool: list filesystem recursively 2024-07-21 19:16:00 +01:00
Tilka 7bd2a7bde3
Merge pull request #12945 from Tilka/erase_if
Use C++20 erase_if() instead of erase(remove_if()) (NFC)
2024-07-21 19:06:55 +01:00
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
LillyJadeKatrin ae87bf9af5
Add Unit Test for Patch Allowlist
This unit test compares ApprovedInis.json with the contents of the GameSettings folder to verify that every patch marked allowed for use with RetroAchievements has a hash in ApprovedInis.json. If not, that hash is reported in the test logs so that the hash may be updated more easily.
2024-07-07 21:29:03 +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
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
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 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
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