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 153<br />
mo<strong>the</strong>rboard to create ROM devices that install without any soldering.<br />
These devices use a set of spring-loaded “pogo-pins,” similar to those used<br />
during production for <strong>Xbox</strong> testing, to contact <strong>the</strong> LPC interface with just a<br />
pressure-fit. (The pinout of <strong>the</strong> LPC bus as implemented on <strong>the</strong> <strong>Xbox</strong> can<br />
be found in Appendix F, “<strong>Xbox</strong> Hardware Reference.”)<br />
Using <strong>the</strong> LPC Interface<br />
The fact that <strong>the</strong> LPC interface is an industry standard is quite convenient for<br />
<strong>Xbox</strong> hardware hackers. First, <strong>the</strong>re is a plethora of LPC-compatible<br />
interface devices, ranging from Super-I/O chips to firmware ROMs with<br />
built-in LPC interfaces. Second, <strong>the</strong> wide acceptance of <strong>the</strong> LPC interface as a<br />
diagnostic and convenience bus for generic PCs helps mitigate <strong>the</strong> legal risk<br />
of using <strong>the</strong> LPC interface and selling LPC interface devices. A firmware<br />
ROM for <strong>the</strong> LPC interface can be sold without any <strong>Xbox</strong>-specific contents<br />
since end-users can easily reprogram <strong>the</strong>ir LPC bus devices using a simple,<br />
cheap adapter for <strong>the</strong>ir PC. A fur<strong>the</strong>r help to <strong>the</strong> legality of LPC firmware<br />
devices is that <strong>the</strong> <strong>Xbox</strong>’s LPC connector pinout is nearly identical to <strong>the</strong> one<br />
recommended by Intel for generic PCs. As a result, an LPC firmware device<br />
sold for <strong>the</strong> <strong>Xbox</strong> is very similar to an LPC firmware device sold for <strong>the</strong><br />
standard PC.<br />
One of <strong>the</strong> first LPC boot ROM devices was developed by Andy Green.<br />
The project is called “Cheapmod” and it is an SST 49LF020 device (256<br />
kByte FLASH ROM with an integrated LPC interface) in a socket wired to an<br />
LPC-compatible header. According to Andy’s Cheapmod webpage,<br />
“http://warmcat.com/milksop/cheapmod.html,” “If you can get<br />
ahold of <strong>the</strong> $2.50 SST 49LF020, you can build an alternative BIOS for $4.”<br />
This device can be programmed using his “CheapLPC” programmer<br />
(http://warmcat.com/milksop/cheapLPC.html), a delightfully<br />
simple PC parallel-port based device that can (slowly) talk to and reprogram<br />
an LPC device. Many commercially available alternate firmware devices have<br />
been based off of or inspired by his design, including <strong>the</strong> Xodus/Matrix<br />
design. The Xodus/Matrix is a particularly interesting variant of Andy’s<br />
original design, as it was <strong>the</strong> first <strong>Xbox</strong> alternate firmware device to implement<br />
an entirely solderless installation procedure. This opened up <strong>the</strong> world<br />
of <strong>Xbox</strong> hacking to software-oriented hackers who were not inclined to<br />
solder wires into <strong>the</strong>ir <strong>Xbox</strong>es. (A photograph of <strong>the</strong> Xodus/Matrix can be<br />
seen in Figure 10-1.) The Xodus/Matrix device comes without any code<br />
programmed in it; <strong>the</strong> user must provide <strong>the</strong> alternate firmware image.<br />
There are some important functional considerations when selecting a<br />
FLASH ROM chip with an LPC interface for use with <strong>the</strong> <strong>Xbox</strong>. The most<br />
significant is that <strong>the</strong> native <strong>Xbox</strong> architecture allocates a 16 MB area for <strong>the</strong><br />
boot ROM. If <strong>the</strong> physical boot ROM is smaller than 16 MB in size, <strong>the</strong><br />
boot ROM contents are aliased to fill up <strong>the</strong> entire 16 MB space. This gives<br />
<strong>Xbox</strong> designers more flexibility in choosing <strong>the</strong> size of <strong>the</strong> ROM chip<br />
without causing problems with routines that uses both bottom- and toprelative<br />
addressing.