Software Development


These posts should form a “tutorial of tutorials” of sorts. There are so many good tutorials out there that rather than simply create another one, I’m going to try to help navigate some of the ones that are already available. One of the shortcommings of the existing tutorials is that they don’t always explain why certain steps are taken. Nor do they provide the background information necessary to understand the bigger picture. I hope that these sets of posts will contribute in specifically these areas.

Some background

The XBox was simply not intended to run software that wasn’t condoned (approved, signed, sealed and delivered) by Microsoft, that is, it’s not meant to run “homebrew” (also called “unsigned code”), which the “XBox Media Center” is the premier example of. Microsoft took steps to prevent people from being able to run homebrew applications in the design of the XBox itself.

And so, here is one of the paths you can take to circumvent all of Microsoft’s efforts … :-)

Microsoft designed the XBox with two main hurdles preventing the running of homebrew. One is that the BIOS prevents the running of any unauthorized programs. The BIOS is the program that runs when the XBox starts up. It’s stored in a chip on the motherboard refered to as the EEPROM or Flash ROM. A good review of what the XBox BIOS does can be found in this article: Xbox Bios Introduction. The BIOS (which contains the kernel) makes sure that any program that runs is “digitally signed” by Microsoft.

In the EEPROM, along with (or embedded in, depending on how you look at it) the BIOS itself, is the “kernel.”

The kernel is the central component of most computer operating systems (OSs). Its responsibilities include managing the system’s resources and the communication between hardware and software components.

With respect to the XBox, the BIOS and the kernel are referred to interchangeably though this is technically not correct. Technically the BIOS is the start up program that, upon finishing, initiates and passes control to the kernel. In the case of the XBox the kernel is stored in the chip with the BIOS in an encrypted form. Part of what the BIOS does is decrypt the kernel stored in the chip and then run it.

Please keep in mind there is ambiguity, or at least overlapping concepts, in the usage of some of these terms in the tutorials, though in this writeup, I will try to be consistent in my terminology.

The second impediment designed by Microsoft is that the hard drive is locked to the BIOS. That means that the hard drive cannot be read from, or written to, unless it is first unlocked with the right password and key. The password and key are generated from some internal information like the serial number and version and some other pieces of information, resulting in a different password and key for every XBox out there.

The technique outlined below will circumvent both of these impediments.

Modding technique – “Softmod” and “Hotswap” overview

The modding technique I used, and the one that I will lead you through, is called a “softmod.” It’s called a “softmod” because it doesn’t require any changes to the hardware or the addition of any new chips to the motherboard (this is as opposed to a “hardmod”) and is done by exploiting weaknesses in the XBox kernel. A softmod fools the system into loading an alternative BIOS off of the disk rather than from the BIOS chip and is accomplished by replacing some of the system system files on the disk (in this case, the Xbox fonts). Once we’re running our own alternative BIOS we can run “homebrew.”

Legality This is the first place where the question of legality comes in. The program that loads the alternative BIOS requires Microsoft licensed tools in order to be built, so its distribution is illegal (I suggest you don’t distribute it). Whether possessing it is illegal or not, I’m not sure – again, check with a lawyer if you’re concerned, I’m not one. Also, the BIOS that gets loaded is likely a modified BIOS that was originally produced by Microsoft. I think this is less of an issue since you own a legal copy of the BIOS (if you own an XBox). Though again, I’m no lawyer.

There remains the problem of getting the softmod (the alternative BIOS and the means to load it) to the Xbox in order to exploit the operating sytem flaws previously mentioned. In its “retail” state, there is no way to get your own software to the Xbox in order to run it. As mentioned, there is a security protocol which locks the hard-drive so that it cannot operate outside of the Xbox, and there is no straightforward means to add any files that you may want while it remains inside an unmodified Xbox. There are two known solutions to this problem. One is called a “gamesave exploit” and the other is called a “hotswap.”

