Adjust naming conventions and general refactoring in HLE Project (#490)
* Rename enum fields
* Naming conventions
* Remove unneeded ".this"
* Remove unneeded semicolons
* Remove unused Usings
* Don't use var
* Remove unneeded enum underlying types
* Explicitly label class visibility
* Remove unneeded @ prefixes
* Remove unneeded commas
* Remove unneeded if expressions
* Method doesn't use unsafe code
* Remove unneeded casts
* Initialized objects don't need an empty constructor
* Remove settings from DotSettings
* Revert "Explicitly label class visibility"
This reverts commit ad5eb5787c
.
* Small changes
* Revert external enum renaming
* Changes from feedback
* Remove unneeded property setters
This commit is contained in:
parent
c86aacde76
commit
85dbb9559a
299 changed files with 12268 additions and 12276 deletions
|
@ -3,51 +3,51 @@ using System.IO;
|
|||
|
||||
namespace Ryujinx.HLE.Loaders.Npdm
|
||||
{
|
||||
class ACI0
|
||||
class Aci0
|
||||
{
|
||||
private const int ACI0Magic = 'A' << 0 | 'C' << 8 | 'I' << 16 | '0' << 24;
|
||||
private const int Aci0Magic = 'A' << 0 | 'C' << 8 | 'I' << 16 | '0' << 24;
|
||||
|
||||
public long TitleId { get; private set; }
|
||||
public long TitleId { get; }
|
||||
|
||||
public int FsVersion { get; private set; }
|
||||
public ulong FsPermissionsBitmask { get; private set; }
|
||||
public int FsVersion { get; }
|
||||
public ulong FsPermissionsBitmask { get; }
|
||||
|
||||
public ServiceAccessControl ServiceAccessControl { get; private set; }
|
||||
public KernelAccessControl KernelAccessControl { get; private set; }
|
||||
public ServiceAccessControl ServiceAccessControl { get; }
|
||||
public KernelAccessControl KernelAccessControl { get; }
|
||||
|
||||
public ACI0(Stream Stream, int Offset)
|
||||
public Aci0(Stream stream, int offset)
|
||||
{
|
||||
Stream.Seek(Offset, SeekOrigin.Begin);
|
||||
stream.Seek(offset, SeekOrigin.Begin);
|
||||
|
||||
BinaryReader Reader = new BinaryReader(Stream);
|
||||
BinaryReader reader = new BinaryReader(stream);
|
||||
|
||||
if (Reader.ReadInt32() != ACI0Magic)
|
||||
if (reader.ReadInt32() != Aci0Magic)
|
||||
{
|
||||
throw new InvalidNpdmException("ACI0 Stream doesn't contain ACI0 section!");
|
||||
}
|
||||
|
||||
Stream.Seek(0xc, SeekOrigin.Current);
|
||||
stream.Seek(0xc, SeekOrigin.Current);
|
||||
|
||||
TitleId = Reader.ReadInt64();
|
||||
TitleId = reader.ReadInt64();
|
||||
|
||||
//Reserved.
|
||||
Stream.Seek(8, SeekOrigin.Current);
|
||||
stream.Seek(8, SeekOrigin.Current);
|
||||
|
||||
int FsAccessHeaderOffset = Reader.ReadInt32();
|
||||
int FsAccessHeaderSize = Reader.ReadInt32();
|
||||
int ServiceAccessControlOffset = Reader.ReadInt32();
|
||||
int ServiceAccessControlSize = Reader.ReadInt32();
|
||||
int KernelAccessControlOffset = Reader.ReadInt32();
|
||||
int KernelAccessControlSize = Reader.ReadInt32();
|
||||
int fsAccessHeaderOffset = reader.ReadInt32();
|
||||
int fsAccessHeaderSize = reader.ReadInt32();
|
||||
int serviceAccessControlOffset = reader.ReadInt32();
|
||||
int serviceAccessControlSize = reader.ReadInt32();
|
||||
int kernelAccessControlOffset = reader.ReadInt32();
|
||||
int kernelAccessControlSize = reader.ReadInt32();
|
||||
|
||||
FsAccessHeader FsAccessHeader = new FsAccessHeader(Stream, Offset + FsAccessHeaderOffset, FsAccessHeaderSize);
|
||||
FsAccessHeader fsAccessHeader = new FsAccessHeader(stream, offset + fsAccessHeaderOffset, fsAccessHeaderSize);
|
||||
|
||||
FsVersion = FsAccessHeader.Version;
|
||||
FsPermissionsBitmask = FsAccessHeader.PermissionsBitmask;
|
||||
FsVersion = fsAccessHeader.Version;
|
||||
FsPermissionsBitmask = fsAccessHeader.PermissionsBitmask;
|
||||
|
||||
ServiceAccessControl = new ServiceAccessControl(Stream, Offset + ServiceAccessControlOffset, ServiceAccessControlSize);
|
||||
ServiceAccessControl = new ServiceAccessControl(stream, offset + serviceAccessControlOffset, serviceAccessControlSize);
|
||||
|
||||
KernelAccessControl = new KernelAccessControl(Stream, Offset + KernelAccessControlOffset, KernelAccessControlSize);
|
||||
KernelAccessControl = new KernelAccessControl(stream, offset + kernelAccessControlOffset, kernelAccessControlSize);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -3,59 +3,59 @@ using System.IO;
|
|||
|
||||
namespace Ryujinx.HLE.Loaders.Npdm
|
||||
{
|
||||
class ACID
|
||||
class Acid
|
||||
{
|
||||
private const int ACIDMagic = 'A' << 0 | 'C' << 8 | 'I' << 16 | 'D' << 24;
|
||||
private const int AcidMagic = 'A' << 0 | 'C' << 8 | 'I' << 16 | 'D' << 24;
|
||||
|
||||
public byte[] RSA2048Signature { get; private set; }
|
||||
public byte[] RSA2048Modulus { get; private set; }
|
||||
public int Unknown1 { get; private set; }
|
||||
public int Flags { get; private set; }
|
||||
public byte[] Rsa2048Signature { get; }
|
||||
public byte[] Rsa2048Modulus { get; }
|
||||
public int Unknown1 { get; }
|
||||
public int Flags { get; }
|
||||
|
||||
public long TitleIdRangeMin { get; private set; }
|
||||
public long TitleIdRangeMax { get; private set; }
|
||||
public long TitleIdRangeMin { get; }
|
||||
public long TitleIdRangeMax { get; }
|
||||
|
||||
public FsAccessControl FsAccessControl { get; private set; }
|
||||
public ServiceAccessControl ServiceAccessControl { get; private set; }
|
||||
public KernelAccessControl KernelAccessControl { get; private set; }
|
||||
public FsAccessControl FsAccessControl { get; }
|
||||
public ServiceAccessControl ServiceAccessControl { get; }
|
||||
public KernelAccessControl KernelAccessControl { get; }
|
||||
|
||||
public ACID(Stream Stream, int Offset)
|
||||
public Acid(Stream stream, int offset)
|
||||
{
|
||||
Stream.Seek(Offset, SeekOrigin.Begin);
|
||||
stream.Seek(offset, SeekOrigin.Begin);
|
||||
|
||||
BinaryReader Reader = new BinaryReader(Stream);
|
||||
BinaryReader reader = new BinaryReader(stream);
|
||||
|
||||
RSA2048Signature = Reader.ReadBytes(0x100);
|
||||
RSA2048Modulus = Reader.ReadBytes(0x100);
|
||||
Rsa2048Signature = reader.ReadBytes(0x100);
|
||||
Rsa2048Modulus = reader.ReadBytes(0x100);
|
||||
|
||||
if (Reader.ReadInt32() != ACIDMagic)
|
||||
if (reader.ReadInt32() != AcidMagic)
|
||||
{
|
||||
throw new InvalidNpdmException("ACID Stream doesn't contain ACID section!");
|
||||
}
|
||||
|
||||
//Size field used with the above signature (?).
|
||||
Unknown1 = Reader.ReadInt32();
|
||||
Unknown1 = reader.ReadInt32();
|
||||
|
||||
Reader.ReadInt32();
|
||||
reader.ReadInt32();
|
||||
|
||||
//Bit0 must be 1 on retail, on devunit 0 is also allowed. Bit1 is unknown.
|
||||
Flags = Reader.ReadInt32();
|
||||
Flags = reader.ReadInt32();
|
||||
|
||||
TitleIdRangeMin = Reader.ReadInt64();
|
||||
TitleIdRangeMax = Reader.ReadInt64();
|
||||
TitleIdRangeMin = reader.ReadInt64();
|
||||
TitleIdRangeMax = reader.ReadInt64();
|
||||
|
||||
int FsAccessControlOffset = Reader.ReadInt32();
|
||||
int FsAccessControlSize = Reader.ReadInt32();
|
||||
int ServiceAccessControlOffset = Reader.ReadInt32();
|
||||
int ServiceAccessControlSize = Reader.ReadInt32();
|
||||
int KernelAccessControlOffset = Reader.ReadInt32();
|
||||
int KernelAccessControlSize = Reader.ReadInt32();
|
||||
int fsAccessControlOffset = reader.ReadInt32();
|
||||
int fsAccessControlSize = reader.ReadInt32();
|
||||
int serviceAccessControlOffset = reader.ReadInt32();
|
||||
int serviceAccessControlSize = reader.ReadInt32();
|
||||
int kernelAccessControlOffset = reader.ReadInt32();
|
||||
int kernelAccessControlSize = reader.ReadInt32();
|
||||
|
||||
FsAccessControl = new FsAccessControl(Stream, Offset + FsAccessControlOffset, FsAccessControlSize);
|
||||
FsAccessControl = new FsAccessControl(stream, offset + fsAccessControlOffset, fsAccessControlSize);
|
||||
|
||||
ServiceAccessControl = new ServiceAccessControl(Stream, Offset + ServiceAccessControlOffset, ServiceAccessControlSize);
|
||||
ServiceAccessControl = new ServiceAccessControl(stream, offset + serviceAccessControlOffset, serviceAccessControlSize);
|
||||
|
||||
KernelAccessControl = new KernelAccessControl(Stream, Offset + KernelAccessControlOffset, KernelAccessControlSize);
|
||||
KernelAccessControl = new KernelAccessControl(stream, offset + kernelAccessControlOffset, kernelAccessControlSize);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -4,25 +4,25 @@ namespace Ryujinx.HLE.Loaders.Npdm
|
|||
{
|
||||
class FsAccessControl
|
||||
{
|
||||
public int Version { get; private set; }
|
||||
public ulong PermissionsBitmask { get; private set; }
|
||||
public int Unknown1 { get; private set; }
|
||||
public int Unknown2 { get; private set; }
|
||||
public int Unknown3 { get; private set; }
|
||||
public int Unknown4 { get; private set; }
|
||||
public int Version { get; }
|
||||
public ulong PermissionsBitmask { get; }
|
||||
public int Unknown1 { get; }
|
||||
public int Unknown2 { get; }
|
||||
public int Unknown3 { get; }
|
||||
public int Unknown4 { get; }
|
||||
|
||||
public FsAccessControl(Stream Stream, int Offset, int Size)
|
||||
public FsAccessControl(Stream stream, int offset, int size)
|
||||
{
|
||||
Stream.Seek(Offset, SeekOrigin.Begin);
|
||||
stream.Seek(offset, SeekOrigin.Begin);
|
||||
|
||||
BinaryReader Reader = new BinaryReader(Stream);
|
||||
BinaryReader reader = new BinaryReader(stream);
|
||||
|
||||
Version = Reader.ReadInt32();
|
||||
PermissionsBitmask = Reader.ReadUInt64();
|
||||
Unknown1 = Reader.ReadInt32();
|
||||
Unknown2 = Reader.ReadInt32();
|
||||
Unknown3 = Reader.ReadInt32();
|
||||
Unknown4 = Reader.ReadInt32();
|
||||
Version = reader.ReadInt32();
|
||||
PermissionsBitmask = reader.ReadUInt64();
|
||||
Unknown1 = reader.ReadInt32();
|
||||
Unknown2 = reader.ReadInt32();
|
||||
Unknown3 = reader.ReadInt32();
|
||||
Unknown4 = reader.ReadInt32();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -6,29 +6,29 @@ namespace Ryujinx.HLE.Loaders.Npdm
|
|||
{
|
||||
class FsAccessHeader
|
||||
{
|
||||
public int Version { get; private set; }
|
||||
public ulong PermissionsBitmask { get; private set; }
|
||||
public int Version { get; }
|
||||
public ulong PermissionsBitmask { get; }
|
||||
|
||||
public FsAccessHeader(Stream Stream, int Offset, int Size)
|
||||
public FsAccessHeader(Stream stream, int offset, int size)
|
||||
{
|
||||
Stream.Seek(Offset, SeekOrigin.Begin);
|
||||
stream.Seek(offset, SeekOrigin.Begin);
|
||||
|
||||
BinaryReader Reader = new BinaryReader(Stream);
|
||||
BinaryReader reader = new BinaryReader(stream);
|
||||
|
||||
Version = Reader.ReadInt32();
|
||||
PermissionsBitmask = Reader.ReadUInt64();
|
||||
Version = reader.ReadInt32();
|
||||
PermissionsBitmask = reader.ReadUInt64();
|
||||
|
||||
int DataSize = Reader.ReadInt32();
|
||||
int dataSize = reader.ReadInt32();
|
||||
|
||||
if (DataSize != 0x1c)
|
||||
if (dataSize != 0x1c)
|
||||
{
|
||||
throw new InvalidNpdmException("FsAccessHeader is corrupted!");
|
||||
}
|
||||
|
||||
int ContentOwnerIdSize = Reader.ReadInt32();
|
||||
int DataAndContentOwnerIdSize = Reader.ReadInt32();
|
||||
int contentOwnerIdSize = reader.ReadInt32();
|
||||
int dataAndContentOwnerIdSize = reader.ReadInt32();
|
||||
|
||||
if (DataAndContentOwnerIdSize != 0x1c)
|
||||
if (dataAndContentOwnerIdSize != 0x1c)
|
||||
{
|
||||
throw new NotImplementedException("ContentOwnerId section is not implemented!");
|
||||
}
|
||||
|
|
|
@ -4,19 +4,19 @@ namespace Ryujinx.HLE.Loaders.Npdm
|
|||
{
|
||||
class KernelAccessControl
|
||||
{
|
||||
public int[] Capabilities { get; private set; }
|
||||
public int[] Capabilities { get; }
|
||||
|
||||
public KernelAccessControl(Stream Stream, int Offset, int Size)
|
||||
public KernelAccessControl(Stream stream, int offset, int size)
|
||||
{
|
||||
Stream.Seek(Offset, SeekOrigin.Begin);
|
||||
stream.Seek(offset, SeekOrigin.Begin);
|
||||
|
||||
Capabilities = new int[Size / 4];
|
||||
Capabilities = new int[size / 4];
|
||||
|
||||
BinaryReader Reader = new BinaryReader(Stream);
|
||||
BinaryReader reader = new BinaryReader(stream);
|
||||
|
||||
for (int Index = 0; Index < Capabilities.Length; Index++)
|
||||
for (int index = 0; index < Capabilities.Length; index++)
|
||||
{
|
||||
Capabilities[Index] = Reader.ReadInt32();
|
||||
Capabilities[index] = reader.ReadInt32();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -11,62 +11,62 @@ namespace Ryujinx.HLE.Loaders.Npdm
|
|||
{
|
||||
private const int MetaMagic = 'M' << 0 | 'E' << 8 | 'T' << 16 | 'A' << 24;
|
||||
|
||||
public byte MmuFlags { get; private set; }
|
||||
public bool Is64Bits { get; private set; }
|
||||
public byte MainThreadPriority { get; private set; }
|
||||
public byte DefaultCpuId { get; private set; }
|
||||
public int PersonalMmHeapSize { get; private set; }
|
||||
public int ProcessCategory { get; private set; }
|
||||
public int MainThreadStackSize { get; private set; }
|
||||
public string TitleName { get; private set; }
|
||||
public byte[] ProductCode { get; private set; }
|
||||
public byte MmuFlags { get; }
|
||||
public bool Is64Bits { get; }
|
||||
public byte MainThreadPriority { get; }
|
||||
public byte DefaultCpuId { get; }
|
||||
public int PersonalMmHeapSize { get; }
|
||||
public int ProcessCategory { get; }
|
||||
public int MainThreadStackSize { get; }
|
||||
public string TitleName { get; }
|
||||
public byte[] ProductCode { get; }
|
||||
|
||||
public ACI0 ACI0 { get; private set; }
|
||||
public ACID ACID { get; private set; }
|
||||
public Aci0 Aci0 { get; }
|
||||
public Acid Acid { get; }
|
||||
|
||||
public Npdm(Stream Stream)
|
||||
public Npdm(Stream stream)
|
||||
{
|
||||
BinaryReader Reader = new BinaryReader(Stream);
|
||||
BinaryReader reader = new BinaryReader(stream);
|
||||
|
||||
if (Reader.ReadInt32() != MetaMagic)
|
||||
if (reader.ReadInt32() != MetaMagic)
|
||||
{
|
||||
throw new InvalidNpdmException("NPDM Stream doesn't contain NPDM file!");
|
||||
}
|
||||
|
||||
Reader.ReadInt64();
|
||||
reader.ReadInt64();
|
||||
|
||||
MmuFlags = Reader.ReadByte();
|
||||
MmuFlags = reader.ReadByte();
|
||||
|
||||
Is64Bits = (MmuFlags & 1) != 0;
|
||||
|
||||
Reader.ReadByte();
|
||||
reader.ReadByte();
|
||||
|
||||
MainThreadPriority = Reader.ReadByte();
|
||||
DefaultCpuId = Reader.ReadByte();
|
||||
MainThreadPriority = reader.ReadByte();
|
||||
DefaultCpuId = reader.ReadByte();
|
||||
|
||||
Reader.ReadInt32();
|
||||
reader.ReadInt32();
|
||||
|
||||
PersonalMmHeapSize = Reader.ReadInt32();
|
||||
PersonalMmHeapSize = reader.ReadInt32();
|
||||
|
||||
ProcessCategory = Reader.ReadInt32();
|
||||
ProcessCategory = reader.ReadInt32();
|
||||
|
||||
MainThreadStackSize = Reader.ReadInt32();
|
||||
MainThreadStackSize = reader.ReadInt32();
|
||||
|
||||
byte[] TempTitleName = Reader.ReadBytes(0x10);
|
||||
byte[] tempTitleName = reader.ReadBytes(0x10);
|
||||
|
||||
TitleName = Encoding.UTF8.GetString(TempTitleName, 0, TempTitleName.Length).Trim('\0');
|
||||
TitleName = Encoding.UTF8.GetString(tempTitleName, 0, tempTitleName.Length).Trim('\0');
|
||||
|
||||
ProductCode = Reader.ReadBytes(0x10);
|
||||
ProductCode = reader.ReadBytes(0x10);
|
||||
|
||||
Stream.Seek(0x30, SeekOrigin.Current);
|
||||
stream.Seek(0x30, SeekOrigin.Current);
|
||||
|
||||
int ACI0Offset = Reader.ReadInt32();
|
||||
int ACI0Size = Reader.ReadInt32();
|
||||
int ACIDOffset = Reader.ReadInt32();
|
||||
int ACIDSize = Reader.ReadInt32();
|
||||
int aci0Offset = reader.ReadInt32();
|
||||
int aci0Size = reader.ReadInt32();
|
||||
int acidOffset = reader.ReadInt32();
|
||||
int acidSize = reader.ReadInt32();
|
||||
|
||||
ACI0 = new ACI0(Stream, ACI0Offset);
|
||||
ACID = new ACID(Stream, ACIDOffset);
|
||||
Aci0 = new Aci0(stream, aci0Offset);
|
||||
Acid = new Acid(stream, acidOffset);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -7,36 +7,36 @@ namespace Ryujinx.HLE.Loaders.Npdm
|
|||
{
|
||||
class ServiceAccessControl
|
||||
{
|
||||
public IReadOnlyDictionary<string, bool> Services { get; private set; }
|
||||
public IReadOnlyDictionary<string, bool> Services { get; }
|
||||
|
||||
public ServiceAccessControl(Stream Stream, int Offset, int Size)
|
||||
public ServiceAccessControl(Stream stream, int offset, int size)
|
||||
{
|
||||
Stream.Seek(Offset, SeekOrigin.Begin);
|
||||
stream.Seek(offset, SeekOrigin.Begin);
|
||||
|
||||
BinaryReader Reader = new BinaryReader(Stream);
|
||||
BinaryReader reader = new BinaryReader(stream);
|
||||
|
||||
int ByteReaded = 0;
|
||||
int byteReaded = 0;
|
||||
|
||||
Dictionary<string, bool> Services = new Dictionary<string, bool>();
|
||||
Dictionary<string, bool> services = new Dictionary<string, bool>();
|
||||
|
||||
while (ByteReaded != Size)
|
||||
while (byteReaded != size)
|
||||
{
|
||||
byte ControlByte = Reader.ReadByte();
|
||||
byte controlByte = reader.ReadByte();
|
||||
|
||||
if (ControlByte == 0)
|
||||
if (controlByte == 0)
|
||||
{
|
||||
break;
|
||||
}
|
||||
|
||||
int Length = (ControlByte & 0x07) + 1;
|
||||
bool RegisterAllowed = (ControlByte & 0x80) != 0;
|
||||
int length = (controlByte & 0x07) + 1;
|
||||
bool registerAllowed = (controlByte & 0x80) != 0;
|
||||
|
||||
Services.Add(Encoding.ASCII.GetString(Reader.ReadBytes(Length), 0, Length), RegisterAllowed);
|
||||
services.Add(Encoding.ASCII.GetString(reader.ReadBytes(length), 0, length), registerAllowed);
|
||||
|
||||
ByteReaded += Length + 1;
|
||||
byteReaded += length + 1;
|
||||
}
|
||||
|
||||
this.Services = new ReadOnlyDictionary<string, bool>(Services);
|
||||
Services = new ReadOnlyDictionary<string, bool>(services);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue