Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

chore: upstream merge to 2409 #29

Open
wants to merge 1,010 commits into
base: slippi
Choose a base branch
from
Open

Conversation

NikhilNarayana
Copy link
Member

No description provided.

AdmiralCurtiss and others added 30 commits July 6, 2024 14:23
…ements-hotkey

Add Open Achievements Hotkey
Things using dolphin_find_optional_system_library need to link against the name used there or they won't work with both the system and bundled cases
Prototype of a system to whitelist known game patches that are allowed to be used while RetroAchievements Hardcore mode is active. ApprovedInis.txt contains known hashes for the ini files as they appear in the repo, and can be compared to the local versions of these files to ensure they have not been edited locally by the player. ApprovedInis.txt is hashed and verified similarly first, with its hash residing as a const string within AchievementManager.h, ensuring ApprovedInis and the hashes within cannot be modified without editing Dolphin's source code and recompiling completely.
This unit test compares ApprovedInis.json with the contents of the GameSettings folder to verify that every patch marked allowed for use with RetroAchievements has a hash in ApprovedInis.json. If not, that hash is reported in the test logs so that the hash may be updated more easily.
…ements-allowlist-test

RetroAchievements - Patch Allowlist Unit Test
We mustn't use m_system when it is nullptr. This was causing Dolphin to
crash on Android whenever an activity was recreated or resumed while
emulation is running, which is super common.
…cution-allowed-crash

Fix AchievementManager::SetBackgroundExecutionAllowed crash
0c14b0c made Dolphin load a file from
the Sys folder the first time AchievementManager::GetInstance() is
called. Because Android calls AchievementManager::GetInstance() from
setBackgroundExecutionAllowedNative, this had two negative consequences
on Android:

1. The first time setBackgroundExecutionAllowedNative gets called is
   often before directory initialization is done. Getting the path of
   the Sys folder before directory initialization is done causes a crash.
2. setBackgroundExecutionAllowedNative is called from the GUI thread,
   and we don't want file I/O on the GUI thread for performance reasons.

This change makes us load the data from the Sys folder the first time
the data is needed instead. This also saves us from having to load the
data at all when hardcore mode is inactive.
There being no active patches is by far the most common case, so let's
optimize for this case.
…ist-crash

RetroAchievements: Delay calling LoadApprovedList
BreakpointWidget: Correct icon position
Currently we're showing OSD messages for unknown patches in known INI
files, but not for unknown patches in unknown INI files. I don't think
this distinction makes much sense to the user. If there's a patch the
user can't use, they probably want to be aware of that fact.
We haven't been storing ratings in GameINIs since dolphin-emu#6569.
try support was removed from the buildbot master in dolphin-emu/sadm@336d0e6.
This tool doesn't seem to work properly anymore, even after fixing the path in main().
Include sorting has been enforced by clang-format and lint since ~2015.
Emergency PR to disable the leaderboards tab for launch if we are not satisfied with its testing yet.
…_running

IOS::HLE::EmulationKernel::InitIPC: Fix WiiIPC ack generation
BuildMacOSUniversalBinary: Disable usage of most system-provided libraries
…ements-unlocked-progress

Achievements Progress Bar Tweaks
Tools: Remove unused and broken scripts
RetroAchievements: Show OSD messages also for unverified INI files
Now that we have some test data, it wasn't showing up in the leaderboards tab; this fixes it to ensure (1) that the right ID is being passed to UpdateRow and (2) the map of leaderboard entries is being populated correctly.
Tilka and others added 30 commits August 24, 2024 19:47
I'm fairly sure the implementation is correct but I've not been able to
find a game that actually makes use of these filters.
AX: add support for biquad filtering
Allow connecting or disconnecting multiple Wii Remotes simultaneously
instead of only handling the highest index whose hotkey is pressed. This
allows using a single hotkey to toggle multiple remotes.
A vector of length 0 can have a null data pointer, which causes UB when
passed to memcpy, so only copy when we actually have data to copy. This
caused crashes in certain cases when compiling Dolphin with Clang and
LTO enabled.
…er_handle_wiimote_connections_independently

HotkeyScheduler: Handle Wii Remote connections independently
Set the Render Window as the parent of the Confirm On Stop confirmation
dialog when Keep Window On Top is enabled, ensuring it will always be
visible.

Previously, when Confirm On Stop and Keep Window On Top were both
enabled the Confirm On Stop dialog could be hidden by the render window
in the following situations:
* Clicking Stop in the Main Window
* Clicking the Main Window's close button
* Pressing the Stop hotkey while in FullScreen mode

This was particularly troublesome because the confirm dialog is modal,
preventing the user from moving the render window out of the way if it
was obscuring the dialog.

Fixes https://bugs.dolphin-emu.org/issues/13247.
…_pal60

Gameini: Enable PAL60 for Some PAL Games
This is a minor improvement to add line numbers to the LOG_VULKAN_ERROR
define. Basically error logs for Vulkan will now look like:

```
// This
25:03:347 VideoBackends/Vulkan/VulkanLoader.cpp:247 E[Video]: (WaitForCommandBufferCompletion:278) vkWaitForFences failed:  (2: VK_TIMEOUT)

// Instead of
15:45:154 VideoBackends/Vulkan/VulkanLoader.cpp:247 E[Video]: (WaitForCommandBufferCompletion) vkWaitForFences failed:  (2: VK_TIMEOUT)
```
RVZ: Fix undefined behaviour when copying 0 bytes to a null pointer
…x_hidden_confirm_on_stop_dialog

MainWindow: Prevent Confirm On Stop dialog from being hidden by the Render window
GameSettings: force EFB-to-RAM for My First Songs
vulkan: Add line number to vulkan error logger
This was accidentally using the instruction's output instead of the
instruction's input when the input and output registers were the same.
Interpreter: Fix subfic carry calculation
I wasn't aware that even with a size of zero, it's still not safe to pass a nullptr to `std::memcpy`. When `CachedInterpreterEmitter::PoisonCallback` is written, UB is happening.
…-memcpy-ub

CachedInterpreterEmitter: Fix `std::memcpy` UB
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.