It is a static recompilation of the Xbox 360 version. It required a ton of low-level re-handling of things from the 360's Xenon CPU and Xenos GPU.
Not only is it the game running natively on PC, it has also been modded to support all manner of tweaks and enhancements that are manageable in-game, and mod support.
Really impressive stuff.
Release trailer: https://www.youtube.com/watch?v=TJreGbVPDx0
And all its real benefits come from the countless manual changes made to it, such as rewriting the rendering code. This is because at its core, especially for now, there's no meaningful technological difference between what the tool they used does vs what an emulator does.
Applications on the X360 were barred from self-modifying, so an emulator can/will statically (ahead-of-time) recompile the executable before jumping to it. Whether this is actually what Xenia (the x360 emu) does or if they JIT / hybrid it to get rid of the lengthy precomp, idk, but RPCS3 (the ps3 emu) where this exact same situation also applies does do this, even via LLVM, so there really is 0 difference. (On the PS3 though, there's also SPU code, which can and does self modify, so that needs JITing).
There is a down side, though: because emulators handle a much wider variety of games, they get better feature sharing for things like save states, shaders, controller bindings, etc. With libretro things even go a step beyond that and different systems' games can all share the same launcher UI and the same support for things like RetroAchievements!
So a recompiled version is better from a performance standpoint, and might have more game-specific quality of life features, but it also means more development time is devoted to that particular game.
[0]: https://gamejolt.com/games/SA2R/939490
[1]: https://youtube.com/c/ChaosX (best link as there is no official website)
- https://github.com/HarbourMasters/Shipwright
Absolutely fascinating.
This is just a static recompiler or ahead of time recompiler, except instead of directly targeting machine code, it's targeting C/C++ as a type of portable assembly. It basically just looks like a bunch of macros implementing the behaviour of powerpc instructions.
The recompiled result will preform nowhere near as good as a proper manual decompilation project, it's still baking in a huge number of quirks from PowerPC and the compiler they originally used, and will have noticeably worse performance. But, performance will usually be good enough, and it's easy to manually replace any bad code-gen that shows up as a bottleneck in profiles.
And while they did replace a bunch of graphics/audio code, they are still directly emulating a bunch of the original Xbox 360 Kernel and hardware.
I dont think it is compiling anything here.
They also do not necessarily need to hook and replicate syscalls, provided the user provides a dump of the system software (they just run the system software and make it load the game - the original syscall codes are then ran).
This extends even to the graphics hardware side once programmable shaders became a thing.