KingOfPain
Site Champ
- Joined
- Nov 10, 2021
- Posts
- 535
Some of you may have already heard that there is now a port of the Nintendo Switch emulator Ryujinx that runs natively on Apple Silicon.
I don't really want to start a discussion about the grey zone of emulation (especially of a current system) and I have to admit that I haven't tested the software yet.
But I find the technical background rather interesting.
Frankly, I would have expected a port of Yuzu, because it is written in C++. But I guess there is a capable C# compiler for macOS (Mono?).
It's impressive that they've added the option for virtualization, which obviously only works for software that doesn't use 32 bit ARM code, since Apple Silicon removed AArch32, but the Tegra X1 in the Switch still has it.
The biggest work probably went into circumventing some limitations of MoltenVK and/or Metal. A lot of this is mentioned on the following page:
blog.ryujinx.org
GPUs or graphics API aren't my forte, so I hope some of the more knowledgable readers provide their 2 cents here.
My impression is that Metal 3 isn't going to provide a solution for a lot of these incompatibilities, but some of the work-arounds might find their way into MoltenVK.
When talking about game engines it's easier to say, they should properly adapt their engine to Metal, but in this case that isn't really an option. From what I've seen in videos so far, the Ryujink developers really seem to have taken the lemons they were provided with and made lemonade. Here is a video of some games running on a M1 MacBook Air:
I don't really want to start a discussion about the grey zone of emulation (especially of a current system) and I have to admit that I haven't tested the software yet.
But I find the technical background rather interesting.
Frankly, I would have expected a port of Yuzu, because it is written in C++. But I guess there is a capable C# compiler for macOS (Mono?).
It's impressive that they've added the option for virtualization, which obviously only works for software that doesn't use 32 bit ARM code, since Apple Silicon removed AArch32, but the Tegra X1 in the Switch still has it.
The biggest work probably went into circumventing some limitations of MoltenVK and/or Metal. A lot of this is mentioned on the following page:

The Impossible Port: MacOS
Let's cut to the chase: macOS and Apple Silicon support (including older Intel Macs, although your mileage may vary)! Even with all the hurdles, roadblocks and brick walls put in our way, we're finally back on Mac! And back in style! With the launch of a new entry in the

GPUs or graphics API aren't my forte, so I hope some of the more knowledgable readers provide their 2 cents here.
My impression is that Metal 3 isn't going to provide a solution for a lot of these incompatibilities, but some of the work-arounds might find their way into MoltenVK.
When talking about game engines it's easier to say, they should properly adapt their engine to Metal, but in this case that isn't really an option. From what I've seen in videos so far, the Ryujink developers really seem to have taken the lemons they were provided with and made lemonade. Here is a video of some games running on a M1 MacBook Air: