More case changes on NPDM
This commit is contained in:
parent
7aff3f9b93
commit
fcd72d24de
3 changed files with 69 additions and 3 deletions
|
@ -33,14 +33,14 @@ namespace Ryujinx.HLE.Loaders.Npdm
|
|||
//Reserved.
|
||||
Stream.Seek(8, SeekOrigin.Current);
|
||||
|
||||
int FSAccessHeaderOffset = Reader.ReadInt32();
|
||||
int FSAccessHeaderSize = 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;
|
||||
|
|
28
Ryujinx.HLE/Loaders/Npdm/FsAccessControl.cs
Normal file
28
Ryujinx.HLE/Loaders/Npdm/FsAccessControl.cs
Normal file
|
@ -0,0 +1,28 @@
|
|||
using System.IO;
|
||||
|
||||
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 FsAccessControl(Stream Stream, int Offset, int Size)
|
||||
{
|
||||
Stream.Seek(Offset, SeekOrigin.Begin);
|
||||
|
||||
BinaryReader Reader = new BinaryReader(Stream);
|
||||
|
||||
Version = Reader.ReadInt32();
|
||||
PermissionsBitmask = Reader.ReadUInt64();
|
||||
Unknown1 = Reader.ReadInt32();
|
||||
Unknown2 = Reader.ReadInt32();
|
||||
Unknown3 = Reader.ReadInt32();
|
||||
Unknown4 = Reader.ReadInt32();
|
||||
}
|
||||
}
|
||||
}
|
38
Ryujinx.HLE/Loaders/Npdm/FsAccessHeader.cs
Normal file
38
Ryujinx.HLE/Loaders/Npdm/FsAccessHeader.cs
Normal file
|
@ -0,0 +1,38 @@
|
|||
using System;
|
||||
using System.IO;
|
||||
|
||||
using Ryujinx.HLE.Exceptions;
|
||||
|
||||
namespace Ryujinx.HLE.Loaders.Npdm
|
||||
{
|
||||
class FsAccessHeader
|
||||
{
|
||||
public int Version { get; private set; }
|
||||
public ulong PermissionsBitmask { get; private set; }
|
||||
|
||||
public FsAccessHeader(Stream Stream, int Offset, int Size)
|
||||
{
|
||||
Stream.Seek(Offset, SeekOrigin.Begin);
|
||||
|
||||
BinaryReader Reader = new BinaryReader(Stream);
|
||||
|
||||
Version = Reader.ReadInt32();
|
||||
PermissionsBitmask = Reader.ReadUInt64();
|
||||
|
||||
int DataSize = Reader.ReadInt32();
|
||||
|
||||
if (DataSize != 0x1c)
|
||||
{
|
||||
throw new InvalidNpdmException("FsAccessHeader is corrupted!");
|
||||
}
|
||||
|
||||
int ContentOwnerIdSize = Reader.ReadInt32();
|
||||
int DataAndContentOwnerIdSize = Reader.ReadInt32();
|
||||
|
||||
if (DataAndContentOwnerIdSize != 0x1c)
|
||||
{
|
||||
throw new NotImplementedException("ContentOwnerId section is not implemented!");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
Loading…
Add table
Reference in a new issue