Matt Hackmann

MattHackmann

The thoughts and goings-on of some programmer dude.

Xbox Modding - An Epic Fight, An Epic Win

The internet has and continues to change the way society operates. The biggest thing the internet has going for it is instant availability for anything you could ever want. Be it from news, to sports, to knowledge, whatever, it's out there and waiting to be accessed whenever your heart desires. It's no surprise that this on demand media is killing the mediums of old: radio, newspapers, magazines, etc. However, the one that seems to be taking a hit the most, recently, is television. Why wait for a show to come on when you can just watch it on the internet whenever you want? Okay, this isn't really about the philosophies of the internet, but it seemed a nice segue into a recent project of mine.

For anybody who's perused the geek community long enough, you've probably heard of console modding. The act of taking a console and breaking it's will so that it becomes your little bitch and does whatever you say. I've done this before, most notably with the PS2 and the DS. I'd been using my PS2 to watch videos, but the media programs out there for it are nowhere near as extensive and awesome as Xbox Media Center (XBMC). This program is truly amazing. It is, by far, the best media center program in existance (yes, it trumps Windows Media Center and Front Row). XBMC has it all: support for more video codecs than actually exist, a beautiful interface, a robust scripting engine (a la Python), and it's open source to boot. It was this promise of media tranquility that pushed me to purchase a second hand Xbox ($60 from GameStop) and take a shot at modding its brains out. What I didn't realize, was that the road that lay before me was a long and bumpy one.

There are many ways to mod your Xbox, but all of them fall under two categories: modchipping and softmod. Modchipping (a word that I honestly just made up) is the act of actually soldering a chip to your Xbox that overrides it's flash bios and runs its own software. Having no soldering skills, I decided to go the safer route and did a soft mod. There are a goodly amount of softmods out there, but I used a combo of a game save exploit and hot swapping to get the job done. Hot swapping, in this case, is the act of swapping the IDE cable of the Xbox hard drive to hook it up to your PC so you can read and write files to it. It has to be done while the Xbox is running becase the drive is locked and only the Xbox that its shipped with can unlock it. I may post a condensed quide to the approach I used later, but here begins (finally) the sordid tale of my three days of agony.

Actuallt, I lied. A little more exposition is needed. The reason I chose to do a hot swap mod instead of the safer transfer a game save to the Xbox via USB drive was due solely to impatience. I would have needed to buy an adapter with which to hook up my fash drive which would mean ordering from some shady mod chip store online, waiting a week or two for delivery and I just didn't want to wait that long. Plus, being a guy whose messed with computer hardware before, I was pretty confident in my ability to pull this off.

So, I got home from buying my Xbox and set to work immediately. I was only a minute into the operation when I ran into my first major problem: the Xbox had torx screws, and I was fresh out of torx screwdrivers. So, instead of bugging my room mate to take back to the store to aquire said screwdrivers, I did what I usually do in this situation: find something else. In this case, I used the spare keys for my bike chain. A few minutes and torn up fingers later, the top came off and I was ready to do the swap.

Being that I only have a laptop, I couldn't plug the hard drive directly into my computer. As such, I had to go through a USB enclosure. This itself presented a myriad of problems, though I didn't realize it at the time. Perusing the intewebs had told me that I needed a program called hdd_driver to copy my stuff to the drive. So, going through the usual channels, I acquired myself a copy of that and was greeted by five thousand missing DLL errors. So, instead I decided to look for an alternative. The next thing I came across was a Linux distro with built-in FatX support (the file system type of Xbox). Attempting to use this raised one issue, though: it would only recognize drives plugged into an IDE channel (hda). Being that I've had some experience with various virtual machines, I knew qemu emulated this. So, I set up my environment and booted. However, I was greeted with "Xbox partitions not found".

I didn't realize it at the time, but I was not going about unlocking my drive properly at the time. Getting this done correctly is something that requires fast movements and, when you've bricked the dashboard, precise timing. Once I realized this and had gotten the drive recognized, I attempted to install my exploit (which was, at that time, a fonts exploit and not the game save one) via a handy little install script that came with the Linux distro. How nice is that? What I didn't realize at this point was that though my drive was recognized and could be read from, writing was not working correctly. So, this script did it's thing: it went and formatted the C drive and replaced all the dashboard files with the hacked versions... or at least tried to.

It came back with a few "unable to copy" errors which unnerved me a little, but I reconnected my Xbox correctly and booted it up only to be greeted by the ambiguous error 21. My dashboard was completely unbootable and with it so shrank my window of opportunity to hot swap while the drive was still unlocked. After about twenty or so tries I finally managed to get a good swap again and found that my C drive was in ruins... and there wasn't anything I could do about it. Everything I tried to do resulted in "Unable to copy. Read-only file system." At this point I thought it was because it couldn't delete the gibberish files that had been written from the script I had run. So, I decided to wait until the next day and pick up a copy of Splinter Cell and use the game save exploit for it.

So, I picked up Splinter Cell and proceeded to get the files necessary. After some time I managed to get a succesful swap again, erased my E drive (where the save games are stored) and attempted to copy over the data. I was again greeted with ominous "Read-only file system" error. I spent the rest of that day and most of the next basically doing the same thing: turn on Xbox, swap the drive, attempt to copy, fail, change something, rinse and repeat. Nothing worked, and I was afraid that I'd just wasted sixty bucks on a console that could only play games. Needless to say, I got really good at swapping the drive.

I was about to give up when I decided to blame something other than the Linux distro I was running. I decided to do two things: swap differently, and use a different IDE cable. The cable I had been using was a one device, 40-wire cable. I moved up to a two device, 80-wire cable and unplugged the DVD drive from the Xbox as well. By unplugging the DVD drive I gave myself a larger window of opportunity to swap as the system will fail that before it checks the hard drive. So, after I'd done this I went through the usual paces and, lo and behold, files were copied. To say I was ecstatic would be an understatement. With the exploit running and the FTP server working, I now had an easy way to transfer my files to and from the box and the rest went down pretty easily (there was one more minor hiccup, but something that I figured out pretty quickly).

So, now my Xbox is fully modded and running XBMC, and it is really freakin' sweet. All the pain and emotional anguish I suffered had finally paid off, and I now have cable television for the price of my internet connection and a one time fee of $60.