Copy Link
Add to Bookmark
Report

Xbox DVD Filesystem Details

xbox's profile picture
Published in 
xbox
 · 21 Feb 2024

written by Andrew de Quincey, 5 May 2002
XDVDFS v0.2

Andrew de Quincey (adq@tardis.ed.ac.uk)


This document describes the filing system present on XBOX game DVD disks.


On a CD or DVD disk, sectors are 2048 bytes long.


Xbox media also appear to have regular 8MB spaces reserved for “security placeholders”. It is hypothesised that these are where Microsoft will place digital signatures for each data area on the disk, thus guaranteeing security from corruption or tampering.


It appears that the TOC of game DVDs has also been modified so that disks appear to contain much less data than they actually do (preventing casual copying of game data). It is assumed modified firmware in the Xbox DVD drive deals with this.


The disk image size should be rounded up to the nearest 0x10000 bytes, and padded with 0x00.


VOLUME DESCRIPTOR

This is present at sector 32 of an XBOX medium.


(Offsets are from start of sector)

Offset
Size
Description
0x000
0x14
“MICROSOFT*XBOX*MEDIA”
0x014
4
Sector that root directory table resides in
0x018
4
Size of root directory table in bytes
0x01c
8
FILETIME structure representing image creation time (as in FAT-style date/ FAT-style time).
0x024
0x7c8
Unused (?) (set to 0)
0x7ec
0x14
“MICROSOFT*XBOX*MEDIA”

  • If the root directory is empty, the sector and size will both be set to 0.

DIRECTORY TABLE

This consists of multiple DIRECTORY ENTRIES.


Any empty space is filled with 0xff.


The table may span multiple contiguous sectors.

DIRECTORY ENTRY

Directory entries within a singledirectory are stored as a binary tree data structure, to decrease search time. Each entry has a left and a right pointer, pointing to the left and right sub-trees descendant from the current entry. Entries alphabetically less than the current entry should be stored in the left sub-tree, while entries alphabetically greater should be stored in the right sub-tree.


The root of this tree for any particular directory is the directory entry situated at offset 0 of the first sector of the directory table.


(Offsets from start of directory entry)

Offset
Size
Description
0x0000
2
Offset to left sub-tree entry in DWORDs. If this is set to 0, there are no entries in this sub-tree.
0x0002
2
Offset to right sub-tree entry in DWORDs. If this is set to 0, there are no entries in this sub-tree.
0x0004
4
Starting sector of file. Each file may consist of multiple contiguous sectors.
0x0008
4
Total file size.
0x000C
1
File attributes (mostly standard FAT attributes):

  • 0x01: File is read only

  • 0x02: File is hidden
  • 0x04: File is system file
  • 0x10: File is a directory (associated sector(s) will have an XDVDFS directory table stored in them)
  • 0x20: File is an archive.
  • 0x80: Normal (i.e. lacking any other attributes) (?)

0x000D
1
Length of filename
0x000E
<filename length>
Filename. Characters are single-byte, probably using standard FAT character map.
0x000E + <filename length>
<0-3>
Padding to next DWORD (filled with 0xFF).

  • If a sub-directory is empty, the sector and file size of its entry in its parent will both be set to 0.

← previous
next →
loading
sending ...
New to Neperos ? Sign Up for free
download Neperos App from Google Play
install Neperos as PWA

Let's discover also

Recent Articles

Recent Comments

Neperos cookies
This website uses cookies to store your preferences and improve the service. Cookies authorization will allow me and / or my partners to process personal data such as browsing behaviour.

By pressing OK you agree to the Terms of Service and acknowledge the Privacy Policy

By pressing REJECT you will be able to continue to use Neperos (like read articles or write comments) but some important cookies will not be set. This may affect certain features and functions of the platform.
OK
REJECT