Upstream update for Triforce support#408
Open
cscd98 wants to merge 400 commits intolibretro:masterfrom
Open
Conversation
Requires at least GCC 11, Clang 13, MSVC 19.30 (VS2022 17.0), or AppleClang 13.1.6 (XCode 13.3).
…gone DolphinQt: Disable Liquid Glass on macOS when built with Xcode 26
By moving members of the OpArg struct around, we can cut down on how much padding the struct needs. Now it has a size of 16 bytes, small enough for function calls to pass it in two registers instead of on the stack.
Combined with the previous commit, this brings the TrampolineInfo struct down to 48 bytes. This matters, because Jit64 has a big std::unordered_map where it stores many megabytes of TrampolineInfo entries. The key saving comes from shrinking the len member from u32 to u16. It should be safe to even turn it into a u8, but going that far brings no additional savings due to how the padding works out.
Without this, every time we finalize a JIT block, we have to allocate memory for a string and format the string.
Profiling Dolphin using Heaptrack, this turns out to be the cause of more than half of all temporary allocations. Though since it's in a separate thread, I suppose it wasn't affecting performance very much.
HotkeyManager: Don't allocate heap memory in GetInput
Externals: Update zlib-ng to v2.3.2
cpp-ipc: Fix builds on non-FreeBSD BSDs
…config .editorconfig: Update CMake style
Jit64: Make OpArg and TrampolineInfo smaller
This reverts commit 34b402b.
Revert "Externals: Update zlib-ng to v2.3.2"
Jit64: Return current value from RCOpArg::IsImm
Android: Use compilerOptions block to specify JVM version
Android: Switch to Theme.Material3.DynamicColors
Android: Add build output folders to gitignore
MenuBar: Add entries to open the config and cache folders
GameINI: Enable EFB Access for PES 2009-2013
LogitechMicWindow: Fix compilation when cubeb is disabled
The TextureInfo constructor creates a vector of MipLevels. This could be good for performance if MipLevels are accessed very often for each TextureInfo, but that's not the case. Dolphin creates thousands of TextureInfos per second that it never accesses the mipmap levels of because there's a hit in the texture cache, and in the uncommon case of a texture cache miss, the mipmap levels only get looped through once. To make the common case of texture cache hits as fast as possible, let's not create a vector in the TextureInfo constructor. This commit implements a custom iterator for MipLevels instead. In my testing on the Death Star level of Rogue Squadron 2, this speeds up TextureInfo::FromStage by 200%, giving an overall emulation speedup of a bit over 1%. Results on the Hoth level are even better, with TextureInfo::FromStage being close to 300% faster and overall emulation being over 4% faster. (Single core, no GPU texture decoding.)
Building on macOS with a recent CMake version would result in the following error: CMake Error at Source/Core/MacUpdater/CMakeLists.txt:48 (add_custom_command): The following keywords are not supported when using add_custom_command(TARGET): DEPENDS As it turns out, this form of `add_custom_command` does not accept DEPENDS, but versions of CMake prior to 3.31 silently dropped it.
mingw: move ReadValue definitions into cpp to fix visibility
Fix MacUpdater build on CMake 3.31+
VideoCommon: Don't create mipmap vector in TextureInfo
… only last octet difference.
This lets users select Triforce Baseboard for SI and SP1. Limitations: * The test, service and coin buttons can be bound to gamepads and other physical inputs, but aren't available in the touch input overlay. * The IP redirections are exposed to the user as a raw string rather than a table like in DolphinQt.
Core: Triforce support
…_Clean is received.
…ard-cleaning MagneticCardReader: Automatically insert a blank card when Command_A0_Clean is received.
4d32629 to
8314a17
Compare
74ce4d3 to
7257da1
Compare
7257da1 to
5954b91
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
See: https://dolphin-emu.org/blog/2026/02/16/rise-of-the-triforce/
Quick instructions:
You need a controller:
Rest of PR - briefly tested on Linux, Android, Windows (MSVC) and Windows (MINGW)