There are advantages and drawback of each. I chose the “hotswap” technique because I had everything I needed on hand. It’s tougher to come by the things needed for a gamesave exploit. For those interested in a gamesave exploit tutorial, take a look at this article: “How to Go from Xbox to Xbox Media Center in 30 minutes.” Another tutorial is “Krazie’s NDURE 1.1 Softmod with Action Replay and a USB Flash Drive.”

The other option is a “hotswap” and only requires a PC and some guts, and has the added benefit, free of charge, of a small but finite risk of permanent hardware damage to the PC and the Xbox. It involves letting the Xbox unlock the hard drive, and then while it and the PC are powered up, swapping the hard drive into the PC. It’s easier than it sounds and if you’re willing to take the (very real) risk (you have been warned), I’ll lead you through it in the next post.

If you decide you don’t want to take the risk inherent in a “hotswap” or you don’t have a spare PC, then follow the tutorials linked to in the previous paragraph and try the “gamesave” exploit techniques.

Since I’m going to be making an XBox Media Center for my Dad, I’m going to post the next steps in the XBox modification instructions during that process.

In the meantime, the fella’s over at doom9 have apparently just taken the first steps, and made the first real progress in cracking AACS – the scheme used to protect the content of the new HD-DVD (and also Blu-Ray) movies.

This story has only developed over the last few weeks but started with this post on the doom9 forum from “Muslix64.” Despite the skepticism, major media outlets (Reuters, etc. – actually, just google “Muslix64“) soon published stories about it. As if that wasn’t enough, Warner Bros (wrongly – of course) forced YouTube to remove the video Muslix64 released along with the source code for his hack (which has already seen several modifications).

But the proof is in; he (or she) has actually done it and a list of AACS cracked “Volume Keys” for different titles is growing on this forum post. AACS has mechanisms in place meant to limit the damage from the type of cracking that was done. Now it will remains to be seen whether or not they’re any good.

My money is on the hackers. :-)

This is part 2 of “Media Center on a Shoestring Budget” – you should take a quick read through part 1 before continuing.

So you’ve decided to attempt to mod an Xbox to make a media center. If I’m successful then this series of posts should serve as a decent central location for one of the techniques (and there are several) that will get you from absolutely nothing, to a full fledged media center with only a slightly lighter wallet.

Credit and acknowledgments

There is nothing here that I did other than follow the lead and use the tools that were developed by others. Most of these people still hang out on the forums in Xbox-scene and if anything here helps you get your media center up and running, then please take the time to thank those that put the tutorials together and made the real progress and inovations that made it possible.

Of course, a modded Xbox is useless without something to run on it. The “homebrew” developers of “Xbox Media Center” (XBMC for short) deserve a huge thanks for one of the most amazing pieces of open source software ever produced.

Disclaimer:

Following this procedure will void the warranty on your Xbox. This probably means nothing since there no longer IS any warranty (at least from the manufacturer) on Xboxes since they have been discontinued since the release of the Xbox-360 and since you’re going to buy a used one anyway.

That said, the following is certainly pertinent:

I will not guarantee that you will not suffer any of the innumerable potential setbacks and/or failures that can occur when following these steps. These include, but are certainly not limited to: burning out the motherboard on your computer, permanently damaging your newly purchased Xbox, burning yourself or the items in the immediate vicinity with a soldering iron, cerebral damage from banging your head against a wall in frustration, personal humiliation and feelings of inadequacy from not being able to do something several 12-year old hackers have been able to do (unless, of course, you are twelve when reading this).

Please keep in mind also that once your Xbox is hacked you should not attempt to use it on “Xbox Live.” While there are modes that you can run it in that will make it “Xbox Live” safe, if you make a mistake your Xbox Live account can be cancelled, since it is a violation of the terms to use a modified Xbox on “Xbox Live.” We have two Xboxes. One is a Media Center and the other is a game console. Only the unmodified game console is Xbox Live enabled.

