diff --git a/SabreTools.Data.Models/NoIntroDatabase/Archive.cs b/SabreTools.Data.Models/NoIntroDatabase/Archive.cs new file mode 100644 index 00000000..adb12582 --- /dev/null +++ b/SabreTools.Data.Models/NoIntroDatabase/Archive.cs @@ -0,0 +1,119 @@ +using System.Xml; +using System.Xml.Serialization; + +namespace SabreTools.Data.Models.NoIntroDatabase +{ + [XmlRoot("archive")] + public class Archive + { + [XmlAttribute("number")] + public string? Number { get; set; } + + [XmlAttribute("clone")] + public string? Clone { get; set; } + + [XmlAttribute("regparent")] + public string? RegParent { get; set; } + + [XmlAttribute("mergeof")] + public string? MergeOf { get; set; } + + [XmlAttribute("mergename")] + public string? MergeName { get; set; } + + [XmlAttribute("name")] + public string? Name { get; set; } + + [XmlAttribute("name_alt")] + public string? NameAlt { get; set; } + + [XmlAttribute("region")] + public string? Region { get; set; } + + [XmlAttribute("languages")] + public string? Languages { get; set; } + + /// byte + [XmlAttribute("showlang")] + public string? ShowLang { get; set; } + + [XmlAttribute("langchecked")] + public string? LangChecked { get; set; } + + [XmlAttribute("version1")] + public string? Version1 { get; set; } + + [XmlAttribute("version2")] + public string? Version2 { get; set; } + + [XmlAttribute("devstatus")] + public string? DevStatus { get; set; } + + [XmlAttribute("additional")] + public string? Additional { get; set; } + + [XmlAttribute("special1")] + public string? Special1 { get; set; } + + [XmlAttribute("special2")] + public string? Special2 { get; set; } + + /// byte + [XmlAttribute("alt")] + public string? Alt { get; set; } + + [XmlAttribute("gameid1")] + public string? GameId1 { get; set; } + + [XmlAttribute("gameid2")] + public string? GameId2 { get; set; } + + [XmlAttribute("description")] + public string? Description { get; set; } + + /// byte + [XmlAttribute("bios")] + public string? Bios { get; set; } + + /// byte + [XmlAttribute("licensed")] + public string? Licensed { get; set; } + + /// byte + [XmlAttribute("pirate")] + public string? Pirate { get; set; } + + /// byte + [XmlAttribute("physical")] + public string? Physical { get; set; } + + /// byte + [XmlAttribute("complete")] + public string? Complete { get; set; } + + /// byte + [XmlAttribute("adult")] + public string? Adult { get; set; } + + /// byte + [XmlAttribute("dat")] + public string? Dat { get; set; } + + /// byte + [XmlAttribute("listed")] + public string? Listed { get; set; } + + /// byte + [XmlAttribute("private")] + public string? Private { get; set; } + + [XmlAttribute("sticky_note")] + public string? StickyNote { get; set; } + + [XmlAttribute("datter_note")] + public string? DatterNote { get; set; } + + [XmlAttribute("categories")] + public string? Categories { get; set; } + } +} diff --git a/SabreTools.Data.Models/NoIntroDatabase/Datafile.cs b/SabreTools.Data.Models/NoIntroDatabase/Datafile.cs new file mode 100644 index 00000000..bf7b0a95 --- /dev/null +++ b/SabreTools.Data.Models/NoIntroDatabase/Datafile.cs @@ -0,0 +1,12 @@ +using System.Xml; +using System.Xml.Serialization; + +namespace SabreTools.Data.Models.NoIntroDatabase +{ + [XmlRoot("datafile")] + public class Datafile + { + [XmlElement("game", typeof(Game))] + public Game[]? Game { get; set; } + } +} diff --git a/SabreTools.Data.Models/NoIntroDatabase/File.cs b/SabreTools.Data.Models/NoIntroDatabase/File.cs new file mode 100644 index 00000000..9421c4bf --- /dev/null +++ b/SabreTools.Data.Models/NoIntroDatabase/File.cs @@ -0,0 +1,88 @@ +using System.Xml; +using System.Xml.Serialization; + +namespace SabreTools.Data.Models.NoIntroDatabase +{ + [XmlRoot("file")] + public class File + { + [XmlAttribute("id")] + public string? Id { get; set; } + + [XmlAttribute("append_to_source_id")] + public string? AppendToSourceId { get; set; } + + [XmlAttribute("forcename")] + public string? ForceName { get; set; } + + [XmlAttribute("forcescenename")] + public string? ForceSceneName { get; set; } + + /// byte + [XmlAttribute("emptydir")] + public string? EmptyDir { get; set; } + + [XmlAttribute("extension")] + public string? Extension { get; set; } + + [XmlAttribute("item")] + public string? Item { get; set; } + + [XmlAttribute("date")] + public string? Date { get; set; } + + [XmlAttribute("format")] + public string? Format { get; set; } + + [XmlAttribute("note")] + public string? Note { get; set; } + + [XmlAttribute("filter")] + public string? Filter { get; set; } + + [XmlAttribute("version")] + public string? Version { get; set; } + + [XmlAttribute("update_type")] + public string? UpdateType { get; set; } + + [XmlAttribute("size")] + public string? Size { get; set; } + + [XmlAttribute("crc32")] + public string? CRC32 { get; set; } + + [XmlAttribute("md5")] + public string? MD5 { get; set; } + + [XmlAttribute("sha1")] + public string? SHA1 { get; set; } + + [XmlAttribute("sha256")] + public string? SHA256 { get; set; } + + [XmlAttribute("serial")] + public string? Serial { get; set; } + + [XmlAttribute("header")] + public string? Header { get; set; } + + /// byte + [XmlAttribute("bad")] + public string? Bad { get; set; } + + /// byte + [XmlAttribute("mia")] + public string? MIA { get; set; } + + /// byte + [XmlAttribute("unique")] + public string? Unique { get; set; } + + [XmlAttribute("mergename")] + public string? MergeName { get; set; } + + [XmlAttribute("unique_attachment")] + public string? UniqueAttachment { get; set; } + } +} diff --git a/SabreTools.Data.Models/NoIntroDatabase/Game.cs b/SabreTools.Data.Models/NoIntroDatabase/Game.cs new file mode 100644 index 00000000..97d65850 --- /dev/null +++ b/SabreTools.Data.Models/NoIntroDatabase/Game.cs @@ -0,0 +1,24 @@ +using System.Xml; +using System.Xml.Serialization; + +namespace SabreTools.Data.Models.NoIntroDatabase +{ + [XmlRoot("game")] + public class Game + { + [XmlAttribute("name")] + public string? Name { get; set; } + + [XmlElement("archive", typeof(Archive))] + public Archive? Archive { get; set; } + + [XmlElement("media", typeof(Media))] + public Media[]? Media { get; set; } + + [XmlElement("source", typeof(Source))] + public Source[]? Source { get; set; } + + [XmlElement("release", typeof(Release))] + public Release[]? Release { get; set; } + } +} diff --git a/SabreTools.Data.Models/NoIntroDatabase/Media.cs b/SabreTools.Data.Models/NoIntroDatabase/Media.cs new file mode 100644 index 00000000..89556081 --- /dev/null +++ b/SabreTools.Data.Models/NoIntroDatabase/Media.cs @@ -0,0 +1,10 @@ +using System.Xml.Serialization; + +namespace SabreTools.Data.Models.NoIntroDatabase +{ + [XmlRoot("media")] + public class Media + { + // This item is empty + } +} diff --git a/SabreTools.Data.Models/NoIntroDatabase/Release.cs b/SabreTools.Data.Models/NoIntroDatabase/Release.cs new file mode 100644 index 00000000..d6488ae2 --- /dev/null +++ b/SabreTools.Data.Models/NoIntroDatabase/Release.cs @@ -0,0 +1,19 @@ +using System.Xml; +using System.Xml.Serialization; + +namespace SabreTools.Data.Models.NoIntroDatabase +{ + [XmlRoot("release")] + public class Release + { + [Required] + [XmlElement("details", typeof(ReleaseDetails))] + public ReleaseDetails? Details { get; set; } + + [XmlElement("serials", typeof(Serials))] + public Serials? Serials { get; set; } + + [XmlElement("file", typeof(File))] + public File[]? File { get; set; } + } +} diff --git a/SabreTools.Data.Models/NoIntroDatabase/ReleaseDetails.cs b/SabreTools.Data.Models/NoIntroDatabase/ReleaseDetails.cs new file mode 100644 index 00000000..c3c19ef5 --- /dev/null +++ b/SabreTools.Data.Models/NoIntroDatabase/ReleaseDetails.cs @@ -0,0 +1,57 @@ +using System.Xml; +using System.Xml.Serialization; + +namespace SabreTools.Data.Models.NoIntroDatabase +{ + [XmlRoot("details")] + public class ReleaseDetails + { + [XmlAttribute("id")] + public string? Id { get; set; } + + [XmlAttribute("append_to_number")] + public string? AppendToNumber { get; set; } + + [XmlAttribute("date")] + public string? Date { get; set; } + + [XmlAttribute("originalformat")] + public string? OriginalFormat { get; set; } + + [XmlAttribute("group")] + public string? Group { get; set; } + + [XmlAttribute("dirname")] + public string? DirName { get; set; } + + [XmlAttribute("nfoname")] + public string? NfoName { get; set; } + + [XmlAttribute("nfosize")] + public string? NfoSize { get; set; } + + [XmlAttribute("nfocrc")] + public string? NfoCRC { get; set; } + + [XmlAttribute("archivename")] + public string? ArchiveName { get; set; } + + [XmlAttribute("rominfo")] + public string? RomInfo { get; set; } + + [XmlAttribute("category")] + public string? Category { get; set; } + + [XmlAttribute("comment")] + public string? Comment { get; set; } + + [XmlAttribute("tool")] + public string? Tool { get; set; } + + [XmlAttribute("region")] + public string? Region { get; set; } + + [XmlAttribute("origin")] + public string? Origin { get; set; } + } +} diff --git a/SabreTools.Data.Models/NoIntroDatabase/Serials.cs b/SabreTools.Data.Models/NoIntroDatabase/Serials.cs new file mode 100644 index 00000000..37787bec --- /dev/null +++ b/SabreTools.Data.Models/NoIntroDatabase/Serials.cs @@ -0,0 +1,50 @@ +using System.Xml.Serialization; + +namespace SabreTools.Data.Models.NoIntroDatabase +{ + [XmlRoot("serials")] + public class Serials + { + [XmlAttribute("media_serial1")] + public string? MediaSerial1 { get; set; } + + [XmlAttribute("media_serial2")] + public string? MediaSerial2 { get; set; } + + [XmlAttribute("media_serial3")] + public string? MediaSerial3 { get; set; } + + [XmlAttribute("pcb_serial")] + public string? PCBSerial { get; set; } + + [XmlAttribute("romchip_serial1")] + public string? RomChipSerial1 { get; set; } + + [XmlAttribute("romchip_serial2")] + public string? RomChipSerial2 { get; set; } + + [XmlAttribute("lockout_serial")] + public string? LockoutSerial { get; set; } + + [XmlAttribute("savechip_serial")] + public string? SaveChipSerial { get; set; } + + [XmlAttribute("chip_serial")] + public string? ChipSerial { get; set; } + + [XmlAttribute("box_serial")] + public string? BoxSerial { get; set; } + + [XmlAttribute("mediastamp")] + public string? MediaStamp { get; set; } + + [XmlAttribute("box_barcode")] + public string? BoxBarcode { get; set; } + + [XmlAttribute("digital_serial1")] + public string? DigitalSerial1 { get; set; } + + [XmlAttribute("digital_serial2")] + public string? DigitalSerial2 { get; set; } + } +} diff --git a/SabreTools.Data.Models/NoIntroDatabase/Source.cs b/SabreTools.Data.Models/NoIntroDatabase/Source.cs new file mode 100644 index 00000000..8f3ecaeb --- /dev/null +++ b/SabreTools.Data.Models/NoIntroDatabase/Source.cs @@ -0,0 +1,19 @@ +using System.Xml; +using System.Xml.Serialization; + +namespace SabreTools.Data.Models.NoIntroDatabase +{ + [XmlRoot("source")] + public class Source + { + [Required] + [XmlElement("details", typeof(SourceDetails))] + public SourceDetails? Details { get; set; } + + [XmlElement("serials", typeof(Serials))] + public Serials? Serials { get; set; } + + [XmlElement("file", typeof(File))] + public File[]? File { get; set; } + } +} diff --git a/SabreTools.Data.Models/NoIntroDatabase/SourceDetails.cs b/SabreTools.Data.Models/NoIntroDatabase/SourceDetails.cs new file mode 100644 index 00000000..21d86321 --- /dev/null +++ b/SabreTools.Data.Models/NoIntroDatabase/SourceDetails.cs @@ -0,0 +1,87 @@ +using System.Xml; +using System.Xml.Serialization; + +namespace SabreTools.Data.Models.NoIntroDatabase +{ + [XmlRoot("details")] + public class SourceDetails + { + [XmlAttribute("id")] + public string? Id { get; set; } + + [XmlAttribute("append_to_number")] + public string? AppendToNumber { get; set; } + + [XmlAttribute("section")] + public string? Section { get; set; } + + [XmlAttribute("rominfo")] + public string? RomInfo { get; set; } + + [XmlAttribute("d_date")] + public string? DumpDate { get; set; } + + /// byte + [XmlAttribute("d_date_info")] + public string? DumpDateInfo { get; set; } + + [XmlAttribute("r_date")] + public string? ReleaseDate { get; set; } + + /// byte + [XmlAttribute("r_date_info")] + public string? ReleaseDateInfo { get; set; } + + [XmlAttribute("dumper")] + public string? Dumper { get; set; } + + [XmlAttribute("project")] + public string? Project { get; set; } + + [XmlAttribute("originalformat")] + public string? OriginalFormat { get; set; } + + /// byte + [XmlAttribute("nodump")] + public string? Nodump { get; set; } + + [XmlAttribute("tool")] + public string? Tool { get; set; } + + [XmlAttribute("origin")] + public string? Origin { get; set; } + + [XmlAttribute("comment1")] + public string? Comment1 { get; set; } + + [XmlAttribute("comment2")] + public string? Comment2 { get; set; } + + [XmlAttribute("link1")] + public string? Link1 { get; set; } + + /// byte + [XmlAttribute("link1_public")] + public string? Link1Public { get; set; } + + [XmlAttribute("link2")] + public string? Link2 { get; set; } + + /// byte + [XmlAttribute("link2_public")] + public string? Link2Public { get; set; } + + [XmlAttribute("link3")] + public string? Link3 { get; set; } + + /// byte + [XmlAttribute("link3_public")] + public string? Link3Public { get; set; } + + [XmlAttribute("region")] + public string? Region { get; set; } + + [XmlAttribute("media_title")] + public string? MediaTitle { get; set; } + } +} diff --git a/SabreTools.Data.Models/README.MD b/SabreTools.Data.Models/README.MD index 07e8c2d6..a4e1d2cf 100644 --- a/SabreTools.Data.Models/README.MD +++ b/SabreTools.Data.Models/README.MD @@ -55,6 +55,7 @@ Below is a list of all existing namespaces with the `SabreTools.Data.Models` pre | `NES` | Nintendo Entertainment System (NES) and Famicom (FC) carts | | `NewExecutable` | New Executable (NE) | | `Nitro` | Nintendo DS carts | +| `NoIntroDatabase` | No-Intro Database Exports | | `OfflineList` | OfflineList XML-based metadata files | | `OLE` | Object Linking and Embedding (OLE) | | `OpenMSX` | OpenMSX XML-based metadata files | @@ -105,6 +106,7 @@ Not all of this information was able to be gathered directly from the files in q | [cabextract/libmspack](https://www.cabextract.org.uk/) | LZ | | [cxbx](https://www.caustik.com/cxbx/) | XboxExecutable | | [Cxbx-Reloaded](https://github.com/Cxbx-Reloaded/Cxbx-Reloaded/) | XboxExecutable | +| [Dat-o-Matic Upload XSD](https://datomatic.no-intro.org/stuff/example_upload_custom.xsd) | NoIntroDatabase | | [DBox](https://dbox.tools/) | Xbox | | [DebugInfo.com](https://www.debuginfo.com/index.html) | PortableExecutable | | [Devilsclaw](https://devilsclaws.net/) | PFF |