-
Notifications
You must be signed in to change notification settings - Fork 22
Implement ARM (arm64/aarch64) architecture support in pluginexecutablefinder.py as in build/lib/__init__.py #182
Copy link
Copy link
Open
Description
Summary
The current implementation of arch_name() in fsgs/plugins/pluginexecutablefinder.py does not detect ARM64 (Apple Silicon/aarch64) architecture, instead returning "Unknown". There is a FIXME comment but the support is missing, causing plugin and executable location probing to use an "Unknown" path, breaking functionality for ARM-based Macs.
Recommended Fix
Replicate the architecture detection logic from build/lib/__init__.py (or similar logic) in pluginexecutablefinder.py:
def arch_name() -> str:
machine = platform.machine().lower()
if machine in X86_ANY_MACHINES:
if platform.architecture()[0] == "64bit":
return "x86-64"
else:
return "x86"
elif machine in ["arm64", "aarch64"]:
return "ARM64"
# Other ARM variants could be added here
return "Unknown"Impact
- Apple Silicon/Homebrew and other ARM installations cannot use the standard System/FS-UAE/macOS/ARM64 structure because the architecture remains "Unknown".
- Users must create workarounds with symlinks in both "Unknown" and "ARM64", which is error-prone and poorly documented.
Alternative/minimum fix:
- Add a known issue to the release notes or a KNOWN_ISSUES file stating that ARM64 is not recognized in PluginExecutableFinder and document workarounds (such as symlinking fs-uae into both ARM64 and Unknown directories).
Labels: bug, enhancement, arm64
/cc @cfwdman
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels