Burning Xbox 360 games in Linux
After recently flashing my Xbox 360 DVD drive, I set about burning images using my Fedora Core 6 linux box. There are many guides available on how to burn games (mostly for Windows) but there is so much mystery and superstition surrounding the process, that it is hard to seperate fact from fiction and come up with suitable Linux equivalents. Well, one week and nine very expensive coasters later I have my solution.
You will need:
* Dual layer DVD burner and DVD+R DL media * A downloaded image (and ss.bin etc if required) * growisofs * imgbpatch.jar
The first hurdle comes when you realise that not all images are created the same way. Most noticable is a rip that is not pre patched with the security sector (ss.bin). It should be noted however, that most images already contain the security sector and this step should be skipped. To merge ss.bin and game.iso into a file called IMAGE.000, the following command can be used:
dd if=/dev/zero ofblank.iso bs=2048 count=129823 && cat blank.iso ss.bin game.iso> IMAGE.000
This will create an image consisting of 265877504 blank bytes, the security sector and finally the game image. The final size of IMAGE.000 should be 7572881408 bytes.
To actually burn the image, the iso must be made compatible with growisofs. This is something that CloneCD users do not need to do and is a cause of great confusion for those using other software. Again, many images are already pre prepared and do not require patching but unlike the merge doing so with a pre patched image will not break it. This is carried out using a neat little java app called imgbpatch.jar (catchy, isn't it?). To use it the following command can be used:
java -jar imgbpatch.jar IMAGE.000
Now you have a workable image, the next step is the burn which is carried out using growisofs. There are a lot of threads around that claim only a Pioneer 111D with Verbatim +R media will work, which I have found to be complete hocus pocus. I use both LiteOn and Samsung drives with Memorex and Mr. DVD media and not had any problems.
The burn command is a very neat one and carries out everything you need. The important things are the speed (slow, to increase the chances of a solid burn), the line break (1913760 for 360 games) and the DVD compatability flag (burns DVD+R data as DVD-ROM to increase the media's compatability with non PC hardware). To do all this the following command is used:
growisofs -use-the-force-luke=dao -use-the-force-luke=break:1913760 -dvd-compat -speed=2 -Z /dev/dvd=IMAGE.000
Of course /dev/dvd can be replaced with any DVD DL drive and IMAGE.000 with any image filename. Not all DVD burners will support the speed setting but it should still slow things down e.g. on my LiteOn drive, a setting of 2 results is 4x speed=?! The burn process can take anywhere up to about 40mins.
Another handy ability is being able to verify the burn. An MD5SUM of the DVD can be calculated using the following command:
dd if=IMAGE.000 bs=2048 count=3697696 || md5sum
Layer Break patch for growisofs v7.1
Unfortunately the custom layer break functionality mentioned above is broken in growisofs v7.1, but there is a source code patch to fix it available here.