Xbox Partitioning and Filesystem Details
written by Andrew de Quincey and Lucien Murray-Pitt, 5 May 2002
XBOX DISK LAYOUT v0.13
Andrew de Quincey (adq@tardis.ed.ac.uk)
Lucien Murray-Pitts (lucien@tardis.ed.ac.uk)
DISK CONFIG TABLES
These are present at the very start of the disk. Most of them have not been decoded yet, but they do change from time to time.
(Offsets are from start of disk)
Offset | Size | Description |
0x600 | 4 | “BRFR” |
0x604 | 4 | Number of boots |
0x608 | 4 | Unknown |
0x60c | 4 | Unknown |
(Offsets are from start of disk)
Offset | Size | Description |
0x800 | 4 | Unknown |
0x804 | 4 | Unknown |
0x808 | 4 | Unknown |
0x80C | 4 | Unknown |
0x810 | 4 | Unknown |
0x814 | 4 | Unknown |
0x818 | 4 | Unknown |
0x81c | 4 | Unknown |
0x820 | 4 | Unknown |
0x824 | 4 | Unknown |
(Offsets are from start of disk)
Offset | Size | Description |
0x1000 | 4 | Unknown |
0x1004 | 4 | Unknown |
0x1008 | 4 | Unknown |
0x100c | 4 | Unknown |
0x1010 | 4 | Unknown |
0x1014 | 4 | Unknown |
0x1018 | 4 | Unknown |
0x101c | 4 | Unknown |
PARTITION TABLE/ DISK AREA MAP
N.B. There doesn’t appear to be a standard partition table on the disk; these values are suspected to be hard-coded in the ROM. None of the values in the tables at the start of the disk look anything like the values following (so far).
(Offsets are from start of disk)
Offset | Size | Use/Type |
0x00000000 | 0.5MB | Disk config area (size is a guess) |
0x00080000 | 750MB | FATX: File cache area 1. This area gets wiped and game-specific data is written to it. |
0x2ee80000 | 750MB | FATX: File cache area 2. This area gets wiped and game-specific data is written to it. |
0x5dc80000 | 750MB | FATX: File cache area 3. This area gets wiped and game-specific data is written to it.? |
0x8ca80000 | 500MB | FATX: XBOX system files (Dashboard, DVD stuff) |
0xabe80000 | 4895MB | FATX: Music/Saved games storage. |
- The size of the last partition is based on how many clusters are allocated in its cluster chain map table, and the space left on the 8GB disks. The actual value may be less than this, but it is not to be possible for it to be larger (on 8 GB disks). An interesting point to investigate is whether the additional space on the 10GB disks is wasted.
FATX Partition header
(Offsets from start of FATX partition)
Offset | Size | Description |
0x0000 | 4 | “FATX” |
0x0004 | 4 | Volume ID (?) |
0x0008 | 4 | Cluster size in 512 byte sectors (?) |
0x000C | 2 | Number of active FATs (always 1) (?) |
0x000E | 4 | Unknown (always set to 0) |
0x0012 | 0xfee | Unknown (usually set to 0xff, or 0). Probably padding. |
0x1000 | Depends on size of partition, see below | Cluster chain map. This is a table of 2 byte or 4 byte entries, one per cluster. The values of the entries are the ID of the NEXT cluster in the chain, or one of several special values:
|
0x1000 + cluster chain map size | 0x4000 |