Commit Graph

36059 Commits

Author SHA1 Message Date
LillyJadeKatrin a79f428972 Fix margins on icon-only messages
Messages with an icon and no text (such as in the game start sequence) had an oversized margin due to ImGui adding padding for an empty string.
2024-06-15 22:42:35 -04:00
LillyJadeKatrin 1b00b4e3d8 OSD messages display horizontally
OSD messages with an icon and text will display the text to the right of the icon instead of below it.
2024-06-15 22:30:39 -04:00
Admiral H. Curtiss b8381bfa7c
CMake: Make the rcheevos dependency public
Since rcheevos headers are included in AchievementManager.h, and everyone that depends on Core can include that, we must also pass on the include directory and defines to those dependencies
2024-06-15 23:12:19 +02:00
Admiral H. Curtiss 693607f1d3
CMake: Let UICommon depend on Core
This is already the case implicitly by UICommon including several headers from Core, so just make it explicit
2024-06-15 23:12:19 +02:00
Admiral H. Curtiss c5a030e7ab
VideoCommon: Fix format string injection vulnerability from leaderboards 2024-06-15 23:12:19 +02:00
Admiral H. Curtiss ed4a09fa56
Merge pull request #12850 from jordan-woyak/device-sorting
ControllerInterface: Adjust sort priorities to ensure default keyboard-mouse device is first.
2024-06-15 21:12:08 +02:00
Jordan Woyak 42e73547eb ControllerInterface: Adjust sort priorities to ensure default keyboard-mouse device is first. 2024-06-15 12:41:25 -05:00
Admiral H. Curtiss 56fd9c177c
Merge pull request #12865 from LillyJadeKatrin/retroachievements-dialog-sizing
Add word wrap to Achievement Dialog text
2024-06-15 18:27:15 +02:00
LillyJadeKatrin e1ed19d48a Add word wrap to Achievement Dialog text 2024-06-15 11:38:13 -04:00
Admiral H. Curtiss e282649b57
Merge pull request #12798 from mitaclaw/branch-watch-tool-fixes-2
Branch Watch Tool: Optimizations
2024-06-15 16:57:05 +02:00
Admiral H. Curtiss a95c3dbc97
Merge pull request #12818 from iwubcode/json_file_operations
Common: add Json helper utilities for loading or saving to a file
2024-06-15 16:43:38 +02:00
Admiral H. Curtiss f71d6498d0
Merge pull request #12855 from LillyJadeKatrin/retroachievements-challenge-refactor
Refactored Challenge Icons to handle icon updates
2024-06-15 16:24:24 +02:00
Admiral H. Curtiss 1ba040f9a6
Merge pull request #12854 from LillyJadeKatrin/retroachievements-update-dialog
Added missing dialog updates to achievement events
2024-06-15 15:58:22 +02:00
Admiral H. Curtiss 3edc663467
Merge pull request #12816 from Tilka/stm
IOS/STM: fix IPC reply for unknown ioctl requests
2024-06-15 15:31:58 +02:00
Admiral H. Curtiss 3f0f5b3b4e
Merge pull request #12815 from Dentomologist/enable_hotkeys_and_controllers_for_focused_tas_input
TAS Input: Enable emulator hotkeys and controller input when TAS Input window has focus
2024-06-15 15:25:40 +02:00
Admiral H. Curtiss 34f81ad9ac
Merge pull request #12838 from sepalani/sock-reshade
Socket: Fix connect issues when using ReShade
2024-06-15 15:12:51 +02:00
LillyJadeKatrin cee3d9126b Added missing dialog updates to achievement events
Now should properly update the Achievements dialog whenever the displayed state of an achievement/leaderboard changes.
2024-06-15 07:56:21 -04:00
LillyJadeKatrin 3d5a1f7d33 Refactored Challenge Icons to handle icon updates
If an icon is displayed on screen before it downloads, it was displaying a default icon but it would fail to load the actual icon even after it was downloaded. This fixes that.
2024-06-15 07:36:49 -04:00
JMC47 a13b198ba0
Merge pull request #12860 from LillyJadeKatrin/retroachievements-progress-spam
Only Display One Progress At A Time
2024-06-15 02:42:04 -04:00
LillyJadeKatrin cb05ed29fe Only Display One Progress At A Time
Add a two second timer to Achievement Progress Indicators to wait until two seconds after the previous message (when it should have decayed out automatically) before posting any new ones.
2024-06-14 23:02:14 -04:00
JMC47 4502b60f71
Merge pull request #12852 from LillyJadeKatrin/retroachievements-speed-limit-fix
Remove Extra Speed Limit Message
2024-06-14 15:38:45 -04:00
LillyJadeKatrin 7eec723f3f Hide Challenge Icons when OSD Messages Disabled 2024-06-14 00:19:45 -04:00
Admiral H. Curtiss b0f8520a3d
Merge pull request #12849 from LillyJadeKatrin/retroachievements-change-disc-bug
Release Achievement Manager Loaded Volume
2024-06-12 20:02:22 +02:00
LillyJadeKatrin fe517ad2c6 Remove Extra Speed Limit Message
Prior to this change, attempting to decrease the speed limit below 100% in hardmode would display the new attempted speed and then warn that the speed can not be decreased below 100%; this disables that first message under those conditions.
2024-06-12 06:39:46 -04:00
LillyJadeKatrin 12467ffcfa Improved Achievement Progress Label
Label now appears atop the progress bar and reports the progress as the formatted text returned by rcheevos instead of a simple percentage.
2024-06-12 06:25:26 -04:00
LillyJadeKatrin d18dc1785d Release Achievement Manager Loaded Volume
AchievementManager maintains a unique pointer to a copy of the current volume so it can asynchronously hash that volume. It is not needed otherwise, so I can release that pointer when hashing is complete. This change fixes a bug whereby changing discs in a game and then changing to a different game would result in the loaded volume pointer still being loaded with and hashing to the previous game.
2024-06-11 23:35:28 -04:00
JMC47 71171a9e4d
Merge pull request #12819 from iwubcode/texture_asset_sampler_in_pipeline
VideoCommon: update custom pipeline to use a texture's sampler instead of linear sampler if the texture is used
2024-06-11 21:13:57 -04:00
JMC47 16c7869ab2
Merge pull request #12721 from iwubcode/custom_shader_alpha
VideoCommon: allow custom shaders to set the alpha value
2024-06-11 21:13:24 -04:00
Sepalani 44028cbbb1 Socket: Fix connect issues when using ReShade 2024-06-11 12:18:42 +04:00
Admiral H. Curtiss 04c246d11f
Merge pull request #12837 from JosJuice/cmake-one-tests-binary
CMake: Put all unit tests in one binary
2024-06-10 22:47:45 +02:00
Admiral H. Curtiss 6b2dc1cae8
Merge pull request #12839 from nvllsvm/fix_extract_success_quiet
Suppress extract success message when quiet flag is set
2024-06-10 22:25:23 +02:00
Admiral H. Curtiss 4930567981
Merge pull request #12845 from iwubcode/texture_config_compare_type
VideoCommon: add texture type to texture config comparison
2024-06-10 22:24:08 +02:00
Admiral H. Curtiss e405ad4206
Merge pull request #12827 from nlebeck/mathutil-tests-2
Add some unit tests for the `Rectangle` class
2024-06-10 22:22:20 +02:00
Admiral H. Curtiss db921ed4b5
Merge pull request #12840 from TryTwo/Fix_batch_mode_again
MainWindow: Fix batch mode (again).
2024-06-10 18:36:20 +02:00
Admiral H. Curtiss 5589e1e00f
Merge pull request #12830 from VampireFlower/aliases
Assembler: Add aliases for r1 and r2
2024-06-10 18:35:40 +02:00
Niel Lebeck 9b0dcc83d1 Add some unit tests for the `Rectangle` class 2024-06-09 16:28:35 -07:00
TryTwo 28c28623a8 MainWindow: Don't save UI geometry in batch mode. Batch mode was erasing the UI geometry for the sessions where batch mode is off. Render widget is still saved. 2024-06-08 23:27:56 -07:00
iwubcode fa5a6547c6 VideoCommon: add texture type to texture config comparison 2024-06-08 14:28:11 -05:00
JosJuice 6c5ceaa06d
Merge pull request #12820 from JosJuice/jit64-simplity-test-bit
Jit64: Clean up the test_bit variable
2024-06-08 10:10:29 +02:00
Andrew Rabert 896bb509ab Suppress extract success message when quiet flag is set 2024-06-06 17:55:59 -04:00
Admiral H. Curtiss 81b6bfaa1e
Merge pull request #12832 from JosJuice/retro-achievements-less-ifdefs
Use a stub AchivementManager when USE_RETRO_ACHIEVEMENTS isn't defined
2024-06-06 22:42:53 +02:00
VampireFlower 473db6882d r32 doesn't exist 2024-06-06 13:05:45 -06:00
VampireFlower 8f03d9e8ca handle sp and rtoc as GPR aliases
Co-Authored-By: mitaclaw <140017135+mitaclaw@users.noreply.github.com>
2024-06-06 13:05:43 -06:00
JosJuice f404edb4dc CMake: Put all unit tests in one binary
We currently have 32 different binaries containing unit tests. At least
when I build for Android, each one takes up over 200 MiB, and linking
them all increases my incremental build times by over a minute. I'd
like to change this for the sake of my productivity and disk space.

For reference, MSBuild is already putting all tests in a single binary.
2024-06-06 19:30:43 +02:00
Admiral H. Curtiss ca22d0af57
Merge pull request #12833 from JosJuice/opensles-set-running
Android: Implement OpenSLESStream::SetRunning
2024-06-06 12:27:48 +02:00
JosJuice 22aa88109f Use a stub AchivementManager when USE_RETRO_ACHIEVEMENTS isn't defined
This lets us reduce the number of USE_RETRO_ACHIEVEMENTS ifdefs in the
code base, reducing visual clutter. In particular, needing an ifdef for
each call to IsHardcodeModeActive was annoying to me. This also reduces
the risk that someone writes code that accidentally fails to compile
with USE_RETRO_ACHIEVEMENTS disabled.

We could cut down on ifdefs even further by making HardcodeWarningWidget
always exist, but that would result in non-trivial code ending up in the
binary even with USE_RETRO_ACHIEVEMENTS disabled, so I'm leaving it out
of this PR. It's not a lot of code though, so I might end up revisiting
it at some point.
2024-06-06 08:26:20 +02:00
mitaclaw 8050760fe9 BranchWatchTableModel: Assume Unreachable Code Truly Is 2024-06-05 19:59:39 -07:00
mitaclaw 7dc0bdd5df BranchWatchProxyModel: Avoid String Copies In filterAcceptsRow 2024-06-05 19:59:39 -07:00
Admiral H. Curtiss 47fae68b0f
Merge pull request #12831 from TryTwo/Fix_batch_mode
MainWindow: Fix batch mode
2024-06-06 03:55:22 +02:00
Admiral H. Curtiss a85d89af39
Merge pull request #12626 from MikeIsAStar/remove-erroneous-continue-statement
MMU: Remove erroneous continue statement
2024-06-06 03:54:59 +02:00
Admiral H. Curtiss e233a30ffc
Merge pull request #12834 from jordan-woyak/sdcard-sfd
FatFsUtil: Generate a non-partitioned image in our folder-to-sdcard conversion.
2024-06-05 13:50:11 +02:00
Scott Mansell dbe7616bdd
Merge pull request #12817 from iwubcode/imgui-mouse-position-event
VideoCommon: use imgui mouse position event when the mouse position changes
2024-06-05 18:50:26 +12:00
Scott Mansell a57962cedb
Merge pull request #12825 from iwubcode/texture_cache_sampler_split
VideoCommon: pull texture sampler out of texture cache for later reuse
2024-06-05 18:16:24 +12:00
Jordan Woyak 98e6a95e87 FatFsUtil: Generate a non-partitioned image in our folder-to-sdcard conversion. 2024-06-04 15:17:05 -05:00
JosJuice a3c23353c0 Android: Implement OpenSLESStream::SetRunning 2024-06-04 19:32:04 +02:00
JosJuice c04460d88b
Merge pull request #12580 from LillyJadeKatrin/retroachievements-bugfix
Add user agent to headers for all RetroAchievements server calls
2024-06-04 13:41:01 +02:00
TryTwo fa00728d3e MainWindow: Check for batch mode before show(). 2024-06-04 00:26:58 -07:00
LillyJadeKatrin 9499e14209 Add user agent to headers for all RetroAchievements server calls
Requested agent syntax is "Dolphin/5.0-23456"
2024-06-03 00:24:43 -04:00
iwubcode c2bc2ccd23 VideoCommon: pull texture sampler out of texture cache so that it can be used in other places in the future 2024-06-01 23:21:04 -05:00
JosJuice b9e11a3a35 Android: Adopt a new versionCode scheme
Right now, we assign a versionCode to each Android build of Dolphin by
counting the total number of git commits made. This has worked fine so
far, but it won't work as-is for the new release process.

