Personal Remarks about the Xbox Emulator

by Created: 15 May 2005 Updated: 25 May 2014

"We are very pleased to announce that Xbox 360 will be backwards compatible with the top-selling Xbox games."
– Robbie Bach, Senior VP and Chief Xbox Officer
E3 Conference, 2005
(Source)

Xbox backwards compatibility was a unique project in so many ways, and I feel very fortunate to have worked on it. I’m sure it will be the hardest technical challenge of my career – I can’t imagine what could possibly top it in terms of sheer technical difficulty. It’s not just the difficulty of emulating completely different processors and devices. It’s also all the arcane knowledge I needed to acquire about kernel-level development, advanced graphics processing, operating systems and computer architectures. It changed the way I think about software.

The Xbox team was amazing. Many of my co-workers have gone on to do amazing things. To name just a few:

note/xbox-360-emulator/xenon_lab_danger.jpg

Almost every single person on the Xbox team was a rockstar, in a company filled with great engineers. It was a great privilege to work with such fantastic, outstanding engineers.

The backwards compatibility team mainly consisted of:

however, many others made significant contributions, especially toward the end.

"Magical products are the synthesis of really diverse sets of people that share a singular vision. We've put together a team of hundreds of people bringing living entertainment to life through a blend of technology and art and community."
– J Allard, Corporate VP
Microsoft, 2005

Xbox backwards compatibility is magical. Normally, once you understand how something “magical” works, it’s much less amazing. With Xbox backwards compatibility, the opposite is true – the more you understand what it needs to do and how it does it, the more certain you are that it’s impossible, and consequently, the more amazed you are to see it in action.

At the time, the best commercially-available x86 emulator for PPC was Virtual PC for Mac, made by Connectix, which Microsoft acquired in 2003. On my 1.25 GHz PowerBook laptop, VPC 7 emulated a 295 MHz PC. Even solitaire felt slow. VPC was a single-threaded application that did not emulate vector instructions, emulated only a basic block graphics device. To this date, the Open Source community has not created a working Xbox emulator, even one that runs on x86 PCs with similar GPUs.

And the Xbox isn’t just any x86 machine, it’s a computing powerhouse. Emulating it seemed beyond the technology of the day. Several people on my interview loop asked me what I would work on when the project was cancelled, because half of the Xbox team had concluded it was physically impossible.

The Xbox 360 and Xbox have almost nothing in common except the brand. Let’s compare the two systems:

Feature Xbox Xbox 360
CPU
  cores
733 MHz 32-bit x86 w/SSE
1
3.2 GHz 64-bit PPC w/ VMX128
3 (6 hw threads)
GPU 233 MHz NVidia NV2A
125 million polygons/sec
500 MHz ATI custom
500 million polygons/sec
10 MB EDRAM
APU NVidia MCPX
64 3D channels (256 stereo)
not disclosed
256+ channels
Bus 133 MHz FSB 21.6 GHz FSB
RAM 64 MB (200 MHz DDR)
6.4 GB/sec
32 KB L1 cache
128 KB L2 cache
512 MB (700 MHz GDDR3)
not disclosed
not disclosed
1 MB L2 cache
Storage 8 GB HDD
2-5x DVD
20 GB HDD
12x DVD
OS Xbox Xbox 360

When I looked at these numbers, I thought: Wow! The Xbox is already a very powerful machine, and the Xbox 360 blows it away. The Xbox 360 will be fantastic for high-definition gaming!

"I think rather than give some statement that is either too conservative (because the engineers can do better), or a bold statement we can’t live up to, we thought we’d make our [backwards compatibility] strategy clear that as we get further down the road and as our engineers do more work, the execution will speak for itself."
– Steve Ballmer, Chief Executive Officer, Microsoft
(Source)

But emulation is a difficult challenge any time the emulator isn’t at least one and preferably two orders of magnitude faster than what it’s emulating. So a few people who understand how emulators work look at these numbers, perhaps do some back-of-the-envelope calculations around instructions-per-cycle and L2 miss rates, and conclude that Xbox backwards compatibility cannot work on the Xbox 360.

A very few people understand both Xbox systems inside and out to an expert level of detail that I’m not about to go into here. They perform more sophisticated calculations using the Art of Software Engineering, but ultimately reach the same conclusions as those not skilled in the Art: Backwards compatibility is impossible.

And yet, we did it. It’s magic!

Additional Reading