public void writeRawfile(Rawfile raw)
        {
            int  index      = raw.index;
            uint write_addr = WRITE_ADDR + WRITE_POS;

            /*
             * if(raw.CustomFile)
             * {
             *  PS3.WriteString(write_addr, raw.name);
             *
             *  WRITE_POS += (uint)raw.name.Length + 1;
             *
             *  raw.name_ptr = write_addr;
             *  PS3.WriteUInt(XAssetPool + (uint)(index * RawfileSize) + 4, raw.name_ptr); //update the name ptr
             * }
             */

            PS3.SetMemory(write_addr, raw.buffer);//write in mem

            WRITE_POS += raw.length;

            raw.buffer_ptr = write_addr;
            PS3.WriteUInt(XAssetPool + (uint)(index * RawfileSize) + 12, raw.buffer_ptr); //update the table
            PS3.WriteUInt(XAssetPool + (uint)(index * RawfileSize) + 8, raw.length);      //update the length.

            uint table_addr = XAssetPool + (uint)(index * RawfileSize) + 12;
            uint len_addr   = XAssetPool + (uint)(index * RawfileSize) + 8;
        }
 public void updateFreeHead()
 {
     PS3.WriteUInt(XAssetPool, (uint)freeIndices[0]);
 }