Hacking the Xbox
Hacking the Xbox
Hacking the Xbox
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
Chapter 10 - More Hardware Projects 155<br />
Alternate Firmware Devices vs.<br />
Modchips<br />
An alternate firmware device is a hardware module that<br />
provides a method for running user-specified firmware on<br />
<strong>the</strong> <strong>Xbox</strong> hardware. Alternate firmware devices are distinguished<br />
from <strong>the</strong> so-called “modchip” in that an alternate<br />
firmware device is furnished as a blank device and has no<br />
inherent ability to circumvent copyright control mechanisms.<br />
A blank LPC-interface ROM device, for example, is<br />
an alternate firmware device: you could burn a copy of<br />
<strong>the</strong> U.S. Bill of Rights on it if you wanted. Any user-installed<br />
FLASH ROM that comes blank is also an alternate firmware<br />
device. A modchip, on <strong>the</strong> o<strong>the</strong>r hand, colloquially implies<br />
a device that is crafted for playing game backups and<br />
o<strong>the</strong>rwise modifying or removing DRM (digital rights management)<br />
policy restrictions. Hence, <strong>the</strong> term modchip encompasses<br />
certain boot ROM devices that have been programmed<br />
with code that enables DRM policy modifications,<br />
as well as devices such as “patchers” that contain no<br />
ROM and operate by dynamically patching a few key<br />
<strong>Xbox</strong> firmware locations as <strong>the</strong> firmware is loaded for execution.<br />
appears near both <strong>the</strong> top- and <strong>the</strong> bottom-relative base addresses. Now,<br />
suppose that Microsoft decided to save on cost and shrink <strong>the</strong>ir 1 MB boot<br />
ROM down to a 256 kB boot ROM. The processor now sees 64 identical<br />
copies of this 256 kB boot ROM distributed over <strong>the</strong> 16 MB ROM address<br />
space, and all of <strong>the</strong> old code that uses bottom- and top-relative addressing<br />
still works. Significantly, <strong>the</strong> CPU in <strong>the</strong> <strong>Xbox</strong> is hard-wired to start<br />
executing code on power-up from an address located 16 bytes from <strong>the</strong> top<br />
of memory (its “reset vector”), while <strong>the</strong> hardware initialization routines<br />
wired into <strong>the</strong> <strong>Xbox</strong> chipsets use ROM locations located near <strong>the</strong> bottom<br />
of <strong>the</strong> 16 MB FLASH ROM space. As a result, <strong>the</strong> <strong>Xbox</strong> hardware requires<br />
an LPC ROM implementation that is ei<strong>the</strong>r 16 MB in size, or else aliases a<br />
smaller ROM’s contents throughout <strong>the</strong> FLASH ROM address space. (The<br />
SST 49LF020 is one of <strong>the</strong> few LPC FLASH ROMs that aliases <strong>the</strong> ROM’s<br />
contents over <strong>the</strong> whole address space. Arguably, this feature is actually a<br />
bug: By ignoring <strong>the</strong> upper address bits and aliasing <strong>the</strong> ROM’s contents<br />
over <strong>the</strong> whole address space, this chip occupies space that could be allocated<br />
to o<strong>the</strong>r functions. As a result, SST has released an updated “A-step” of <strong>the</strong><br />
part, called <strong>the</strong> 49LF020A, that does not alias <strong>the</strong> ROM’s contents over<br />
memory. Likewise, <strong>the</strong> A-step silicon will not work as an alternate firmware<br />
device for <strong>the</strong> <strong>Xbox</strong>.)<br />
The O<strong>the</strong>r 64 MB of SDRAM<br />
An astute observer will note that <strong>the</strong>re are two missing chips on <strong>the</strong> top<br />
side of <strong>the</strong> <strong>Xbox</strong> mo<strong>the</strong>rboard, and that <strong>the</strong>se missing chip spots look