PlayStation 2 Recompilation Project Is Absolutely Incredible
by croes on 1/29/2026, 6:55:38 PM
https://redgamingtech.com/playstation-2-recompilation-project-is-absolutely-incredible/
Comments
by: emodendroket
This is cool but of course it's only going to be a small handful of titles that ever receive this kind of attention. But I have been blown away that now sub-$300 Android handhelds are more than capable of emulating the entire PS2 library, often with upscaling if you prefer.
1/29/2026, 9:08:54 PM
by: bananaboy
Link to the actual project rather than just a news article about it <a href="https://github.com/ran-j/PS2Recomp" rel="nofollow">https://github.com/ran-j/PS2Recomp</a>
1/29/2026, 10:37:45 PM
by: wmf
An application of the first Futamura projection. <a href="https://en.wikipedia.org/wiki/Partial_evaluation" rel="nofollow">https://en.wikipedia.org/wiki/Partial_evaluation</a>
1/29/2026, 9:12:29 PM
by: ZX8301
90% of the PS2’s floating point throughput is in the two vector units, not the R5900 conducting them. Concentrating on that, as the article does, seems as futile as focussing on the 68000 rather than the Amiga PAD in a 16-bit context (ignoring the EE’s 16-bit RAMBUS bottleneck).<p>However that approach will probably suit the least-ambitious PC-ports to PS2 (by studios that didn’t appreciate the difference) - rather as an ST emulator was a short cut to run the simplest Amiga games.
1/29/2026, 10:57:59 PM
by: hn_user_9876
This is amazing for preservation. Being able to run these classics on modern hardware with native recompilation is a huge step forward.
1/29/2026, 11:26:27 PM
by: OneDeuxTriSeiGo
On this topic of ports/recomps there's also OpenGOAL [1] which is a FOSS desktop native implementation of the GOAL (Game Oriented Assembly Lisp) interpreter [2] used by Naughty Dog to develop a number of their famous PS2 titles.<p>Since they were able to port the interpreter over they have been able to start rapidly start porting over these titles even with a small volunteer team.<p>1. <a href="https://opengoal.dev/" rel="nofollow">https://opengoal.dev/</a><p>2. <a href="https://en.wikipedia.org/wiki/Game_Oriented_Assembly_Lisp" rel="nofollow">https://en.wikipedia.org/wiki/Game_Oriented_Assembly_Lisp</a>
1/29/2026, 9:58:20 PM
by: bri3d
See also: XenonRecomp, which does the same thing for Xbox 360, and N64:Recompiled which does the same thing for N64.<p>Note that this "recompilation" and the "decompilation" projects like the famous Super Mario 64 one are almost orthogonal approaches in a way that the article failed to understand; this approach turns the assembly into C++ macros and then compiles the C++ (so basically using the C++ compiler as a macro re-assembler / emulation recompiler in a very weird way). The famous Super Mario 64 decompilation (and openrct and so on) use the output from an actual decompiler which attempts to reconstruct C from assembly, and then modify that code accordingly (basically, converting the game's object code back into some semblance of its source code, which this approach does NOT do).
1/29/2026, 11:03:48 PM
by: xnx
Emulation is already amazing. What can be done with recompilation is magic: <a href="https://github.com/Zelda64Recomp/Zelda64Recomp" rel="nofollow">https://github.com/Zelda64Recomp/Zelda64Recomp</a>
1/29/2026, 9:26:52 PM
by: colordrops
> So yes, currently playing PS2 games on PC via emulator is still absolutely fantastic, but native ports would be the holy grail of game preservation.<p>I would think that emulation of the original game as closely as possible would be the gold standard of preservation, and native ports would be a cool alternative. As described in the article, native ports are typically not faithful reproductions but enhanced to use the latest hardware.
1/29/2026, 11:17:03 PM
by: ChrisMarshallNY
This sounds very cool, but I can practically hear the IP lawyers sharpening their buzz-axes...
1/29/2026, 9:58:49 PM
by: flykespice
I wonder how they will tackle the infamous non-conformant Ps2 floating-point behavior issue, that is the biggest hurdle on emulating Ps2.
1/29/2026, 9:54:29 PM
by: imtringued
As far as I know, static recompilation is thwarted by self modifying code (primarily JITs) and the ability to jump to arbitrary code locations at runtime.<p>The latter means that even in the absence of a JIT, you would need to achieve 100% code coverage (akin to unit testing or fuzzing) to perform static recompilation, otherwise you need to compile code at runtime at which point you're back to state of the art emulation with a JIT. The only real downside of JITs is the added latency similar to the lag induced by shader compilation, but this could be addressed by having a smart code cache instead. That code cache realistically only needs to store a trace of potential starting locations, then the JIT can compile the code before starting the game.
1/29/2026, 9:25:52 PM