SystemVersion.cs 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940
  1. using Ryujinx.HLE.Utilities;
  2. using System.IO;
  3. namespace Ryujinx.HLE.FileSystem
  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 = StringUtils.ReadInlinedAsciiString(reader, 0x20);
  28. Hex = StringUtils.ReadInlinedAsciiString(reader, 0x40);
  29. VersionString = StringUtils.ReadInlinedAsciiString(reader, 0x18);
  30. VersionTitle = StringUtils.ReadInlinedAsciiString(reader, 0x80);
  31. }
  32. }
  33. }
  34. }