[readme.txt for pixit]
[28/06/2003 12:11AM]


What is pixit.exe?
==================

pixit is a program to manipulate files stored in the Xbox XIP archive file. You
can display the file content, extract the files, re-assemble an archive. You
can also add new files but for now it is not recommended.


Ok, whatever, what is it used for?
==================================

If you are asking your self the above question, pixit is probably *not* for you.
So, just close this readme.txt, delete the zip you have downloaded and go along
with your regular, everyday business.


How do I use it?
================

---
PIXIT XIP Archive Manipulator Version 0.6
Copyright (c) Voltaic 2003. All rights reserved.

Usage: pixit.exe <command> [filename]

Where command is one of the following:

 -create[=default.csv]   Create a new XIP archive file (def. default.csv).

 -display[=csv]          Display information about an XIP/XBE
                         file (def. default.xip).

 -extract[=path]         Extract files from an XIP archive file to specified
                         folder.

 -resign[=xips.csv]      Resign XIP section held in XBE file (def. ".\*.XIP").

Note: You can use display to dump information about an XIP archive file or the
      XIPS section stored in the provided XBE file.
---

As seen above, you have three options at your disposal. Create, Display and Extract.

Create: Create a new XIP archive file. By default, it'll create a file 
        called default.xip and using the file default.csv to build it.

Display: Display information about an XIP archive file. By default, it'll try
         to display the content of default.xip.

Extract: Extract files from an XIP file. By default it'll use the file default.xip and
         dump all files into a directory called default.xip.d.

Resign:  Resign the XBE file making use of the XIP archive files.  By default, it'll re-sign
         xboxdash.xbe.

When I want to go ahead a modify an XIP file these are the steps I take:

1) Build a comma seperated value file (CSV) that we'll use to re-build the archive:
   D:\>pixit.exe -display=csv > default.csv

2) Build a comma seperated value file (CSV) that we'll use to re-sign the XBE program:
   D:\>pixit.exe -display=csv xboxdash.xbe > xips.csv

3) Extract the files form the XIP archive:
   D:\>pixit.exe -extract

4) Clean up the CSV file:
   Edit the default.csv file and remove everything above the following line:
   # *** Anything before this line is garbage when using this CSV file *** 

5) Now, you need to fix up the CSV file to point to the proper files:
   Since we've extracted the files to the default destination folder, they've been
   created in the default.xip.d folder. We need to edit the CSV file and add that
   leading path to each of the files. For example:

   default.xap,0x0000C6DB,0x00000000,0x00000000,0x00000000,0x0005,0x0039
   needs to be changed to
   default.xip.d\default.xap,0x0000C6DB,0x00000000,0x00000000,0x00000000,0x0005,0x0039

6) Edit and save the changes to the file I wanted to modify (ex.: default.xap).

7) Re-build the XIP archive file:
   D:\>pixit.exe -create

8) Re-sign the XBE file:
   D:\>pixit.exe -resign


That's it. Now since I already have the CSV and the files on disk, anytime I do
another change to a file, I only need to re-build the archive. So, only step 6 to 8.
are used.

Sure, it isn't user-friendly but it gets the job done.  If you can't use command line tools
you shouldn't be using this program... :/


Information about the CSV format
================================

#File,Size,D.Offset,Type,Timestamp,Index,Offset

File: This is the file that you want to insert into the XIP archive.
Size: This is the size of the file. This is filled in automatically.
D.Offset: Offset of the data in the XIP file. This is filled in automatically.
Type: This specifies what type of file is stored in the XIP file (see Type Notes).
Timestamp: time_t, this is usually set to 0x00000000.
Index: Index of the file (don't touch for now).
Offset: Offset of the name (don't touch for now).

Type Notes: 

	0 - XAP Script File
	2 - XBX Resource File (usually an Xbox Packed Resource (XPR))
	4 - XM File (this is not an actual file, it looks like 
	    information relating to the IB/VB)
	5 - Index Buffer (binary data to goes directly into the GPU of the Xbox)
	6 - Vertex Buffer (binary data to goes directly into the GPU of the Xbox)




History
=======

v0.6 28/06/2003 - Added the -resign command to resign the XBE file using the XIP files.

v0.5 16/06/2003 - First public release.

v0.4 16/06/2003 - Fixed bug related to the offset calculation.

v0.3 15/06/2003 - Changed unknown internal types to timestamp and name offset.


email: voltaic@NOSPAMeroded.net