xbone backward compatibility!

Page 2 - Seeking answers? Join the AnandTech community: where nearly half-a-million members share solutions and discuss the latest tech.

Exophase

Diamond Member
Apr 19, 2012
4,439
9
81
I would disagree.

Okay, but fair warning, I know some things about efficient emulators so this conversation could go pretty in depth :p

Emulating standard definition games from the Gamecube shouldn't be an issue -- if the Xbox One can emulate high definition Xbox 360 games.

When I say that ~1.8GHz Jaguars aren't powerful enough for emulating Gamecube this isn't speculative but based on the current state of Gamecube emulation which has been in development for years and is heavily optimized.

Right now we don't know an awful lot about how MS will achieve backwards compatibility. When you're individually validating and distributing the games for this purpose there are a lot of tricks you can pull that wouldn't be practical for a general purpose emulator that naturally supports thousands of games out of the box.

It's hard to say for sure what is and isn't realistic and what options the developers have without knowing a lot more about what the games are like. And I don't mean what they appear to be to the user, but how they use the hardware and how they're written. How much CPU time they use, how much they use instructions or other architectural facilities that map poorly to the host hardware, how directly and frequently they interface with peripherals traps like extensive self-modifying code, and so on. And the software ecosystem in which they were written makes a big difference - if they all use basically the same OS and same libraries and most of the code is like user-mode Windows code then a lot more shortcuts will be possible.

Of course that's just talking about the CPU, and CPU can often amount to only a small part of an emulator's runtime.

If they're redistributing games individually they can hack them however they please to ease emulation. They can rewrite parts of it as native code if need be. And they can limit themselves to releasing the games that play nicest. We'll have to wait and see what their long term strategy is exactly. There's a huge difference between releasing a few specially distributed XB360 games a year and releasing a system update that lets you play the entire library. Right now the list is mostly XBLA stuff so it doesn't say much.

MS did pull off something of a miracle with their original XBox emulation for XBox 360. To such an extent that even within MS they didn't think it'd be possible. But it was never to the extent where it had great compatibility and no obvious slowdowns.

Also keep in mind -- Gamecube and Xbox 360 were both PowerPC based CPU's..... (And Gamecube had ATi/AMD GPU's as well).....

This doesn't mean anything. The old Wonderswan handheld and PS4 were both x86 based CPUs. So what?

It's not a question of whether or not one can emulate PowerPC arch CPUs on x86. Of course you can, it's been done over and over again and there was never any question. But that doesn't say anything about what kind of performance you can get doing it.

So one would think Gamecube emulation would be relatively straightforward on the Xbox One if the 360 could be done. There is no doubt in my mind that a Xbox One has more than enough processing power to emulate a standard definition-only 2001 era game console.

There are far more variables than you're considering.
 

Headfoot

Diamond Member
Feb 28, 2008
4,444
641
126
In this thread people who've never written a line of code talk about how easy it would be to emulate Xbox 360
 

therealnickdanger

Senior member
Oct 26, 2005
987
2
0
In this thread people who've never written a line of code talk about how easy it would be to emulate Xbox 360

And people who've never written a line of code talk about people who've never written a line of code talk about how easy it would be to emulate Xbox 360. Welcome to the Internet.
 

monstercameron

Diamond Member
Feb 12, 2013
3,818
1
0
I would disagree.

