Initial macOS compatibility fixes#107
Open
Mwrnk wants to merge 3 commits into
Open
Conversation
Dynarec uses ELF directives incompatible with Mach-O; fall back to cached interpreter on __APPLE__. VidExt busy-wait now checks isExposed() in addition to isVisible() (NSView has no drawable surface until exposed), with a 5s timeout and improved GL context error output.
|
This PR really wont do, since the dynamic recompiler which is used even if we got it ported to arm64 is too different with the x86_64 code that it could desync. |
# Conflicts: # Source/RMG/CMakeLists.txt # Source/RMG/VidExt.cpp
Author
The PR doesn't port the dynarec to macOS, it just disables it and uses the cached interpreter instead. If Mac vs PC sessions do desync, the fix is forcing all peers to the interpreter whenever a Mac player is in the room, not rejecting the entire port. And this is testable (same ROM + same inputs, compare savestates between the two cores) rather than something we have to guess about. |
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.
Description:
Gets RMG-K running on macOS (Apple Silicon / Mach-O).
Disable dynamic recompiler on APPLE: the arm64 dynarec uses ELF
directives that are incompatible with Mach-O. Falls back to cached
interpreter (mode 1) across all emulation paths.
Fix OpenGL widget startup in VidExt: isVisible() returns true on macOS
before the NSView has an actual drawable surface. Now also waits for
isExposed() with a 5s timeout, preventing makeCurrent() failures on
launch. Improved GL context error messages to show requested vs. actual
version/profile.