Manual Optimization Tips:

Xbox original disc specs:

The Xbox uses 8.54-GB, dual-layer, single-sided DVDs, but only a subset of the 8.54 GB of data is addressable. Space is reserved for both security placeholders and for the video that is played when the game disc is placed in a standard DVD player. Also, the space near the edge of the disc is not used since Microsoft believes kids would broke that space easily :P. This leaves a total of 6.4 GB (3.2 GB per layer) available on the DVD for a title.

How data is read from a DVD on the Xbox

Unlike on the hard disk, DVD data has the same density regardless of its position along the disc radius. This means that more data can be packed into the outer tracks since the tracks get longer as they move out along the disc radius. The Xbox DVD is also a constant angular velocity (CAV) device. These facts lead us to an important performance characteristic of the Xbox DVD: because more data can be read from the out tracks in a single constant angular rotation, reads from the outer tracks will be faster than reads from the inner tracks.

Also notice layer 0 (first one to be read) is read from the inner part of the disc to the outer part, but layer 1 is read in inverse order. Thats is important to understand XBDVDFS_Maker auto optimization modes.

Why Xbox original disc sux:

Xbox original disc has three limitations:

- Outer space of the disc is not used. (space wasted)

- Xbox DVD video at the beggining of the disc (space wasted)

- And the most important: security place holders.

Security placeholders are a very important limitation for developers, as divides the disc in several "partitions" and also take free space by theirselfs, which among with the other sections of wasted space reduces each layer free space to 3.2gb (instead the usual 4.3 gb). Now, about those "partitions": imagine a developer has several 400mb video files, the logical place to set up those files would be at the start of the disc as they are going to be accessed sequentially and there is no need for high transfer speed for compressed video. Now he load´s the official Xbox layout tool to place the files on the disc and....he founds there is only space for a single 400mb file at the disc beginning, as the following "partitions" are less than 400mb long. So he would be forced to set up video files on later "partitions" and therefore slowing down other files which really need to be at the outer part of the disc to benefit from fast read speed. Security placeholders can also lead to spread too much individual files which should be read sequentially.

Finally, many lazy Xbox developer doesn´t optimize their disc at all, they just use "order by filename" layouts, or let Xbox Disc Authoring Tool to setup the files to fill each free "partition" to the maximum, so we could end with files from a same level spreaded across the whole disc, and so, the Xbox dvd head movement will be huge.

 

Xbox backup disc:

Our backups disc, althought sharing the same filesystem has none of the original disc limitations. We have no security layers so we can set up files in any place, and we have no wasted space, so our disc can use 4.3 Gb (1.1gb more than the original :P)

Layout Files:

When we dump a layout structure from an original disc we get a text file similar to this:

# DISC TITLE : SSX Tricky
# VIDEO MODE : Ntsc
# PUBLISHER : EA
# SOURCE DISC : Original
# EXTRA INFO : None
#
# <<<<< LAYER 0 BEGINS HERE >>>>>
#

D,\data\config,0,1714420
F,\data\lang\letter.loc,199508,1714421
F,\data\lang\constant.loc,150132,1714519
F,\data\lang\american.loc,197712,1714593
D,\data\icon,0,1714727
D,\data,0,1714728
D,\,0,1714729
F,\default.xbe,1847296,1714730
......

Each line structure is: file or directory,path,size,start sector

D,\,0,1714728 is the root directory in this sample.

Sector number and size are not important for us, as the only factor which XBDVDFS_maker uses to setup files on the disc is the line number. So in this example directory \data\config will be at the beggining of the disc, then letter.loc, then constant.loc, etc...

So we can just simply open the layout file on the notepad, ultraedit or something and start to cut & paste lines to setup the files and directories in the way we want (maybe future CloneXB versions include a graphical gui for this), but before moving anything take this in consideration:

- Each time a file is accessed on the Xbox, the dvd reader head must go to their directory and then to the file. So is not a good idea to put D,\data\ at the beggining of the layout file and F,\data\something.dat at the end. The optimal way would be to set directories definitions in a equidistant place of every file contained in the same path level. This can be easy with some games with just a few folders and files, but extremely hard in others.

General Tips:

- Move videos to the beginning, they don´t need high speed transfers.

- Keep audio streamed files as much equidistant to streamed level files as you can(for example if you dont do this in Ninja Gaiden and setup the music file far from the level files, the head movement will be huge while you are playing, and even can lead the Xbox to show "loading" while you walk across the streets).

- Group similar files. Imagine we have:

F,\data\level1.aaa,0,0
F,\data\level7.aaa,0,0
F,\data\level2.aaa,0,0
F,\data\level7.bbb,0,0
F,\data\level1.bbb,0,0
F,\data\level2.bbb,0,0
F,\data\level1.ccc,0,0
F,\data\level2.ccc,0,0
F,\data\level7.ccc,0,0

Something like this would be more logical.

------------------>

F,\data\level1.aaa,0,0
F,\data\level1.bbb,0,0
F,\data\level1.ccc,0,0
F,\data\level2.ccc,0,0
F,\data\level2.bbb,0,0
F,\data\level2.aaa,0,0
F,\data\level7.aaa,0,0
F,\data\level7.bbb,0,0
F,\data\level7.ccc,0,0

- Think about how the game works, which files need more reading speed, which files are read in near time segments...etc. If we have a racing game with car models, and level maps mixed up in the layout, would be better to separate them, because probably the games loads first cars, and then the circuit (or viceversa).

- Delete unused files: dashboard updates, xbox live installers, etc. You can also delete files from languages you dont want to keep, so you have more free space to pad and so more reading speed by moving files to the outer part of the disc. (remember to comment which files you ripped, and please keep always a language with all its audio and video).

- Finally, pad your images to gain extra speed.

p.d.: excuse my simple english