By using this site, you agree to our Privacy Policy and our Terms of Use. Close
Tachikoma said:
vivster said:

Wouldn't it be a straight port then? What is emulated by the system if the file is modified to run on it?

The adjusted file is to assist with the xbox one system properly bridging between the emulated netwrk interface and achievement hooking.

I wonder if anyone understood that phrase..

Ok, here is the classical flow-chart how emulation has been done, the "brute force method"  (written for X360 emulation):

1. Grab a line of PPC code

2. Translate the code into x64 code(s)

3. Execute the x64 code

4. Go back to 1.

This usually works if the emulating system is considerably more powerful than the emulated system. The Cell ppu processor at 3GHz is good enough to emulate a measly PS1/2 processor, for example.  Now in the X360/XOne situation, there is absolutely no way a 1.7GHz mobile core can do the flow chart against a 3.2GHz PPC core. So bw compatibility has to be done in either of two ways.

 

Idea 1: Recompile the game source code from PPC code to x64 code, essentiall a complete code conversion.

Obviously this would work, but no company is going to give MS its entire source code. And even if MS had a boatload of software engineers, this would be prohibitively expensive. Not even MS has that money left just to enable playing old games for free.

 

Idea 2: Crosscompile the game code and create a X360 runtime library on the XBox One system (somewhat similar to the ucsd Pascal system on the ol' Apple II).

Basically what you do is run the game code (PPC code) through steps 1., 2. and 4. and generate an x64 code file (this would be an automatic process so you don't need a dozen engineers). What you also need is a translation (not an emulation!) of the entire X360 os/graphics libs into x64 code for the XBox One. Essentially a virtualised X360 os running on the XBox One. That sounds very complex but in reality is more of a "somebody has to do it" (probably massive) workload, because MS owns the source to all of this and knows exactly where original X360 PPC calls would have to go into the x64 code. 

What is actually used of the whole X360 os/graphics libs in some particular X360 game is overseeable so I'd expect that every X360 "x64 game file" you download is roughly 0.5-1G bigger than the "original" X360 game file). But I don't have an XBox One so I have no idea if that is actually true. If not it would shoot the theory down in all likelihood.

Of course if an X360 game used "tricks" (like self-modifying code like some copy protection stuff,  using the old Kinect, maybe even some peripheral like a driving wheel, etc), then the X360 emulation would crash and burn and cannot work. Hence you won 't ever see those games. Of course if the game company wants to sell a port again on the XBox One, you'll equally not see the original X360 game showing up ever on the list.