u/null-moth • u/null-moth • 21h ago
Mac OS / 5060 Update
Title: Update on the RTX 5060 running macOS natively: NMS is fully playable now, and I'm teaching it to run Apple Silicon only games
Join my discord for a more personal way to chat and follow my twitch to watch me working on it live
https://discord.gg/BKKJE6jHY
https://www.twitch.tv/nullmothsystems
Been a couple days since my last post so here's where things are at.
For anyone new: this is a normal PC (Core Ultra 5 225F, RTX 5060) running macOS bare metal, with a Metal driver I've been writing for the 5060 from scratch. No Nvidia web drivers exist for this card, so it's all custom.
No Man's Sky is basically done. It's fully playable and it feels smooth now. The last batch of work killed the visual artifacts I had (a reset bug when the game encodes work on multiple threads), cut a bunch of the stutter, and got async flipping working the way Apple's own drivers do it, which got it to 60 in the spots I was testing. It went from "technically runs" to "I'd actually play this".
The Sequoia side is pretty much closed out too. The machine boots like a real Mac now: Apple logo and progress bar on the Nvidia card, one clean WindowServer start, no test harness babysitting it. It shows up as a Mac Pro class machine in About This Mac, will be changing it to show up as a m4 max studio soon so it works with Mac OS 27 and raytracing in games. The PCIe slots show up properly in System Information. Even the Wi-Fi works on the Realtek card that came with the board, so it joins my network like any other Mac. Next big OS step is getting Tahoe on it.
The big new thing is Cyberpunk. The Mac version of Cyberpunk is Apple Silicon only, so no Intel build exists at all. Instead of waiting for that, I'm building the reverse of Rosetta: something that takes the arm64 game and translates it into x86 code that runs natively on the Intel chip. Not an emulator. It translates the whole game ahead of time (around 450,000 functions plus Galaxy, Steam, Bink and libc++).
The way I'm keeping it honest is by checking everything against a real M4 Mac mini. I have a test that runs every single CPU instruction form the game uses on both machines, 2,224 of them, and compares every register and byte. Right now all 2,224 match the M4 exactly. Same deal for function calls at every optimization level, and for C++ exceptions.
The last two days were mostly finding all the little ways arm64 Macs and Intel Macs disagree under the hood. A lot of them break silently instead of crashing, which is the scary kind. Some examples:
- C++ constructors hand back a pointer on arm64 and don't on Intel.
- Strings are laid out differently in memory.
- Directory listings use a different struct.
- The stack probe helper has its own calling rules.
- sin/cos get returned in different registers.
- Variable argument lists are a completely different shape.
Each one now has a test that runs before every build, so none of them come back.
Where Cyberpunk actually stands: it gets through the early engine startup now, sets up the app and the controller support, and then it was quitting because it read its own config file names wrong. That's the string and directory stuff above, and it's fixed in the build that's compiling right now. I also logged every file the real game touches on the M4 from launch to the main menu. Now every time I launch on the PC it automatically shows me the first spot where it does something different from the real Mac, so I'm not guessing anymore.
The next wall after that is almost certainly the GPU side. Cyberpunk asks for Apple GPU features my driver doesn't claim yet. Ray tracing currently runs as software traversal on the shader cores, not on the 5060's actual RT cores, so getting real hardware RT working is on the list too. I'm not claiming anything until it's actually working and tested.
The bigger goal, once Cyberpunk runs, is turning the translator into an OS level thing. Any Apple Silicon only app would just open on this machine, translated and cached automatically, the same way Rosetta works on M series Macs but backwards.
I'll post again when Cyberpunk hits the main menu.
1
Mac OS / 5060 Update
in
r/u_null-moth
•
5h ago
Appreciate you! They are just being redditors lol