It is hard. PS3 has incredibly specialized hardware. Even game developers had trouble making games for it at the time because it’s so arcane.
Nah, that’s still a bunch of bull, they designed it and have all the documentation. They know all of its functionality, hidden or otherwise, it’s “undocumented” functions, it’s quirk’s, the very ins and outs of it. They probably still have original designers on staff. They have far more knowledge and experience of their own design than any game developers.
And yet RPCS3, an open source PS3 emulator based on reverse engineered research is able to achieve decent playability on most games.
Not to mention, they’re a multi-billion dollar company, don’t make excuses for them.
AFAIK, the documentation isn’t the main problem. I’m pretty sure PS3 is quite well understood.
The problem is how to translate the code to a typical X86 architecture. PS3’s uses a very different architecture with a big focus on their own special way on doing parallelism. It’s not an easy translation, and it must be done at great speed.
The work on RPCS3 incredible, but it took them more than a decade of optimizations to get where they are now. Wii U emulation got figured out relatively quickly in comparison, even if it uses similar specs to PS3.
The Wii U was just a souped up Wii so of course the emulation scene had a Wii U emulator in no time.
There can be a lot of subtle changes going from one uarch to another.
Eg, C/C++ for x64 and ARM both use a coprocessor register to store the pointer to thread-local storage. On x64, you can offset that address and read it from memory as an atomic operation. On ARM, you need to first load it into a core register, then you can read the address with offset from memory. This makes accessing thread-local memory on ARM more complicated to do in a thread safe manner than on x64 because you need to be sure you don’t get pre-empted between those two instructions or one thread can end up with another’s thread-local memory pointer. Some details might be off, it’s been a while since I dealt with this issue. I think there was another thing that had to line up perfectly for the bug to happen (like have it happen during a user-mode context switch).
And that’s an example for two more similar uarchs. I’m not familiar with cell but I understand it to be a lot more different than x64 vs ARM. Sure, they’ve got all the documentation and probably still even have the collective expertise such that everything is known by at least someone without needing to look it up, but those individuals might not have that same understanding on the x64 side of things to see the pitfalls before running into them.
And even once they experience various bugs, they still need to be debugged to figure out what’s going on, and there’s potential that the solution isn’t even possible in the paradigm used to design whatever go-between system they were currently working on.
They are both Turing complete, so there is a 1:1 functional equivalence between them (ie, anything one can do, the other can). But it doesn’t mean both will be able to do it as fast as the other. An obvious example of this is desktops with 2024 hardware and desktops with 1990 hardware also have that 1:1 functional equivalence, but the more recent machines run circles around the older ones.
They probably have a bunch of developers like me: Dafuq did I do yesterday? 😵💫
Recent crowdstrike problem be like
For profit corporations should not be trusted to preserve out culture. They would happily delete everything it if made then 1 dollar
I don’t think it being hard is really the issue. Sony is a billion dollar multi-national corporation and they don’t get any benefit of the doubt whatsoever. Is it hard? Maybe it is, but maybe they should have thought of what they were going to do in the future when they were designing this. As was pointed out elsewhere, volunteers making an open source emulator are managing it so Sony not wanting to, or being unable to, isn’t an excuse.
I remember how some PS3 models have like the entire PS2 hardware inside them and it could run both ps1 and ps2 games.
Yeah this was such a bait and switch tactic on Sonys part. I remember a few years after they stopped producing backwards compatible models getting in arguments with people who still thought the ps3 could play ps2 games. Yes the first model (and maybe more) could but then they took the chips out to do it in order to save money. Really lame Sony. I had a friend even buy one without realizing this till he was trying to play his old games
I think the other models would emulate the ps2 games. But most of the time the emulation was really bad. I think GTA LCS is almost unplayable on the ps3 because of it.
This is why PS3 is the last PlayStation that I owned, and I didn’t even buy it retail.
After they discontinued the backwards compatible model I sought out and bought one secondhand, and swore never again to buy a PlayStation product unless they release one on which I can play all my PlayStation games all the way back to 1.
We had a backwards compatible ps3 and I was incredibly sad when I discovered I couldn’t play Um Jammer Lammy on it, something in the software fucked up the timing and you just couldn’t press the buttons at the correct time and it sucked
We gave away the ps3 at some point but I still have Um Jammer Lammy. I’ve considered buying a ps2 for it but haven’t bothered so far. The disc is probably in horrible shape by now anyway, it’s just semi sentimental so I keep it.
Why don’t you just emulate it. I can run ps2 games on a potato.
I saved up and bought a reasonably beefy Mini PC, and turned it into an emulation console with Batocera. PS3 emulation runs like an absolute dream. But who needs backwards compatibility, when we can resell you the same game from 15 years ago, again, at full price???
The whole point of bringing out a new generation of hardware is to make it work in much better ways of operation than the last one. By default it is not going to run the older generation of games because it doesn’t work in the same way. Now they could spend a lot of effort in making it able to play the old games and work in the old way, but what is their incentive to do that, compared say in starting work on the next generation or releasing the console earlier?
Xbox One plays a number of 360 games fine.
Apple used QuickTransit for their PPC apps on Intel migration to great success.
I guess Sony just didn’t want to pay the emulator tax?
The xbox one/series consoles run a good number of 360 games dispite the fact that the 360 uses powerPC and the newer consoles are x86.
Sony is out here getting shown up by rpcs3 having about 70℅ of their listed games working perfectly fine by hobbyists reverse engineering the ps3.
The PS3 is the epitome of “idiots admire complexity […]” it was needlessly complicated with its cell architecture.
I think the world has learned from this, since we’re abstracting and decoupling much more than before, as well as developing new and modernising old tooling all the time to lower that barrier to entry.
Shout outs to the game Devs who had to deal with this shit for 3 years straight, as their keyboards were probably salty from all the crying, their rubber ducky all crumpled and deflated.
Imagine if Sony executives got their way and the PS3 had two cell processors and no conventional GPU. It would have been even more of a nightmare to work on.
Would that have even worked? I can’t imagine you’d be able to get anything better than PS2 graphics with just an extra CPU.
The SPEs on the cell processor are actually pretty good at rendering graphics. In a lot of late gen exclusive PS3 games you can see that the developers utilised them more and more for graphics rendering. So the plan was to have the SPEs on both cell processors do all the graphics.