Introducing macXenos - Xbox 360 emulation for the Mac
So... I've been a bit busy. Since June, I've been working on getting Xbox 360 games running on the Mac. The result is macXenos, a Mac port of Xenia Canary for Apple Silicon. It's finally at the point where I'm ready to show it off.
This has grown into a considerably larger project than my Extract XISO GUI. Making a utility to prepare Xbox disc images is one thing. Getting the next Xbox's games to actually run on a completely different computer is a fairly substantial escalation of the hobby.
Standing on the shoulders of Xenia
First, credit where it's due: macXenos builds on Xenia Canary and the work of the Xenia developers. I didn't sit down in June and write an Xbox 360 emulator from scratch. There's years of work behind Xenia, and this project exists because of it. My work has been bringing that foundation to macOS and getting it to run well on Apple Silicon.
It actually plays games
The exciting part is that this has moved well beyond getting a title screen to appear and declaring victory. A base M4 can already run many games at their original frame caps. You don't automatically need a Max or Ultra to get useful performance, which was one of the things I wanted out of this project.
That doesn't mean every game works, or that hitting 30 or 60 fps in one game tells you much about another. Compatibility and performance are still work in progress. The video above is the introduction and a chance to see macXenos running, rather than take my word for it.
The GPU is the interesting part
Getting the CPU side running is only part of the problem. A lot of my attention is now on the Xbox 360's graphics hardware, particularly its eDRAM. Recreating that behavior accurately while keeping performance reasonable has been one of the bigger challenges. Apple's unified memory is useful, but it doesn't make the cost of emulating a very different GPU disappear. Unfortunately.
My goal is to keep improving compatibility and performance, especially on the lower-end Apple Silicon Macs. There's still plenty to do, but after months of working on this, it's pretty satisfying to finally be able to share it. Xbox 360 games, on a Mac. That'll never stop being a little weird to me.
You can find out more at macxenos.com and check out the source code on GitHub.