/ src / Ryujinx.HLE / FileSystem / SystemVersion.cs
SystemVersion.cs
 1  using Ryujinx.HLE.Utilities;
 2  using System.IO;
 3  
 4  namespace Ryujinx.HLE.FileSystem
 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  
18          public SystemVersion(Stream systemVersionFile)
19          {
20              using BinaryReader reader = new(systemVersionFile);
21              Major = reader.ReadByte();
22              Minor = reader.ReadByte();
23              Micro = reader.ReadByte();
24  
25              reader.ReadByte(); // Padding
26  
27              RevisionMajor = reader.ReadByte();
28              RevisionMinor = reader.ReadByte();
29  
30              reader.ReadBytes(2); // Padding
31  
32              PlatformString = StringUtils.ReadInlinedAsciiString(reader, 0x20);
33              Hex = StringUtils.ReadInlinedAsciiString(reader, 0x40);
34              VersionString = StringUtils.ReadInlinedAsciiString(reader, 0x18);
35              VersionTitle = StringUtils.ReadInlinedAsciiString(reader, 0x80);
36          }
37      }
38  }