Commit Graph

42120 Commits

Author SHA1 Message Date
Bram Speeckaert
5d647251f7 JitArm64: subfic - Conditionally skip temp reg allocation 2024-05-07 21:11:49 +02:00
Guilherme Janczak
cd25e91ca2
use pkg_search_module to find minizip-ng or minizip
OpenBSD calls minizip-ng's .pc file minizip.pc
Others call   minizip-ng's .pc file minizip-ng.pc
2024-05-07 04:25:04 +00:00
Guilherme Janczak
d619307a6d
use pkg-config to find libfmt
This allows using the system libfmt on OpenBSD and NetBSD.
Unfortunately, the system libfmt is too old on OpenBSD at the moment,
and Dolphin doesn't currently compile on NetBSD for other reasons.
2024-05-06 19:33:37 +00:00
Guilherme Janczak
c1e6316bdc
use pkg-config to find libusb
This makes more (but not all) of the compilation process succeed on
NetBSD.
2024-05-06 17:44:32 +00: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
f6e3c5ccef
Externals/rcheevos: Disable warnings in CMake 2024-05-04 05:19:00 +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
Admiral H. Curtiss
f709071d41
Merge pull request #12759 from LillyJadeKatrin/retroachievements-header-fix
Hide Achievement Dialog Header When Disabled
2024-05-04 04:27:16 +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
a1eaed2531 Externals: Document Unused minizip-ng 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
mitaclaw
6bee21e272 Revert "Externals: minizip-ng Forward Compatibility"
This reverts commit 0a48a3b3ad.
2024-05-03 12:41:53 -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
Admiral H. Curtiss
02e6acd8ad
Merge pull request #12748 from LillyJadeKatrin/retroachievements-enable-bug
Disabled Hardcore Mode when Achievements disabled
2024-05-02 12:43:27 +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