Commit Graph

35973 Commits

Author SHA1 Message Date
Dentomologist d1ac66824e
InterfacePane: Add BalloonTip to disable screensaver checkbox 2024-05-31 19:03:19 +02:00
Dentomologist 26758716ae
InterfacePane: Add BalloonTip to use covers checkbox 2024-05-31 19:01:43 +02:00
Dentomologist 78ab53a6e4
InterfacePane: Add BalloonTip to focused hotkeys checkbox 2024-05-31 19:01:03 +02:00
Dentomologist afe5bfd512
InterfacePane: Add BalloonTip to debugging enabled checkbox 2024-05-31 18:59:24 +02:00
Dentomologist 7d704ca9ca
InterfacePane: Add BalloonTip to language combobox 2024-05-31 18:57:28 +02:00
Dentomologist 266bbeefc8
InterfacePane: Add BalloonTip to top window checkbox 2024-05-31 18:52:22 +02:00
Dentomologist 55aaa323ec
InterfacePane: Add BalloonTip to theme combobox 2024-05-31 18:52:13 +02:00
Dentomologist ae0914174f
InterfacePane: Add BalloonTip to title database checkbox 2024-05-31 18:25:47 +02:00
Admiral H. Curtiss 072b6cdb1d
Merge pull request #12797 from mitaclaw/branch-watch-tool-fixes-1
Branch Watch Tool: Fixes
2024-05-31 18:11:36 +02:00
Admiral H. Curtiss cd9521f293
Merge pull request #12807 from TacoTheDank/cleanupProguard
Android: Clean up ProGuard
2024-05-31 17:41:20 +02:00
Admiral H. Curtiss 729669f7b1
Merge pull request #12808 from TacoTheDank/fixGradleDeprecation
Android: Fix Gradle deprecation
2024-05-31 17:40:26 +02:00
OatmealDome c3e0aeb184
Merge pull request #12728 from OatmealDome/mac-version-numbers-2
ScmRevGen: Generate Info.plist files containing the current version
2024-05-30 01:13:32 -04:00
Tillmann Karras 5255fe5f74 DolphinTool: support WAD verification 2024-05-28 19:00:00 +01:00
LillyJadeKatrin 8e33a5778e Properly reset Discord presence after game close
Also fixed an Achievement log that was reporting even when achievements were disabled.
2024-05-27 17:52:13 -04:00
Tilka 8582644058
Merge pull request #12796 from JosJuice/interpreter-cr0-so-gt
Interpreter: Fix GT when setting SO of CR
2024-05-26 17:57:06 +01:00
JosJuice e88e641bc0 Jit64: Clean up the test_bit variable
Using shifts and bit tests makes the code unnecessarily annoying to
reason about. I'm replacing it with subtracting from 3 to translate the
bit order from the PowerPC format to the usual format.
2024-05-26 09:04:25 +02:00
JosJuice 921d711113 Jit: Clarify FixGTBeforeSettingCRFieldBit comment 2024-05-26 08:32:25 +02:00
TacoTheDank 51f4dfabc2 Android: Fix Gradle deprecation 2024-05-25 22:13:25 -04:00
TacoTheDank 5a6fbc4c57 Android: Clean up ProGuard 2024-05-25 21:56:19 -04:00
TryTwo b7b0842d2f BreakpointWidget: Fix Qt centering issues with a Custom Delegate 2024-05-25 17:09:21 -07:00
TryTwo d96840f808 BreakpointWidget: Move delete to the context menu. Selecting rows will be removed, so select -> delete is hard to maintain. 2024-05-25 17:09:21 -07:00
Tillmann Karras 4619db2ae9 DiscIO: drop unused Volume::CheckContentIntegrity() overload
The offset-based overload hasn't been in use since
f754a1a548.
2024-05-26 00:10:26 +01:00
Tilka f35e8e62e6
Merge pull request #12795 from JosJuice/remove-isbranchtarget
PPCAnalyst: Remove unused member isBranchTarget
2024-05-25 23:10:17 +01:00
Tilka 52f51d0d87
Merge pull request #12802 from JosJuice/ppcanalyst-bi-shift
PPCAnalyst: Fix handling of FL_READ_CR_BI
2024-05-25 23:01:45 +01:00
JosJuice 30eff8e37c PPCAnalyst: Fix handling of FL_READ_CR_BI
BI contains both the field and the flag (5 bits total), so we need to
shift away the 2 flag bits to get the 3 field bits. (Same as the
CRBA/CRBB handling in the code just below the BI code.)
2024-05-25 18:13:38 +02:00
mitaclaw 3b214a4978 BranchWatchDialog: Resolve Linux FIXME
This stopped being an issue for me with a recent package update, so I guess Qt6 was fixed upstream?
2024-05-25 06:22:45 -07:00
mitaclaw 4a2ec86a9a Branch Watch Tool: Add Rule Of 5 And Remove Unnecessary Include 2024-05-25 06:22:44 -07:00
mitaclaw ecce8e81c8 BranchWatchDialog: Case-Insensitive Sorting 2024-05-24 15:42:04 -07:00
JosJuice 46dc406325 Interpreter: Fix GT when setting SO of CR
This is the same fixup as in Jit64::FixGTBeforeSettingCRFieldBit.
2024-05-24 21:21:46 +02:00
JosJuice f6aca69ea0 PPCAnalyst: Remove unused member isBranchTarget
Branch targets always start a new block, so this variable isn't useful.
2024-05-24 20:51:39 +02:00
Admiral H. Curtiss 222a393080
Merge pull request #12782 from brad0/openbsd_arm64
Add OpenBSD/arm64 support.
2024-05-23 21:38:57 +02:00
LillyJadeKatrin 1e9e0cd2d7
Remove names from badge objects
The names attached to the BadgeStatus object are obsolete and unneeded and are removed from everything that uses them. All BadgeStatus references are updated to just Badge.
2024-05-23 21:29:23 +02:00
LillyJadeKatrin 3b61b6d816
Add Default Achievement Badges
The defaults get loaded in by Dolphin at emulator start, and are used if the badge that would normally be displayed has not for whatever reason been downloaded yet. Badges attached to this PR are placeholders (MayIMilae is designing permanent badges) and reside in Sys\Load\RetroAchievements.
2024-05-23 21:29:15 +02:00
LillyJadeKatrin dc8f3f6eae Refactored Achievement Badges into Texture Layers
Achievement badges/icons are refactored into the type CustomTextureData::ArraySlice::Level as that is the data type images loaded from the filesystem will be. This includes everything that uses the badges in the Qt UI and OnScreenDisplay, and similarly removes the OSD::Icon type because Level already contains that information.
2024-05-23 10:41:45 -04:00
LillyJadeKatrin 75465f00cc Remove Badges Enabled option from Achievements
Was informed by the RetroAchievements team that this isn't an option in most emulators, and as the next commits will be to enable default icons, there will always be something to display.
2024-05-23 10:40:08 -04:00
TryTwo 564d4c3c25 MainWindow: Initialize geometries before calling GetWindowSystemInfo.
On Windows:
wsi.render_window being set will set/save the initial geometry, which will cause sizing bugs until it's set again by the user resizing/repositioning.
2024-05-22 21:27:50 -07:00
Admiral H. Curtiss e0e09d1074
Merge pull request #12792 from JosJuice/android-vibrators-crash
Android: Fix crash when no devices have outputs
2024-05-23 00:04:05 +02:00
Admiral H. Curtiss 578a3ce543
Merge pull request #12722 from JosJuice/jitarm64-mtfsfix-minor
JitArm64: Minor mtfsfix optimization
2024-05-22 23:54:29 +02:00
Brad Smith 57963c87d8 Add OpenBSD/arm64 support.
Fix building on OpenBSD/arm64 and add CPU feature detection.
2024-05-22 14:32:37 -04:00
Admiral H. Curtiss 35ee08ba9f
Merge pull request #12736 from mitaclaw/minizip-ng-update
Externals: Update minizip-ng to 4.0.5 and convert to submodule
2024-05-21 22:21:56 +02:00
Admiral H. Curtiss 5c2f73986a
Merge pull request #12537 from TellowKrinkle/MTLSubgroup
VideoCommon: More specific subgroup op bugs
2024-05-21 22:17:22 +02:00
Admiral H. Curtiss 321dc9b76d
Merge pull request #12711 from jordan-woyak/modifier-range-ini-default
InputCommon: Fix unnecessary "Modifier/Range" ini file entries.
2024-05-21 22:11:42 +02:00
Admiral H. Curtiss abc8aa2237
Merge pull request #12764 from Sintendo/jitarm64-temp-regs
JitArm64: Skip temp regs where possible
2024-05-21 22:06:21 +02:00
Admiral H. Curtiss a64b796df0
Merge pull request #12787 from iwubcode/imgui_mouse_clicks_queue
VideoCommon: use imgui input queue for mouse clicks
2024-05-21 22:01:45 +02:00
Admiral H. Curtiss b9a2c18cb3
Merge pull request #12788 from iwubcode/hotkey_frame_advance_host_thread
DolphinQt: trigger frame advance from hotkeys on the host thread
2024-05-21 21:52:05 +02:00
JosJuice 7a4740adf7 Android: Fix crash when no devices have outputs
Regression from 5171290bdb.
2024-05-20 21:36:00 +02:00
Admiral H. Curtiss cb71d84908
Merge pull request #12786 from AdmiralCurtiss/config-window-fix
DolphinQt/Settings/GeneralPane: Don't emit a ConfigChanged signal while saving config
2024-05-20 13:52:48 +02:00
JosJuice 3e046c2b32 DolphinQt: Fix double argument in Infinity error message
This was a mistake I made in 83b280d903.
2024-05-19 21:52:49 +02:00
iwubcode 4f1a5e0b3a DolphinQt: trigger frame advance from hotkeys on the host thread (the underlying SetState is only valid on the host thread) 2024-05-18 11:54:12 -05:00
iwubcode d7a8ec4353 VideoCommon: use imgui input queue for mouse clicks, this helps keep input smooth regardless of frame-times and matches keyboard events, this system was introduced in 1.87 2024-05-18 11:49:19 -05:00
Admiral H. Curtiss 626369fc00
DolphinQt/Settings/GeneralPane: Don't emit a ConfigChanged signal while saving config
Doing this causes the settings to be reloaded before they're done saving, effectively discarding the user's changes.
2024-05-18 15:45:10 +02:00
JosJuice 892bba9768 Jit64: Remove outdated comment about R12
This comment was added 15 years ago in 1c1425a406. The bug the comment
refers to was fixed one day later in 41ce35deb3.
2024-05-18 14:54:33 +02:00
Admiral H. Curtiss fd3867ac5b
Merge pull request #12755 from LillyJadeKatrin/retroachievements-discord
RetroAchievements - Discord Presence
2024-05-18 14:29:52 +02:00
Joshua de Reeper c206ce846a Change Default Skylander File Selection Types 2024-05-17 02:52:50 +01:00
Eric Warmenhoven dc9d337b79 Fix build with Xcode 15.4 by bumping MoltenVK version to 1.2.8 2024-05-14 00:06:31 -04:00
OatmealDome 7ba539d796
Merge pull request #12766 from mitaclaw/arm64-xreg-assert
Arm64FloatEmitter: 64-Bit Assert In ABI_PushRegisters
2024-05-10 00:08:55 -04:00
LillyJadeKatrin 2328539a76 Add Discord Presence setting to Achievement Settings dialog
Setting is only enabled when Rich Presence is enabled. Toggling either Rich Presence or Discord Presence will immediately update the Discord status.
2024-05-08 07:08:31 -04:00
OatmealDome 50386c4e39
Merge pull request #12740 from mitaclaw/breakpoint-before-fpu-exception
Jit64/JitArm64: Check Breakpoints Before FPU Availability
2024-05-08 01:26:08 -04:00
LillyJadeKatrin 57c8ea12ed Send Rich Presence to Discord
If Rich Presence and Discord Presence are enabled in Achievement Settings, the string generated by rcheevos as the player's current Rich Presence will be sent to the Status field in the Discord Presence object. This will be updated whenever Rich Presence updates.
2024-05-08 00:33:33 -04:00
LillyJadeKatrin 5768d82662 Add Discord Presence flag to Achievement Settings
When enabled, this will send Rich Presence to Discord to be displayed in players' statuses.
2024-05-08 00:28:55 -04:00
mitaclaw 28f8ab9e8a Arm64FloatEmitter: 64-Bit Assert In ABI_PushRegisters 2024-05-07 13:51:50 -07:00
Bram Speeckaert b63808a652 JitArm64: rlwimix - Conditionally skip temp reg allocation 2024-05-07 21:12:34 +02:00
Bram Speeckaert f7c97ae654 JitArm64: srawx - Conditionally skip temp reg allocation 2024-05-07 21:12:24 +02:00
Bram Speeckaert 0189692ea3 JitArm64: divwx - Conditionally skip temp reg allocation 2024-05-07 21:11:49 +02:00
Bram Speeckaert defe97d9f1 JitArm64: addex - Skip temp reg allocation 2024-05-07 21:11:49 +02:00
Bram Speeckaert 5d647251f7 JitArm64: subfic - Conditionally skip temp reg allocation 2024-05-07 21:11:49 +02:00
JosJuice 2c91367429
Merge pull request #12737 from nlebeck/settingshandler-split
Eliminate SettingsHandler's `SetBytes` and `Reset` methods
2024-05-05 22:35:23 +02:00
Admiral H. Curtiss 485bdba98e
Merge pull request #12760 from AdmiralCurtiss/win-cmake-fix
Fix building with CMake on Windows
2024-05-05 19:40:25 +02:00
Tilka 98529a9d2e
Merge pull request #12694 from Tilka/zelda4
DSPHLE/Zelda: set COMBINED_CMD_0D flag appropriately
2024-05-05 14:43:06 +01:00
Admiral H. Curtiss 1a2e315880
Merge pull request #12761 from mitaclaw/core-global-system-5
Core::SetState: Avoid Global System Accessor
2024-05-04 18:19:50 +02:00
Admiral H. Curtiss 98f0f844fb
Merge pull request #12763 from LillyJadeKatrin/retroachievements-welcome
Retooled Achievements Welcome Message
2024-05-04 18:14:43 +02:00
Admiral H. Curtiss 3029d8a47f
Merge pull request #12729 from JosJuice/no-discard-at-breakpoint
PPCAnalyst: Prevent discarding registers around breakpoints
2024-05-04 18:07:02 +02:00
Admiral H. Curtiss 1b19a75600
Merge pull request #12560 from sepalani/bba-poll
BBA/HLE: Increase polling efficiency
2024-05-04 17:43:24 +02:00
Admiral H. Curtiss c26373bd95
Merge pull request #12738 from mitaclaw/expression-sprs
Expression: Support All SPRs + MSR
2024-05-04 17:35:12 +02:00
LillyJadeKatrin 91764fd28f Retooled Achievements Welcome Message
The "welcome message" that shows up to players when a game starts up and Achievements are active will now either tell the player upon load that there's no support for achievements, or will wait until the first attempt to load the game's badge either succeeds or fails and then display a full message with title and progress and status. This is in part facilitated by a boolean field for when to display a welcome message, set to true upon loading and to false upon a message being displayed.
2024-05-04 11:29:41 -04:00
Admiral H. Curtiss 0daf4d1281
Merge pull request #12762 from mitaclaw/dead-config-code
PowerPC: Remove Dead Config Code
2024-05-04 16:23:36 +02:00
Tilka c442c0d5e5
Merge pull request #10957 from Pokechu22/std-bitcast
Replace Common::BitCast with std::bit_cast
2024-05-04 08:24:59 +01:00
mitaclaw 2b337aec58 PowerPC: Remove Dead Config Code 2024-05-03 21:54:47 -07:00
mitaclaw 0b04975c26 Core::SetState: Avoid Global System Accessor 2024-05-03 21:04:44 -07:00
Admiral H. Curtiss 5d49500456
DolphinNoGUI: Link against dwmapi.lib on Windows in CMake
Required since 2b261b9306
2024-05-04 05:19:01 +02:00
Admiral H. Curtiss c23562b7b5
Merge pull request #12695 from mitaclaw/core-global-system-4
Core::IsRunning: Avoid Global System Accessor
2024-05-04 05:15:35 +02:00
Admiral H. Curtiss e2dc6f3225
Merge pull request #12751 from guijan/improv-nbsd
improve NetBSD-specific code
2024-05-04 04:27:53 +02:00
Pokechu22 fbbfea8e8e Replace Common::BitCast with std::bit_cast 2024-05-03 18:43:51 -07:00
LillyJadeKatrin 42ca39c6fe Hide Achievement Dialog Header When Disabled
If achievements were disabled but a player token is in settings, prior to this change the Achievement Manager dialog would show a box with no player name and score zero, which is unnecessary.
2024-05-03 21:35:01 -04:00
mitaclaw 076bdf7a24 Expression: Support All SPRs + MSR 2024-05-03 17:56:58 -07:00
mitaclaw ba462578ac Externals: Update minizip-ng to 4.0.5
Also update unzLocateFile to the minizip-ng 4.0.4+ signature and document new unused files.
2024-05-03 12:43:55 -07:00
mitaclaw 0acdd404e3 Externals: Convert minizip-ng To Submodule
Due to an oversight in our CMakeLists, pkg-config would attempt to find *minizip* 3.0.0 (which doesn't exist) instead of *minizip-ng* 3.0.0, or at least it was on my Manjaro Linux machine. This has been fixed. The new submodule is using minizip-ng 3.0.4, the same version that was being used before.
2024-05-03 12:43:33 -07:00
Admiral H. Curtiss 57c890d4fc
Merge pull request #12756 from guijan/fix-llvm
fix linking against LLVM shared library
2024-05-03 19:42:58 +02:00
Guilherme Janczak 0859d2c472
improve NetBSD-specific code
NetBSD doesn't put packages in /usr/local like /CMakeLists.txt thought.
The `#ifdef __NetBSD__` around iconv was actually breaking compilation
on NetBSD when using the system libiconv (there's also a GNU iconv
package)
A C program included from C++ source broke on NetBSD specifically, work
around it.

This doesn't fix compilation on NetBSD, which is currently broken, but
is closer to correct.
2024-05-03 15:12:29 +00:00
Admiral H. Curtiss 42583deea7
Merge pull request #12754 from LillyJadeKatrin/retroachievements-possiblememoryleakfix
Fix possible memory leak in an Achievement Manager callback
2024-05-03 17:10:04 +02:00
Guilherme Janczak 68cbd2640d
fix linking against LLVM shared library
967280f140 broke linking against
libLLVM.so because it used the outdated way to link against LLVM from
CMake. This causes a compilation failure on systems that don't have the
LLVM static libraries, such as Arch Linux. On systems that have the
static libraries, it'll use them and increase binary sizes massively.

Switch to the newer llvm_config CMake macro from LLVM.
2024-05-03 11:56:15 +00:00
LillyJadeKatrin fc64b43fae Fix possible memory leak in an Achievement Manager callback 2024-05-03 00:11:38 -04:00
Admiral H. Curtiss 5817be7bd3
Merge pull request #12747 from mitaclaw/qt-memory-leaks
DolphinQt: Properly Delete (Some) Widgets
2024-05-02 17:30:49 +02:00
Admiral H. Curtiss 967280f140
Merge pull request #12716 from guijan/obsd-port
port to OpenBSD
2024-05-02 16:42:31 +02:00
LillyJadeKatrin ad969dfc0d Disabled Hardcore Mode when Achievements disabled
Bugfix for hardcore-disabled items being disabled when hardcore was true but achievement integration was false, which should mean hardcore is effectively disabled. Now everything checks the IsHardcoreModeActive method in AchievementManager which processes the setting AND the game state to determine if hardcore mode is actually active.
2024-05-02 04:44:52 -04:00
mitaclaw 0df401b164 Core::IsRunning: Avoid Global System Accessor 2024-05-01 08:54:17 -07:00
JMC47 b71fdef356
Merge pull request #12639 from LillyJadeKatrin/retroachievements-client
Refactor AchievementManager from rc_runtime to rc_client
2024-05-01 11:20:02 -04:00
LillyJadeKatrin d8ef3ee6c5 Add Spectator Mode to achievement settings
Spectator Mode is a new mode added by rc_client that allows for achievement and leaderboard functionality, but does not submit this data to the site, partially allowing for offline achievements. It effectively replaces the former settings for disabling achievements, leaderboards, and RP, which are now always active internally as long as the client is active.
2024-05-01 07:04:32 -04:00
LillyJadeKatrin fd0de1b01f Updated Unofficial and Encore settings to use rc_client
These settings now only are applied at game start and their tooltips have been updated to reflect this.
2024-05-01 07:04:32 -04:00
LillyJadeKatrin 0883aa114e Update hardcore toggle to use rc_client
The client can take care of itself and handle its own hardcore status when it toggles, so I can tell the settings widget to contact the manager directly to set it.
Also, gradually reorganizing the settings dialog over the next handful of commits.
2024-05-01 07:04:32 -04:00
LillyJadeKatrin 9a40ec06b5 Remove Achievements/Leaderboards/RP Enabled settings
The RetroAchievements client object now handles these three settings as a singular "spectator" mode that will be added in a future commit.
2024-05-01 07:04:32 -04:00
LillyJadeKatrin 3bf5b8e610 Handle Reset and Server Error client events. 2024-05-01 07:04:32 -04:00
LillyJadeKatrin b05028da1f Added Change Media client functionality to AchievementMananger
The client can handle media changes natively so disabling can take place internally. This code uses the same external calls to load data, but will call either BeginLoad or BeginChangeMedia based on whether any media is already loaded.
Due to the client's handling of media changes (it simply disables hardcore if an unknown media is detected) the existing functionality for "disabling" the achievements is no longer necessary and can be deleted.
2024-05-01 07:04:32 -04:00
LillyJadeKatrin 878e6e847b Update Achievement Dialog Header to use rc_client
Two portions of this need updating.
Anything related to points and unlock counts and scoring uses game_summary now instead of the TallyScore method. Unfortunately this comes with the drawback that I cannot easily at this time access the number of points/unlocks from the other hardcore mode, so things like the second progress bar have been deleted.
Rich presence, which no longer needs to be stored, but can be calculated at request. As the AchievementHeader can now update just the Rich Presence, DoFrame can now simply call a header update with .rp=true and the current Rich Presence will be calculated immediately.
As the two items above are the last remaining things to use a number of the components in AchievementManager, this also deletes: Request V1 (V2 is renamed accordingly), ResponseType, PointSpread, TallyScore, UnlockStatus, and the RP generation and ping methods.
2024-05-01 07:04:32 -04:00
LillyJadeKatrin 4214c301ef Refactor AchievementsWindow::UpdateData to take a partial update parameter
UpdateData in AchievementsWindow now only updates the components being requested, massively improving the window's performance. The parameter is UpdatedItems in AchievementManager, which tracks which portions of the system have been updated for every update callback.
2024-05-01 07:04:32 -04:00
LillyJadeKatrin fa2210f80d Refactor leaderboard entry calls to use rc_client
Leaderboard entry calls are asyncronous and use a callback. Logic remains the same, but the callback populates the list that the UI grabs values from.
2024-05-01 06:43:20 -04:00
LillyJadeKatrin c57be0efca Refactor Leaderboard widget to allow partial updates
Similarly to the Progress widget (though without the separate object for each box, because each Leaderboard unit is just three text fields stacked vertically), AchievementLeaderboardWidget.UpdateData will now accept three options: destroy all and rebuild, update all, or update a set of rows.

As part of this, AchievementManager::GetLeaderboardsInfo has been refactored to GetLeaderboardInfo to return a single leaderboard for the ID passed in.
2024-05-01 06:43:20 -04:00
LillyJadeKatrin d2069e888d Refactored AchievementProgressWidget to maintain AchievementBox list
AchievementProgressWidget maintains in memory a map of AchievementBox pointers so that UpdateData can operate on them individually. UpdateData is overhauled for three options: UpdateData(true) will destroy the entire list and re-create it from scratch as before, to be used if the game or player changes/closes/logs out. UpdateData(false) will loop through the map and call UpdateData on every achievement box, to be used for certain settings changes such as enabling badges or disabling hardcore mode. UpdateData(set<IDs>) will call UpdateData on only the IDs in the set, to be used when achievements are unlocked.
2024-05-01 06:43:20 -04:00
LillyJadeKatrin 3793d723b9 Created AchievementBox Qt object
AchievementBox is an extension of QGroupBox that contains the data for a single achievement, initialized with the achievement data and able to reference AchievementManager to update itself.
2024-05-01 06:43:20 -04:00
LillyJadeKatrin 0627209131 Add DoState to AchievementManager
While state loading is not allowed in the hardcore mode that most players will use, it is allowed in softcore mode; more importantly, if something fails to unlock or unlocks when it shouldn't in either mode the player can create a save that retains the current achievement state.
2024-05-01 06:43:20 -04:00
LillyJadeKatrin 70116b222d Handle Game Completed Client Event 2024-05-01 06:43:20 -04:00
LillyJadeKatrin 6b5b7cbd7c Handle Achievement Progress Client Events
This is not a 1 to 1 relationship with how the events look primarily because currently achievement
progress messages are in OnScreenDisplay, which currently vanishes messages automatically.
As this covers the last remaining runtime-based event from the old event handler, that handler has been deleted and the new event handler has been renamed to take its place.
2024-05-01 06:43:19 -04:00
LillyJadeKatrin a70733f74f Handle Achievement Challenge Indicator Show/Hide Client Events
Also deletes the corresponding runtime-based events from the old event handler.
2024-05-01 06:43:19 -04:00
LillyJadeKatrin 7895b739ee Display active leaderboard data on screen
Up to four leaderboards are displayed in a window in the bottom right of the screen (vertically above challenge icons, if there are any). As per RetroAchievements standards, the markers only display the current leaderboard values with no further context necessary.
2024-05-01 06:43:19 -04:00
LillyJadeKatrin 6f3a608e92 Add active leaderboard tracker to achievement manager
The active leaderboard data (leaderboards currently being attempted, which get displayed on screen) is now tracked. When a leaderboard is started its value is added to a vector (sorted by start frame). There are a separate set of client events specifically to handle leaderboard trackers, that are used to populate and manage this vector. The top portion of this vector (by RetroAchievement standards, the first four items) is exposed to be displayed on screen.
2024-05-01 06:43:19 -04:00
LillyJadeKatrin eee77ec6b7 Handle Leaderboard Submitted/Started/Failed Client Events
Also deletes the corresponding runtime-based events from the old event handler.
2024-05-01 06:43:19 -04:00
LillyJadeKatrin bc3e429dd9 Handle Achievement Triggered Client Event
Also deletes the old runtime-based Achievement Triggered event from the old handler, and the methods used by it to publish to the server and reactivate/deactivate achievements in the runtime.
2024-05-01 06:43:19 -04:00
LillyJadeKatrin c88d4cf040 Created EventHandlerV2 and added client to DoFrame
As MemoryPeeker V1 is no longer in use, it is deleted and MemoryPeekerV2 is renamed in its place.
2024-05-01 06:43:19 -04:00
LillyJadeKatrin 7497df99df Refactored Welcome Message to use rc_client
Restructured the welcome message to use the information in rc_client, particularly the summary. Redesigned the message in the process to look cleaner.
2024-05-01 06:43:19 -04:00
LillyJadeKatrin c5bb1c4e68 Retooled achievement badge fetch process
This change was primarily made to refactor the badge fetching to use the client instead of the runtime, but in the process I also refactored the code to cut down on complexity and duplication. Now the FetchBadge method is passed a function that generates the badge name; this is used to ensure that once the badge is loaded that it is still the desired badge to avoid race conditions.
2024-05-01 06:43:19 -04:00
LillyJadeKatrin 7b835a20ca Updated GetGameDisplayName to use rc_client 2024-05-01 06:43:19 -04:00
LillyJadeKatrin 486a9d2318 Refactored Achievement Mananger to load games through rc_client
HashGame has become LoadGame, similar structure with the file loaders but using the client instead. LoadGameCallback has been created to handle the results. The old LoadGameSync has been deleted as have
several hash and load methods that it called.
2024-05-01 06:43:19 -04:00
LillyJadeKatrin 355b892621 Get display name and score from client
Delete m_display_name and m_player_score fields and retrieve those values directly from the client's user information.
2024-05-01 06:43:18 -04:00
LillyJadeKatrin 3bf8b5fb90 Refactored Achievement Manager Login to use rc_client
LoginCallback was created to handle the results of the asynchronous client login calls; VerifyCredentials was deleted as no longer necessary.
2024-05-01 06:43:18 -04:00
LillyJadeKatrin 7b3fac18cd Remove synchronous achievement login
Deletes AchievementManager::Login, renames LoginAsync to Login, and replaces the one synchronous call in the AchievementSettingsWidget with the async call. There is a minor usability regression in that the UI currently does not notify the user when a login has failed; this will be addressed in a later change (possibly in a different PR).
2024-05-01 06:43:18 -04:00
LillyJadeKatrin ba519e4670 Add rc_client to AchievementManager
Also includes init and shutdown V2s.
2024-05-01 06:43:18 -04:00
LillyJadeKatrin 4ec662bcdf Add rc_client MemoryPeekerV2 to AchievementManager
Has a more traditional read-x-bytes structure; for passing into rc_client in the constructor.
2024-05-01 06:43:18 -04:00
LillyJadeKatrin 05136ee099 Add rc_client RequestV2 to AchievementManager
RequestV2 is to be passed into rc_client upon construction so rc_client can handle server calls internally.
2024-05-01 06:43:18 -04:00
mitaclaw 0397339ab1 DolphinQt: Properly Delete (Some) Widgets
This is not every memory leak, just the ones that were obvious.
2024-04-30 11:17:28 -07:00
JMC47 2b261b9306
Merge pull request #12743 from Filoppi/remove-round-corners-on-game-window
Remove rounded corners on emulation render window
2024-04-30 12:30:03 -04:00
iwubcode 9d28c371e7 VideoCommon: allow custom shaders to set the alpha value for use when blending is enabled 2024-04-28 18:15:27 -05:00
mitaclaw 756ea81ab2 Jit64: Smaller Instruction Breakpoint Condition
Also some static_asserts in JitArm64.
2024-04-28 15:54:15 -07:00
Admiral H. Curtiss efed26ceee
Merge pull request #12739 from malleoz/show_input_count_recording_only
VideoCommon: Only show input count when recording
2024-04-28 20:31:28 +02:00
Admiral H. Curtiss bec6842cbe
Merge pull request #12741 from Filoppi/fix-load-resampling
Qt: fix 13524 - output resampling mode not loading correctly from ini
2024-04-28 20:30:32 +02:00
Dentomologist 628ab51b4b CheatSearch: Use two's complement for negative hex values 2024-04-28 11:00:47 -07:00
Filoppi 91067044f1 Remove rounded corners on emulation render window
On Windows 11, when playing windowed in a separate window/widget from the main emulator window, we don't want the window to have rounded corners, as it prevents the corner pixels from being visible
2024-04-28 12:41:39 +03:00
Filoppi 3815819136 Qt: fix 13524 - output resampling mode not loading correctly from ini 2024-04-27 22:11:45 +03:00
sowens99 3ab1334cd9 VideoCommon: Only show input count when recording 2024-04-26 20:06:57 -04:00
mitaclaw 307a1e3ab8 Jit64/JitArm64: Check Breakpoints Before FPU Availability
CachedInterpreter already does it in the expected order.
2024-04-26 10:58:16 -07:00
Niel Lebeck 36cdb4a544 Eliminate SettingsHandler's `SetBytes` and `Reset` methods
Also make the `Decrypt` method private.

As far as I can tell, the only motivation for exposing the `SetBytes`
and `Reset` methods is to allow `CBoot::SetupWiiMemory` to use the same
`SettingsHandler` instance to read settings data and then write it back.
It seems cleaner to just use two separate instances, and require a given
`SettingsHandler` instance to be used for either writing data to a
buffer or reading data from a buffer, but not both.

A natural next step is to split the `SettingsHandler` class into two
classes, one for writing data and one for reading data. I've deferred
that change for a future PR.
2024-04-23 17:19:01 -07:00
Guilherme Janczak 50dc0ffbce
port to OpenBSD 2024-04-22 20:50:47 +00:00
JosJuice e8154a529f JitArm64: Increase farcode & nearcode cache size
This is a JitArm64 version of 219610d8a0.

Due to limitations on how far you can jump with a single AArch64 branch
instruction, going above the former limit of 128 MiB of code (counting
nearcode and farcode combined) requires a bit of restructuring. With the
restructuring in place, the limit now is 256 MiB. See the new large
comment in Jit.h for a description of the new memory layout.
2024-04-22 08:31:48 +02:00
Tilka b6f0e8876e
Merge pull request #12731 from JosJuice/jitarm64-mfcr-ubfx
JitArm64: Skip UBFX in mfcr
2024-04-21 20:56:46 +01:00
Jordan Woyak 71de5c58b5
Merge pull request #12732 from JosJuice/arm64emitter-assert-category
Arm64Emitter: Fix incorrect assert category (and a shadowed variable)
2024-04-21 14:40:49 -05:00
Jordan Woyak a89336001a
Merge pull request #12733 from mitaclaw/instructionNumber
JitState: Remove Unused instructionNumber
2024-04-21 14:39:25 -05:00
Jordan Woyak d6bcbd0115
Merge pull request #12734 from mitaclaw/assert-dyna_rec
JIT: Fix Incorrect Assert Category
2024-04-21 14:38:41 -05:00
OatmealDome 59c6739013
Merge pull request #12727 from Simonx22/android-dependencies-042024
Android: Update dependencies
2024-04-21 13:54:37 -04:00
OatmealDome c154134e28 ScmRevGen: Generate Info.plist for MacUpdater 2024-04-21 13:28:21 -04:00
OatmealDome 3ad1037d7f ScmRevGen: Generate Info.plist for DolphinQt 2024-04-21 13:28:21 -04:00
mitaclaw e3721bee1b JIT: Fix Incorrect Assert Category 2024-04-21 09:07:47 -07:00
mitaclaw e7dbd298a8 JitState: Remove Unused instructionNumber 2024-04-21 08:51:29 -07:00
JosJuice de33831783 Arm64Emitter: Fix shadowed variable
A lambda at the end of ARM64XEmitter::ParallelMoves named its parameter
`move`.
2024-04-21 16:20:59 +02:00
JosJuice e140491fa9 Arm64Emitter: Fix incorrect assert category 2024-04-21 16:19:10 +02:00
JosJuice e64cdca405 JitArm64: Skip UBFX in mfcr
We can implement the same behavior in one instruction less.
2024-04-21 16:13:33 +02:00
JosJuice a17331d568 DolphinQt: Don't ask user about creating Skylanders folder
We don't have prompts like this for any other path handled by Dolphin.
If the folder doesn't exist, let's just create it.
2024-04-21 09:28:01 +02:00
JosJuice 3bc9008715 PPCAnalyst: Prevent discarding registers around breakpoints
Fixes https://bugs.dolphin-emu.org/issues/13526.
2024-04-21 08:50:04 +02:00
Admiral H. Curtiss d3cf35019c
Merge pull request #12726 from JosJuice/i18n-2024-04-20
i18n: Add comments and improve source strings
2024-04-20 23:34:32 +02:00
Admiral H. Curtiss a46ffc5d08
Merge pull request #12686 from JosJuice/android-remove-strikeout
Android: Unset STRIKE_THRU_TEXT_FLAG for editable settings
2024-04-20 23:34:05 +02:00
Admiral H. Curtiss 8236e4eaf9
Merge pull request #12636 from KjubDusJub/dolphin-tool-extractcommand
DolphinTool: Add an image extract command
2024-04-20 23:29:32 +02:00
Tilka 020e7b3e2d
Merge pull request #11144 from JosJuice/jit64-arith-inline-avx
Jit64: Inline avx_op into fp_arith
2024-04-20 22:03:47 +01:00
JosJuice 83b280d903 i18n: Add comments and improve source strings 2024-04-20 23:02:46 +02:00
Tilka f1e40f73bd
Merge pull request #12705 from JosJuice/get-span-for-address
Memmap: Replace GetPointer with GetSpanForAddress
2024-04-20 21:16:54 +01:00
Tilka 6443084e8c
Merge pull request #12724 from Tilka/readstate
TAPServerConnection: drop unused enum class ReadState
2024-04-20 21:12:54 +01:00
JosJuice c204b33314 VideoCommon/BPStructs: Add a missing bounds check
Happened to find this when working on the previous commit.
2024-04-20 18:31:08 +02:00
JosJuice 3cfa233b63 VideoCommon: Use GetSpanForAddress safely in texture decoding
Now only VertexLoader remains... But that one might be tricky.
2024-04-20 18:31:08 +02:00
JosJuice 5c9bb80638 Memmap: Replace GetPointer with GetSpanForAddress
To ensure memory safety, callers of GetPointer have to perform a bounds
check. But how is this bounds check supposed to be performed?
GetPointerForRange contained one implementation of a bounds check, but
it was cumbersome, and it also isn't obvious why it's correct.

To make doing the right thing easier, this commit changes GetPointer to
return a span that tells the caller how many bytes it's allowed to
access.
2024-04-20 18:31:08 +02:00
Simonx22 e4f97a2532 Android: Update dependencies 2024-04-20 17:53:11 +02:00
JosJuice 13e9d5c889 Jit64: Improve register handling in fp_arith
This lets us avoid the "ugly" case.
2024-04-20 17:50:54 +02:00
JosJuice 2bb59ff0dc Jit64: Inline avx_op into fp_arith
This will let us manage registers better in the next commit.
2024-04-20 17:50:54 +02:00
JosJuice 2c2e06bf39 Jit64: Add extra cases for reversible avx_op
Optimization.
2024-04-20 17:50:54 +02:00
JosJuice bb3306701b Jit64: Flatten avx_op
Reduces indentation and places the "ugly" case last. No behavior change.
2024-04-20 17:50:54 +02:00
JosJuice 4ac52cf053 JitArm64: Minor mtfsfix optimization
BFI takes two cycles on many CPUs, whereas AND (immediate) only takes
one.
2024-04-20 16:55:29 +02:00
Tilka 20665ebce7
Merge pull request #12710 from jordan-woyak/mouse-pointing-disable-relative
DolphinQt/Mapping: Disable relative input when "Mouse Controlled Pointing" button is pressed.
2024-04-20 14:14:03 +01:00
Tilka 017f72f43e
Merge pull request #12672 from JosJuice/jit64-extract-with-byte-offset
Jit64: Clean up ExtractWithByteOffset
2024-04-20 12:41:29 +01:00
Tilka b98176075e
Merge pull request #12719 from stblr/device-change-again
HIDv4: Fix racy device change behavior
2024-04-20 12:26:40 +01:00
Tillmann Karras 8ed41e7264 TAPServerConnection: drop unused enum class ReadState
This also fixes a -Wshadow warning because there is a function-local
equivalent in ReadThreadHandler().
2024-04-20 12:04:28 +01:00
JosJuice 758097f09c
Merge pull request #12717 from mitaclaw/downcountAmount
Change JitState::downcountAmount to a u32
2024-04-20 10:39:33 +02:00
Admiral H. Curtiss 0e7346ac10
Merge pull request #12718 from nicovank/master
Apply Clang-Tidy's modernize-use-starts-ends-with
2024-04-20 05:21:38 +02:00
Admiral H. Curtiss 2252635070
Merge pull request #12702 from Dentomologist/gamelist_show_disc1_for_two_disc_games
GameList: Show (Disc 1) for first disc of two-disc games
2024-04-20 05:03:38 +02:00
Pablo Stebler 93b29cb8b2
HIDv4: Fix racy device change behavior
This prevents the device changes happening between 2 GETDEVICECHANGE
calls from being missed by the application.

Same as 7e7b0971ab.
2024-04-19 21:56:12 +02:00
Nicolas van Kempen 932645f245 Apply modernize-use-starts-ends-with 2024-04-19 14:55:29 -04:00
mitaclaw 65ff0146b9 Change JitState::downcountAmount to u32 2024-04-19 04:08:34 -07:00
Jordan Woyak df7dd5d36a Config: Expose GFX_OVERLAY_PROJ_STATS setting in UI. 2024-04-18 14:45:28 -05:00
Jordan Woyak 1e27183dff VideoCommon: Show the average projection to viewport ratio in statistics
window.
2024-04-18 14:45:28 -05:00
Jonas Kalsvik 859ac40ca2
DolphinTool: Add an image extract command 2024-04-18 21:11:19 +02:00
Admiral H. Curtiss 1805f6e381
Merge pull request #12660 from jordan-woyak/hide-makepkg
Hide branch name from title bar when there are no commits ahead of master.
2024-04-18 17:21:24 +02:00
Admiral H. Curtiss 8268ae1cf7
Merge pull request #12698 from iwubcode/xfb_copy_hash_in_present
VideoCommon: add xfbs hashes to present info if available
2024-04-18 17:11:49 +02:00
Sepalani c0fd59adfd BBA/HLE: Handle connection error 2024-04-17 20:18:20 +04:00
Sepalani 73aa8c50a2 BBA/HLE: Sleep when no data is received 2024-04-17 20:18:20 +04:00
Sepalani 05ed1a2fae BBA/HLE: Poll as much data as possible 2024-04-17 20:18:20 +04:00
Sepalani c71134c4ab BBA/HLE: Check queue overrun 2024-04-17 20:18:20 +04:00
Dentomologist 9c5605a59c AudioCommon: When ALSA is absent on Linux, default to Cubeb backend
Default to Cubeb instead of the NULL backend on Linux when ALSA isn't
valid.
2024-04-16 14:06:28 -07:00
Admiral H. Curtiss 83b5124d40
Merge pull request #12559 from sepalani/bba-refactor
BBA/HLE: Code refactoring
2024-04-16 22:43:04 +02:00
Admiral H. Curtiss e757d5ea9c
Merge pull request #12708 from brad0/openbsd_sound_backend
Set default sound backend on OpenBSD to cubeb
2024-04-16 22:41:28 +02:00
Jordan Woyak 47b06d274e InputCommon: Fix unnecessary "Modifier/Range" ini file entries. 2024-04-15 18:32:31 -05:00
Jordan Woyak 31dc3477ad DolphinQt/Mapping: Disable relative input when "Mouse Controlled Pointing" button is pressed. 2024-04-15 14:52:26 -05:00
OatmealDome dbc7e03577
Merge pull request #12709 from mitaclaw/rcheevos-posix
RetroAchievements: Put "RetroAchievements.ini" in the correct config location for POSIX
2024-04-15 01:21:43 -04:00
mitaclaw 48b38f6e9b RetroAchievements: Put "RetroAchievements.ini" in the correct config location for POSIX 2024-04-14 21:47:41 -07:00
OatmealDome ab53f6934c
Merge pull request #12704 from mitaclaw/symbol-description-view
PPCSymbolDB: GetDescription by std::string_view
2024-04-14 22:14:18 -04:00
Brad Smith ba2ccf3889 Set default sound backend on OpenBSD to cubeb
Set the default sound backend to cubeb instead of the default
being none.
2024-04-14 18:47:20 -04:00