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.
        }
        public async Task getRawfileData(int index)
        {
            Rawfile raw = new Rawfile();

            raw.index = index;
            raw.name_ptr = (uint)getInt(PoolBuffer, (index * RawfileSize) + 4);
            raw.requireOverwrite = false;
            raw.length = (uint)getInt(PoolBuffer, (index * RawfileSize) + 8);
            raw.buffer_ptr = (uint)getInt(PoolBuffer, (index * RawfileSize) + 12); //could remove this for additional speed.

            //raw.name = PS3.ReadCString(raw.name_ptr); //this is returning null for some reason...

            rawfiles.Add(raw);

        }