Add support for x86_64-only cores on Apple Silicon builds#5138
Open
jamesxhart wants to merge 1 commit into
Open
Add support for x86_64-only cores on Apple Silicon builds#5138jamesxhart wants to merge 1 commit into
jamesxhart wants to merge 1 commit into
Conversation
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.
Add support for x86_64-only cores for Apple Silicon builds, and arm64-only cores for Apple Silicon Macs running builds with Rosetta. (#5016) (OpenEmu builds should support Universal, x86_64-only (for Intel Macs, or Apple Silicon Macs with Rosetta installed), and arm64-only (for Apple Silicon Macs) cores, regardless of the architecture being used by OpenEmu.)
Uses /usr/bin/arch to launch the appropriate slice of OpenEmuHelperApp for the core being used.
As per Apple - Porting to Apple Silicon, the XPC service for OpenEmuHelperApp has been split to x86_64-only and arm64-only, to support launching both core architectures simultaneously.
Launching an x86-64-only core from Apple Silicon (or an arm64-only core from OpenEmu running Rosetta) will override the "Run games using" setting in Settings > Secrets, and always launch using XPC.
Universal cores with unsigned arm64 code are launched with the x86_64 slice instead.
An option in Settings > Secrets shows the installed core architecture (under a "Kind" column in Settings > Cores).
If a core contains no valid architectures, an error is shown with the heading "The [core name] core could not be loaded", and message "The installed version of the [core name] core is not supported on this platform. Try updating to the latest version from the Cores preferences.".
For Intel Macs launching arm64-only cores, the message is "The [core name] core is not supported on this platform. An Apple Silicon Mac is required.".
(For Apple Silicon Macs launching x86_64-only cores after Rosetta is depreciated (beginning with macOS 28), the message is also "The installed version of the [core name] core is not supported on this platform. Try updating to the latest version from the Cores preferences.")
Added:
(I wasn't able to test the build with an Intel Mac.)
Settings > Cores, with the debug option "Show core architecture" enabled:

Settings > Secrets, showing the label under "Run games using", and the Cores group with “Show core architecture”:


Error when loading a game, for Intel Macs launching arm64-only cores:
Error when loading a game, with the corresponding core (otherwise) containing no valid architectures: