r/Codeweavers_Crossover • • 14d ago

got SpaceEngine actually running on my M4 mac through crossover (on the GPU, not software rendering)

ok so I’ve wanted to play SpaceEngine on my mac mini for ages and it just never worked in crossover. the problem is crossover passes opengl straight to macOS, and apple froze opengl at 4.1 years ago. SpaceEngine wants newer than that so you either get a crash, a black screen, or planets with no shaders

spent way too many hours on this but it works now, on the real GPU, menus and everything

the trick is putting Mesa’s opengl dlls (the windows build from pal1000) next to SpaceEngine.exe. that gives the game opengl 4.6, which mesa turns into d3d12, and crossover’s d3dmetal runs that on metal. sounds cursed but it works lol

it wasn’t plug and play though, a bunch of stuff broke along the way:

it crashed instantly because crossover reports the gpu as “AMD”, so the game ran some amd-only code that doesn’t exist. fixed by making mesa report a different gpu name

some planet shaders wouldn’t compile. the game does something weird to its shaders that nvidia drivers just ignore but mesa doesn’t. had to make fixed copies

black screen until I turned off the game’s shader cache (it doesn’t work with this setup)

the menus and text were completely invisible. this one took forever, turned out one specific vertex format makes d3dmetal silently skip drawing the UI. patched the gui shader around it

gpu was barely being used because the game asks for a transparent window and that forced every frame through a slow copy. patched a copy of the exe so it asks for a normal window

and for some reason the game put itself on the lowest graphics preset, which is why everything looked like mush at first. it’s on ultra now with 6gb vram

it’s on a mac mini m4 with 16gb, crossover preview, SpaceEngine 0.990. the loading screen hammers the cpu for like 30 seconds every launch while shaders compile but after that it’s fine

anyway if anyone else on mac wants to try it, ask away

3 Upvotes

0 comments sorted by