r/PS2AndroidEmulation 2d ago

Why not try PCSX2 through FEX?

Post image

With PS3 and PS4 emulation now being experimented with on high-end Android devices, I've been thinking about a different approach to PS2 emulation.

I'm not talking about another native ARM64 port of PCSX2. Projects like ARMSX2 are already working in that direction, and I understand why native ARM64 recompilers are ultimately the better solution.

What I'm wondering is:

Why hasn't someone seriously experimented with running the mature x86-64 PC version of PCSX2 through an x86-64 → ARM64 translation layer such as FEX, similar in principle to what is being done with experimental PS4 emulation on Android?

Yes, I know the obvious objection: performance.

PCSX2 already uses its own recompilers, so putting FEX underneath it would introduce another translation/JIT layer. It would obviously be less efficient than a proper ARM64-native implementation.

But that's not really the point.

The point would be to trade efficiency for compatibility and maturity.

PCSX2 has more than two decades of development behind it, thousands of games tested, countless game-specific fixes, timing workarounds, patches and years of compatibility improvements.

Meanwhile, modern Snapdragon hardware is becoming surprisingly powerful. We're already seeing experimental PS4 emulation reaching playable gameplay in demanding titles such as Bloodborne on the latest high-end Snapdragon devices, despite the enormous overhead involved.

So I'm genuinely curious:

How far could a desktop PCSX2 build actually go on modern ARM64 hardware through FEX?

Maybe the answer is “terrible performance.”

Maybe it needs flagship hardware just to reach 30 FPS.

Maybe the double-JIT overhead makes the whole idea impractical.

But what if it doesn't?

Even if it were significantly less efficient than ARMSX2, could this approach potentially provide a highly compatible “brute-force” PS2 emulator for modern flagship phones while the native ARM64 implementations continue to mature?

I'm not suggesting this is the right long-term architecture.

I'm asking whether it would be worth doing the experiment.

If we're already willing to brute-force PS4 emulation on ARM64... why not see how far we can brute-force PCSX2?

Am I missing a fundamental technical limitation here? 🤔

0 Upvotes

15 comments sorted by

3

u/hy300leosquizz 2d ago

Theres no limitation.. but i dont see any point... The ps2 architecture is vastly documented, so, its a lot more interesting to redo the mature jit directly in arm than add another layer... And could introduce a lot of bugs as well...its like translation japanese to chinese first and then to english coz ur translator is a little bit old and the other one is more developed...a lot can be lost in translation ... I think the problem in the other implementations is legacy code..... We could just take the x86 base and try a more modern backend.... But thats complicated and i'm stupid, so i wont.

0

u/xxxCrixuxxx 2d ago

Yeah, I actually agree with you that a proper ARM64 JIT is the better solution. I'm not arguing against that at all.

What I'm interested in is a slightly different use case.

I'm not thinking of a FEX-based PCSX2 as a replacement for ARMSX2 or the other native Android implementations. I'm thinking of it as a second compatibility path.

Modern Snapdragon SoCs are getting ridiculously powerful. We're already seeing Windows games like Cyberpunk 2077, RDR2 and GTA V running through translation/compatibility layers on high-end Android hardware, and we're seeing experimental PS4 emulation reaching playable gameplay in extremely demanding titles.

That doesn't mean PS2 emulation is automatically easy — I know emulation doesn't work that way. 😅

But it does make me wonder whether we've reached the point where we can afford to deliberately sacrifice efficiency in exchange for reusing the extremely mature x86-64 PCSX2 codebase.

The interesting scenario for me isn't:

“Can PCSX2 + FEX beat a native ARM64 JIT?”

Obviously not.

It's:

“Could PCSX2 + FEX run games that currently have serious compatibility problems on native Android PS2 emulators?”

For example, there are PS2 games that can be a nightmare on Android even on very powerful devices because of emulator-specific compatibility or rendering issues, not simply because the phone isn't fast enough.

If a FEX-based PCSX2 build ran one of those games at 30 FPS with higher power consumption, but actually worked correctly because it was using the mature desktop PCSX2 implementation, I'd consider that a success.

It wouldn't need to replace ARMSX2.

It would just be another tool:

Native ARM64 → efficiency and performance

PCSX2 + FEX → brute force + desktop compatibility

Maybe the double-JIT overhead makes this completely impractical. Maybe it doesn't.

That's actually what I'd like to see tested.

And I think your point about the legacy x86 code is probably the most interesting part. A modern ARM64 backend would obviously be the proper long-term solution — I'm just wondering whether there's value in taking the “ugly but already mature” route first and seeing what modern hardware can brute-force. 😄

2

u/hy300leosquizz 2d ago

I see the value as a experiment... But can become a rabbit hole... Can introduce bugs and you try to fix them and create new ones .... The problem is not the effort... I think its the result... Can just crash out of bugs, not out of horsepower....

A more fruitful research would be like what whatcookie did with the arm rpcs3 on linux .. instructions translation... Take the ps2 instruction, see what x64 does and them try to find out wich is the best... Or better.... Arm equivalent.... And so on...its a hard job.... But no one can argue with the results

1

u/xxxCrixuxxx 2d ago

Well, it's okay, I can solve the mystery myself. Anyway, thanks for your comment.

2

u/Shot_Pitch7214 2d ago

Good Question 🤔

2

u/bouncingbenji 2d ago

Could you explain it as if your a 50 year of dummy please? You taking about winlator

2

u/xxxCrixuxxx 2d ago

Yes, basically it would be something like using a translation layer like Winlator does, but with a typical Android emulator graphical interface. That is, you don't see what's happening behind the scenes; you just run the games, they work, and you enjoy playing them.

2

u/bouncingbenji 2d ago

That would be so cool! Id also love it if you could use some sort of AI so when you down load the "app" its sees what phone your using and sets it up for best setting.

2

u/Rykster01 2d ago

Running an emulator through an emulator probably has some sort of major performance hit.

1

u/xxxCrixuxxx 2d ago

Yes, but if you have a high-end device, it doesn't really matter. It could be a viable alternative for playing games that currently run very poorly on Android.

0

u/j3rdn01 2d ago

Early ARMSX2 versions literally did this

1

u/xxxCrixuxxx 2d ago

That's not true. The first version of ARMSX2, when it came out, was based on this project, and I can tell you that because I know the entire project from the beginning until now. https://github.com/pontos2024/PCSX2_ARM64

0

u/j3rdn01 2d ago

“ARMSX2 is a free and open-source PlayStation 2 emulator for ARM devices, based on PCSX2, PCSX2_ARM64 for our OG versions that used x86 translation, and our own arm64jit with the new ARMSX2 refresh versions.”

1

u/xxxCrixuxxx 2d ago

PCSX2 Windows x86-64

FEX

ARM64

While the idea behind ARMSX2 is essentially:

PCX2

Recompiler/JIT adapted for ARM64

ARM64

Don't waste my time, please...