Commit Graph

42810 Commits

Author SHA1 Message Date
LillyJadeKatrin
415fa3c6a5 Migrate Hardcore Toggle Code to Achievement Manager
AchievementManager::SetHardcoreMode now handles the (non-Qt) settings disabled by hardcore mode, instead of doing this on the Qt layer. Also ensured Init/Enable Achievements paths run this code, fixing the bug wherein the player can manipulate things when achievements are disabled that persist when turned back on.
2024-10-03 07:52:07 -04:00
JMC47
e259831bcf
Merge pull request #13087 from TellowKrinkle/PresentSkip
VideoBackends:Vulkan: Prevent freezes during window resize on Linux
2024-10-02 21:09:25 -04:00
TellowKrinkle
a267c56412 VideoBackends:Vulkan: Wait until we've confirmed a successful AcquireNextImage before marking semaphores used 2024-10-02 19:22:16 -05:00
TellowKrinkle
7e1a9490c0 VideoBackends:Vulkan: Don't try to present if swapchain acquire failed 2024-10-02 19:22:16 -05:00
Tillmann Karras
e455833ea4 Bluetooth: show vid:pid in error message 2024-10-02 21:50:25 +01:00
JMC47
122bce08de
Merge pull request #12953 from LillyJadeKatrin/retroachievements-fail-messaging
Achievements Fail Messaging
2024-10-02 14:50:21 -04:00
LillyJadeKatrin
2f40bc25ae Properly Notify when Achievements Login Fails 2024-10-01 18:03:46 -04:00
JMC47
808d11c434
Merge pull request #13081 from PatrickFerry/gameini_fixing_mistakes_part_2
GameINI: Fixing More Mistakes
2024-10-01 10:58:16 -04:00
JMC47
c88e48db19
Merge pull request #13085 from TellowKrinkle/AutoSizeEFBScale
VideoCommon: Dirty pixel shader manager on efb scale changes
2024-10-01 10:53:05 -04:00
TellowKrinkle
1cb6866de4 Revert "Allow shared zlib-ng"
This reverts commit 6dad8f8372.

Our bundled zlib-ng uses zlib compat mode, making it override system zlib.
System zlib-ng will not, and all its functions will be prefixed with zng_.
Therefore the two aren't actually compatible.
2024-10-01 00:47:05 -05:00
TellowKrinkle
70f69c3213 VideoBackends:Metal: subgroup_ops requires Apple7, not Apple6
SIMD-scoped permute operations are Apple6, but reduction operations are Apple7
2024-09-30 23:38:23 -05:00
Tillmann Karras
0323b30ed7 GameSettings: safe texture cache for "Winter Sports 3: The Great Tournament"
This is required to avoid glitches during Downhill Skiing.
2024-10-01 01:42:18 +01:00
Tillmann Karras
a02cbc9b78 WII_IPC: rewrite multiply as 100_tbticks literal (NFC) 2024-10-01 01:42:16 +01:00
TellowKrinkle
fd94ff252d VideoCommon: Dirty pixel shader manager on efb scale changes 2024-09-30 01:12:55 -05:00
TellowKrinkle
14feaf4ba8 VideoBackends:Metal: Use ios_use_simdgroup_functions with SPIRV-Cross
It defaults to trying to emulate simdgroup functions on iOS
2024-09-29 23:58:54 -05:00
Tilka
c7cbac538a
Merge pull request #13083 from Tilka/apploader
Boot: write Apploader version into memory
2024-09-29 14:40:43 +01:00
JosJuice
5b40a7ed17
Merge pull request #13084 from mitaclaw/static-assert-promote
VolumeVerifier: Promote `DEBUG_ASSERT` to `static_assert`
2024-09-29 09:56:42 +02:00
mitaclaw
c60accc96d VolumeVerifier: Promote DEBUG_ASSERT to static_assert
This runtime assertion was added before `std::is_sorted` became constexpr in the codebase.
2024-09-28 23:12:12 -07:00
Tillmann Karras
b168a8092f Boot: write Apploader version into memory
When HLE-ing the apploader, this is necessary to avoid "Error #002"
errors. Homebrew doesn't care.
2024-09-29 03:57:44 +01:00
Patrick Ferry
eb07c832b9 GameINI: Set Texture Cache Accuracy to "Safe" for UFC Personal Trainer: The Ultimate Fitness System
SafeTextureCacheColorSamples is supposed to be for [Video_Settings], but also the medium setting isn't enough to display the missing text.
2024-09-29 00:35:34 +01:00
Patrick Ferry
1d8fef8649 GameINI: Disable AA in Sonic Heroes
The use of any anti-aliasing will cause graphical corruption, which occurs on the ground.

MaxAnisotropy is supposed to be for [Video_Enhancements], but also it doesn't cause any of the issues in game so it is being removed rather than set under the correct heading.

Added a comment on why these values are set.
2024-09-29 00:35:27 +01:00
Patrick Ferry
a2fec747c6 GameINI: Rename INI for Naruto Collection (Demo)
The wrong filename was used so the settings weren't being applied.

(All it does is reset the Texture Cache Accuracy to the default setting.)
2024-09-29 00:35:12 +01:00
Patrick Ferry
5f49aa3afb GameINI: Remove Obsolete Setting in FaceBreaker K.O. Party
Hack is not a valid setting.

Also updated the GameID.
2024-09-29 00:34:55 +01:00
Patrick Ferry
d86146af72 GameINI: Remove Obsolete Settings in Super Metroid Demo (Brawl VC)
Both UseXFB and UseRealXFB are obsolete since Hybrid XFB.
2024-09-29 00:34:40 +01:00
Patrick Ferry
576bae3ac8 GameINI: Fix Cheats for Conduit 2
These codes are actually Gecko codes so setting that correctly.

There were errors which pop up when running this game as the comments for AR codes need to be set with hash(#) instead of asterisk(*). I replaced those anyways.

Removed the url in the comment since it's inaccessible and not on wayback machine either.

Also corrected the GameID, the wrong one is listed.
2024-09-29 00:34:27 +01:00
JosJuice
d0e6573ac7 Android: Use enableEdgeToEdge
Dolphin has been using edge-to-edge rendering for a little while now,
but it has required a bit of manual work. Now that edge-to-edge is
becoming something expected of apps in Android 15, there's a nicer API
we can use.

Tested on Android 8, 11 and 13, with no changes in behavior noted.
2024-09-28 18:20:31 +02:00
JosJuice
14a802b58b Android: Add 16 KiB page size support
So far, Dolphin hasn't been able to run on Android devices that use a
16 KiB page size. 16 KiB page sizes are a very new Android feature that
no phones have shipped with so far, so we're still compatible with the
phones that exist out there, but let's get this fixed before phones
start shipping with 16 KiB page sizes.

Because I couldn't get Android Studio's emulator to work, I haven't been
able to confirm that this change actually makes Dolphin fully compatible
with devices that use a 16 KiB page size. But I have confirmed that this
doesn't break anything on a regular 4 KiB page size device.
2024-09-28 13:43:49 +02:00
robxnano
2748771cb3
linux: Use D-Bus to inhibit screensaver 2024-09-27 21:22:57 +01:00
Dentomologist
dc1b961c09 VideoBackendBase: Only populate backend info when uninitialized
Prevent potential issues when creating the Graphics window (and thus
calling PopulateBackendInfo) while the core state is Stopping, like we
already do while it's Starting or Running.
2024-09-27 12:20:48 -07:00
robxnano
5e8f5afb52
DolphinQt: Remove unneeded Win32 code
Dolphin already uses QStyleHints::colorScheme to detect dark mode,
so this code is now redundant.
2024-09-27 10:41:01 +01:00
Tilka
2cb124bd3a
Merge pull request #13062 from Dentomologist/graphics_clarify_relationship_between_incompatible_settings
Graphics: Clarify relationship between incompatible settings
2024-09-27 05:40:30 +01:00
Tilka
61836e5d8e
Merge pull request #13077 from Dentomologist/graphicswindow_fix_first_opening_during_emulation_startup_crash
GraphicsWindow: Fix crash when opening for the first time during emulation startup
2024-09-27 05:38:37 +01:00
Dentomologist
0a1084fad5 VideoBackendBase: Check Core state in PopulateBackendInfo
Remove the PopulateBackendInfoFromUI function, which had a single caller
(GraphicsWindow::OnBackendChanged) and checked that the core wasn't
running or starting before calling PopulateBackendInfo.

Move the core state check into PopulateBackendInfo and have
OnBackendChanged call that instead. This guarantees the check is
performed by all callers of PopulateBackendInfo, preventing
potential reintroduction of the crash fixed in 3d4ae63f if another call
to PopulateBackendInfo is added.

As of the previous commit the only other caller of PopulateBackendInfo
is Core::Init shortly before s_state is set to Starting, so it will
always pass the check and so maintain its current behavior.
2024-09-26 17:12:26 -07:00
Dentomologist
2b82c34ea8 Core: Remove redundant call to PopulateBackendInfo
Remove the second of two calls to PopulateBackendInfo during emulation
startup. This call was originally the only one, but b214e0e added an
earlier call to handle the backend being changed by the GameINI.

The PR discussion doesn't explain why the original call was left in; I
suspect it was just overlooked.

As a bonus, this removes one of the extra copies of the "Video Info" On
Screen Display message at startup when using OpenGL.
2024-09-26 17:12:26 -07:00
Dentomologist
91f7b776ca GraphicsWindow: Fix crash when opening during emulation startup
Fix a crash when opening the Graphics window for the first time during
emulation startup when the backend is Vulkan, D3D11, or D3D12.

Don't call PopulateBackendInfo() from the Host thread when the core is
starting up. First, the function has already been called in Core::Init()
so we don't need to again. More importantly, PopulateBackendInfo() calls
g_video_backend->InitBackendInfo(), and the Vulkan and D3D
implementations of those functions load and then unload libraries (and
their associated function pointers) which are potentially in use by
other threads.

This crash was reliably reproducible with the following steps:
1) Select an affected backend.
2) Enable "Compile Shaders Before Starting"
3) Delete the cached shaders (but not the .uidcache file) for the game
   you're testing.
4) Close and reopen Dolphin.
5) Start the game.
6) While the game is still booting or compiling shaders, open the
   Graphics window for the first time in that Dolphin session.

Fixes https://bugs.dolphin-emu.org/issues/13634.
2024-09-26 17:12:26 -07:00
JMC47
b1cd4a6690
Merge pull request #13068 from mitaclaw/redundant-case-insensitive
IniFile: Migrate `Common::CaseInsensitiveLess` to StringUtil
2024-09-26 18:24:36 -04:00
JMC47
d4d3acb796
Merge pull request #13065 from mitaclaw/ppc-breakpoints-signal
DolphinQt: A Ubiquitous Signal For When Breakpoints Change
2024-09-26 18:20:43 -04:00
JMC47
0d7e94e8b3
Merge pull request #13070 from mitaclaw/remove-join-strings
StringUtil: Remove `JoinStrings`
2024-09-26 18:20:14 -04:00
JMC47
4bc1546596
Merge pull request #13071 from Pokechu22/cheat-search-crash
Fix random crash when using the cheat search
2024-09-25 15:05:19 -04:00
JMC47
e9e4ae5a34
Merge pull request #13049 from PatrickFerry/gameini_remove_broken_cheat
GameINI: Remove Broken Cheat from "Paper Mario: The Thousand Year Door"
2024-09-25 14:18:30 -04:00
Tilka
ec6f5e1104
Merge pull request #13072 from Tilka/videosw
VideoSoftware: small cleanup
2024-09-25 10:57:05 +01:00
Tillmann Karras
0a299a4e1e Sw/Tev: drop unused macro 2024-09-24 22:00:03 +01:00
Tillmann Karras
98add9faf0 Sw/Rasterizer: fix two elder typos, AD 2009 2024-09-24 22:00:03 +01:00
Pokechu22
b34b7f63ee Fix random crash when using the cheat search
Before, Dolphin would randomly crash when updating the cheat search when automatic refresh was enabled. (Having a large number of addresses listed, e.g. by starting with an "any value" search, may contribute). The crash was due to QTableWidget::item returning nullptr in RefreshGUICurrentValues, presumably due to the table being resized on the UI thread while the emulated CPU thread was updating the values. I've fixed this by pausing the CPU thread for the entirety of OnNextScanClicked; this eliminated crashes in my testing.
2024-09-23 22:47:44 -07:00
mitaclaw
5f90673686 StringUtil: Remove JoinStrings
With 12 uses of `JoinStrings` in the codebase vs 36 uses of `fmt::join`, fmtlib's range adapter for string concatenation with delimiters is clearly the preferred option.
2024-09-22 21:09:36 -07:00
JosJuice
0c1070a07b Android: Add the "Real Balance Board" setting 2024-09-22 21:51:12 +02:00
JosJuice
de67c4c93b
Merge pull request #13013 from duckymomo360/rgh-tattoos-fix
GameINI: Fix tattoo texture saving in Rabbids Go Home
2024-09-22 09:10:09 +02:00
mitaclaw
508ccc2054 IniFile: Migrate Common::CaseInsensitiveLess to StringUtil
Migrating `Common::CaseInsensitiveLess` to StringUtil.h will hopefully discourage rolling one's own solution in the future for case-insensitive associative containers when this (quite robust!) solution already exists.

`Common::CaseInsensitiveStringCompare::IsEqual` was removed in favor of using the `Common::CaseInsensitiveEquals` function.

The `a.size() != b.size()` condition in `Common::CaseInsensitiveEquals` can be removed, since `std::ranges::equal` already checks this condition (confirmed in libc++).
2024-09-21 23:15:42 -07:00
Tilka
067bdaa3dd
Merge pull request #13067 from mitaclaw/dead-code-3
GeckoCode: Remove Dead Code
2024-09-22 05:00:26 +01:00
mitaclaw
671958f141 GeckoCode: Remove Dead Code 2024-09-21 15:33:40 -07:00