FSAccessHeader.cs 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637
  1. using System.IO;
  2. namespace Ryujinx.HLE.Loaders.Npdm
  3. {
  4. public class FSAccessHeader
  5. {
  6. public int Version;
  7. public ulong PermissionsBitmask;
  8. public int DataSize;
  9. public int ContentOwnerIDSize;
  10. public int DataAndContentOwnerIDSize;
  11. public FSAccessHeader(Stream FSAccessHeaderStream, int Offset, int Size)
  12. {
  13. FSAccessHeaderStream.Seek(Offset, SeekOrigin.Begin);
  14. BinaryReader Reader = new BinaryReader(FSAccessHeaderStream);
  15. Version = Reader.ReadInt32();
  16. PermissionsBitmask = Reader.ReadUInt64();
  17. DataSize = Reader.ReadInt32();
  18. if (DataSize != 0x1C)
  19. {
  20. throw new InvalidNpdmException("FSAccessHeader is corrupted!");
  21. }
  22. ContentOwnerIDSize = Reader.ReadInt32();
  23. DataAndContentOwnerIDSize = Reader.ReadInt32();
  24. if (DataAndContentOwnerIDSize != 0x1C)
  25. {
  26. throw new InvalidNpdmException("ContentOwnerID section is not implemented!");
  27. }
  28. }
  29. }
  30. }