SystemVersion.cs 1.4 KB

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