Esempio n. 1
0
        /// <summary>
        /// Load the STFS Container's MetaData
        /// </summary>
        public void LoadMetaData()
        {
            _stfsMetaData = new xMetaData();

            _stfsStream.SeekTo(0x22C);

            // Read License Entries
            _stfsMetaData.LicensingEntries              = new xMetaData.LicensingEntry();
            _stfsMetaData.LicensingEntries.LicenseID    = _stfsStream.ReadInt64();
            _stfsMetaData.LicensingEntries.LicenseBits  = _stfsStream.ReadInt32();
            _stfsMetaData.LicensingEntries.LicenseFlags = _stfsStream.ReadInt32();

            _stfsStream.SeekTo(0x32C);
            _stfsMetaData.ContentID       = _stfsStream.ReadBlock(0x14);
            _stfsMetaData.HeaderSize      = _stfsStream.ReadUInt32();
            _stfsMetaData.ContentType     = (ContentTypes)_stfsStream.ReadInt32();
            _stfsMetaData.MetadataVersion = _stfsStream.ReadInt32();
            _stfsMetaData.ContentSize     = _stfsStream.ReadInt64();
            _stfsMetaData.MediaID         = _stfsStream.ReadUInt32();
            _stfsMetaData.Version         = _stfsStream.ReadInt32();
            _stfsMetaData.BaseVersion     = _stfsStream.ReadInt32();
            _stfsMetaData.TitleID         = _stfsStream.ReadUInt32();
            _stfsMetaData.Platform        = (PackagePlatform)_stfsStream.ReadByte();
            _stfsMetaData.ExecutableType  = _stfsStream.ReadByte();
            _stfsMetaData.DiskNumber      = _stfsStream.ReadByte();
            _stfsMetaData.DiskInSet       = _stfsStream.ReadByte();
            _stfsMetaData.SaveGameID      = _stfsStream.ReadUInt32();
            _stfsMetaData.ConsoleID       = _stfsStream.ReadBlock(0x5);
            _stfsMetaData.ProfileID       = _stfsStream.ReadBlock(0x8);

            _stfsMetaData.VolumeDescriptor = new xMetaData.xVolumeDescription();
            _stfsMetaData.VolumeDescriptor.VolumeDescriptorSize = _stfsStream.ReadByte();
            _stfsStream.ReadByte();
            _stfsStream.ReadByte();
            _stfsMetaData.VolumeDescriptor.FileTableBlockCount        = _stfsStream.ReadInt16();
            _stfsMetaData.VolumeDescriptor.FileTableBlockNumber       = _stfsStream.ReadInt24();
            _stfsMetaData.VolumeDescriptor.TopHashTableHash           = _stfsStream.ReadBlock(0x14);
            _stfsMetaData.VolumeDescriptor.TotalAllocatedBlockCount   = _stfsStream.ReadInt32();
            _stfsMetaData.VolumeDescriptor.TotalUnallocatedBlockCount = _stfsStream.ReadInt32();

            _stfsStream.SeekTo(0x39D);
            _stfsMetaData.DataFileCount        = _stfsStream.ReadInt32();
            _stfsMetaData.DataFileCombinedSize = _stfsStream.ReadInt64();

            _stfsStream.SeekTo(0x3FD);
            _stfsMetaData.DeviceID    = _stfsStream.ReadBlock(0x14);
            _stfsMetaData.DisplayName = _stfsStream.ReadUTF16();

            _stfsStream.SeekTo(0xD11);
            _stfsMetaData.DisplayDescription = _stfsStream.ReadUTF16();

            _stfsStream.SeekTo(0x1611);
            _stfsMetaData.PublisherName = _stfsStream.ReadUTF16();

            _stfsStream.SeekTo(0x1691);
            _stfsMetaData.TitleName = _stfsStream.ReadUTF16();

            _stfsStream.SeekTo(0x1711);
            _stfsMetaData.TransferFlags = (TransferFlags)_stfsStream.ReadByte();

            _stfsMetaData.ThumbnailImage      = new xMetaData.xMetaImage();
            _stfsMetaData.TitleThumbnailImage = new xMetaData.xMetaImage();

            _stfsMetaData.ThumbnailImage.ImageSize      = _stfsStream.ReadInt32();
            _stfsMetaData.TitleThumbnailImage.ImageSize = _stfsStream.ReadInt32();

            _stfsMetaData.ThumbnailImage.Image = _stfsStream.ReadBlock(_stfsMetaData.ThumbnailImage.ImageSize);
            _stfsStream.SeekTo(0x571A);
            _stfsMetaData.TitleThumbnailImage.Image = _stfsStream.ReadBlock(_stfsMetaData.TitleThumbnailImage.ImageSize);
        }