Skip to content

Implement ARM (arm64/aarch64) architecture support in pluginexecutablefinder.py as in build/lib/__init__.py #182

@cfwdman

Description

@cfwdman

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions