XBox One Backwards Compatibility and Xbox One X Enhancements for X360 and OG (XO XOX BC)

My understanding is that OoOE makes everything run better. Even the most highly optimised serial code will run faster. You can't optimise highly enough to negate all benefits of the CPU being able to re-orer its workloads on the fly.
I'll have to defer to the
proper devs on this. My understanding is based more on the principles going back to really simple CPUs. I suppose it's possible on modern architectures with multiple functional blocks to run operations in parallel OoO. However, the transcoding process itself is going to tie up some of that, and I don't think Jaguar has a lot of functional blocks to use. Aren't they comparable PPC vs Jag?
 
I'll have to defer to the
proper devs on this. My understanding is based more on the principles going back to really simple CPUs. I suppose it's possible on modern architectures with multiple functional blocks to run operations in parallel OoO. However, the transcoding process itself is going to tie up some of that, and I don't think Jaguar has a lot of functional blocks to use. Aren't they comparable PPC vs Jag?

I'm not a proper dev either, but I'm trying to remember things that they've said and apply it the conversation, hopefully with > 10% accuracy. :)

I don't think it's necessarily due to the number of functional blocks, but with how well they can be kept busy. The term 'OoOE' used generally seems to cover a lot of acceleration tricks that aren't just about branch prediction. I believe the automatic hardware prefetcher is very important in accelerating tasks, and requires no additional programmer effort to use. Manual prefetching on the 360 is unlikely to match it's effectiveness even if you're really good.

One of the devs here (it might have been President Sebbbi) used the phrase "prefetch or die" with regards to the 360 cores.

Likewise, even with linear, serial code, there will be times when you stall waiting on a fetch from L1 or L2, and a modern core with OoOE may be able to work on separate piece of the code from further ahead using speculative execution (another thing which I believe the 360 completely lacked).

Hopefully one of the proper devs of B3D will be able to shed far more light on this!
 
IPC on the 360 CPU was something like 0.2 when assessed using real games.
.
Not certainly in most situations, if my understanding is correct --Shifty mentioned this too, in-order code is super optimised. Some games flew on the Xbox 360.

Maybe One flew over the cuckoo's nest. :)
 
Nope, however fast your super optimised "in-order" game code is, it'll benefit from the facilities of a modern 'OoO' processor. Look at the history of X86 processors to see just how much better "super optimised" code runs as the processors get better.

The figure of 0.2 IPC comes direct from MS in a presentation for developers, after years of profiling Xbox 360 code. Jaguar is several times as efficient.

Outside of vector workloads where you could effectively manually prefetch to mitigate (to some degree) the lack of a hardware prefetcher, it appears that Xenon was hot garbage.

There are likely no areas where the six hardware threads of Xenon can outperform the 6 cores allocated to games in the X1, but there will be a vast number of areas where X1 is significantly faster - if not several times faster.
 
Well, taking into account the original Mass Effect actually ran at 15-20 fps on the X360 with spikes of 30 fps, it's not that bad. :) Hopefully they are going to polish it over time.

Just because it was super bad back on X360 makes it ok that it is even worse now on a 10 times better system with similar hardware setup???

To be honest, this is super disappointing and shows to me that MS released BC to early (they needed something to generate buzz for E3 apparently).

This is really alien to me. Playing super old games which were technically often outdated already when released, but now with even worse quality and performance...really? Seriously? At which point should I get excited?

If you guys are so unhappy with your X1 console...why just not finally change to freaking PC gaming: here, BC means that you can play such old games at 4k with 120Hz in 3D if you really want to. No list to vote which game maybe gets abC next, no half ass solution...

Meh. I hope MS doesn't invest to much resources in this nonsense and invests more in...hm...let me think, ah yeah: new games and/or IP...maybe even in a worthwhile Kinect game? But such thinking seems to be to radical nowadays...

/rant.
 
Just because it was super bad back on X360 makes it ok that it is even worse now on a 10 times better system with similar hardware setup???

To be honest, this is super disappointing and shows to me that MS released BC to early (they needed something to generate buzz for E3 apparently).

This is really alien to me. Playing super old games which were technically often outdated already when released, but now with even worse quality and performance...really? Seriously? At which point should I get excited?

If you guys are so unhappy with your X1 console...why just not finally change to freaking PC gaming: here, BC means that you can play such old games at 4k with 120Hz in 3D if you really want to. No list to vote which game maybe gets abC next, no half ass solution...

Meh. I hope MS doesn't invest to much resources in this nonsense and invests more in...hm...let me think, ah yeah: new games and/or IP...maybe even in a worthwhile Kinect game? But such thinking seems to be to radical nowadays...

/rant.

Billy, you seem to have misunderstood many of the most basic points. Here are some important corrections to your post based on what we know so far:

- Some games run noticeably worse (but with faster loading, better streaming, no tearing), some games run perfectly, some are even marginally improved.

- They haven't released BC, it's a 'Beta' (look it up, seriously, it's a useful term to know) for people who have 'opted in' to the preview program.

- Changing to a PC won't allow you to play your old 360 games, or to buy new 360 that are still worth playing and play them there. (Also, sometimes, older games have issues on newer OSes and hardware, even on PC).

If you're going to write an ill-informed opinion piece (more power to you, I love doing that too) perhaps leave it out of the tech forum?
 
You are right, it is not fair to judge the performance of a beta. If we judge the tec what we have right now, the performance is more than disappointing though. But, I stand correct. We can discuss performance again once it is released.

The other things you say are exactly what I mean by 'alien' though.

Btw, why is there no BC to the original Xbox? This must be much simpler tec wise. There are some really good games I want to buy new for the original Box, but play them on my X1.
 
You are right, it is not fair to judge the performance of a beta. If we judge the tec what we have right now, the performance is more than disappointing though. But, I stand correct. We can discuss performance again once it is released.

The other things you say are exactly what I mean by 'alien' though.

Btw, why is there no BC to the original Xbox? This must be much simpler tec wise. There are some really good games I want to buy new for the original Box, but play them on my X1.

I believe they have to pay royalties to Nvidia same as BC for X360. Someone pls correct me if I'm wrong.
 
I believe they have to pay royalties to Nvidia same as BC for X360. Someone pls correct me if I'm wrong.

The biggest mistake they made with the original Xbox was that they didn't own the designs of the CPU or GPU. So, yeah, if they wanted to emulate the NV2A in the Xbox they'd have to pay. It's technically possible for them to develop a "clean-room" emulator, but I doubt they would consider that cost-effective.
 
I do hope we learn how the CPU is solved. Is it really just a case that the XB360 CPU was so underused that a 1.6 GHz jaguar core has room to spare to both transcode and execute the PC instructions? Is transcoding trivial and something that maybe a dedicated core could be doing?
yeah the cpu side is the bigger mystery. maybe the recompilation to x64 is done on the server by ms? you have to download a bunch of stuff for every game (360 os, vm code, game code, game assets...) so they could be doing it this way.
If we judge the tec what we have right now, the performance is more than disappointing though.
is it really? i am not disappointed by the performance of the games i tested. yeah, mass effect still runs like ass. the rest is fine.
 
yeah the cpu side is the bigger mystery. maybe the recompilation to x64 is done on the server by ms? you have to download a bunch of stuff for every game (360 os, vm code, game code, game assets...) so they could be doing it this way.
is it really? i am not disappointed by the performance of the games i tested. yeah, mass effect still runs like ass. the rest is fine.
well, if they emulate right, mass effect will never runnig better. It had already problems of reaching stable 30fps on the 360. If they now forced vsync, it is normal that they reduce the frame to a bare minimum. But they cant just let the old code run faster, it could harm games that depend on specific timings. So mass effect should only run good without vsync, or with something like dynamic vsync. everything else won't work with a general emulator for all games.
You can let the games look better (e.g. through higher res and AA) but you can't run them faster than they should. But maybe in future the emulator can have some profiles for games, so that some tweaks are game-specific.

But well, in case of mass effect I would gladly buy a remaster of all 3 games (including DLCs and maybe some fancy stuff).


The best thing about the emulator, you can play xbox 360 games with the new controller :)
I don't know how you think about that, but as I though the 360 controller was good, now my hands don't want it anymore after using the xbox one controller :)
 
Just because it was super bad back on X360 makes it ok that it is even worse now on a 10 times better system with similar hardware setup???

To be honest, this is super disappointing and shows to me that MS released BC to early (they needed something to generate buzz for E3 apparently).

This is really alien to me. Playing super old games which were technically often outdated already when released, but now with even worse quality and performance...really? Seriously? At which point should I get excited?

If you guys are so unhappy with your X1 console...why just not finally change to freaking PC gaming: here, BC means that you can play such old games at 4k with 120Hz in 3D if you really want to. No list to vote which game maybe gets abC next, no half ass solution...

Meh. I hope MS doesn't invest to much resources in this nonsense and invests more in...hm...let me think, ah yeah: new games and/or IP...maybe even in a worthwhile Kinect game? But such thinking seems to be to radical nowadays...

/rant.
All I know, Billy, is that your everyday guy, your Joe Public, loves this.

I know a guy who is a veterinarian, and he is your average guy. :) Today he talked to me about games in the place where I work because I know he has a X360 and I told him that I have a Xbox One a few months ago. He asks me about how is my gaming on the Xbox One and stuff, at times, when I see him.

He told me that he read in the newspaper that now Xbox One has backwards compatibility. And his words were: "One of the things that backed me out -implying to buy the Xbox One- was that I couldn't play my old games and thought about having to place both consoles together some way, maybe one on top of the other. But now...".

These things spread by word of mouth. :)
 
I just noticed that the simple but VERY fun Hexic HD that was bundled for free (and remains free forever in the store) with every X360 back in November 2005, is a 55 MB download on the Xbox 360. BUT it is a much larger (632MB) download on the Xbox One.



http://marketplace.xbox.com/en-GB/Product/Hexic-HD/66acd000-77fe-1000-9115-d802584107d1?noSplash=1 (55MB X360 download from the Xbox store)

I wonder why it happens -patches used to weigh around 3-4MB on the X360, too-, because I think some of the games I have working on the XOne now were lighter on the X360.
 
That would put the X360 Game OS portion that handles the backwards compatibility around 577 Megs assuming the game title (Hexic HD) is still the original size of 55 Meg. That is if each and every game downloaded includes the X360 BC part, which seems to fit in with what MS said, treating each one as a separate game.
 
That would put the X360 Game OS portion that handles the backwards compatibility around 577 Megs assuming the game title (Hexic HD) is still the original size of 55 Meg. That is if each and every game downloaded includes the X360 BC part, which seems to fit in with what MS said, treating each one as a separate game.
Ahhhhhhh, excellent wit there. This might certainly explain the mystery here, because I didn't remember the arcade games I have as being as hefty as they are now on the X1. I am going to check Super Meat Boy and the others.
 
Games size comparison: Xbox One BC games / Original Xbox 360 games size

Super Meat Boy
: 721 MB on X1 -108.3 MB on X360 http://marketplace.xbox.com/en-GB/Product/Super-Meat-Boy/66acd000-77fe-1000-9115-d80258410a5a- Difference: 612.7 MB.

Defense Grid: 954.4MB on X1 - 296.56MB on X360 http://marketplace.xbox.com/en-GB/Product/Defense-Grid/66acd000-77fe-1000-9115-d802584108cb Difference: 657.84MB

Toy Soldiers: 1.2GB on X1 - 687.40 MB on X360 http://marketplace.xbox.com/en-GB/Product/Toy-Soldiers/66acd000-77fe-1000-9115-d8025841099e
Difference: 512.6MB

Toy Soldiers: Cold War - 1.7GB on X1 - 945.15 MB on X360 http://marketplace.xbox.com/en-GB/Product/Toy-Soldiers-Cold-War/66acd000-77fe-1000-9115-d80258410aac
Difference: 754.85MB

Hexic HD: 623.1MB on X1 (sorry for the previous 632MB number I used before) - 55.07MB on Xbox 360 http://marketplace.xbox.com/en-GB/Product/Hexic-HD/66acd000-77fe-1000-9115-d802584107d1
Difference: 568.03MB

Perfect Dark: 868.9MB on X1 - 239.15MB on Xbox 360 http://marketplace.xbox.com/en-GB/Product/Perfect-Dark/66acd000-77fe-1000-9115-d802584109c2
Difference: 629.75MB

A World of Keflings: 807.4MB on X1 - 160.21 MB on Xbox 360 http://marketplace.xbox.com/en-GB/Product/A-World-of-Keflings/66acd000-77fe-1000-9115-d802584109db
Difference: 647.19MB

Jet Pac Refuelled: 603.8MB on X1 - 21.14 MB on Xbox 360 http://marketplace.xbox.com/en-GB/Product/Jetpac-Refuelled/66acd000-77fe-1000-9115-d802584107fb
Difference: 582.66MB

Thanks to Windows Calculator for the maths operations. :)

Most surprising of all is the fact that ALL the games include a Saved Data file of 256MB each. Did the X360 forced that number for each game or actually required that amount of MB to save games? It's a lot of space for saved games.

If @BRiT theory is correct I wonder if they could just launch the 1080p OS portion with Perfect Dark. I mean, maybe they just wanted to have a mirror image of the X360 OS with the graphics options set at 720p, hence the downscale, even if the game runs internally at 1080p?
 
I agree, I think MS left the option there - I can't believe 'they thought it was impossible' but 18mths later they have it up and running and it's actually improving games.

Either they didn't have the time or they thought they didn't need it...it's a shame it didn't launch with it, it would have been interesting to see the sales.

I was told back in early-2013 that MS had been investigating various back-compat methods but they had apparently given up.

Which matches what MS says about a small team of engineers doggedly persevering with their attempts at emulation for the past few years.
 
I'm not a proper anything. Well maybe smartphone user. I had mentioned before that I thought BC was possible. That theory was based, however, on my ignorance of how computers truly work.

But the reason I thought it was possible was because my layman's understanding of the Xbox One was that it was basically a server with a game OS and app OS. Adding different things I have read about One and Windows 10 made it seem possible to me. I had read Windows 10 was based on the Server 2012 kernel. Someone correct me if I'm wrong. I also had read Microsoft was working on software that allowed any type of servers to work together despite differences in architecture. And I've read DX12 doesn't care about GPU architecture or whether they are embedded or discreet.

All of those things made me believe it was possible because the Xbox One was already running two different VM OSes. To the layman adding a third OS shouldn't make a difference. Or a fourth for the original Xbox. And a fifth for PC.

My big question for you guys is will it eventually be possible for them to just create virtual OSes for a given game build(say, unreal engine 3.2, CPU A, GPU A and OS A) and download that to your Xbox and have it run any game using those parts instead of downloading an OS with each game? Longest sentence ever.
 
well, if they emulate right, mass effect will never runnig better. It had already problems of reaching stable 30fps on the 360. If they now forced vsync, it is normal that they reduce the frame to a bare minimum. But they cant just let the old code run faster, it could harm games that depend on specific timings. So mass effect should only run good without vsync, or with something like dynamic vsync. everything else won't work with a general emulator for all games.

They're never going to emulate it right speed-wise or anything even remotely close, emulating the performance impact of the memory hierarchy and branch prediction (among other things which all cause huge variation in performance on Xenon) would be extremely expensive, far more than they could manage. Similar attempts at accurate performance modelling for the GPU would probably also be extremely expensive.

It's hard to tell exactly how much slower this is running at its worst because "fps difference" is a terrible metric for performance, you need absolute measurements to know. And the videos aren't that precise, especially since fps is averaged over many frames. But if you have something like 25fps to 15fps, that would be 40ms to 66.67ms, an increase of 26.67ms per frame. That's beyond the worst case penalty for vsync, which should be 16.67ms, and will usually be worse (in this case it'd be more like 10ms if that frame time is stable)

You can let the games look better (e.g. through higher res and AA) but you can't run them faster than they should.

Sure you can. Most games that weren't written in the 80s synchronize with external timers that aren't dependent on processor performance. We can already see some places where the frame time goes down instead of up, and the times related to DVD access in particular are much lower.

Some games may be sensitive to incorrect timing, especially wildly incorrect timing (which is probably the case for this emulator), but it's usually an unintentional bug. Since this emulator supports so few games we can't really say what its overall compatibility is like or what hacks MS is doing on a per-game basis to make things work/work better.
 
Games size comparison: Xbox One BC games / Original Xbox 360 games size

Super Meat Boy
: 721 MB on X1 -108.3 MB on X360 http://marketplace.xbox.com/en-GB/Product/Super-Meat-Boy/66acd000-77fe-1000-9115-d80258410a5a- Difference: 612.7 MB.

Defense Grid: 954.4MB on X1 - 296.56MB on X360 http://marketplace.xbox.com/en-GB/Product/Defense-Grid/66acd000-77fe-1000-9115-d802584108cb Difference: 657.84MB

Toy Soldiers: 1.2GB on X1 - 687.40 MB on X360 http://marketplace.xbox.com/en-GB/Product/Toy-Soldiers/66acd000-77fe-1000-9115-d8025841099e
Difference: 512.6MB

Toy Soldiers: Cold War - 1.7GB on X1 - 945.15 MB on X360 http://marketplace.xbox.com/en-GB/Product/Toy-Soldiers-Cold-War/66acd000-77fe-1000-9115-d80258410aac
Difference: 754.85MB

Hexic HD: 623.1MB on X1 (sorry for the previous 632MB number I used before) - 55.07MB on Xbox 360 http://marketplace.xbox.com/en-GB/Product/Hexic-HD/66acd000-77fe-1000-9115-d802584107d1
Difference: 568.03MB

Perfect Dark: 868.9MB on X1 - 239.15MB on Xbox 360 http://marketplace.xbox.com/en-GB/Product/Perfect-Dark/66acd000-77fe-1000-9115-d802584109c2
Difference: 629.75MB

A World of Keflings: 807.4MB on X1 - 160.21 MB on Xbox 360 http://marketplace.xbox.com/en-GB/Product/A-World-of-Keflings/66acd000-77fe-1000-9115-d802584109db
Difference: 647.19MB

Jet Pac Refuelled: 603.8MB on X1 - 21.14 MB on Xbox 360 http://marketplace.xbox.com/en-GB/Product/Jetpac-Refuelled/66acd000-77fe-1000-9115-d802584107fb
Difference: 582.66MB

Thanks to Windows Calculator for the maths operations. :)

Seeing this does reinforce that the game OS is a completely packaged and separate entity. The gameOS contains its own drivers, save files, as well as its own OS. It is essentially the 360 game, packaged into XBO format. Makes sense why it all needs to be downloaded.
This has probably been somewhat of an enabler of Xbox's fast turn around time for performance improvements for the SDK since the changes to the SDK are not required to be backwards compatible (so no need to check if it breaks older games as each game ships with its own code). This is a stark difference to the 360 IIRC, where they had only a limited amount of OS space to use for updates and changes to run old and new games?

If this is true, the requirement for Windows 10 to be on Xbox is truly not a requirement for xbox to being running DX12 based games, a discussion topic I was never sure where I stood on, until now. The move to W10 for Xbox would purely be for the OS/Application space.
 
Back
Top