Emulating standard definition games from the Gamecube shouldn't be an issue -- if the Xbox One can emulate high definition Xbox 360 games. Also keep in mind -- Gamecube and Xbox 360 were both PowerPC based CPU's..... (And Gamecube had ATi/AMD GPU's as well).....

So one would think Gamecube emulation would be relatively straightforward on the Xbox One if the 360 could be done. There is no doubt in my mind that a Xbox One has more than enough processing power to emulate a standard definition-only 2001 era game console.
I wouldn't disagree with exo on this, he has tonnes of experience with emulators. I believe this might be the very same one that wrote drastic the DS emulator on Android.
 
Last edited:

Cogman

Lifer
Sep 19, 2000
10,286
145
106
Okay, but fair warning, I know some things about efficient emulators so this conversation could go pretty in depth :p



When I say that ~1.8GHz Jaguars aren't powerful enough for emulating Gamecube this isn't speculative but based on the current state of Gamecube emulation which has been in development for years and is heavily optimized.

Right now we don't know an awful lot about how MS will achieve backwards compatibility. When you're individually validating and distributing the games for this purpose there are a lot of tricks you can pull that wouldn't be practical for a general purpose emulator that naturally supports thousands of games out of the box.

It's hard to say for sure what is and isn't realistic and what options the developers have without knowing a lot more about what the games are like. And I don't mean what they appear to be to the user, but how they use the hardware and how they're written. How much CPU time they use, how much they use instructions or other architectural facilities that map poorly to the host hardware, how directly and frequently they interface with peripherals traps like extensive self-modifying code, and so on. And the software ecosystem in which they were written makes a big difference - if they all use basically the same OS and same libraries and most of the code is like user-mode Windows code then a lot more shortcuts will be possible.

Of course that's just talking about the CPU, and CPU can often amount to only a small part of an emulator's runtime.

If they're redistributing games individually they can hack them however they please to ease emulation. They can rewrite parts of it as native code if need be. And they can limit themselves to releasing the games that play nicest. We'll have to wait and see what their long term strategy is exactly. There's a huge difference between releasing a few specially distributed XB360 games a year and releasing a system update that lets you play the entire library. Right now the list is mostly XBLA stuff so it doesn't say much.

MS did pull off something of a miracle with their original XBox emulation for XBox 360. To such an extent that even within MS they didn't think it'd be possible. But it was never to the extent where it had great compatibility and no obvious slowdowns.



This doesn't mean anything. The old Wonderswan handheld and PS4 were both x86 based CPUs. So what?

It's not a question of whether or not one can emulate PowerPC arch CPUs on x86. Of course you can, it's been done over and over again and there was never any question. But that doesn't say anything about what kind of performance you can get doing it.



There are far more variables than you're considering.

MS does have a fair bit of emulator writing experience. They gained a lot of it from the good ole itanium days (when x86 compiled exes HAD to run on the itanium platform). They did a good job of doing the dynamic recompilation stuff and managed pretty good performance overall.

But I agree, it would be pretty impressive if they managed to emulate the 360.
 

Fox5

Diamond Member
Jan 31, 2005
5,957
7
81
I imagine they're statically recompiling code, which is what I think they did for Xbox to Xbox 360. IIRC, Xbox on Xbox 360 required developer assistance, so perhaps they did a new build with the Xbox 360 as a target.
Xbox 360 to Xbox One might be the same, probably has to be the same. I always wondered why Microsoft didn't enforce the use of .net for Xbox 360 so games could easily moved to other platforms, but perhaps they did.
 

SarahKerrigan

Senior member
Oct 12, 2014
735
2,036
136
MS does have a fair bit of emulator writing experience. They gained a lot of it from the good ole itanium days (when x86 compiled exes HAD to run on the itanium platform). They did a good job of doing the dynamic recompilation stuff and managed pretty good performance overall.

But I agree, it would be pretty impressive if they managed to emulate the 360.

Itanium was also twice as wide as Pentium4 (on the back side) and six times (on the front side, assuming trace cache miss.) And even with that, a 1.6GHz Itanium2 managed to get comparable x86-code performance to 1.6GHz Pentium4 - which, while Good Enough, is a little bit different animal from a Jaguar core emulating the 360. 360-PPC and Jaguar are both 2-wide cores, and 360-PPC clocks almost twice as high. Assuming games do have high-ilp single-threaded sections, that's going to be really hard to translate in a performant way. That being said, Jaguar also (afaik) has single-cycle simple-integer latency, as opposed to two-cycle on 360-PPC. Jaguar also has the advantage of being OoO, which means it can potentially tolerate latency better. Additionally, code that parallelizes well can probably make good use of having eight full cores instead of six SMT contexts. (I also wouldn't be surprised if they're doing some fairly aggressive autopar - I know Unisys has been working with lots of inter-core pipelining, etc, when emulating their legacy mainframe platforms.)

There's also the bandwidth issue (~200GB/s max bandwidth vs 256GB/s) but part of me is skeptical that many 360 games actually depended on having the full 256GB/s available. I guess we'll see.
 

Blitzvogel

Platinum Member
Oct 17, 2010
2,012
23
81
Itanium was also twice as wide as Pentium4 (on the back side) and six times (on the front side, assuming trace cache miss.) And even with that, a 1.6GHz Itanium2 managed to get comparable x86-code performance to 1.6GHz Pentium4 - which, while Good Enough, is a little bit different animal from a Jaguar core emulating the 360. 360-PPC and Jaguar are both 2-wide cores, and 360-PPC clocks almost twice as high. Assuming games do have high-ilp single-threaded sections, that's going to be really hard to translate in a performant way. That being said, Jaguar also (afaik) has single-cycle simple-integer latency, as opposed to two-cycle on 360-PPC. Jaguar also has the advantage of being OoO, which means it can potentially tolerate latency better. Additionally, code that parallelizes well can probably make good use of having eight full cores instead of six SMT contexts. (I also wouldn't be surprised if they're doing some fairly aggressive autopar - I know Unisys has been working with lots of inter-core pipelining, etc, when emulating their legacy mainframe platforms.)

There's also the bandwidth issue (~200GB/s max bandwidth vs 256GB/s) but part of me is skeptical that many 360 games actually depended on having the full 256GB/s available. I guess we'll see.

Devs complained of in-order stalls on both Xenon and the Cell's PPE, so you could be right, but I would expect 360 games mid life and beyond to be better coded for avoiding this.
 

Fox5

Diamond Member
Jan 31, 2005
5,957
7
81
Itanium was also twice as wide as Pentium4 (on the back side) and six times (on the front side, assuming trace cache miss.) And even with that, a 1.6GHz Itanium2 managed to get comparable x86-code performance to 1.6GHz Pentium4 - which, while Good Enough, is a little bit different animal from a Jaguar core emulating the 360. 360-PPC and Jaguar are both 2-wide cores, and 360-PPC clocks almost twice as high. Assuming games do have high-ilp single-threaded sections, that's going to be really hard to translate in a performant way. That being said, Jaguar also (afaik) has single-cycle simple-integer latency, as opposed to two-cycle on 360-PPC. Jaguar also has the advantage of being OoO, which means it can potentially tolerate latency better. Additionally, code that parallelizes well can probably make good use of having eight full cores instead of six SMT contexts. (I also wouldn't be surprised if they're doing some fairly aggressive autopar - I know Unisys has been working with lots of inter-core pipelining, etc, when emulating their legacy mainframe platforms.)

There's also the bandwidth issue (~200GB/s max bandwidth vs 256GB/s) but part of me is skeptical that many 360 games actually depended on having the full 256GB/s available. I guess we'll see.

IIRC, the edram bandwidth was 64GB/s, but internally had a bus (and some logic for doing anti aliasing and some other blending) that could do 256GB/s.
 

Blitzvogel

Platinum Member
Oct 17, 2010
2,012
23
81
From Xenos to eDRAM daughter die was 32 GB/s, but the bandwidth between the final logic (I assume the ROPS) and the eDRAM itself was 256 GB/s.
 

SPBHM

Diamond Member
Sep 12, 2012
5,068
422
126

Dresdenboy

Golden Member
Jul 28, 2003
1,730
554
136
citavia.blog.de
Sounds like emulation allright.

And then there is the question whether they tried to optimize the translations, use a good JIT, used hand crafted asm in the hot spots of the code, or simply used nice software engineering producing lots of interfaces and performance bottlenecks with templates and virtual functions.
 

NTMBK

Lifer
Nov 14, 2011
10,461
5,847
136
Main problem seems to be that they are forcing V-Sync on a game which was built to screen-tear almost constantly.
 

TeknoBug

Platinum Member
Oct 2, 2013
2,084
31
91
I still have Forza 3 and 4 discs, hope they add those titles to backward compat list.
 

Dresdenboy

Golden Member
Jul 28, 2003
1,730
554
136
citavia.blog.de
Main problem seems to be that they are forcing V-Sync on a game which was built to screen-tear almost constantly.
At such low framerates vsync doesn't matter much as the engine has just to wait for a small part of frametime till the next vsync. Tearing at 10-20 fps would just maje it worse.
 

SPBHM

Diamond Member
Sep 12, 2012
5,068
422
126
I think the performance problems are just mostly because of the CPU work, still, impressive that it works a well as it does, but in the end it's inferior to the original console and I wonder if it's worth playing games like this...

anyway, imagine this thing running with a PC CPU... (even an 8320 is so much faster than the consoles thing)
 

ShintaiDK

Lifer
Apr 22, 2012
20,378
146
106
If you got the old game, you also got the old console I guess. Problem solved.

I am quite happy with my Wii -> Wii U upgrade in that way since emulation isnt really needed.
 

Blitzvogel

Platinum Member
Oct 17, 2010
2,012
23
81
I know MS wants to sell more Xbones and increase it's popularity for the future, but being able to sell more 360's, hopefully at a profit sounds like a better idea instead of wasting time and money on free backwards compatibility that's based on making wrappers for individual games.