Why Xbox One Backward Compatibility Took So Long (ign.com)
A new report from IGN this morning explains why it took so long for backwards compatibility to be supported on the Xbox One. Microsoft veteran Kevin La Chapelle says the answer to the question can be found in 2015 -- the year that Phil Spencer announced backwards compatibility at Microsoft's Xbox E3 media briefing. From the report: The fan-first feature has evolved from an experiment conducted by two separate Microsoft Research teams into a service planned for Xbox One's launch -- complete with hardware hooks baked into the Durango silicon -- until the well-publicized changes to the Xbox One policies (namely, stripping out the always-online requirement for the console) forced it to be pushed to the back burner. It's obviously back for good now, and expanding into original Xbox compatibility of select titles on Xbox One (the first batch of which we announced today). Even the Xbox One X is getting involved, with a handful of Xbox 360 games getting Scorpio-powered enhancements like 10-bit color depth, anisotropic filtering, and up to 9x additional pixel counts displayed on screen. [...]
It was 2007. One of [the research] teams was working on PowerPC CPU emulation -- getting 32-bit code, which the 360 uses, to run on the 64-bit architecture that the third-generation Xbox would be using. The other team, out of Beijing, started writing a virtual GPU emulator based on the Xbox 360 GPU architecture. "These were like peanut butter and chocolate," Microsoft VP of Xbox software engineering Kareem Choudhry recalled. "[So we thought,] 'Why don't we put them both together?'" Choudhry did just that, and so the first steps to Xbox One backwards compatibility were taken, long before the console had a name or anything remotely resembling final specifications. As Durango crystallized, so too did plans for Xbox 360 compatibility on the new machine. "This was primarily a software exercise, but we enabled that by thinking ahead with hardware," Gammill explained. "We had to bake some of the backwards compatibility support into the [Xbox One] silicon." This was done back in 2011. Preliminary tests showed that support for key Xbox middleware XMA audio and texture formats was extremely taxing to do in software alone, with the former, Gammill noted, taking up two to three of the Xbox One's six CPU cores. But a SOC (system on chip) -- basically an Xbox 360 chip inside every Xbox One, similar to how Sony put PS2 hardware inside the launch-era PS3s -- would've not only been expensive, but it would've put a ceiling on what the compatibility team could do. "If we'd have gone with the 360 SOC, we likely would've landed at just parity," he said. "The goal was never just parity." So they built the XMA and texture formats into the Xbox One chipset...
It was 2007. One of [the research] teams was working on PowerPC CPU emulation -- getting 32-bit code, which the 360 uses, to run on the 64-bit architecture that the third-generation Xbox would be using. The other team, out of Beijing, started writing a virtual GPU emulator based on the Xbox 360 GPU architecture. "These were like peanut butter and chocolate," Microsoft VP of Xbox software engineering Kareem Choudhry recalled. "[So we thought,] 'Why don't we put them both together?'" Choudhry did just that, and so the first steps to Xbox One backwards compatibility were taken, long before the console had a name or anything remotely resembling final specifications. As Durango crystallized, so too did plans for Xbox 360 compatibility on the new machine. "This was primarily a software exercise, but we enabled that by thinking ahead with hardware," Gammill explained. "We had to bake some of the backwards compatibility support into the [Xbox One] silicon." This was done back in 2011. Preliminary tests showed that support for key Xbox middleware XMA audio and texture formats was extremely taxing to do in software alone, with the former, Gammill noted, taking up two to three of the Xbox One's six CPU cores. But a SOC (system on chip) -- basically an Xbox 360 chip inside every Xbox One, similar to how Sony put PS2 hardware inside the launch-era PS3s -- would've not only been expensive, but it would've put a ceiling on what the compatibility team could do. "If we'd have gone with the 360 SOC, we likely would've landed at just parity," he said. "The goal was never just parity." So they built the XMA and texture formats into the Xbox One chipset...
As software goes, console games are architecturally horrible. This is mainly because of the legacy of 8- and 16-bit consoles where it was actually significant whether a program took a syscall (generally implemented as data-dependent branches), so optimizations like inlining are looked upon favourably even as they fix program to platform down to the hardware register. Those optimizations have been worthless since the race to half a gigahertz ended and RAM latency began to really get out of control, because since then syscall stubs (etc.) have been cacheable just like any hot-path thing, so doing a massive amount of them in a loop turns from an obstacle to effective utilization of hardware.
The lesson here is that one can always trust Microsoft to code like an obsessive twentysomething.
stupid outsourced chimps
It was developed by Microsoft. That is why.
sed -e 's/Chuck Norris/Rajnikant/g' joke > fact
They took a simple idea and made it complicated.
Cool. But some actual technical details on how they're emulating the PowerPC cores on the x86 cores, or emulating the nVidia GPU on the AMD GPU would be nice.
Now that there's a BC emulator, I guess I won't be finding unwanted original Xbox games for pennies anymore. At least I amassed a good pile of games from back when I was ripping them into a chipped and juke-boxed Xbox. (Why pirate when the original disc is cheap?) I still have my two chipped Xboxes somewhere.
#naabhaprzrag, #sverubfr-000, #agi-fcbafberq, negvpyr[pynff*=' negvpyr-ary-'] { qvfcynl: abar !vzcbegnag; }
Does it run Mechassault yet? Because _that_ was the game of games. Near perfect mech control, near-perfect online gaming.
If not, going back to sleep.
More pixels don't mean shit if you don't have gameplay handled.
how so? they seem to have done what most others have failed to do, providing backwards compatibility across completely different hardware architectures (without including that hardware on the board) is no small achievement and is by no means a simple to achieve.
We at mickeysoft thought that the xbox one would beat out the ps4 by its library alone but since it isn't we are working hard on backwards compatibility again so potential and existing xbox one and x owners have a bigger reason to buy/play a xbox one and x.
(1) They did include at least some backwards compatibility in the hardware (XMA audio and the textures format) which may or may not have been necessary. (2) The whole point the GP was making was precisely that they didn't go the simple route: include sufficient hardware to do backwards compatibility. Instead, they went the mostly emulation route which almost always results in issues. Look no further than XBox backwards compatibility on the XBox 360.
So, we can commend them on their efforts to do most of it in software? Sure. We can even be impressed, even though it sounds like they're going through and making special optimizations per game because a generic emulator won't do the job. It's still not as good as the real thing. All the claims of better? I doubt it. I used to be a really big fan of emulation. And at first, it seems quite amazing. Over time, though, it's very clear that emulation has many weaknesses and even doing per game optimizing and checks is never going to be enough.
*shrug* Then again, I don't have an XBox 360 or One.
Sony also have a software emulator, although the early PS3 hardware included a complete PS2 because the software emulation wasn't ready at the time.
http://spamdecoy.net - free throwaway anonymous email - avoid spam!
As opposed to not doing it at all, like Sony with the PS4? As opposed to doing it poorly, as Nintendo did with the WiiU, or not at all, with the Switch? I'm sorry, I know hating Microsoft is Slashdot tradition, but they're the only ones doing this properly this generation. Sony's farmed it all out to a game streaming service and Nintendo just has you buying Virtual Console games over and over again or, back in the day, they bundled the Wii in the WiiU with all the shitty graphics and poor resolution that implied.
Now that this has been solved, can we get some answers for why my XBOX 360 games (Forza, etc) don't have access to the downloadable content anymore? How hard is it to maintain data for two or three console generations?
Nobody writes direct to hardware anymore, surely. It's all DirectX library calls.
Because they could have gotten parity at launch with an SOC, and that wouldn't have precluded them from working on a feature rich software solution going forward.
Join me and ascend to God hood for you are weak! And I am mighty!
http://saveie6.com/
This is all just well and good, but in the end who cares? If this was a brand new console gen coming out that could run all these old games, that would be one great marketing differentiator. But it's not, and at this point you have to wonder why all this effort that isn't going to net Microsoft all that many console sales? Let alone give it a "win" in this console gen? It all feels rather pointless for the tiny number of Xbox One users who want to play old games on their new console.
You mean, except for Apple? Apple migrated from a Motorola 68000 processor line to the PowerPC line and then to Intel x64. The migration from PowerPC to Intel x64 included significant emulation so the old software would keep running on the new platform. It looks like Microsoft merely replicated that kind of work. Having said that, this was a completely self-created problem. Xbox was x86 and Xbox One is x86. The intervening Xbox 360 was PowerPC (!?!?!?) because...
32 bit instructions should run natively on 64 bit, so the real issue here was PowerPC emulation not bits.
GCS/MU/P d- s:- a-- C++++$ UL++ P+ L++ E+ W++ N o K- w--- O M+ V- PS+++ PE Y+ PGP t+ 5- X R++ tv+ b++ DI++ D++ G+ e++ h-
I do have an Xbox One and from my experience the 360 emulation works pretty well now. When the first emulated games came out there were some that did perform worse than the originals, but it seems like they've got the emulation nailed down now as they release updates for games tweak them for better performance. The Gears of War games ran pretty terribly at first, but a few updates later they now run very well. I used to stick with the native 360 versions for playing those games online but now I play the emulated versions on the Xbox One.
It sounds like emulation will be even better on the Xbox One X (AKA Project Scorpio). I guess we'll see once it comes out in a few weeks how things run, but it seems like the Xbox emulation team is putting in some work on getting it right.
http://www.eurogamer.net/articles/digitalfoundry-2017-project-scorpio-back-compat-five-ways-your-existing-games-will-be-better
and a SOC would have cost them a fortune and raised the retail price or forced them to take a major profit hit for a feature that while popular is not used by the majority.
Well at least PPC emulation exists today. Not sure what possessed MS to go with a PPC chip on the X360 in the first place. Seems counter to their original goals to me. But hey, at least I can run AmigaOS 4.1 under UAE now.
IIRC the PS3 included a completete PS2, then only half of it (what we may call the "GPU" - it had some crazy fillrate and bandwith), then nothing at all but also dropped the PS2 compatibility.
At Nintendo we did indeed include older hardware on our handheld platform for compatibility. The old hardware made for a great co-processor. Then there is this other way to do provide backward compatibility.
really bad example, emulating applications that do not have specific timings and framerates for video and that spend most of their time idle is not a challenge and is no real accomplishment. with a gaming console you have to get CPU and GPU timings nearly perfect or the end result is unplayable, can't be faster or slower and a game uses the FULL resources of a machine. An application emulation has no such limitations.
How well does that actually work? I've noticed a lot of games (1) copy substantial parts of them to different memory areas to get better performance and/or (2) modify their own code. Beyond that, the patent is clearly bullshit. The idea of decompiling and recompiling code to a new platform is itself an old idea. Unless the implementation is actually novel. The biggest stumbling block is precisely getting code to work, especially timing specific parts or not having too bad of performance regressions. So, yea, if you have relatively sane code and the time to tweak it, I can see it working once. Try doing that little trick 3 or 4 times, and not just to systems that are orders of magnitude faster. I'm fairly certain it will fail very badly.
And I'd love to be proven wrong.
comment so nice Gesture Lock Screen