Skip to content

macOS Support #455

Closed
Closed

Description

@DarioSamo

Update

macOS has been added and will be part of the next version update. If you wish to test it ahead of time, follow this comment's instructions.


Original Post

While macOS is not currently in the roadmap, the project welcomes any effort to add macOS support, as Unleashed Recompiled relies on plume, a rendering hardware abstraction that will be getting support for Metal in the near future. macOS support can stay as part of the main project if a new maintainer is interested in supporting it.

A prototype through the usage of MoltenVK could also be currently attempted, as plume supports Vulkan.

EDIT: A PR for macOS support is in progress here.

Activity

  1. added theissue type on Feb 23, 2025
  2. added
    MacOSIssue affected by MacOS as a whole
    on Feb 26, 2025
  3. SolarArts commented on Mar 2, 2025

    @SolarArts

    A MacOS port would be amazing

  4. squidbus commented on Mar 2, 2025

    @squidbus
    Contributor

    Currently seems to be unable to compile because directx-dxc in vcpkg has no macOS support.

  5. Sonic-Hero commented on Mar 2, 2025

    @Sonic-Hero

    Currently seems to be unable to compile because directx-dxc in vcpkg has no macOS support.
    This command below can install directx-dxc on Mac:

    ./vcpkg install directx-dxc
    

    Mac kind of supports it from memory. I might test it out to see what issues come up and to see if there are any work arounds

  6. squidbus commented on Mar 2, 2025

    @squidbus
    Contributor
    ./vcpkg install directx-dxc
    

    Mac kind of supports it from memory. I might test it out to see what issues come up and to see if there are any work arounds

    I checked with --allow-unsupported and it doesn't work, because the formula only knows how to download Linux or Windows versions, and on Mac it just downloads the Windows files: https://github.com/microsoft/vcpkg/blob/master/ports/directx-dxc/portfile.cmake

  7. Sonic-Hero commented on Mar 2, 2025

    @Sonic-Hero

    Ok, that might be a LITTLE issue 😅

  8. Sonic-Hero commented on Mar 2, 2025

    @Sonic-Hero

    Could a wine skin or another translation tool help with this? I don't really want to use windows translation tools because they are very recourse heavy, but I might take a look into it to see if any results can come from it.

    This might not be a good idea because you would want to make sure the game is running well, but for now figuring out a work around or fix for directx-dxc seems to be the main issue...

  9. squidbus commented on Mar 2, 2025

    @squidbus
    Contributor

    Here's what I think so far are 3 paths:

    • Getting Mac builds of directx-dxc; I think this may be supported to some extent by DirectXShaderCompiler itself but they don't provide builds, and by extension the vcpkg package is not configured to work with macOS. It's a bit difficult since the compiler is also used as a tool so it basically needs to be built at configure time to then run on shader source files.
    • Running dxc under wine, this may be doable but since XenosRecomp uses it as a library that also may be a problem.
    • Running Windows builds of UnleashedRecomp under wine, problem I seem to be facing with this currently is it's hitting shader compile errors with the Crossover bundled MoltenVK, and this code forces wine to use Vulkan, so it currently can't be used with D3DMetal (am trying to build without this constraint):
      g_vulkan = DetectWine() || Config::GraphicsAPI == EGraphicsAPI::Vulkan;
  10. SolarArts commented on Mar 2, 2025

    @SolarArts

    Maybe someday, we’ll get the blessing of Sonic Unleashed. It’s the one port (besides Sonic Generations but I got that in my Switch) that I’ve been DYING to play.

  11. Saussau083 commented on Mar 2, 2025

    @Saussau083

    I'm on Mac (MacBook Air M2, 8GB, macOS Sequoia). I’ve gone through the install process with Wine, which works perfectly fine. But now, the game doesn’t launch through Wine. If you have any tips, feel free to share :)

  12. IsaacMarovitz commented on Mar 2, 2025

    @IsaacMarovitz
    Contributor

    I'm taking a look

  13. Sonic-Hero commented on Mar 2, 2025

    @Sonic-Hero

    I'm on Mac (MacBook Air M2, 8GB, macOS Sequoia). I’ve gone through the install process with Wine, which works perfectly fine. But now, the game doesn’t launch through Wine. If you have any tips, feel free to share :)

    @Saussau083 try deleting the cache or reinstalling the game. This project is new so we don't really know what issues come up when translating the base windows decomp through wine.

  14. ArtisIan97 commented on Mar 3, 2025

    @ArtisIan97

    Hi all, I'm using a MacBook Air M1 (8GB RAM, OS Sequoia 15.3.1) with Whisky to test the game, as right now there is no native port and I don't have the programming chops to help make that a reality. The installer works fine, but the game itself opens to a black screen and immediately closes.

    EDIT: The initial errors I got ended up being because I had an outdated version of MoltenVK in my Whisky setup. I put in the newest version and got shader compilation errors:

    [mvk-error] VK_ERROR_INITIALIZATION_FAILED: Shader library compile failed (Error code 3):
    program_source:26:43: error: as_type cast from 'ulong' (aka 'unsigned long') to 'device int2 *' is not allowed
        int2 _55 = int2(gl_FragCoord.xy) - (*(as_type<device int2*>(reinterpret_cast<ulong>(g_PushConstants.SharedConstants + 16ul))));
                                              ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    program_source:30:29: error: as_type cast from 'ulong' (aka 'unsigned long') to 'device int2 *' is not allowed
            _66 = any(_55 >= (*(as_type<device int2*>(reinterpret_cast<ulong>(g_PushConstants.SharedConstants + 24ul)))));
                                ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    program_source:45:34: error: as_type cast from 'ulong' (aka 'unsigned long') to 'device float3 *' is not allowed
        float3 _81 = powr(_77.xyz, *(as_type<device float3*>(reinterpret_cast<ulong>(g_PushConstants.SharedConstants))));
                                     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    .
    [mvk-error] VK_ERROR_INITIALIZATION_FAILED: Fragment shader function could not be compiled into pipeline. See previous logged error.
    vkCreateGraphicsPipelines failed with error code 0xFFFFFFFD.
    
    

    = Original post: =
    Running through the Terminal gives me this log:

    wineserver: using server-side synchronization.
    2025-03-03 08:19:59.942 wine64-preloader[54312:1014459] +[IMKClient subclass]: chose IMKClient_Modern
    0024:err:kerberos:kerberos_LsaApInitializePackage no Kerberos support, expect problems
    0024:err:winediag:ntlm_check_version ntlm_auth was not found or is outdated. Make sure that ntlm_auth >= 3.0.25 is in your path. Usually, you can find it in the winbind package of your distribution.
    0024:err:ntlm:ntlm_LsaApInitializePackage no NTLM support, expect problems
    [*] Saving configuration...
    [*] SDL video driver: "windows"
    2025-03-03 08:20:07.242 wine64-preloader[54258:1014205] +[IMKClient subclass]: chose IMKClient_Modern
    0024:err:ole:StdMarshalImpl_MarshalInterface Failed to create ifstub, hr 0x80004002
    0024:err:ole:CoMarshalInterface Failed to marshal the interface {ea1ea136-19df-11d7-a6d2-00065b84435c}, hr 0x80004002
    0024:err:ole:StdMarshalImpl_MarshalInterface Failed to create ifstub, hr 0x80004002
    0024:err:ole:CoMarshalInterface Failed to marshal the interface {ea1ea136-19df-11d7-a6d2-00065b84435c}, hr 0x80004002
    2025-03-03 08:20:07.928 wine64-preloader[54258:1014205] +[IMKInputSession subclass]: chose IMKInputSession_Modern
    vkCreateGraphicsPipelines failed with error code 0xC4650720.
    wine: Unhandled page fault on read access to 0000000000000058 at address 00000001403607E7 (thread 0024), starting debugger...
    Unhandled exception: page fault on read access to 0x0000000000000058 in 64-bit code (0x000001403607e7).
    

    As mentioned earlier:

    • Running Windows builds of UnleashedRecomp under wine, problem I seem to be facing with this currently is it's hitting shader compile errors with the Crossover bundled MoltenVK, and this code forces wine to use Vulkan, so it currently can't be used with D3DMetal

    I'm not 100% sure if I'm dealing with the same issue or if this is something different entirely (EDIT: It was a different issue, see above), but I can confirm the code is being forced to use Vulkan...when D3D12 on Mac likely is the better option thanks to D3DMetal.

    CrossOver and Whisky can use D3DMetal from Apple's GPTK, which I'd love to use and would probably get the game actually started. Merging #531 should allow the game to run with CrossOver/Whisky and D3DMetal for now, and we can do further testing.

  15. 155 remaining items

  16. squidbus commented on Apr 12, 2025

    @squidbus
    Contributor

    Latest build in the PR should resolve M1/M2 issues.

  17. Zeropxl-dev commented on May 19, 2025

    @Zeropxl-dev

    any news on the black screen issue?

  18. Zeropxl-dev commented on May 19, 2025

    @Zeropxl-dev

    @phamtheman69 oh i didnt even know thanks

  19. Zeropxl-dev commented on May 19, 2025

    @Zeropxl-dev

    random question does anyone know how to install mods on mac?

  20. arsnyan commented on Jun 2, 2025

    @arsnyan

    Hi there!
    I don't know whether it's a bug specific to macOS or not, but my controller's left joystick glitches out specifically in werehog levels. In daytime stages it's totally fine and I've tested the controller in other apps and it works great.

    In night stages, however, often times Sonic reverts and goes back when I push joystick forward. Rarely the same thing also happens when I push backwards (so Sonic randomly goes forward).
    This does not happen when moving left or right.

    I'm using a generic controller (off-brand, really cheap).

  21. realrazing929 commented on Jul 5, 2025

    @realrazing929

    I have this issue where in Eggmanland in the first Daytime section, the top rail always lags like crazy even on Potato Settings.
    I have the latest build and my specs are M1 Mac Mini 2020 8GB RAM

  22. realrazing929 commented on Jul 6, 2025

    @realrazing929

    Settings: Resolution - 1920x1080
    Resolution Scale - 100%
    VSync - On
    FPS - 144
    Anti-Aliasing - 4x MSAA
    Shadow Resolution - 2048

    Mods: Save Manager
    Faithful HD Characters
    Optional Improvements
    Refined Sonic Controls
    Werehog's Fury
    Instant Stomp
    Disable Werehog Camera Pans
    Faster Final Boss
    PS3 FMVs
    High Resolution Textures
    Less Compressed Adabat Sky
    Tornado Stage Skip (PC)
    4K HQ Stage Thumbnails

  23. realrazing929 commented on Jul 7, 2025

    @realrazing929

    Disabling the Higher Render Distance in Optional Improvements worked, and it runs flawlessly now! But I didn't see a difference with High Resolution Textures when I turned it off. Thanks!

  24. dav898960 commented on Aug 16, 2025

    @dav898960

    you cant install the port anymore it says expired

  25. Rushh12 commented on Aug 21, 2025

    @Rushh12

    im trying to redownload the macOS port and it say its expired

  26. squidbus commented on Aug 22, 2025

    @squidbus
    Contributor

    For the port using MoltenVK, the PR for that was merged so downloads would be in the GitHub Actions of this repo, not the fork.

    For Metal rendering, I have a PR open here with a link to an Actions build to download from: #1648

  27. DarioSamo commented on Aug 22, 2025

    @DarioSamo
    ContributorAuthor

    We can consider this issue solved as macOS support has been merged to main. The next version update of the project should feature a macOS version as it's part of the build actions.

    Follow squidbus's instructions if you wish to test it ahead of time.

  28. AJAM731 commented on Sep 10, 2025

    @AJAM731

    it says that it isn’t supported on my mac for some odd reason

  29. ethankimball360 commented on Sep 19, 2025

    @ethankimball360

    Will Intel Macs be supported?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    MacOSIssue affected by MacOS as a wholehelp wantedExtra attention is needed

    Type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions