Note: Microsoft broke this fun how-to when they released the dashboard upgrade yesterday. The upgrade fixes some bugs, breaks things like this how-to and doesn't offer any new features. So, if you aren't experiencing problems, there is no reason to upgrade. Opt-out and have fun with this how-to instead:
At the end of 2005 a hacking group known as PI released a copy of the demo disk found inside of the Xbox 360 kiosks. PI has been cranking out a lot of these game ISO files even though there isn't a way to play them yet. The thing that makes the kiosk disc special is that Microsoft didn't enable many of the security features found on regular game discs. Granted, the actual executable files are still cryptographically signed, but you can manipulate many of the other unsigned files on the disc. The disc doesn't have a strict media flag either, so you can burn it to a CD/DVD and it will play in any Xbox 360. The Xbox-Scene community has been investigating booting your own Flash files using the disc which is what we'll be showing you today. The final result will be a disc that is playable on any Xbox 360.
Before we get started we need to talk about the legality of this how-to. There is really no way to legally posses the files we are going to be working with. The majority of safe guards placed on the Xbox 360 are designed to prevent game piracy. It is doubtful that anything we will be demonstrating today will lead to anybody booting pirated games on the 360. We do feel that this how-to will open up the Xbox 360 to all of the Flash developers out there and hopefully produce some interesting homebrew games.
The first thing you are going to need to do is find a copy of the kiosk disc. We can't tell you where to get it , but check your favorite BitTorrent tracker and you'll find the 4.1GB release (it is labeled PAL, but works fine on US boxes). It has been out for a month so it shouldn't be encumbered by some obnoxious private tracker. To boot Flash files you don't even need the entire disk. So your best bet is to look for just the Hexic files from the disc, which are only 60MB.
Once you download the ISO you can mount it and start poking around the file structure.
The "default.XEX" file is the one executed when the disc is launched. Looking around you will find all of the demo trailers in the WMV format and audio as WMA files. The menu text is stored as XML. There are no file checks on the disk so you can delete files from the DVD image and create an image small enough to be burned onto a CDR.
You'll actually find a lot of content on the disc that you can't access from the menu system, since the entries have been commented out of the XML files (like the Oblivion trailer).
The "Hexic" files are located inside of the "demos" directory.
You'll notice that the Hexic directory contains a "default.xex" file just like the root directory. You can burn just this directory to a CD and it will launch on your Xbox. You can find ISOs of the Call of Duty 2 demo on tracker sites because of this.
Just like the rest of the disc the in game text is kept in XML files for localization purposes.
If you were so inclined, you could modify these text strings and burn a new version of Hexic with your own difficulty level select screen.
To create a bootable Flash disc you need three files: default.xex, Splash.swf, and HexicDeluxe.swf. You can open the HexicDeluxe.swf in your web browser and see that it is just a normal Flash game. It will be running incredibly slow though. You can (and should) replace the Splash and HexicDeluxe files with your own. The default.xex file is a flash player written specifically for Hexic. When the Xbox boots it starts the default.xex file. default.xex displays the Splash.swf file while it loads HexicDeluxe.swf in the background. Once it is loaded the splash screen tells you to "press A to continue". default.xex is also responsible for playing the background music, but doesn't mind if you don't provide any.
The development of homebrew flash for the Xbox 360 started with a thread by illictx: Launching Swf Files Via Kiosk Disk, Attempting... Developments are now being documented in the Flash for Xbox 360 Wiki. To try out hombrew you need to first grab a replacement splash screen. We're using one by forum member Gloei since it prompts you when loading is complete. It looks like this:
You also need a replacement for the main Flash file. We're using one by forum member genecyber. His flash demo displays the system time and the controller input when you press a buttons. It looks like the above.
Drop those two custom files plus the original default.xex into a directory.
Then rename the files so that they appear to be the originals. All that is left to do is to burn those three files to a CD and boot it on your Xbox 360.
If you want to develop your own Flash files there are some issues you will run into. Since default.xex is a custom Flash player designed for Hexic, it only supports features used in Hexic. That means it only supports one controller and not even all of the buttons. It also doesn't support sustained button presses since it sends a button release signal immediately after the button press. There are several common functions that aren't supported. Your files need to be compatible with Flash 6, only use ActionScript 1, and use Zlib compression. The best place to find out about what functions you can use is the wiki. The folks in the forum thread on Xbox-scene.com will be happy to help as well.
We hope this how-to demonstrated how easy it is to run your own Flash games and animations on the Xbox 360. The fact that only one file is required from the demo disk means it is incredibly simple for almost any Flash developer to try this out for themselves. Hopefully the Flash community will get behind this and we'll get some incredible demos taking full advantage of the 360's power (as the slow browser performance of Hexic shows). Of course in a perfect world, Microsoft would release a completely compatible and full featured Flash player for homebrew developers, eventually marketing the best examples on Xbox Live Arcade.