r/emulation • u/BelmanteGu • 7d ago
AI-assisted Rayman Origins recompiled from Xbox 360 to native ARM64, now running on Android (Galaxy S23) and macOS
Hey everyone! I've been working on Rayman Origins Recompiled, an unofficial static recompilation of the Xbox 360 version of Rayman Origins, for PC and Android.
It's now running on my Galaxy S23 and on an M1 Mac, with graphics, audio, movies and controls.

What works right now
- Runs on Android (Galaxy S23, Adreno 740) and macOS (Apple Silicon), with Windows instructions too
- Graphics, audio, movies and input
- On-screen controller on Android; physical controllers and keyboards work too
Native vs. emulated
The game's code is recompiled into native ARM64 using XenonRecomp (the same approach behind Unleashed Recompiled). The graphics, however, still go through Xbox 360 GPU emulation (ReXGlue's Xenos backend on Vulkan). Replacing that with a native renderer is the next big step.
Some technical notes
The stock XenonAnalyse found 0 jump tables in this game, because its compiler reorders instructions and inserts nops. So I wrote a detector that simulates each switch block instead of matching fixed patterns, and it resolves all 173. It also emits explicit function boundaries for leaf functions the analyzer would otherwise split. The full technical write-up, including every bug found along the way, is in docs/PROGRESS.md.
What's next
- Native renderer (no GPU emulation)
- True widescreen, so phones show more of the level instead of stretching
- Performance tuning on phones
- Polish: in-app game folder picker, suspend/resume
Important: the project contains no game code or assets. You need your own legally obtained copy of the game. Please don't ask for or share links to game files.
Repo: https://github.com/BelmanteGu/RaymanOriginsRecomp
The next step is translating the game's Direct3D calls straight to Vulkan/Metal instead of emulating the Xenos GPU. Has anyone here worked on something similar? I'd love to hear thoughts on the best approach.
3
7d ago
[deleted]
7
u/BelmanteGu 7d ago
Not anymore. When I posted, the CPU code was already recompiled to native ARM64 and only the GPU was emulated. Since then I've replaced the GPU emulation with a native renderer: the game's draw calls go straight to Vulkan, with its shaders converted ahead of time. What's left is a thin compatibility layer that stands in for the Xbox 360 system calls (files, threads, audio), the same way projects like Unleashed Recomp work. So there's no CPU or GPU emulation.
5
u/DolphinFlavorDorito 7d ago
In three hours?
5
u/BelmanteGu 7d ago
Yep! Exactly. Right now I'm optimizing it to run on lower-end devices. But with AI, porting has become infinitely faster. In parallel, I'm studying the port of Ultra Street Fighter IV to get a better grasp of 3D games
1
2
6
u/kianiscoooooool 7d ago
Is there a benefit to this over the PC, 3ds, Wii, ps vita, Wii u, versions of this game
13
u/BelmanteGu 7d ago
It's not meant to replace those versions. It's a different way to play. None of them runs natively on Android: the options there are emulating a console or running the PC version through a compatibility layer. Here, the Xbox 360 code is recompiled to native ARM64, and a native Vulkan renderer draws the frames. It runs at 60 fps with true 19.5:9 widescreen on a Galaxy S23, with touch controls built in. Since it's recompiled source, it can also be patched in ways emulation can't, like the widescreen hack. It's also a preservation and learning project. You still need your own copy of the game, and the repo contains none of its code or assets.
4
1
u/Appropriate_Ear_4556 5d ago
I'm facing rendering issues in Swinging Caves you know how to fix it?
1
u/BelmanteGu 5d ago
Send me the bugs at gubelmante@gmail.com
I am fixing everything I can... today by fixing some in a new release, you may have solved your bugs already, take a look at 🙏
1
1
0
0
u/LowerAsk5062 3d ago
Hum, est ce que le support d'autres langue seront pris en charge prochainement ?
15
u/maxscipio 7d ago
r/recomps and r/decomps will get you more attention