Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

macOS Support #455

Open
DarioSamo opened this issue Feb 23, 2025 · 121 comments
Open

macOS Support #455

DarioSamo opened this issue Feb 23, 2025 · 121 comments
Labels
help wanted Extra attention is needed MacOS Issue affected by MacOS as a whole

Comments

@DarioSamo
Copy link
Contributor

DarioSamo commented Feb 23, 2025

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.

@DarioSamo DarioSamo added the help wanted Extra attention is needed label Feb 23, 2025
@DeaTh-G DeaTh-G added the MacOS Issue affected by MacOS as a whole label Feb 26, 2025
@SolarArts
Copy link

A MacOS port would be amazing

@squidbus
Copy link

squidbus commented Mar 2, 2025

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

@Sonic-Hero
Copy link

Sonic-Hero commented Mar 2, 2025

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

@squidbus
Copy link

squidbus commented Mar 2, 2025

./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

@Sonic-Hero
Copy link

Ok, that might be a LITTLE issue 😅

@Sonic-Hero
Copy link

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...

@squidbus
Copy link

squidbus commented Mar 2, 2025

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;

@SolarArts
Copy link

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.

@Saussau083
Copy link

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 :)

@IsaacMarovitz
Copy link
Contributor

I'm taking a look

@Sonic-Hero
Copy link

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.

@ArtisIan97
Copy link

ArtisIan97 commented Mar 3, 2025

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.

@BittahBandit1
Copy link

Even with D3DMetal the game isn't launching.

@ArtisIan97
Copy link

Even with D3DMetal the game isn't launching.

Do we know why? What log is shown when debugging/running through the Terminal?

@to-fuu
Copy link

to-fuu commented Mar 3, 2025

#484 (comment)

the current problem that comes up is mentioned here

@squidbus
Copy link

squidbus commented Mar 3, 2025

I'll summarize my findings so far:

  • For native support, hitting the compile issues mentioned before with directx-dxc vcpkg package not having macOS support.
  • Under wine with Vulkan, there are at minimum the issues mentioned here with CrossOver supplied MoltenVK not using argument buffers by default, and a shader compiler issue with the use of buffer addresses.
  • Under wine with D3DMetal, I can get through the installer and it crashes at the start of the actual game. With a debug build I can get a bit further but it freezes at the first "Now Loading" screen.

And no VM support because available VMs don't have D3D12 or Vulkan support.

@ElectronicHimate
Copy link

I'll summarize my findings so far:

  • For native support, hitting the compile issues mentioned before with directx-dxc vcpkg package not having macOS support.
  • Under wine with Vulkan, there are at minimum the issues mentioned here with CrossOver supplied MoltenVK not using argument buffers by default, and a shader compiler issue with the use of buffer addresses.
  • Under wine with D3DMetal, I can get through the installer and it crashes at the start of the actual game. With a debug build I can get a bit further but it freezes at the first "Now Loading" screen.

And no VM support because available VMs don't have D3D12 or Vulkan support.

where is that debug build?

@squidbus
Copy link

squidbus commented Mar 3, 2025

where is that debug build?

You have to build it yourself from the source code.

@That-1one-guy
Copy link

If someone could manage to do this I would be very grateful.

@IsaacMarovitz
Copy link
Contributor

If someone could manage to do this I would be very grateful.

squidbus is working on fixing CMake problems, I took a look at adding simde to XenonRecomp for native ARM builds, and Dario Tanmay and dcvz have been working on RHI Metal support for RT64 for a while which will directly translate for this project.

It will probably happen.

@Sonicloop16
Copy link

Wait do this is really happening I would literally freak out if a Mac OS port comes out.

@SolarArts
Copy link

Wait do this is really happening I would literally freak out if a Mac OS port comes out.

I would flip too. I would play it for hours on end

@squidbus
Copy link

squidbus commented Mar 3, 2025

With fix from KhronosGroup/SPIRV-Cross#2452 in a custom build of MoltenVK, the shader compile errors are gone and I'm able to get to title screen and into (visually very bugged) game under CrossOver Wine, with a debug build. Release build still crashes at the start of game, and work-in-progress native build I have seems to be about the same state as that.

Image Image

@realrazing929
Copy link

I keep trying on both Crossover an Whisky. Whisky Crashes straight up on startup no matter how much I try. I'm able to install the files (which won't show up on Crossover, it plays music but no display) but I can't play the game. I got this error on crossover. (My specs: M1 Mac Mini 2020 8GB RAM) I used D3DMetal with MSync and ESync as well as DXVK and nothing works. I haven't tried CXPatcher yet, but I will give results when I do.

Command error text:
2025-03-03 16:36:34.504 wine-preloader[29239:2442911] +[IMKClient subclass]: chose IMKClient_Modern
2025-03-03 16:36:36.081 wine-preloader[29239:2442911] +[IMKInputSession subclass]: chose IMKInputSession_Modern
[mvk-info] MoltenVK version 1.2.5, supporting Vulkan version 1.2.261.
The following 100 Vulkan extensions are supported:
VK_KHR_16bit_storage v1
VK_KHR_8bit_storage v1
VK_KHR_bind_memory2 v1
VK_KHR_buffer_device_address v1
VK_KHR_copy_commands2 v1
VK_KHR_create_renderpass2 v1
VK_KHR_dedicated_allocation v3
VK_KHR_deferred_host_operations v4
VK_KHR_depth_stencil_resolve v1
VK_KHR_descriptor_update_template v1
VK_KHR_device_group v4
VK_KHR_device_group_creation v1
VK_KHR_driver_properties v1
VK_KHR_dynamic_rendering v1
VK_KHR_external_fence v1
VK_KHR_external_fence_capabilities v1
VK_KHR_external_memory v1
VK_KHR_external_memory_capabilities v1
VK_KHR_external_semaphore v1
VK_KHR_external_semaphore_capabilities v1
VK_KHR_fragment_shader_barycentric v1
VK_KHR_get_memory_requirements2 v1
VK_KHR_get_physical_device_properties2 v2
VK_KHR_get_surface_capabilities2 v1
VK_KHR_imageless_framebuffer v1
VK_KHR_image_format_list v1
VK_KHR_incremental_present v2
VK_KHR_maintenance1 v2
VK_KHR_maintenance2 v1
VK_KHR_maintenance3 v1
VK_KHR_map_memory2 v1
VK_KHR_multiview v1
VK_KHR_portability_subset v1
VK_KHR_push_descriptor v2
VK_KHR_relaxed_block_layout v1
VK_KHR_sampler_mirror_clamp_to_edge v3
VK_KHR_sampler_ycbcr_conversion v14
VK_KHR_separate_depth_stencil_layouts v1
VK_KHR_shader_draw_parameters v1
VK_KHR_shader_float_controls v4
VK_KHR_shader_float16_int8 v1
VK_KHR_shader_non_semantic_info v1
VK_KHR_shader_subgroup_extended_types v1
VK_KHR_spirv_1_4 v1
VK_KHR_storage_buffer_storage_class v1
VK_KHR_surface v25
VK_KHR_swapchain v70
VK_KHR_swapchain_mutable_format v1
VK_KHR_timeline_semaphore v2
VK_KHR_uniform_buffer_standard_layout v1
VK_KHR_variable_pointers v1
VK_EXT_4444_formats v1
VK_EXT_buffer_device_address v2
VK_EXT_calibrated_timestamps v2
VK_EXT_debug_marker v4
VK_EXT_debug_report v10
VK_EXT_debug_utils v2
VK_EXT_descriptor_indexing v2
VK_EXT_external_memory_host v1
VK_EXT_fragment_shader_interlock v1
VK_EXT_hdr_metadata v2
VK_EXT_host_query_reset v1
VK_EXT_image_robustness v1
VK_EXT_inline_uniform_block v1
VK_EXT_memory_budget v1
VK_EXT_metal_objects v1
VK_EXT_metal_surface v1
VK_EXT_pipeline_creation_cache_control v3
VK_EXT_pipeline_creation_feedback v1
VK_EXT_post_depth_coverage v1
VK_EXT_private_data v1
VK_EXT_robustness2 v1
VK_EXT_sample_locations v1
VK_EXT_scalar_block_layout v1
VK_EXT_separate_stencil_usage v1
VK_EXT_shader_atomic_float v1
VK_EXT_shader_demote_to_helper_invocation v1
VK_EXT_shader_stencil_export v1
VK_EXT_shader_subgroup_ballot v1
VK_EXT_shader_subgroup_vote v1
VK_EXT_shader_viewport_index_layer v1
VK_EXT_subgroup_size_control v2
VK_EXT_surface_maintenance1 v1
VK_EXT_swapchain_colorspace v4
VK_EXT_swapchain_maintenance1 v1
VK_EXT_texel_buffer_alignment v1
VK_EXT_texture_compression_astc_hdr v1
VK_EXT_vertex_attribute_divisor v3
VK_EXT_transform_feedback v1
VK_AMD_gpu_shader_half_float v2
VK_AMD_negative_viewport_height v1
VK_AMD_shader_image_load_store_lod v1
VK_AMD_shader_trinary_minmax v1
VK_IMG_format_pvrtc v1
VK_INTEL_shader_integer_functions2 v1
VK_GOOGLE_display_timing v1
VK_MVK_macos_surface v3
VK_MVK_moltenvk v37
VK_NV_fragment_shader_barycentric v1
VK_NV_glsl_shader v1
[mvk-info] GPU device:
model: Apple M1
type: Integrated
vendorID: 0x106b
deviceID: 0xf0303ef
pipelineCacheUUID: 6035642A-0F03-03EF-0000-000000000000
supports the following Metal Versions, GPU's and Feature Sets:
Metal Shading Language 3.0
GPU Family Apple 7
GPU Family Apple 6
GPU Family Apple 5
GPU Family Apple 4
GPU Family Apple 3
GPU Family Apple 2
GPU Family Apple 1
GPU Family Mac 2
GPU Family Mac 1
GPU Family Common 3
GPU Family Common 2
GPU Family Common 1
macOS GPU Family 2 v1
macOS GPU Family 1 v4
macOS GPU Family 1 v3
macOS GPU Family 1 v2
macOS GPU Family 1 v1
[mvk-info] Created VkInstance for Vulkan version 1.2.0, as requested by app, with the following 2 Vulkan extensions enabled:
VK_KHR_surface v25
VK_EXT_metal_surface v1
[mvk-info] Vulkan semaphores using Metal implicit guarantees within a single queue.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 7 Vulkan extensions enabled:
VK_KHR_buffer_device_address v1
VK_KHR_deferred_host_operations v4
VK_KHR_sampler_mirror_clamp_to_edge v3
VK_KHR_swapchain v70
VK_EXT_robustness2 v1
VK_EXT_sample_locations v1
VK_EXT_scalar_block_layout v1
[mvk-error] VK_ERROR_INITIALIZATION_FAILED: Shader library compile failed (Error code 3):
program_source:16:132: error: cannot reserve 'texture' resource locations at index 0
fragment main0_out main0(constant type_ConstantBuffer_PushConstants& g_PushConstants [[buffer(0)]], array<texture2d, 65536> g_Texture2DDescriptorHeap [[texture(0)]], float4 gl_FragCoord [[position]])
^
.
[mvk-error] VK_ERROR_INVALID_SHADER_NV: Fragment shader function could not be compiled into pipeline. See previous logged error.
[mvk-error] VK_ERROR_INITIALIZATION_FAILED: Shader library compile failed (Error code 3):
program_source:16:135: error: cannot reserve 'texture' resource locations at index 0
fragment main0_out main0(constant type_ConstantBuffer_PushConstants& g_PushConstants [[buffer(0)]], array<texture2d_ms, 65536> g_Texture2DMSDescriptorHeap [[texture(0)]], float4 gl_FragCoord [[position]])
^
.
[mvk-error] VK_ERROR_INVALID_SHADER_NV: Fragment shader function could not be compiled into pipeline. See previous logged error.
[mvk-error] VK_ERROR_INITIALIZATION_FAILED: Shader library compile failed (Error code 3):
program_source:16:135: error: cannot reserve 'texture' resource locations at index 0
fragment main0_out main0(constant type_ConstantBuffer_PushConstants& g_PushConstants [[buffer(0)]], array<texture2d_ms, 65536> g_Texture2DMSDescriptorHeap [[texture(0)]], float4 gl_FragCoord [[position]])
^
.
[mvk-error] VK_ERROR_INVALID_SHADER_NV: Fragment shader function could not be compiled into pipeline. See previous logged error.
[mvk-error] VK_ERROR_INITIALIZATION_FAILED: Shader library compile failed (Error code 3):
program_source:16:135: error: cannot reserve 'texture' resource locations at index 0
fragment main0_out main0(constant type_ConstantBuffer_PushConstants& g_PushConstants [[buffer(0)]], array<texture2d_ms, 65536> g_Texture2DMSDescriptorHeap [[texture(0)]], float4 gl_FragCoord [[position]])
^
.
[mvk-error] VK_ERROR_INVALID_SHADER_NV: Fragment shader function could not be compiled into pipeline. See previous logged error.
[mvk-error] VK_ERROR_INITIALIZATION_FAILED: Shader library compile failed (Error code 3):
program_source:37:158: error: cannot reserve 'texture' resource locations at index 0
fragment main0_out main0(main0_in in [[stage_in]], constant type_ConstantBuffer_PushConstants& g_PushConstants [[buffer(0)]], array<texture2d, 65536> g_Texture2DDescriptorHeap [[texture(0)]], array<sampler, 1024> g_SamplerDescriptorHeap [[sampler(0)]], float4 gl_FragCoord [[position]])
^
program_source:37:221: error: cannot reserve 'sampler' resource locations at index 0
fragment main0_out main0(main0_in in [[stage_in]], constant type_ConstantBuffer_PushConstants& g_PushConstants [[buffer(0)]], array<texture2d, 65536> g_Texture2DDescriptorHeap [[texture(0)]], array<sampler, 1024> g_SamplerDescriptorHeap [[sampler(0)]], float4 gl_FragCoord [[position]])
^
.
[mvk-error] VK_ERROR_INVALID_SHADER_NV: Fragment shader function could not be compiled into pipeline. See previous logged error.
[mvk-error] VK_ERROR_INVALID_SHADER_NV: Fragment shader function could not be compiled into pipeline. See previous logged error.
[mvk-error] VK_ERROR_INITIALIZATION_FAILED: Shader library compile failed (Error code 3):
program_source:18:132: error: cannot reserve 'texture' resource locations at index 0
fragment main0_out main0(constant type_ConstantBuffer_PushConstants& g_PushConstants [[buffer(0)]], array<texture2d, 65536> g_Texture2DDescriptorHeap [[texture(0)]], float4 gl_FragCoord [[position]])
^
program_source:21: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(g_PushConstants.SharedConstants + 16ul))));
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:25: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(g_PushConstants.SharedConstants + 24ul)))));
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
program_source:40:33: error: as_type cast from 'ulong' (aka 'unsigned long') to 'device float3 *' is not allowed
float3 _81 = pow(_77.xyz, (as_type<device float3>(reinterpret_cast(g_PushConstants.SharedConstants))));
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.
[mvk-error] VK_ERROR_INVALID_SHADER_NV: Fragment shader function could not be compiled into pipeline. See previous logged error.
[mvk-info] Created 2 swapchain images with initial size (1920, 1080) and contents scale 1.0 for screen LG ULTRAGEAR (1).
wine: Unhandled page fault on read access to 0000000000000058 at address 0000000140361297 (thread 0140), starting debugger...
2025-03-03 16:36:40.191 wine-preloader[29266:2443445] +[IMKClient subclass]: chose IMKClient_Modern
2025-03-03 16:36:43.340 wine-preloader[29266:2443445] +[IMKInputSession subclass]: chose IMKInputSession_Modern
2025-03-03 16:36:45.248 wine-preloader[29264:2443430] +[IMKClient subclass]: chose IMKClient_Modern
2025-03-03 16:36:46.174 wine-preloader[29264:2443430] +[IMKInputSession subclass]: chose IMKInputSession_Modern

@BittahBandit1
Copy link

If you scroll up a smidge, you'll see that a fix is being worked on. For the time being it won't work properly or at all.

@KTRosenberg
Copy link

KTRosenberg commented Mar 4, 2025

What is the issue with D3D Metal?
(Probably it makes the most sense to wait for Plume to have native Metal support though if they're close.) Mac works the best when the code is optimized for its SOC / tile rendering hardware. For reference, I have an M1 Max, which is probably a decent target.

@realrazing929
Copy link

I don't think D3DMetal is what's causing it, it could be something else. If you have any suggestions to get it to a functioning state (like with a different bottle with D3DMetal etc.) let me know. For Crossover I used the Steam Preset Bottle and installed DirectX for Modern Games on it and turned on D3DMetal and MSync

@Zomboy4313
Copy link

Zomboy4313 commented Mar 5, 2025

The Game seems to be mainly GPU heavy so a Max chip should run the game flawlessly

@Sonicloop16
Copy link

The base m3 chip runs it flawlessly I would assume the M1 Max would also.

@Zomboy4313
Copy link

I'm hoping native metal support is on the roadmap because that'll be a great performance improvement, boosting and drifting at the same time is the easiest way to tank the fps

@A1clean
Copy link

A1clean commented Mar 5, 2025

Here is the GitHub for what there posting all the releases on. https://github.com/squidbus/UnleashedRecomp/actions/runs/13664475029

Download the arm version

I'm not the smartest person out there, but how exactly do you download the arms bulid.

@Medina0308
Copy link

https://github.com/squidbus/UnleashedRecomp/actions/runs/13664475029

just scroll down and download the one that says: [UnleashedRecomp-macOS-arm64-macos-release]

@A1clean
Copy link

A1clean commented Mar 5, 2025

https://github.com/squidbus/UnleashedRecomp/actions/runs/13664475029

just scroll down and download the one that says: [UnleashedRecomp-macOS-arm64-macos-release]

thank you

@dav898960
Copy link

Here is the GitHub for what there posting all the releases on. https://github.com/squidbus/UnleashedRecomp/actions/runs/13664475029

Download the arm version

dang it cant install because of the version of mac i have

@Medina0308
Copy link

so does anyone else have this problem that after playing for a while the game caps itself to 40fps instead of 60?

@dav898960
Copy link

i just can run the app because of my version

@dav898960
Copy link

and i cant update because of the admin password i have

@A1clean
Copy link

A1clean commented Mar 5, 2025

so does anyone else have this problem that after playing for a while the game caps itself to 40fps instead of 60?

IT happens in some weird spots. I'm currently on the first night stage, and at first it was running at 60 perfectly fine, and then all of a sudden it drops to 40. Even weirder, I went to a different application for a bit and it went back to 60

@Medina0308
Copy link

so does anyone else have this problem that after playing for a while the game caps itself to 40fps instead of 60?

IT happens in some weird spots. I'm currently on the first night stage, and at first it was running at 60 perfectly fine, and then all of a sudden it drops to 40. Even weirder, I went to a different application for a bit and it went back to 60

yeah it does fix itself for a while when you change apps but then it dips again, hopefully they'll find a fix soon

@IJOINEDFORTHIS
Copy link

could yall lower the mac version needed to 14.5 please? if not possible i understand

@dav898960
Copy link

could yall lower the mac version needed to 14.5 please? if not possible i understand

i need that too

@silveridols

This comment has been minimized.

@dav898960

This comment has been minimized.

@IsaacMarovitz
Copy link
Contributor

Please don't use GitHub issue comments for troubleshooting

@silveridols

This comment has been minimized.

@dav898960

This comment has been minimized.

@SolarArts

This comment has been minimized.

@dav898960

This comment has been minimized.

@IJOINEDFORTHIS

This comment has been minimized.

@adoobly

This comment has been minimized.

@silveridols

This comment has been minimized.

@adoobly

This comment has been minimized.

@Wet-cat0

This comment has been minimized.

@adoobly

This comment has been minimized.

@dav898960

This comment has been minimized.

@DarioSamo
Copy link
Contributor Author

DarioSamo commented Mar 5, 2025

Please don't spam the thread with support questions. If you don't know how to build this yourself, wait for a release.

@adoobly
Copy link

adoobly commented Mar 6, 2025

can doubly confirm that the arm builds work beautifully. i even decided to take a bit of time to compile and make the hmm 8 beta work fine for this on macOS, and i succeeded!

Image Image

how did you get mods working?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
help wanted Extra attention is needed MacOS Issue affected by MacOS as a whole
Projects
None yet
Development

No branches or pull requests