There are conficting views on the legality of a modified XBox, or at least one that is running unsanctioned software (such as the XBMC). If you’re concerned, consult an attorney (I am not one). The issue, as I understand it, is that the development of software that will run on an XBox requires development tools whose licenses are tightly controlled by Microsoft itself. This makes the legality of the distribution of “homebrew” executable binaries, which require the Microsoft licensed development tools in order to be created, questionable. XBMC, in the form that it will run on your XBox, is one of those binaries.

Now, if after that you’re willing to give it a try, here are some words of encouragement. First, unless you opt for a replacement DVD drive, this doesn’t actually require a soldering iron. Second, it’s much easier than my former project to convert Super-8 movie film to a DVD, which I think only myself and a relatively small number of others have attempted, and even fewer with decent results. Third, like I did, you’re likely to learn something. Fourth, other than hardware failures, if you take a few precautions, there isn’t too much that’s not reversible. I managed to lock myself out of my Xbox several times in the process of the mod and still got it up and running eventually.

What you will get

If you opt for the minimum and purchase only an Xbox and a DVD Remote Kit, you’ll end up with a fully functional media center (minus any recording capability) that will, among MANY other things: play any digital video or audio format (I haven’t found one that it doesn’t play though I doubt that it will play DRM protected media), stream audio and video from another PC over a home network, play DVDs, display a photo slideshows while playing music, get weather over the internet, organize audio libraries, and .. Oh! … I almost forgot, it will actually play XBox games also … :-)

What you can get – optional components

Following is a list of optional components you can add to your media center. Keep in mind you don’t need to commit to any of these prior to getting it up and running.

HDTV support – By adding a component AV cable (IMO, a MUST for anyone that intends to hook this up to an HDTV), available for about $15 from Gamestop.com, you will get Hi-Def support up to 1080i (480p, 720p, and 1080i) (if these numbers don’t mean anything to you then click on the link; it’s a good introductory article on HDTV resolutions). *NOTE: please see the section “What you wont get” below for a clarification of HD support within the Media Center

HDTV support w/ 5.1 Dolby Surround Sound – Instead, you can opt for an even more functional AV cable with Hi-Def support and 5.1 digital surround sound available for $35 to $50 from Amazon (I bought one off of eBay). *NOTE: please see the section “What you wont get” below for a clarification of HD support within the Media Center

More Internal Storage – Another highly recommended option is a bigger hard disk. The native Xbox hard disk is only 8 or 10 Gig, which isn’t nearly enough to store any media. My modest CD collection, which is mostly ripped at 96 kbs (most rippers don’t go that low these days), is nearly 10 Gig itself. You certainly don’t need to upgrade the hard drive if you simply want to stream media from a computer somewhere else on you local network, but if you want to use the Xbox to actually store the media, you will need to upgrade the drive. This is done after the Xbox is modded and I will link to the appropriate tutorials in a later post.

Better DVD support – The Xbox comes with a minimally functional DVD drive. It doesn’t (typically) handle DVD-home recorded media (DVD-R/+R/-RW/+RW). It’s nice to have a large selection of content on home burnt data DVDs that you can pop into the Media Center and play directly, however, in order to do this you will most likely need to replace the DVD drive. This is NOT AN EASY TASK as it requires a very specific replacement drive (Samsung 616T or 616F – NOTHING else will work) and some significant soldering iron work.

There are several other options for playing DVD-R/+R/-RW/+RW recorded media the details of which I will provide in a later post.

Wireless game controller – Finally, I’d recommend a wireless controller. The remote that comes with the DVD kit works, but the game controller actually provides a much better (IMO) user experience and ease of control of the Media Center. Before you make up your mind, you can experiment with the wired controller that comes with the Xbox and compare it to the experience using the remote, and then make your own decision.

What you wont get

As I mentioned several times, what you wont get is the ability to record television as the Xbox doesn’t have the necessary hardware.

