This is one of the most impressive things I've seen in a while. It isn't traditional emulation, and it isn't a decompilation.
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.
> It isn't traditional emulation, and it isn't a decompilation. It is a static recompilation of the Xbox 360 version.
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).
As a fan of the game, I just built it and got it working for myself. It's really impressive and is running great on my machine. I realize (with dread) that the game is about 17 years old now, but I eagerly awaited it release back in the day, and it was one of first games that I still think of as "modern". Rewatching the opening movie, I'm not sure you could easily distinguish it from a modern CGI cutscene.
This is conceptually similar to Ship of Harkinian ( https://www.shipofharkinian.com/ ). If someone cares enough about a particular game to put this level of tailored work into it, wonderful.
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.
It's not emulation. It's recompiled to the target device's native machine code. It also required a lot of additional low-level, per game programming to make stuff like graphics and sound work correctly.
Compared to the og recompiler <https://github.com/rexdex/recompiler>, this is super basic and only matches patterns specific to a single compiler rather than devising a CFG as one would expect with such a tool. I wasn't able to analyze, let alone "recompile" even the basic "dolphin" demo.
OuterVale|11 months ago
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
perching_aix|11 months ago
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).
aquova|1 year ago
Borealid|11 months ago
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.
LorenDB|1 year ago
[0]: https://gamejolt.com/games/SA2R/939490
[1]: https://youtube.com/c/ChaosX (best link as there is no official website)
ronjouch|1 year ago
- https://github.com/HarbourMasters/Shipwright
- https://github.com/HarbourMasters/2ship2harkinian
- https://github.com/HarbourMasters/Starship
louhike|11 months ago
robbiet480|11 months ago
heavensteeth|11 months ago
[0]: https://www.youtube.com/watch?v=lMGu6Ng_3yA
OuterVale|11 months ago
no_time|1 year ago
Absolutely fascinating.
dharmab|11 months ago
remix2000|11 months ago
unknown|11 months ago
[deleted]
DeathArrow|11 months ago
unknown|11 months ago
[deleted]
unknown|11 months ago
[deleted]