!!!!!!!!!!                 WARNING               !!!!!!!!!!

Don't use this tool if you have no way to recover from a 
bad flash! I have tested it, but not every possible BIOS 
patch. A bogus profile entry will either cause the 
patcher to fail, or hose the BIOS file.

Use this software at your own risk.

Thanks to Paul Bartholomew for xbflash, to superfro for 
his BIOS mods, and to k3rn3l and MomDad for ideas, 
info and support. Thanks to SantMat for his ultra-smooth
no-animation patch. To Team Phoenix. Without these people,
XBtool would, at  best, be much less functional than it is,
and, at worst, nonexistent.
Extracts, compiles, and patches XBOX BIOS/kernel files.

You'll need to supply your own RC4 key for older BIOSes. If
you are working with a BIOS which works with both the old 
xbox and the "1.1" xbox then you don't need an RC4 key.

The DVD checkbox is used to disable the DVD check so that 
the Xbox will boot with no DVD drive installed. This might 
be useful if your DVD drive is dead.
About the new boot options in 1.0.1

!!!!!!!! WARNING EXPERIMENTAL !!!!!!!!
!!!!!!!! USE AT YOUR OWN RISK !!!!!!!!

Back-slashes can be used for dashes in subfolders.

X2 BIOSes have 3 partions options. It'll try to boot the
top one first and then go on to the next one if the dash
isn't found on that partition, then the next... The total
space for dash names depends on how many dash options you
use. There are a total 129 bytes available. However, each
dash option needs 29 bytes for the partition info plus a
null terminator. If you make one option blank you'll gain
that extra 30 bytes for the total dash name pool. There is,
of course, a minimum requirement of one boot partition/dash,
so the longest dash name available would be 99
characters. The first dash option must not be blank.

Evox has two boot partition/dash choices. The second dash
name can be 18 characters long.

I tested using a backslash in the name on an evox dash and
was able to boot a dashboard in a subfolder. I haven't
tested this on an X2 BIOS, but I assume it will work.
XBtool checks the file foldername lengths, but not for
valid characters.
About the BFM packer in 1.0.1

Packs kernels so that they can be used with the Phoenix
loader. I believe they should work using the debug BFM
function also, but I haven't tested this.

This will not work with all BIOSes. I have tested x2 4977,
Evox D.6, and TATX successfully. Complex 4627 Debugv 1.03
failed to load using the Phoenix loader.

In order to enable this feature you'll need to place a
config file and two image files named "bfm_remainder.img"
and "bfm_2bl.img" in the "Config\BFM\" folder. You can the
image files by unpacking a BFM BIOS and renaming its 2bl
and remainder images. The config file should be a debug
config named bfm.ini.
This is a beta. Expect bugs. If you 
don't like bug then don't use beta software.

Things to do:

-Better documentation.

-Some docs for developers
Bug reports to [email protected]

I need good feedback if anyone suspects a bug. Bug reports
like, "Sometimes xbtool makes bad bioses," are not
helpful. If you suspect XBtool made a bad BIOS, reload
that BIOS into XBtool and see if it reads ok. Then note
the settings and include them in your report. If possible,
try to see if the bug is repeatable. I may ask to see a
bad BIOS file, but please don't send any unless I ask. 


-Fixed 4976 patcher as per changes in 1.0.1b4

-If you patch an Evox BIOS with a new LED color it may hang
 on a black screen while booting. If this happens try
 pressing eject and the Xbox should continue to boot. I'm
 looking for the cause of this problem.


-Removed kernel expansion due to conflict with IGR
 (reverted back to name pooling).

-Added pack as BFM option.

-Fixed crash which could occur if the wrong config was


-Removed dash name pooling and just moved dash names by
 expanding the kernel size.

-x2 Dash names can now be up to 128 characters each.

-Dash file/folder name length checking.

--Not thoroughly tested (use at your own risk).


-Fixed: crash on loading x2 4976.*.


-Dash names are pooled (see boot info above).

The flash packing/unpacking code is based on 
Paul Bartholomew's xbflash util.