Add No-Intro database export models

This commit is contained in:
Matt Nadareski
2026-03-31 20:44:17 -04:00
parent 3f5b3d10fd
commit b82d464b12
11 changed files with 487 additions and 0 deletions

View File

@@ -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; }
/// <remarks>byte</remarks>
[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; }
/// <remarks>byte</remarks>
[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; }
/// <remarks>byte</remarks>
[XmlAttribute("bios")]
public string? Bios { get; set; }
/// <remarks>byte</remarks>
[XmlAttribute("licensed")]
public string? Licensed { get; set; }
/// <remarks>byte</remarks>
[XmlAttribute("pirate")]
public string? Pirate { get; set; }
/// <remarks>byte</remarks>
[XmlAttribute("physical")]
public string? Physical { get; set; }
/// <remarks>byte</remarks>
[XmlAttribute("complete")]
public string? Complete { get; set; }
/// <remarks>byte</remarks>
[XmlAttribute("adult")]
public string? Adult { get; set; }
/// <remarks>byte</remarks>
[XmlAttribute("dat")]
public string? Dat { get; set; }
/// <remarks>byte</remarks>
[XmlAttribute("listed")]
public string? Listed { get; set; }
/// <remarks>byte</remarks>
[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; }
}
}

View File

@@ -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; }
}
}

View File

@@ -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; }
/// <remarks>byte</remarks>
[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; }
/// <remarks>byte</remarks>
[XmlAttribute("bad")]
public string? Bad { get; set; }
/// <remarks>byte</remarks>
[XmlAttribute("mia")]
public string? MIA { get; set; }
/// <remarks>byte</remarks>
[XmlAttribute("unique")]
public string? Unique { get; set; }
[XmlAttribute("mergename")]
public string? MergeName { get; set; }
[XmlAttribute("unique_attachment")]
public string? UniqueAttachment { get; set; }
}
}

View File

@@ -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; }
}
}

View File

@@ -0,0 +1,10 @@
using System.Xml.Serialization;
namespace SabreTools.Data.Models.NoIntroDatabase
{
[XmlRoot("media")]
public class Media
{
// This item is empty
}
}

View File

@@ -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; }
}
}

View File

@@ -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; }
}
}

View File

@@ -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; }
}
}

View File

@@ -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; }
}
}

View File

@@ -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; }
/// <remarks>byte</remarks>
[XmlAttribute("d_date_info")]
public string? DumpDateInfo { get; set; }
[XmlAttribute("r_date")]
public string? ReleaseDate { get; set; }
/// <remarks>byte</remarks>
[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; }
/// <remarks>byte</remarks>
[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; }
/// <remarks>byte</remarks>
[XmlAttribute("link1_public")]
public string? Link1Public { get; set; }
[XmlAttribute("link2")]
public string? Link2 { get; set; }
/// <remarks>byte</remarks>
[XmlAttribute("link2_public")]
public string? Link2Public { get; set; }
[XmlAttribute("link3")]
public string? Link3 { get; set; }
/// <remarks>byte</remarks>
[XmlAttribute("link3_public")]
public string? Link3Public { get; set; }
[XmlAttribute("region")]
public string? Region { get; set; }
[XmlAttribute("media_title")]
public string? MediaTitle { get; set; }
}
}

View File

@@ -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 |