SystemVersion.cs 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. using System;
  2. using System.IO;
  3. using System.Text;
  4. namespace Ryujinx.HLE.FileSystem.Content
  5. {
  6. public class SystemVersion
  7. {
  8. public byte Major { get; }
  9. public byte Minor { get; }
  10. public byte Micro { get; }
  11. public byte RevisionMajor { get; }
  12. public byte RevisionMinor { get; }
  13. public string PlatformString { get; }
  14. public string Hex { get; }
  15. public string VersionString { get; }
  16. public string VersionTitle { get; }
  17. public SystemVersion(Stream systemVersionFile)
  18. {
  19. using (BinaryReader reader = new BinaryReader(systemVersionFile))
  20. {
  21. Major = reader.ReadByte();
  22. Minor = reader.ReadByte();
  23. Micro = reader.ReadByte();
  24. reader.ReadByte(); // Padding
  25. RevisionMajor = reader.ReadByte();
  26. RevisionMinor = reader.ReadByte();
  27. reader.ReadBytes(2); // Padding
  28. PlatformString = Encoding.ASCII.GetString(reader.ReadBytes(0x20)).TrimEnd('\0');
  29. Hex = Encoding.ASCII.GetString(reader.ReadBytes(0x40)).TrimEnd('\0');
  30. VersionString = Encoding.ASCII.GetString(reader.ReadBytes(0x18)).TrimEnd('\0');
  31. VersionTitle = Encoding.ASCII.GetString(reader.ReadBytes(0x80)).TrimEnd('\0');
  32. }
  33. }
  34. }
  35. }