From 605a3bf30d7e69838b2078709df2d94f8b62cb11 Mon Sep 17 00:00:00 2001 From: Matt Nadareski Date: Mon, 22 Sep 2025 09:35:00 -0400 Subject: [PATCH] Add a bunch of useful constants --- SabreTools.Models/BDPlus/Constants.cs | 2 ++ SabreTools.Models/BZip2/Constants.cs | 9 +++++++++ SabreTools.Models/CHD/Constants.cs | 2 ++ .../InstallShieldArchiveV3/Constants.cs | 2 ++ SabreTools.Models/LDSCRYPT/Constants.cs | 9 +++++++++ SabreTools.Models/PFF/Constants.cs | 12 ++++++++++++ SabreTools.Models/RAR/Constants.cs | 9 +++++++++ SabreTools.Models/RealArcade/Constants.cs | 13 +++++++++++++ SabreTools.Models/SevenZip/Constants.cs | 7 +++++++ SabreTools.Models/TAR/Constants.cs | 9 +++++++++ SabreTools.Models/TAR/Header.cs | 4 ++-- SabreTools.Models/XZ/Constants.cs | 7 +++++++ 12 files changed, 83 insertions(+), 2 deletions(-) create mode 100644 SabreTools.Models/BZip2/Constants.cs create mode 100644 SabreTools.Models/LDSCRYPT/Constants.cs create mode 100644 SabreTools.Models/RAR/Constants.cs create mode 100644 SabreTools.Models/RealArcade/Constants.cs create mode 100644 SabreTools.Models/SevenZip/Constants.cs create mode 100644 SabreTools.Models/TAR/Constants.cs create mode 100644 SabreTools.Models/XZ/Constants.cs diff --git a/SabreTools.Models/BDPlus/Constants.cs b/SabreTools.Models/BDPlus/Constants.cs index 19c7957..0b357b9 100644 --- a/SabreTools.Models/BDPlus/Constants.cs +++ b/SabreTools.Models/BDPlus/Constants.cs @@ -2,6 +2,8 @@ namespace SabreTools.Models.BDPlus { public static class Constants { + public static readonly byte[] SignatureBytes = [0x42, 0x44, 0x53, 0x56, 0x4D, 0x5F, 0x43, 0x43]; + public const string SignatureString = "BDSVM_CC"; } } \ No newline at end of file diff --git a/SabreTools.Models/BZip2/Constants.cs b/SabreTools.Models/BZip2/Constants.cs new file mode 100644 index 0000000..ca4cfeb --- /dev/null +++ b/SabreTools.Models/BZip2/Constants.cs @@ -0,0 +1,9 @@ +namespace SabreTools.Models.BZip2 +{ + public static class Constants + { + public static readonly byte[] SignatureBytes = [0x42, 0x52, 0x68]; + + public const string SignatureString = "BRh"; + } +} \ No newline at end of file diff --git a/SabreTools.Models/CHD/Constants.cs b/SabreTools.Models/CHD/Constants.cs index 69b6bb1..863c712 100644 --- a/SabreTools.Models/CHD/Constants.cs +++ b/SabreTools.Models/CHD/Constants.cs @@ -2,6 +2,8 @@ namespace SabreTools.Models.CHD { public static class Constants { + public static readonly byte[] SignatureBytes = [0x4D, 0x43, 0x6F, 0x6D, 0x70, 0x72, 0x48, 0x44]; + public const string SignatureString = "MComprHD"; #region Header Sizes diff --git a/SabreTools.Models/InstallShieldArchiveV3/Constants.cs b/SabreTools.Models/InstallShieldArchiveV3/Constants.cs index fbca1ca..3c93a3b 100644 --- a/SabreTools.Models/InstallShieldArchiveV3/Constants.cs +++ b/SabreTools.Models/InstallShieldArchiveV3/Constants.cs @@ -3,5 +3,7 @@ namespace SabreTools.Models.InstallShieldArchiveV3 public static class Constants { public const uint HeaderSignature = 0x8C655D13; + + public static readonly byte[] HeaderSignatureBytes = [0x13, 0x5D, 0x65, 0x8C]; } } \ No newline at end of file diff --git a/SabreTools.Models/LDSCRYPT/Constants.cs b/SabreTools.Models/LDSCRYPT/Constants.cs new file mode 100644 index 0000000..60beb66 --- /dev/null +++ b/SabreTools.Models/LDSCRYPT/Constants.cs @@ -0,0 +1,9 @@ +namespace SabreTools.Models.LDSCRYPT +{ + public static class Constants + { + public static readonly byte[] SignatureBytes = [0x4C, 0x44, 0x53, 0x43, 0x52, 0x59, 0x50, 0x54]; + + public const string SignatureString = "LDSCRYPT"; + } +} \ No newline at end of file diff --git a/SabreTools.Models/PFF/Constants.cs b/SabreTools.Models/PFF/Constants.cs index 40b1050..58bd89a 100644 --- a/SabreTools.Models/PFF/Constants.cs +++ b/SabreTools.Models/PFF/Constants.cs @@ -3,20 +3,32 @@ namespace SabreTools.Models.PFF /// public static class Constants { + public static readonly byte[] Version0SignatureBytes = [0x50, 0x46, 0x46, 0x30]; + public const string Version0SignatureString = "PFF0"; + public const uint Version0HSegmentSize = 0x00000020; // Version 1 not confirmed // public const string Version1SignatureString = "PFF1"; // public const uint Version1SegmentSize = 0x00000020; + public static readonly byte[] Version2SignatureBytes = [0x50, 0x46, 0x46, 0x32]; + public const string Version2SignatureString = "PFF2"; + public const uint Version2SegmentSize = 0x00000020; + public static readonly byte[] Version3SignatureBytes = [0x50, 0x46, 0x46, 0x33]; + public const string Version3SignatureString = "PFF3"; + public const uint Version3SegmentSize = 0x00000024; + public static readonly byte[] Version4SignatureBytes = [0x50, 0x46, 0x46, 0x34]; + public const string Version4SignatureString = "PFF4"; + public const uint Version4SegmentSize = 0x00000028; public const string FooterKingTag = "KING"; diff --git a/SabreTools.Models/RAR/Constants.cs b/SabreTools.Models/RAR/Constants.cs new file mode 100644 index 0000000..f942168 --- /dev/null +++ b/SabreTools.Models/RAR/Constants.cs @@ -0,0 +1,9 @@ +namespace SabreTools.Models.RAR +{ + public static class Constants + { + public static readonly byte[] OldSignatureBytes = [0x52, 0x61, 0x72, 0x21, 0x1A, 0x07, 0x00]; + + public static readonly byte[] NewSignatureBytes = [0x52, 0x61, 0x72, 0x21, 0x1A, 0x07, 0x01, 0x00]; + } +} \ No newline at end of file diff --git a/SabreTools.Models/RealArcade/Constants.cs b/SabreTools.Models/RealArcade/Constants.cs new file mode 100644 index 0000000..7163c08 --- /dev/null +++ b/SabreTools.Models/RealArcade/Constants.cs @@ -0,0 +1,13 @@ +namespace SabreTools.Models.RealArcades +{ + public static class Constants + { + public static readonly byte[] MezzanineSignatureBytes = [0x58, 0x5A, 0x69, 0x70, 0x32, 0x2E, 0x30]; + + public const string MezzanineSignatureString = "XZip2.0"; + + public static readonly byte[] RgsSignatureBytes = [0x52, 0x41, 0x53, 0x47, 0x49, 0x32, 0x2E, 0x30]; + + public const string RgsSignatureString = "RASGI2.0"; + } +} \ No newline at end of file diff --git a/SabreTools.Models/SevenZip/Constants.cs b/SabreTools.Models/SevenZip/Constants.cs new file mode 100644 index 0000000..024a5df --- /dev/null +++ b/SabreTools.Models/SevenZip/Constants.cs @@ -0,0 +1,7 @@ +namespace SabreTools.Models.SevenZip +{ + public static class Constants + { + public static readonly byte[] SignatureBytes = [0x37, 0x7A, 0xBC, 0xAF, 0x27, 0x1C]; + } +} \ No newline at end of file diff --git a/SabreTools.Models/TAR/Constants.cs b/SabreTools.Models/TAR/Constants.cs new file mode 100644 index 0000000..e1dbb75 --- /dev/null +++ b/SabreTools.Models/TAR/Constants.cs @@ -0,0 +1,9 @@ +namespace SabreTools.Models.TAR +{ + public static class Constants + { + public static readonly byte[] UstarSignatureBytes = [0x75, 0x73, 0x74, 0x61, 0x72]; + + public const string UstarSignatureString = "ustar"; + } +} \ No newline at end of file diff --git a/SabreTools.Models/TAR/Header.cs b/SabreTools.Models/TAR/Header.cs index 6bc18d5..99447c0 100644 --- a/SabreTools.Models/TAR/Header.cs +++ b/SabreTools.Models/TAR/Header.cs @@ -68,9 +68,9 @@ namespace SabreTools.Models.TAR #region USTAR Extension /// - /// UStar indicator, "ustar", then NUL + /// UStar indicator, "ustar" /// - [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 6)] + [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 5)] public string? Magic; /// diff --git a/SabreTools.Models/XZ/Constants.cs b/SabreTools.Models/XZ/Constants.cs new file mode 100644 index 0000000..984eda3 --- /dev/null +++ b/SabreTools.Models/XZ/Constants.cs @@ -0,0 +1,7 @@ +namespace SabreTools.Models.XZ +{ + public static class Constants + { + public static readonly byte[] SignatureBytes = [0xFD, 0x37, 0x7A, 0x58, 0x5A, 0x00]; + } +} \ No newline at end of file