mirror of
https://github.com/SabreTools/SabreTools.Serialization.git
synced 2026-07-21 00:05:19 +00:00
Fix issues found during testing
This commit is contained in:
@@ -74,5 +74,7 @@ namespace SabreTools.Data.Models.XboxExecutable
|
||||
/// 16 x 16-byte Signature Keys. An unsigned .XBE can just zero these out.
|
||||
/// </summary>
|
||||
public byte[][] AlternateSignatureKeys { get; set; } = new byte[16][];
|
||||
|
||||
// TODO: Add optional fields from https://github.com/Cxbx-Reloaded/Cxbx-Reloaded/blob/master/src/common/xbe/Xbe.h
|
||||
}
|
||||
}
|
||||
|
||||
@@ -9,19 +9,19 @@ namespace SabreTools.Data.Models.XboxExecutable
|
||||
[Flags]
|
||||
public enum AllowedMediaTypes : uint
|
||||
{
|
||||
XBEIMAGE_MEDIA_TYPE_HARD_DISK = 0x00000001,
|
||||
XBEIMAGE_MEDIA_TYPE_DVD_X2 = 0x00000002,
|
||||
XBEIMAGE_MEDIA_TYPE_DVD_CD = 0x00000004,
|
||||
XBEIMAGE_MEDIA_TYPE_CD = 0x00000008,
|
||||
XBEIMAGE_MEDIA_TYPE_DVD_5_RO = 0x00000010,
|
||||
XBEIMAGE_MEDIA_TYPE_DVD_9_RO = 0x00000020,
|
||||
XBEIMAGE_MEDIA_TYPE_DVD_5_RW = 0x00000040,
|
||||
XBEIMAGE_MEDIA_TYPE_DVD_9_RW = 0x00000080,
|
||||
XBEIMAGE_MEDIA_TYPE_DONGLE = 0x00000100,
|
||||
XBEIMAGE_MEDIA_TYPE_MEDIA_BOARD = 0x00000200,
|
||||
XBEIMAGE_MEDIA_TYPE_NONSECURE_HARD_DISK = 0x40000000,
|
||||
XBEIMAGE_MEDIA_TYPE_NONSECURE_MODE = 0x80000000,
|
||||
XBEIMAGE_MEDIA_TYPE_MEDIA_MASK = 0x00FFFFFF,
|
||||
HARD_DISK = 0x00000001,
|
||||
DVD_X2 = 0x00000002,
|
||||
DVD_CD = 0x00000004,
|
||||
CD = 0x00000008,
|
||||
DVD_5_RO = 0x00000010,
|
||||
DVD_9_RO = 0x00000020,
|
||||
DVD_5_RW = 0x00000040,
|
||||
DVD_9_RW = 0x00000080,
|
||||
DONGLE = 0x00000100,
|
||||
MEDIA_BOARD = 0x00000200,
|
||||
NONSECURE_HARD_DISK = 0x40000000,
|
||||
NONSECURE_MODE = 0x80000000,
|
||||
MEDIA_MASK = 0x00FFFFFF,
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -31,10 +31,10 @@ namespace SabreTools.Data.Models.XboxExecutable
|
||||
[Flags]
|
||||
public enum GameRegion : uint
|
||||
{
|
||||
XBEIMAGE_GAME_REGION_NA = 0x00000001,
|
||||
XBEIMAGE_GAME_REGION_JAPAN = 0x00000002,
|
||||
XBEIMAGE_GAME_REGION_RESTOFWORLD = 0x00000004,
|
||||
XBEIMAGE_GAME_REGION_MANUFACTURING = 0x80000000,
|
||||
NA = 0x00000001,
|
||||
JAPAN = 0x00000002,
|
||||
RESTOFWORLD = 0x00000004,
|
||||
MANUFACTURING = 0x80000000,
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -55,7 +55,7 @@ namespace SabreTools.Data.Models.XboxExecutable
|
||||
/// </summary>
|
||||
/// <see href="https://www.caustik.com/cxbx/download/xbe.htm"/>
|
||||
[Flags]
|
||||
public enum LibraryFlags : uint
|
||||
public enum LibraryFlags : ushort
|
||||
{
|
||||
/// <remarks>13-Bit Mask</remarks>
|
||||
QFEVersion = 0x1FFF,
|
||||
|
||||
@@ -236,7 +236,7 @@ namespace SabreTools.Serialization.Readers
|
||||
obj.MajorVersion = data.ReadUInt16LittleEndian();
|
||||
obj.MinorVersion = data.ReadUInt16LittleEndian();
|
||||
obj.BuildVersion = data.ReadUInt16LittleEndian();
|
||||
obj.LibraryFlags = (LibraryFlags)data.ReadUInt32LittleEndian();
|
||||
obj.LibraryFlags = (LibraryFlags)data.ReadUInt16LittleEndian();
|
||||
|
||||
return obj;
|
||||
}
|
||||
|
||||
@@ -23,8 +23,8 @@ namespace SabreTools.Serialization.Wrappers
|
||||
Print(builder, Model.SectionHeaders);
|
||||
Print(builder, Model.ThreadLocalStorage);
|
||||
Print(builder, Model.LibraryVersions);
|
||||
Print(builder, Model.KernelLibraryVersion, "Kernel ", 2);
|
||||
Print(builder, Model.XAPILibraryVersion, "XAPI ", 2);
|
||||
Print(builder, Model.KernelLibraryVersion, "Kernel ", string.Empty, 2);
|
||||
Print(builder, Model.XAPILibraryVersion, "XAPI ", string.Empty, 2);
|
||||
}
|
||||
|
||||
private static void Print(StringBuilder builder, Certificate? certificate)
|
||||
@@ -42,7 +42,7 @@ namespace SabreTools.Serialization.Wrappers
|
||||
builder.AppendLine(certificate.TimeDate, " Time/Date stamp");
|
||||
builder.AppendLine(certificate.TitleID, " Title ID");
|
||||
builder.AppendLine(certificate.TitleName, " Title name");
|
||||
builder.AppendLine(Encoding.Unicode.GetString(certificate.TitleName), " Title name (Unicode)");
|
||||
builder.AppendLine(Encoding.Unicode.GetString(certificate.TitleName).TrimEnd('\0'), " Title name (Unicode)");
|
||||
builder.AppendLine(certificate.AlternativeTitleIDs, " Alternative title IDs");
|
||||
builder.AppendLine($" Allowed media types: {certificate.AllowedMediaTypes} (0x{certificate.AllowedMediaTypes:X})");
|
||||
builder.AppendLine($" Game region: {certificate.GameRegion} (0x{certificate.GameRegion:X})");
|
||||
@@ -100,9 +100,9 @@ namespace SabreTools.Serialization.Wrappers
|
||||
builder.AppendLine();
|
||||
}
|
||||
|
||||
private static void Print(StringBuilder builder, LibraryVersion? libraryVersion, string prefix, int padding)
|
||||
private static void Print(StringBuilder builder, LibraryVersion? libraryVersion, string prefix, string postfix, int padding)
|
||||
{
|
||||
builder.AppendLine($"{"".PadLeft(padding)}{prefix}Library Version Information:");
|
||||
builder.AppendLine($"{"".PadLeft(padding)}{prefix}Library Version Information{postfix}:");
|
||||
builder.AppendLine($"{"".PadLeft(padding)}-------------------------");
|
||||
if (libraryVersion is null)
|
||||
{
|
||||
@@ -112,7 +112,7 @@ namespace SabreTools.Serialization.Wrappers
|
||||
}
|
||||
|
||||
builder.AppendLine(libraryVersion.LibraryName, $"{"".PadLeft(padding)}Library name");
|
||||
builder.AppendLine(Encoding.ASCII.GetString(libraryVersion.LibraryName), $"{"".PadLeft(padding)}Library name (ASCII)");
|
||||
builder.AppendLine(Encoding.ASCII.GetString(libraryVersion.LibraryName).TrimEnd('\0'), $"{"".PadLeft(padding)}Library name (ASCII)");
|
||||
builder.AppendLine(libraryVersion.MajorVersion, $"{"".PadLeft(padding)}Major version");
|
||||
builder.AppendLine(libraryVersion.MinorVersion, $"{"".PadLeft(padding)}Minor version");
|
||||
builder.AppendLine(libraryVersion.BuildVersion, $"{"".PadLeft(padding)}Build version");
|
||||
@@ -134,7 +134,7 @@ namespace SabreTools.Serialization.Wrappers
|
||||
for (int i = 0; i < entries!.Length; i++)
|
||||
{
|
||||
var entry = entries[i];
|
||||
Print(builder, entry, string.Empty, 4);
|
||||
Print(builder, entry, string.Empty, $" {i}", 4);
|
||||
}
|
||||
|
||||
builder.AppendLine();
|
||||
|
||||
Reference in New Issue
Block a user