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.