Microsoft Engineer Speaks on Xbox 360 Backward Compatibility

A

Andrew Ryan Chang

Smart Feet said:
Can someone please explain to me why the Xbox 360 isn't "naturally"
backward compatible with Xbox games? Aren't the Xbox and Xbox 360 both
based on the Windows (2000? XP?) kernal and DirectX?

On my PC, I can change my processor and video card all I like (for a
good example, I just recently went from an Intel P4 to an AMD FX-55) and
all my games still work just fine!

A P4 and A64 are both implementations of the same x86
architecture, and thus binary compatible with each other.

The XBox has an x86 chip at its core. The X360 has a PowerPC
variant. That's why they're not "naturally" compatible. It's exactly
like how an Itanium system isn't binary-compatible with programs compiled
for x86 architecture, despite having the same OS. (Then there's the
issues of GPU differences, a time when DirectX didn't really abstract away
shader implementations, and possibly differences in the OSes between the
boxes...)


followups to agvx.
 
L

Leon Dexter

Smart Feet said:
Can someone please explain to me why the Xbox 360 isn't "naturally"
backward compatible with Xbox games? Aren't the Xbox and Xbox 360 both
based on the Windows (2000? XP?) kernal and DirectX?

On my PC, I can change my processor and video card all I like (for a
good example, I just recently went from an Intel P4 to an AMD FX-55) and
all my games still work just fine!

Regardless of what new hardware is running the Xbox 360, why doesn't the
fact that they are running a special "console" version of Windows make
it automatically backward compatible?

That may be the only thing that makes it feasible at all. The Xbox is NOT
just running a "special version of Windows and DirectX", it's running a
whole bunch of them. Each game you put in could potentially be using a new
driver set, and not one that was made to be compatible with all hardware.
The best ones are written very specifically to use the Xbox's hardware and
nothing else. If the Xbox was using "normal" Windows and DirectX, it would
be a weak, outdated machine barely capable of playing anything current.
 
A

Andrew Reilly

Can someone please explain to me why the Xbox 360 isn't "naturally"
backward compatible with Xbox games? Aren't the Xbox and Xbox 360 both
based on the Windows (2000? XP?) kernal and DirectX?

Your PC games don't work on an Apple Mac, or even a Windows PortablePC
hand-held, even though the latter is a version of Windows and has DirectX.
On my PC, I can change my processor and video card all I like (for a
good example, I just recently went from an Intel P4 to an AMD FX-55) and
all my games still work just fine!

Both of those processors are part of the Intel IA-32 instruction set
family, even though the second one is not made by Intel. It is a clone of
the same instruction set, and is therefore compatible. The processors
used by Apple Macs and PortablePC hand-helds are not compatible in this
way, being PowerPC and ARM processors, respectively. They both achieve
much the same computational goal, but the instructions that they use are
different, so programs won't run on all of them.

[That's why Sun built Java and why MS is doing .NET, which is just about
the same idea, now: the programs are not shipped in a form that directly
runs on *any* processor, but a program that does run on each of them will
run the program the same way on each of them.]
Regardless of what new hardware is running the Xbox 360, why doesn't the
fact that they are running a special "console" version of Windows make
it automatically backward compatible?

Instruction set architecture. The Xbox 360 is using a PowerPC variant,
while the original Xbox used an IA-32 variant. Not compatible, even if
the operating systems and programs running on each seem the same.
 
D

Doug Jacobs

In alt.games.video.xbox Smart Feet said:
Can someone please explain to me why the Xbox 360 isn't "naturally"
backward compatible with Xbox games? Aren't the Xbox and Xbox 360 both
based on the Windows (2000? XP?) kernal and DirectX?

It's not a matter of software, it's a matter of hardware.
On my PC, I can change my processor and video card all I like (for a
good example, I just recently went from an Intel P4 to an AMD FX-55) and
all my games still work just fine!
Regardless of what new hardware is running the Xbox 360, why doesn't the
fact that they are running a special "console" version of Windows make
it automatically backward compatible?

The problem is the hardware architecture. The Intel and AMD chips are
built around the same architecture, although each has some special
features. Compare American English and British English. They have enough
in common that you can understand something written in either language,
yes? (It is possible to compile a program to use specific features of a
processor, but then that program won't run on any other type of processor.)

All software - drivers, your OS, and even your games - must be compiled to
use the same set of machine instructions as the underlying hardware.

This is true for your video card too. In this case, the driver software
acts as an interpreter between the OS and the hardware.

Although the Xbox is based on an Intel chip, the Xbox360 is based on a
PowerPC chip - similar to the one you'd find inside a Macintosh. The
PowerPC chip uses a radically different architecture - and machine
language - than the Intel/AMD chips.

Now, normally this wouldn't be too much of a problem. You simply would
take the original source code of the program (usually written in C or C++)
and compile it on the new platform. Voila. You now have a version that
works (in theory) on the new console. Unfortunatly, that doesn't work for
console games, which only contain the compiled binaries for their specific
platform (ie. the Xbox.)

So the solution is an emulator. An emulator is a program that basically
acts as a translator between the native language of your game, and the
native language of the console. Think of it as an interpreter that works
at the UN.

There are problems with emulators, however. First of all, they require a
LOT of computing power to operate properly. Think about it - you're doing
something in software that is usually done in hardware. Even though the
XBox's hardware is considered "slow" by today's standards, its chips are
still able to move bits around faster than if you did it in software. And
on top of that, you're now running the 360's OS, the emulator, the Xbox's
OS and the Xbox game on top of all that.


In case you're wondering about how the Playstation does this, Sony
actually placed a reduced chipset version of the PS1 inside the PS2. When
the console detects a PS1 game, it uses those chips. When you put in a
PS2 game, it uses the Emotion Engine and its chips. The reason that
Microsoft couldn't do the same thing is it would be too expensive to
repackage the XBox in this manner inside the Xbox360.
 
D

Dog Bowl

Instruction set architecture. The Xbox 360 is using a PowerPC variant,
while the original Xbox used an IA-32 variant. Not compatible, even if
the operating systems and programs running on each seem the same.

Although IMHO the CPU emulation/conversion is probably the easiest of
the tasks either by pure emulation or an "FX32" type pre-translator.

The biggest problem will be the microcode instructions for the graphics
cards as to emulate them off the graphics card would be horribly slow.
Its not like its just a direct X call "Draw triangle at xyz", its more
"Load these sets of microcode" then pass in the vertex data leaving the
GPU to its job of transformation, and rendering. Of course not all games
work the same way.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top