Let's say we're currently on commit 20000. If we want to create a
release under the new release process, we would create a release branch,
add a new commit on it that updates the release name in CMake files and
so on, and create a tag for that commit. The Android build of this
release commit would get the version code 20001. However, the master
branch is also going to get a commit with the version code 20001 sooner
or later, and this commit would be an entirely different commit than
commit 20001 on the release branch. This isn't much of a problem for
people downloading Dolphin from dolphin-emu.org, but it's a big problem
for Google Play, as Google Play doesn't allow us to upload two builds
with the same version code.

This commit makes us calculate the Android version code in a new way:
The number of commits times two, and if the current build isn't a
release build, plus 1. (We check whether the current build is a release
build by checking whether there's a tag for the current commit.)

With this new version code scheme, the release commit described in my
example would get the version code 40002, and the master commit would
get the version code 40003. This lets us upload both corresponding
builds to Google Play, and also lets the user switch from the release
build to the development build if they would like to. (Under normal
circumstances, Android forbids installing a build with an older version
code than the currently installed build. Therefore, whether the 1 is
added for release builds or for development builds is a decision with
consequences.)
2024-06-01 17:36:20 +02:00
mitaclaw cf6a392979 Branch Watch Tool: Smarter Context Menu
Also, right-clicking the table's scroll area when all columns are hidden will show the column visibility menu.
2024-06-01 07:23:05 -07:00
Tillmann Karras 96e2f5eef6 IOS/STM: fix IPC reply for unknown ioctl requests 2024-06-01 12:13:03 +01:00
Tillmann Karras 9bc8ea6d6f IOS/STM: sort ioctl numbers (NFC) 2024-06-01 12:12:58 +01:00
iwubcode 11c37de695 VideoCommon: update custom pipeline to use a a texture's sampler if the texture is in use 2024-05-31 23:19:51 -05:00
iwubcode 50b95bbea9 InputCommon / VideoCommon: update to use new JsonFromFile function 2024-05-31 23:13:25 -05:00
iwubcode e92f59e2d4 Common: add JsonUtil cpp which was missed initially 2024-05-31 23:08:39 -05:00
iwubcode d494059164 Common: update json util function for converting to numeric value to use a static_cast. As discussed, a Saturating cast doesn't make sense when converting a double to a float 2024-05-31 23:08:05 -05:00
iwubcode 1d4f758b14 Common: add file serialization/deserialization functions for JSON 2024-05-31 22:36:12 -05:00
iwubcode 51b69bb339 VideoCommon: use imgui mouse position event when the mouse position changes 2024-05-31 22:31:54 -05:00
Admiral H. Curtiss 46a89936ae
Merge pull request #12780 from TryTwo/BreakpointWidget_Direct_Edit
BreakpointWidget: Add ability to directly edit breakpoints
2024-06-01 04:25:19 +02:00
TryTwo 3526f3cd9f
Color unused cells and disabled rows.
(bug?) Does not update on dark/light style change, as no signals are sent.
2024-06-01 03:42:25 +02:00
TryTwo 1396e927c7
BreakpointWidget: Give conditionals a popup text entry on click. 2024-06-01 03:42:25 +02:00
TryTwo e52b814eb2
BreakpointWidget: Direct editing of address cells. Prevent symbol cells from being affected. 2024-06-01 03:42:24 +02:00
TryTwo b740671792
BreakpointWidget: Make buttons, removing selecting row on clicking, and fix OnContextMenu which relied on select rows.
Add functions to edit breakpoints.
2024-06-01 03:42:18 +02:00
Dentomologist c3bdd05d2a TAS Input: Enable hotkeys and controller input when Input has focus
Enable emulator hotkeys and controller input (when that option is
enabled) when a TAS Input window has focus, as if it was the render
window instead.  This allows TASers to use frame advance and the like
without having to switch the focused window or disabling Hotkeys Require
Window Focus which also picks up keypresses while other apps are active.

Cursor updates are disabled when the TAS Input window has focus, as
otherwise the Wii IR widget (and anything else controlled by the mouse)
becomes unusable. The cursor continues to work normally when the render
window has focus.
2024-05-31 15:14:44 -07:00
Admiral H. Curtiss 2b386cdcdc
Merge pull request #12812 from LillyJadeKatrin/retroachievements-close-fixes
Properly reset Discord presence after game close
2024-05-31 20:18:22 +02:00
Admiral H. Curtiss 0e6db07203
Merge pull request #12794 from TryTwo/PR_Windows_Initialize_Fix
MainWindow, Bugfix: Initialize geometries before calling GetWindowSystemInfo
2024-05-31 20:00:37 +02:00
Dentomologist de9326bd53
InterfacePane: Add BalloonTip to user style combobox 2024-05-31 19:10:30 +02:00
Dentomologist 33b64d6c91
InterfacePane: Add BalloonTip to cursor visible radio buttons 2024-05-31 19:09:00 +02:00
Dentomologist a581fa2bfa
InterfacePane: Add BalloonTip to lock mouse checkbox 2024-05-31 19:07:33 +02:00
Dentomologist 9ed1688d09
InterfacePane: Add BalloonTip to pause on focus lost checkbox 2024-05-31 19:06:50 +02:00
Dentomologist 14f01bb12c
InterfacePane: Add BalloonTip to show active title checkbox 2024-05-31 19:06:11 +02:00
Dentomologist c5532b19e6
InterfacePane: Add BalloonTip to enable on-screen display checkbox 2024-05-31 19:05:35 +02:00
Dentomologist 16cdd0a961
InterfacePane: Add BalloonTip to use panic handlers checkbox 2024-05-31 19:04:57 +02:00
Dentomologist dc15a555c9
InterfacePane: Add BalloonTip to confirm on stop checkbox 2024-05-31 19:04:18 +02:00
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 e3d483e7c5 Show Achievements in Menu Bar always
Previously the Achievements option would only show up if achievements were already enabled, requiring users to manually create a config file in the file system; this now makes it visible no matter what.
2024-05-02 08:25:33 -04: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