Why is Microsoft so far ahead of Sony with Back Compat?

Status
Not open for further replies.
Huh, I’m not talking about a 6600 emulating cell, I’m talking about ps4 cpu emulating cell, read my posts,
You made this technical argument (which I did read.;))...

Remember the ps3 cpu has more flops than the cpu in the ps4, so basically running any decent ps3 game on the ps4 is impossible software wise
That is, it's impossible for the PS4 to emulate PS3 because it has less flops. I was just showing that you don't need more flops to emulate Cell. That part of your argument is invalid. PS4's CPU is still too weak to emulate Cell though, not because it has less flops than Cell, but because it is not powerful enough to emulate Cell.

Like I said 6600 is a more than twice as powerful as the ps4’s cpu.
Here’s a 6600 with nvidia 970 & 16gb emulating a game that pushes the ps3, red dead redemption
I'm not going to argue a 6600 is able to emulate the Cell perfectly. My point, in this technical discussion, is that you don't need [CPU flops >= emulated CPU flops] for emulation at native speeds. And it's worth noting that your video is a year old, whereas mine is the latest (one month old) and is showcasing the dramatically improved performance of the latest build. Similar to how 360 BC was dramatically improved on XB1, you never quite know when performance is limited by hardware or emulator.
 
I'm not going to argue a 6600 is able to emulate the Cell perfectly. My point, in this technical discussion, is that you don't need [CPU flops >= emulated CPU flops] for emulation at native speeds
Ok fair enough sure with better algorithms you can easily make up for a deficit in hardware, but I assume we are talking about emulating anything (I.e even the demanding stuff, naughty dog etc who are pushing the machine) on the ps3 and not just Tetris etc

Ok you make a valid point about that being old video, here is a new one from 3 days ago with greatly improved version of the emulator, using Vulcan, and much better cpu 8700k @4.6 ghz, but still performance is worse than ps3
 
Last edited:
Indeed. What surprises me is how well the homebrew emulator can manage. In the video I linked, framerate is higher than PS3, and Uncharted is one of those titles (though on a monster CPU). Modnation Racers was 30 fps on PS3 and here we see it running 60 fps on a Ryzen 3700x.
 
What all FP execution units are contained in a Cell SPE? Never been able to find out an SPE's exact composition but obviously matching it is important for emulation on x86 cores. I assume there is at least a 4 wide FMAD unit but I wonder how easy it is (or even possible) to remap graphics related SPE instructions on the fly into DX or Vulcan commands for execution in the GPU. Pretty much any game that actually uses Cell to it's fullest is using it to augment the RSX IIRC.
 
Maybe worth a look:
http://www.iman1.jo/iman1/images/IM.../CellBE_PXCell_Handbook_v1.11_12May08_pub.pdf

Page 70

3.1.3Execution UnitsThe SPU supports dual-issue of instructions to its two execution pipelines, shown in Figure 3-2on page 66. The pipelines are referred to as even (pipeline 0) and odd (pipeline 1). The units execute the following types of operations:
  • SPU Odd Fixed-Point Unit (SFS)—Executes byte granularity shift, rotate mask, and shuffle operations on quadwords.
  • SPU Even Fixed-Point Unit (SFX)—Executes arithmetic instructions, logical instructions, word SIMD shifts and rotates, floating-point compares, and floating-point reciprocal and reciprocal square-root estimates.
  • SPU Floating-Point Unit (SFP)—Executes single-precision and double-precision floating-point instructions, integer multiplies and conversions, and byte operations. The SPU supports only 16-bit multiplies for integers, so 32-bit multiplies are implemented in software using 16-bit multiplies. For details on floating-point operations, see Section 3.1.4.
  • SPU Load and Store Unit (SLS)—Executes load and store instructions and hint for branch (HBR) instructions. It also handles DMA requests to the LS.•SPU Control Unit (SCN)—Fetches and issues instructions to the two pipelines, executes branch instructions, arbitrates access to the LS and register file, and performs other control functions.
  • SPU Channel and DMA Unit (SSC)—Enables communication, data transfer, and control into and out of the SPU. The functions of SSC, and those of the associated DMA controller in the MFC, are described in Section 3.2 on page 72.

The SPU issues all instructions in program order according to the pipeline assignment. Each instruction is part of a doubleword-aligned instruction pair called a fetch group. For details about the rules for fetching and issuing instructions, see Section B.1.3 on page 779.

SXU.jpg
 
Last edited:
I've seen that, but it doesn't completely gleen on the actual embedded ALUs, just what operations supported. Emotion Engine's vector units for example contain 4x FMAC + 1x FDIV ALUs.
 
Last edited:
I'm not really sure what you're looking for beyond the Fixed Point units and the Float unit.
 
I'm not really sure what you're looking for beyond the Fixed Point units and the Float unit.

I'm wondering if all the equivalent ALUs are found in modern processors that might be used in an attempt to emulate Cell instructions. The more equivalent ALUs, the merrier unless it's just standard for FPUs to just be built around a MAD and MUL unit like both Zen uarchs so far (with Zen 2's being native 256-bit wide). As a common idiot, I'm not entirely sure how something like the Emotion Engine's native FDIV is emulated, aside from perhaps on the non-FPU integer hardware or some other round about way. Might be time to go back to college....:LOL:
 
I'm wondering if all the equivalent ALUs are found in modern processors that might be used in an attempt to emulate Cell instructions. The more equivalent ALUs, the merrier unless it's just standard for FPUs to just be built around a MAD and MUL unit like both Zen uarchs so far (with Zen 2's being native 256-bit wide).

Ignoring emulating the individual instructions, how would you approach emulating the SPUs in their paired ring-bus (EIB) arrangement? That looks like the greater challenge, the emulation would have to be immensely precise to get the same output as a real PS3 and there is a lot going on given the complexity of SPU code.
 
Ask the people who made RSPC3. ;)
Just read their blog; RCPC3 uses recompilers - they are not attempting cycle-accurate emulation of SPUs+EIB. Under half of the PS3 game library is "playable" (a very low-bar test) and why there are quite a few issues with games that do run. What they have done is tremendous but it's a long way for being a viable, deployable emulation.

For anybody thinking Sony can do a better job because they know PS3 more intimately, as far as I'm aware there is nothing about PS3's implementation of Cell that is unique. The challenge is not finding out the details you need, that is all out there, including information on IBM's tools for simulation and performance analysis for Cell, but to emulate an alien alien architecture on 80x86 is monumentally difficult at the PS3's operating frequencies.

edit: typo.
 
Last edited by a moderator:
if we are going to base anything on PC emulators should we look at Xenia and claim the Xbox One with it's 1.73Ghz Jaguar should've never been able to run any sort of XB360 emulation!?
AFAIK a lot of RPSC3 issues are not limited to Cell but other emulation woes, with the RSX and so on!?

I really can't see a situation where you could justify the PS5 as not being strong enough, and Sony software engineer not skilled enough to pull it off... but who am I to say...

I think with MS and Sony the approach has been different for a long time, the 360 had a pure software solution for BC with the OGXb, and really that was pretty ambitious given the specs, while realistically it never could achieve anything near perfect accuracy

at the end of the day MS probably have the best resources to achieve this with their expertise on software compatibility and with the way they build their OSes
 
Iirc...how xb1 and one x do emulation from 360 is different from sonys challenge putting ps3 emulation on ps4.
 
Iirc...how xb1 and one x do emulation from 360 is different from sonys challenge putting ps3 emulation on ps4.

Big differences architectural differences between Xenon and Cell, even though the former came from the latter. The 8x Jaguar cores in PS4 were a significant step down in SIMD performance compared to Cell, theoretically only half the performance when clocks are considered. Pretty much impossible to full speed emulate on the Jaguar cores, but I wonder if the GCN cores could be brought to bare in solving this problem. The singular PPE core on Cell was well.......pathetic, compared to wider cores like the Athlon 64 and Pentium 4. The 3x PPEs on Xenon are not hard to emulate on 8x Jaguar, despite the clock speed difference and PPE dual thread SMT.
 
If we are only talking about this new console generation, I think Microsoft has been preparing for BC from the start. If you look at a lot of the pre-scorpio news cycle in 2016 there were a lot of comments coming from MS about the end of console generations, and how Xbox is a family of devices. Crazy to think that it's been 4 years already. Based on those comments, they prepared for BC since at least then, and plenty more interviews and articles detail how they profiled games and collected data to ensure previous games would work on One X without issue, so they already had experience maintaining compatibility with different hardware. Contrast that with what Sony did with the launch of pro, where the system would down clock and disable CUs to maintain performance on par with Base PS4 running unpatched games. It took them months (a year maybe) to enable boost mode as an option, and it's basically offered without support. As in, if there is a game that has issues with it enabled, the supported resolution is to disable it. I don't actually know of any game that has issues running with boost mode, which makes it even stranger.

Regarding BC across multiple generations, Microsoft has the advantage of deep financial resources, plenty of skilled software engineers, and Direct X. And I don't think Direct X gets enough credit. It's a slightly higher level of abstraction, and it's MS controlled. It's easier to ensure that you get the desired output when you control the API as a whole. They also had the added motivation, because Xbox One went though a bit of a software drought, at least regarding exclusive software. BC allowed them to add value to their platform by adding games that were exclusive at least to the generation. You can't play Red Dead Redemption on PS4. Or Black Ops 1 and 2. And for a time, the only way to play Borderlands 1 on a current gen system was via BC. Not that it mattered to Microsoft, but it also added value to peoples back catalogs, because many of the games that went BC doubled in price on the used market. Sometimes they more than doubled, as I remember when Black Ops 2 and MW3 went backwards compatible, they went from being $3 games to being $15, and the demand was huge for them. It's crazy when games are that common but sell for significantly more that the average game on a platform. Then again, anyone look up how much Wii Sports is selling for right now?
 
Sometimes they more than doubled, as I remember when Black Ops 2 and MW3 went backwards compatible, they went from being $3 games to being $15, and the demand was huge for them. It's crazy when games are that common but sell for significantly more that the average game on a platform. Then again, anyone look up how much Wii Sports is selling for right now?

Don't forget that new copies of BO2 sold so well when BC was enabled for it that the digital version sold enough copies to chart in the top 10 of NPDs sales chart for April 2017. Particularly impressive as NPD ranks sales by revenue and not by units sold.

Regards,
SB
 
Its clearly a lucrative market proposition. Ms are in an enviable position when it comes to this sort of thing
 
if we are going to base anything on PC emulators should we look at Xenia and claim the Xbox One with it's 1.73Ghz Jaguar should've never been able to run any sort of XB360 emulation!?

Microsoft recompile the in-order PowerPC code to out-of-order 80x86 and run that code in a recompiled 360 OS stack. I.e. Xbox One isn't running PowerPC 360 games it's running 360 games re-compiled for Xbox One's AMD APU. This is an order of magnitude less complicated than trying to emulate a 360 running native PowerPC game code. Fundamentally you're swapping a PowerPC CPU code for 80x86 CPU code.

You have the same problem with PS3, you're swapping a PowerPC CPU for a 80x86 CPU, but you also have that satellite array of SPUs. There is no convenient recompilation solution for seven 3.2Ghz SPUs on an EIB ringbus where the output will 100% mirror the code and data going in.
 
Last edited by a moderator:
Status
Not open for further replies.
Back
Top