diff --git a/SabreTools.Models/ClrMamePro/Archive.cs b/SabreTools.Models/ClrMamePro/Archive.cs new file mode 100644 index 00000000..0d0c3d02 --- /dev/null +++ b/SabreTools.Models/ClrMamePro/Archive.cs @@ -0,0 +1,9 @@ +namespace SabreTools.Models.ClrMamePro +{ + /// archive + public class Archive + { + /// name + public string Name { get; set; } + } +} \ No newline at end of file diff --git a/SabreTools.Models/ClrMamePro/BiosSet.cs b/SabreTools.Models/ClrMamePro/BiosSet.cs new file mode 100644 index 00000000..1ed7804a --- /dev/null +++ b/SabreTools.Models/ClrMamePro/BiosSet.cs @@ -0,0 +1,15 @@ +namespace SabreTools.Models.ClrMamePro +{ + /// biosset + public class BiosSet + { + /// name + public string Name { get; set; } + + /// description + public string Description { get; set; } + + /// default + public string? Default { get; set; } + } +} \ No newline at end of file diff --git a/SabreTools.Models/ClrMamePro/ClrMamePro.cs b/SabreTools.Models/ClrMamePro/ClrMamePro.cs new file mode 100644 index 00000000..27916c10 --- /dev/null +++ b/SabreTools.Models/ClrMamePro/ClrMamePro.cs @@ -0,0 +1,51 @@ +namespace SabreTools.Models.ClrMamePro +{ + /// clrmamepro + public class ClrMamePro + { + /// name + public string? Name { get; set; } + + /// description + public string? Description { get; set; } + + /// rootdir + public string? RootDir { get; set; } + + /// category + public string? Category { get; set; } + + /// version + public string? Version { get; set; } + + /// date + public string? Date { get; set; } + + /// author + public string? Author { get; set; } + + /// homepage + public string? Homepage { get; set; } + + /// url + public string? Url { get; set; } + + /// comment + public string? Comment { get; set; } + + /// header + public string? Header { get; set; } + + /// type + public string? Type { get; set; } + + /// forcemerging + public string? ForceMerging { get; set; } + + /// forcezipping + public string? ForceZipping { get; set; } + + /// forcepacking + public string? ForcePacking { get; set; } + } +} \ No newline at end of file diff --git a/SabreTools.Models/ClrMamePro/Disk.cs b/SabreTools.Models/ClrMamePro/Disk.cs new file mode 100644 index 00000000..91092fb5 --- /dev/null +++ b/SabreTools.Models/ClrMamePro/Disk.cs @@ -0,0 +1,21 @@ +namespace SabreTools.Models.ClrMamePro +{ + /// disk + public class Disk + { + /// name + public string Name { get; set; } + + /// md5 + public string? MD5 { get; set; } + + /// sha1 + public string? SHA1 { get; set; } + + /// merge + public string? Merge { get; set; } + + /// status + public string? Status { get; set; } + } +} \ No newline at end of file diff --git a/SabreTools.Models/ClrMamePro/Game.cs b/SabreTools.Models/ClrMamePro/Game.cs new file mode 100644 index 00000000..273979df --- /dev/null +++ b/SabreTools.Models/ClrMamePro/Game.cs @@ -0,0 +1,55 @@ +namespace SabreTools.Models.ClrMamePro +{ + /// game + public class Game + { + /// name + public string? Name { get; set; } + + /// description + public string? Description { get; set; } + + /// year + public string? Year { get; set; } + + /// manufacturer + public string? Manufacturer { get; set; } + + /// category + public string? Category { get; set; } + + /// cloneof + public string? CloneOf { get; set; } + + /// romof + public string? RomOf { get; set; } + + /// sampleof + public string? SampleOf { get; set; } + + /// release + public Release[]? Release { get; set; } + + /// biosset + public BiosSet[]? BiosSet { get; set; } + + /// rom + public Rom[]? Rom { get; set; } + + /// disk + public Disk[]? Disk { get; set; } + + /// sample + public Sample[]? Sample { get; set; } + + /// archive + public Archive[]? Archive { get; set; } + + #region Aaru Extensions + + /// media; Appears after Disk + public Media[]? Media { get; set; } + + #endregion + } +} \ No newline at end of file diff --git a/SabreTools.Models/ClrMamePro/Machine.cs b/SabreTools.Models/ClrMamePro/Machine.cs new file mode 100644 index 00000000..5d98a57d --- /dev/null +++ b/SabreTools.Models/ClrMamePro/Machine.cs @@ -0,0 +1,55 @@ +namespace SabreTools.Models.ClrMamePro +{ + /// machine + public class Machine + { + /// name + public string? Name { get; set; } + + /// description + public string? Description { get; set; } + + /// year + public string? Year { get; set; } + + /// manufacturer + public string? Manufacturer { get; set; } + + /// category + public string? Category { get; set; } + + /// cloneof + public string? CloneOf { get; set; } + + /// romof + public string? RomOf { get; set; } + + /// sampleof + public string? SampleOf { get; set; } + + /// release + public Release[]? Release { get; set; } + + /// biosset + public BiosSet[]? BiosSet { get; set; } + + /// rom + public Rom[]? Rom { get; set; } + + /// disk + public Disk[]? Disk { get; set; } + + /// sample + public Sample[]? Sample { get; set; } + + /// archive + public Archive[]? Archive { get; set; } + + #region Aaru Extensions + + /// media; Appears after Disk + public Media[]? Media { get; set; } + + #endregion + } +} \ No newline at end of file diff --git a/SabreTools.Models/ClrMamePro/Media.cs b/SabreTools.Models/ClrMamePro/Media.cs new file mode 100644 index 00000000..2e953474 --- /dev/null +++ b/SabreTools.Models/ClrMamePro/Media.cs @@ -0,0 +1,21 @@ +namespace SabreTools.Models.ClrMamePro +{ + /// media + public class Media + { + /// name + public string Name { get; set; } + + /// md5 + public string? MD5 { get; set; } + + /// sha1 + public string? SHA1 { get; set; } + + /// sha256 + public string? SHA256 { get; set; } + + /// spamsum + public string? SpamSum { get; set; } + } +} \ No newline at end of file diff --git a/SabreTools.Models/ClrMamePro/Release.cs b/SabreTools.Models/ClrMamePro/Release.cs new file mode 100644 index 00000000..a3756858 --- /dev/null +++ b/SabreTools.Models/ClrMamePro/Release.cs @@ -0,0 +1,21 @@ +namespace SabreTools.Models.ClrMamePro +{ + /// release + public class Release + { + /// name + public string Name { get; set; } + + /// region + public string Region { get; set; } + + /// language + public string? Language { get; set; } + + /// date + public string? Date { get; set; } + + /// default + public string? Default { get; set; } + } +} \ No newline at end of file diff --git a/SabreTools.Models/ClrMamePro/Resource.cs b/SabreTools.Models/ClrMamePro/Resource.cs new file mode 100644 index 00000000..380df337 --- /dev/null +++ b/SabreTools.Models/ClrMamePro/Resource.cs @@ -0,0 +1,55 @@ +namespace SabreTools.Models.ClrMamePro +{ + /// resource + public class Resource + { + /// name + public string? Name { get; set; } + + /// description + public string? Description { get; set; } + + /// year + public string? Year { get; set; } + + /// manufacturer + public string? Manufacturer { get; set; } + + /// category + public string? Category { get; set; } + + /// cloneof + public string? CloneOf { get; set; } + + /// romof + public string? RomOf { get; set; } + + /// sampleof + public string? SampleOf { get; set; } + + /// release + public Release[]? Release { get; set; } + + /// biosset + public BiosSet[]? BiosSet { get; set; } + + /// rom + public Rom[]? Rom { get; set; } + + /// disk + public Disk[]? Disk { get; set; } + + /// sample + public Sample[]? Sample { get; set; } + + /// archive + public Archive[]? Archive { get; set; } + + #region Aaru Extensions + + /// media; Appears after Disk + public Media[]? Media { get; set; } + + #endregion + } +} \ No newline at end of file diff --git a/SabreTools.Models/ClrMamePro/Rom.cs b/SabreTools.Models/ClrMamePro/Rom.cs new file mode 100644 index 00000000..89fd04f4 --- /dev/null +++ b/SabreTools.Models/ClrMamePro/Rom.cs @@ -0,0 +1,76 @@ +namespace SabreTools.Models.ClrMamePro +{ + /// rom + public class Rom + { + /// name + public string Name { get; set; } + + /// size + public long Size { get; set; } + + /// crc + public string? CRC { get; set; } + + /// md5 + public string? MD5 { get; set; } + + /// sha1 + public string? SHA1 { get; set; } + + /// merge + public string? Merge { get; set; } + + /// status + public string? Status { get; set; } + + /// date + public string? Date { get; set; } + + #region Hash Extensions + + /// sha256; Also in No-Intro spec; Appears after SHA1 + public string? SHA256 { get; set; } + + /// sha384; Appears after SHA256 + public string? SHA384 { get; set; } + + /// sha512; Appears after SHA384 + public string? SHA512 { get; set; } + + /// spamsum; Appears after SHA512 + public string? SpamSum { get; set; } + + #endregion + + #region DiscImgeCreator Extensions + + /// xxh3_64; Appears after SpamSum + public string? xxHash364 { get; set; } + + /// xxh3_128; Appears after xxHash364 + public string? xxHash3128 { get; set; } + + #endregion + + #region No-Intro Extensions + + /// serial; Appears after Status + public string? Serial { get; set; } + + /// header; Appears after Serial + public string? Header { get; set; } + + #endregion + + #region RomVault Extensions + + /// inverted; Boolean; Appears after Date + public bool? Inverted { get; set; } + + /// mia; Boolean; Appears after Inverted + public bool? MIA { get; set; } + + #endregion + } +} \ No newline at end of file diff --git a/SabreTools.Models/ClrMamePro/RomVault.cs b/SabreTools.Models/ClrMamePro/RomVault.cs new file mode 100644 index 00000000..7975ff40 --- /dev/null +++ b/SabreTools.Models/ClrMamePro/RomVault.cs @@ -0,0 +1,51 @@ +namespace SabreTools.Models.ClrMamePro +{ + /// romvault + public class RomVault + { + /// name + public string? Name { get; set; } + + /// description + public string? Description { get; set; } + + /// rootdir + public string? RootDir { get; set; } + + /// category + public string? Category { get; set; } + + /// version + public string? Version { get; set; } + + /// date + public string? Date { get; set; } + + /// author + public string? Author { get; set; } + + /// homepage + public string? Homepage { get; set; } + + /// url + public string? Url { get; set; } + + /// comment + public string? Comment { get; set; } + + /// header + public string? Header { get; set; } + + /// type + public string? Type { get; set; } + + /// forcemerging + public string? ForceMerging { get; set; } + + /// forcezipping + public string? ForceZipping { get; set; } + + /// forcepacking + public string? ForcePacking { get; set; } + } +} \ No newline at end of file diff --git a/SabreTools.Models/ClrMamePro/Sample.cs b/SabreTools.Models/ClrMamePro/Sample.cs new file mode 100644 index 00000000..18652514 --- /dev/null +++ b/SabreTools.Models/ClrMamePro/Sample.cs @@ -0,0 +1,9 @@ +namespace SabreTools.Models.ClrMamePro +{ + /// sample + public class Sample + { + /// name + public string Name { get; set; } + } +} \ No newline at end of file diff --git a/SabreTools.Models/ClrMamePro/Set.cs b/SabreTools.Models/ClrMamePro/Set.cs new file mode 100644 index 00000000..f727ce58 --- /dev/null +++ b/SabreTools.Models/ClrMamePro/Set.cs @@ -0,0 +1,55 @@ +namespace SabreTools.Models.ClrMamePro +{ + /// set + public class Set + { + /// name + public string? Name { get; set; } + + /// description + public string? Description { get; set; } + + /// year + public string? Year { get; set; } + + /// manufacturer + public string? Manufacturer { get; set; } + + /// category + public string? Category { get; set; } + + /// cloneof + public string? CloneOf { get; set; } + + /// romof + public string? RomOf { get; set; } + + /// sampleof + public string? SampleOf { get; set; } + + /// release + public Release[]? Release { get; set; } + + /// biosset + public BiosSet[]? BiosSet { get; set; } + + /// rom + public Rom[]? Rom { get; set; } + + /// disk + public Disk[]? Disk { get; set; } + + /// sample + public Sample[]? Sample { get; set; } + + /// archive + public Archive[]? Archive { get; set; } + + #region Aaru Extensions + + /// media; Appears after Disk + public Media[]? Media { get; set; } + + #endregion + } +} \ No newline at end of file diff --git a/SabreTools.Models/Hashfile/Hashfile.cs b/SabreTools.Models/Hashfile/Hashfile.cs new file mode 100644 index 00000000..3dd5f4e2 --- /dev/null +++ b/SabreTools.Models/Hashfile/Hashfile.cs @@ -0,0 +1,20 @@ +namespace SabreTools.Models.Hashfile +{ + /// Hashfiles can only contain one type of hash at a time + public class Hashfile + { + public SFV[]? SFV { get; set; } + + public MD5[]? MD5 { get; set; } + + public SHA1[]? SHA1 { get; set; } + + public SHA256[]? SHA256 { get; set; } + + public SHA384[]? SHA384 { get; set; } + + public SHA512[]? SHA512 { get; set; } + + public SpamSum[]? SpamSum { get; set; } + } +} \ No newline at end of file diff --git a/SabreTools.Models/Hashfile/MD5.cs b/SabreTools.Models/Hashfile/MD5.cs new file mode 100644 index 00000000..45a8fa83 --- /dev/null +++ b/SabreTools.Models/Hashfile/MD5.cs @@ -0,0 +1,12 @@ +namespace SabreTools.Models.Hashfile +{ + /// + /// MD5 File + /// + public class MD5 + { + public string Hash { get; set; } + + public string File { get; set; } + } +} \ No newline at end of file diff --git a/SabreTools.Models/Hashfile/SFV.cs b/SabreTools.Models/Hashfile/SFV.cs new file mode 100644 index 00000000..50ec621e --- /dev/null +++ b/SabreTools.Models/Hashfile/SFV.cs @@ -0,0 +1,12 @@ +namespace SabreTools.Models.Hashfile +{ + /// + /// File CRC + /// + public class SFV + { + public string File { get; set; } + + public string Hash { get; set; } + } +} \ No newline at end of file diff --git a/SabreTools.Models/Hashfile/SHA1.cs b/SabreTools.Models/Hashfile/SHA1.cs new file mode 100644 index 00000000..df7008a7 --- /dev/null +++ b/SabreTools.Models/Hashfile/SHA1.cs @@ -0,0 +1,12 @@ +namespace SabreTools.Models.Hashfile +{ + /// + /// SHA-1 File + /// + public class SHA1 + { + public string Hash { get; set; } + + public string File { get; set; } + } +} \ No newline at end of file diff --git a/SabreTools.Models/Hashfile/SHA256.cs b/SabreTools.Models/Hashfile/SHA256.cs new file mode 100644 index 00000000..1761443b --- /dev/null +++ b/SabreTools.Models/Hashfile/SHA256.cs @@ -0,0 +1,12 @@ +namespace SabreTools.Models.Hashfile +{ + /// + /// SHA-256 File + /// + public class SHA256 + { + public string Hash { get; set; } + + public string File { get; set; } + } +} \ No newline at end of file diff --git a/SabreTools.Models/Hashfile/SHA384.cs b/SabreTools.Models/Hashfile/SHA384.cs new file mode 100644 index 00000000..ab393ecf --- /dev/null +++ b/SabreTools.Models/Hashfile/SHA384.cs @@ -0,0 +1,12 @@ +namespace SabreTools.Models.Hashfile +{ + /// + /// SHA-384 File + /// + public class SHA384 + { + public string Hash { get; set; } + + public string File { get; set; } + } +} \ No newline at end of file diff --git a/SabreTools.Models/Hashfile/SHA512.cs b/SabreTools.Models/Hashfile/SHA512.cs new file mode 100644 index 00000000..bcd2055c --- /dev/null +++ b/SabreTools.Models/Hashfile/SHA512.cs @@ -0,0 +1,12 @@ +namespace SabreTools.Models.Hashfile +{ + /// + /// SHA-512 File + /// + public class SHA512 + { + public string Hash { get; set; } + + public string File { get; set; } + } +} \ No newline at end of file diff --git a/SabreTools.Models/Hashfile/SpamSum.cs b/SabreTools.Models/Hashfile/SpamSum.cs new file mode 100644 index 00000000..c3a9363e --- /dev/null +++ b/SabreTools.Models/Hashfile/SpamSum.cs @@ -0,0 +1,12 @@ +namespace SabreTools.Models.Hashfile +{ + /// + /// SpamSum File + /// + public class SpamSum + { + public string Hash { get; set; } + + public string File { get; set; } + } +} \ No newline at end of file