Also, and in my opinion more importantly, the Xbox CPU at 733 MHz is incapable of handling true HD source material. It works great upconverting 480p/i source to 1080i for output to an HDTV, but if the actual source is HD (for example, 720p), then the CPU cannot keep up and repeatedly drops frames.

To continue my recent theme of a-political posts consisting of descriptions of recent hobby projects; I just built a “stereo component” that I had been thinking about for a couple of years. Since my entire CD collection along with a significant collection of sermons and lectures sits on my computer I had been thinking about how to add a stereo component that would play the MP3s over the network.

Since then things have come pretty far. No longer is audio the only consideration but you can build/buy a full multi-media appliance that supports video, audio, and still pictures along with internet connectivity and the ability to stream content over a home network. People are beginning to buy and build “media center” computers and incorporate them into home theaters.

XBox

What I have recently “built” (actually, more like “assembled” from various hardware and software components following tutorials on the web) is a full featured media center (minus the recording ability of some), packaged in a component smaller than a stero CD player, and all for under $200.

What’s made this possible are several clever individuals that figured out various ways to hack an XBox video game console and some industrious open source development of media center software.

The hardware you will need includes:
1) An XBox video game console [under $100 on eBay, $110 used from Gamestop]
2) An XBox DVD kit [under $20 on eBay]

Optional Hardware:
1) Hi-Def XBox cables [recommended for an HD TV – $15 at Gamestop]
1.5) or Hi-Def XBox cables with 5.1 digital surround sound[$35 – $50 at Amazon]
2) Replacement DVD Drive [very hard to find. I paid $30]
3) Replacement hard-disk drive [the Xbox drive is ony 8 to 10 Gig]
4) Xbox wireless controller [ about $30 (you can probably find it cheaper) ]

Tools:
1) A set of Torqs
2) A PC with a bootable CD drive and an empty primary IDE controller slot
3) A PC CD Burner
4) 1/2 a brain [optional but recommended in order to have less trouble than I did.]
5) To replace the DVD drive, you’ll need a soldering iron and some skill with it [optional].
6) Blank CDs

Follow up posts will contain some details on the steps to take to build your own, including links to tutorials and free software.

to be continued …

When I was a kid of twelve (or so), I discovered that my dad’s super-8 movie camera could make movies one frame at a time. For a few weeks my friends and I had a lot of fun experimenting with stop-motion animation. I wish I could find those old films but they seem to have disappeared.

More recently (much more recently, actually) I developed a scheme for converting old movie film to DVD using a flatbed scanner. It still needs some refinement and a better scanner, but one of the more useful applications that born of this effort was a program that converts a series of images into a playable movie (for anyone that’s interested, the source code is in the Source Forge project, Legacy Film To DVD Project.

So now my kids decided they wanted to try their hand at stop motion movies and claymation. Instead of using an old super-8 movie camera where you only get one shot (unless you want to reorganize the frames with a splicer), they used a digital camera and my software (and a little but of help with the software).

Josh’s first claymation Danny’s Claymation
“Jim” is the name of Danny’s character

 

A friend of mine pointed me to “Tony vs. Paul;” an absolutely amazing stop motion video hosted on YouTube:

Tony Vs. Paul – This one is not ours

 

After playing with these claymations, and being inspired by the above, we gave it a shot. Here is a crazy laundry basket eating my entire family :-) :

Hungry Landary Basket

 

Lukas’ first claymation

And finally, with a little help from all of us, Lukas (currently eight) made his claymation.

 

I’ve been swamped with work this week so I haven’t had any time to dedicate to my blog recently. I’m sure a week from now will be the beginning of a large onslaught of posts, since I’ll be on vacation for a while. In the meantime take a look at Microsoft’s implementation of a web based routing and mapping application. This certainly blows away the current market leader MapQuest, and is even a leap past Google maps. Like Google, it is complete with satellite coverage and goes beyond that to a “birds eye view” for major metropolitan areas.

Ah!, irony only a java developer could love:

(click on the image for a larger view and if you still don’t get it – it’s not you)