The Xbox One's inability to play Xbox 360 games hasn't gone down too well among the budget-conscious, but some hold out hope that Microsoft will eventually introduce backwards compatibility via system updates, rather than porting over individual titles on an ad hoc basis. The firm dropped hints to this effect during a Q&A earlier in the year, remarking that "we are exploring ways to bring gamers' favourite content to the new Xbox, but do not have any additional information to announce at this time."
Alas, OXM can now reveal that the prospect of a complete backwards compatibility solution is highly unlikely - at least as regards games that run on the hardware directly, rather than being streamed from a server. With the kind assistance of CVG's Rob Crossley, we reached out to two prominent developers for insights, one of whom was able to explain the situation in depth.
"This is a question that a lot of people ask at the beginning of a new console generation," our main source began. "Sometimes it is a valid point, but this time around there is little chance of that happening."
There are, broadly speaking, two ways of bringing about backwards compatibility on a console - incorporating the older console's components into the new hardware, as was the case with PS2 and PS1, or running a "virtual machine" that mimics the capabilities of the older console.
The first of these solutions can be prohibitively expensive, even when you allow for a fall in the price of the components in question. The second idea sounds more plausible on paper - surely, a console as advanced as the Xbox One should have no trouble simulating the eight year old Xbox 360? In practice, however, there simply isn't enough CPU power available - a limitation that's also apparently true of PS3 emulation on PS4.
"If you wanted to emulate something then you need a virtual machine that runs around it and converts instructions from one language into another, which requires large amount of CPU power, which is not available in either the Xbox One or PS4," our source explained.
Thus, "your only option would be to get the original source code and then try to port it", but this is "not as straightforward as it sounds", because the consoles use completely different components and processing architectures.
On the one hand, the Xbox 360 has three 3.2Ghz Power PC processing cores, each of which uses 32-bit instructions and supports two hardware "threads" - broadly defined, a sequence of programmed instructions that can be managed independently by an operating system scheduler. The Xbox One, meanwhile, operates eight AMD cores that support one hardware thread each, use 64-bit instructions and run at 1.75Ghz.
Games built for each system don't just tap into some finite and homogeneous reservoir of "system power", our source continued - they're optimised to suit the specifics, such as how fast each core runs.
"Let's say that I am porting a 'simple' Arcade title, that didn't really tax the system too much and just ran three threads, one per CPU and obviously used the GPU. This would mean that each thread could run at 3.2Ghz and run the game quite smoothly.
"Now, if we try to compile and run this on the Xbox One we immediately hit an issue... if we run the three threads, one per core, then the cores are only running at 1.75Ghz each! This is around half the speed of the Xbox360, so the game will run like treacle."