Microsoft Announces Xbox One Backward Compatibility
dotarray writes: Mike Ybarra is head of Platform Engineering at Xbox, and today he told the gaming world all about one of Microsoft's best-kept secrets — after more than a year of saying it couldn't be done, the Xbox One really is backwards compatible, so you can play all your Xbox 360 games on your next-gen console.
Apparently, MS wants to pick up additional sales of XBox One. Smart move. They should have done this at release time. Better late than never. Now, 360 users will have a reason to upgrade as they should be able to play most games on the One.
Nintendo's hand held gaming dates back even further then that. Gameboy Color supported classic Gameboy games (yup, the GBC had an upgraded processor, not just color). The GBA fully supported any GB/GBC game. And then of course the DS supported all GBA titles.
This is just the initial list. It sounds like all games are compatible and the only thing keeping them is a new agreement/addendum with the Publishers to distribute them there.
Omeganon
That list is about 100 titles shorter than I would have expected
moox. for a new generation.
I've had a 360 since launch (technically three if you count the replacement motherboards) and I would have got the One if it had backwards compatibility, even to the standard that the 360 could play original Xbox games by using most of the on disc assets but having a recompiled native engine for the PPC chip in the 360. This doesn't look quite like that unfortunately but I'll watch with interest as I'm not sure how much longer my 360 will survive and there are still games on it I would like to play through again. If it does support enough of the games I already own (the list currently has none) then I may well add an Xbox One to go with my PS4.
"I have the attention span of a strobe lit goldfish, please get to the point quickly!"
Game programmers also use a lot of intrinsics that are basically C macros around assembly calls. And these are very tied to the CPU architecture. They also do a lot of things based on cache line sizes. Making sure that structures or multiples of structures fit inside cache lines. Or play around with using a structure of arrays instead of an array of structures, or visa-versa it all depends on what turns out to be faster on the architecture, or CPU multi-threaded loading, or the cosmic rays hitting the box at the time. If a game team has a good set of optimizers on it they'll beat anything a compiler will do, and it will tie the performance of the game to the CPU and ensure you can't just recompile. Recompile will just throw error after error.
The CPU architecture is completely different. Pipeline depths, branch prediction, it uses SSE for its vector unit instead of the one in the xbox360. And that's all fairly custom code almost in the assembly level to force the use of the vector units. The GPU is different though I think they were both AMD GPUs so it shouldn't be too bad for the code to run on it, and it should be using Direct Draw 9.0c as the API so it shouldn't matter what the GPU is.
Microsoft also loves to change their APIs between SDKs, something compiling for June 2010 may not compile in June 2012. The only thing they guarantee is that something compiled on June 2010 of the XDK will run on June 2012 version of the flash. And only on the production boxes. I remember a few times where older games compiled for launch did not run on the latest flash on the dev kits. The dev kit flash was filled with lots of things to make development easy, so they stripped out deprecated functionality. They also stripped out the deprecated functionality to ensure that people didn't use it, because game developers would find a way to get at it if they really needed to, if it was in the flash they'd find it.
Also MS may only have source code for Microsoft Studios' games. They don't have the source code for any of the third party games. When submitting for certification and publishing all they cared about for the xbox360 was the ISO image. They may not even have the source code from their own studios available. Especially from the early games, the Xbox360 has been around longer than most companies store data. The company I worked for only kept the source code around for 5 years. That would put the earliest game to have published in 2010. They may not go back this far for their compatibility but it does cut out the earliest games.
I think they've finally got a Xbox360 PPC emulator that is fast enough to emulate what the xbox360 could do without dropping too much in the way of performance. And that wasn't ready at the launch of the Xbone.
Software Engineer & Writer of Military Science Fiction and Fantasy Blog: petermwright.com Twitter: WrightPeterM