

The PS3 runs on an ancient fork of the FreeBSD kernel. We don’t even know which version. No compatibility even on syscall level.
Now, I remember that some random person added Nintendo Switch syscalls to Linux aarch64 then took GPU emulation from Yuzu. They stopped when it ran some Tetris. Now, that was relatively easy given the Switch doesn’t have too much of special hardware. Also, the CPU there only has the base instruction set + md5 extension, basically every aarch64 chip has that.
Now, the PS3 is full of random DSPs (basically coprocessors that are shit at everything except some specific tasks). And even if you get a PowerPC machine powerful enough (like some decommissioned server), it still probably won’t match all of the instructions. Catching SIGILL to emulate them… meh, you are basically writing an emulator. Which I bet would be slower than just emulating the whole thing at once.







Well, someone did exactly that with Sonic Unleashed (XBox 360) IIRC. And a few select N64 titles.
The produced code is complete garbage, it’s basically the machine code disassembled, but instead of assembly it’s some technically valid C that can be forcefully shoved back up a compiler. Due to register sizes and calling conventions being different across architectures, there was zero chance of making the giant blob cooperate with native builds of the libraries it used, so some poor people had to pick out everything machine specific in the giant pile of shit that came out of the disassembler and fake it. That took forever.