Personal Remarks about the Xbox Emulator
by Michael Brundage Created: 15 May 2005 Updated: 25 May 2014
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:
- Ben Zotto, founder of Penultimate
- Anton Tsai, founder of Cardpool
- Barry Steinglass, co-founder of Opscode
- Brendan Reville, founder of Twilight Software and engineer on Code.org
- Tracy Sharpe, Distinguished Engineer at Microsoft
- Dinarte Morais, Distinguished Engineer at Microsoft, CTO at Sparkcoil
- Tian Lim, CTO of Hulu
- Andrew Goosen, Distinguished Engineer at Microsoft
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:
- Andrew Solomon, GPU and Dev Lead
- Victor Tan, CPU
- Michael Courage, APU
- Michael Brundage, file IO, networking, Xbox Live, dashboard and HUD integration
- Matt Priestly, Program Manager
- Alan Stuart, Test Engineer Lead
- Adam Poulos, Test Engineer
- Juan Carlos Arevalo Baeza, GPU
- Pat Tharp, CPU
- Earl Bantug, Game Tester
however, many others made significant contributions, especially toward the end.
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!
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
- The Xbox 360 Uncloaked: The Real Story Behind Microsoft’s Next-Generation Video Game Console. Dean Takahashi, 2006.
- The Xbox 360 Emulator Project. Michael Brundage, 2005.