Migrate metadata models to Serialization

This commit is contained in:
Matt Nadareski
2025-09-26 10:22:11 -04:00
parent 063d91db6d
commit c6cba88ba6
198 changed files with 0 additions and 6356 deletions

View File

@@ -1,205 +0,0 @@
using System.Xml;
using System.Xml.Serialization;
namespace SabreTools.Models.ArchiveDotOrg
{
[XmlRoot("file")]
public class File
{
[XmlAttribute("name")]
public string? Name { get; set; }
/// <remarks>Is this a set of defined values?</remarks>
[XmlAttribute("source")]
public string? Source { get; set; }
[XmlElement("btih")]
public string? BitTorrentMagnetHash { get; set; }
[XmlElement("mtime")]
public string? LastModifiedTime { get; set; }
[XmlElement("size")]
public string? Size { get; set; }
[XmlElement("md5")]
public string? MD5 { get; set; }
[XmlElement("crc32")]
public string? CRC32 { get; set; }
[XmlElement("sha1")]
public string? SHA1 { get; set; }
[XmlElement("filecount")]
public string? FileCount { get; set; }
/// <remarks>Is this a set of defined values?</remarks>
[XmlElement("format")]
public string? Format { get; set; }
[XmlElement("original")]
public string? Original { get; set; }
/// <remarks>Is this a set of defined values?</remarks>
[XmlElement("summation")]
public string? Summation { get; set; }
[XmlElement("matrix_number")]
public string? MatrixNumber { get; set; }
[XmlElement("collection-catalog-number")]
public string? CollectionCatalogNumber { get; set; }
[XmlElement("publisher")]
public string? Publisher { get; set; }
[XmlElement("comment")]
public string? Comment { get; set; }
#region ASR-Related
[XmlElement("asr_detected_lang")]
public string? ASRDetectedLang { get; set; }
[XmlElement("asr_detected_lang_conf")]
public string? ASRDetectedLangConf { get; set; }
[XmlElement("asr_transcribed_lang")]
public string? ASRTranscribedLang { get; set; }
[XmlElement("whisper_asr_module_version")]
public string? WhisperASRModuleVersion { get; set; }
[XmlElement("whisper_model_hash")]
public string? WhisperModelHash { get; set; }
[XmlElement("whisper_model_name")]
public string? WhisperModelName { get; set; }
[XmlElement("whisper_version")]
public string? WhisperVersion { get; set; }
#endregion
#region OCR-Related
[XmlElement("cloth_cover_detection_module_version")]
public string? ClothCoverDetectionModuleVersion { get; set; }
[XmlElement("hocr_char_to_word_hocr_version")]
public string? hOCRCharToWordhOCRVersion { get; set; }
[XmlElement("hocr_char_to_word_module_version")]
public string? hOCRCharToWordModuleVersion { get; set; }
[XmlElement("hocr_fts_text_hocr_version")]
public string? hOCRFtsTexthOCRVersion { get; set; }
[XmlElement("hocr_fts_text_module_version")]
public string? hOCRFtsTextModuleVersion { get; set; }
[XmlElement("hocr_pageindex_hocr_version")]
public string? hOCRPageIndexhOCRVersion { get; set; }
[XmlElement("hocr_pageindex_module_version")]
public string? hOCRPageIndexModuleVersion { get; set; }
[XmlElement("ocr")]
public string? TesseractOCR { get; set; }
[XmlElement("ocr_converted")]
public string? TesseractOCRConverted { get; set; }
[XmlElement("ocr_detected_lang")]
public string? TesseractOCRDetectedLang { get; set; }
[XmlElement("ocr_detected_lang_conf")]
public string? TesseractOCRDetectedLangConf { get; set; }
[XmlElement("ocr_detected_script")]
public string? TesseractOCRDetectedScript { get; set; }
[XmlElement("ocr_detected_script_conf")]
public string? TesseractOCRDetectedScriptConf { get; set; }
[XmlElement("ocr_module_version")]
public string? TesseractOCRModuleVersion { get; set; }
[XmlElement("ocr_parameters")]
public string? TesseractOCRParameters { get; set; }
[XmlElement("pdf_module_version")]
public string? PDFModuleVersion { get; set; }
[XmlElement("word_conf_0_10")]
public string? WordConfidenceInterval0To10 { get; set; }
[XmlElement("word_conf_11_20")]
public string? WordConfidenceInterval11To20 { get; set; }
[XmlElement("word_conf_21_30")]
public string? WordConfidenceInterval21To30 { get; set; }
[XmlElement("word_conf_31_40")]
public string? WordConfidenceInterval31To40 { get; set; }
[XmlElement("word_conf_41_50")]
public string? WordConfidenceInterval41To50 { get; set; }
[XmlElement("word_conf_51_60")]
public string? WordConfidenceInterval51To60 { get; set; }
[XmlElement("word_conf_61_70")]
public string? WordConfidenceInterval61To70 { get; set; }
[XmlElement("word_conf_71_80")]
public string? WordConfidenceInterval71To80 { get; set; }
[XmlElement("word_conf_81_90")]
public string? WordConfidenceInterval81To90 { get; set; }
[XmlElement("word_conf_91_100")]
public string? WordConfidenceInterval91To100 { get; set; }
#endregion
#region Media-Related
[XmlElement("album")]
public string? Album { get; set; }
[XmlElement("artist")]
public string? Artist { get; set; }
[XmlElement("bitrate")]
public string? Bitrate { get; set; }
[XmlElement("creator")]
public string? Creator { get; set; }
[XmlElement("height")]
public string? Height { get; set; }
[XmlElement("length")]
public string? Length { get; set; }
[XmlElement("preview-image")]
public string? PreviewImage { get; set; }
/// <remarks>Is this a set of defined values?</remarks>
[XmlElement("rotation")]
public string? Rotation { get; set; }
[XmlElement("title")]
public string? Title { get; set; }
[XmlElement("track")]
public string? Track { get; set; }
[XmlElement("width")]
public string? Width { get; set; }
#endregion
}
}

View File

@@ -1,12 +0,0 @@
using System.Xml;
using System.Xml.Serialization;
namespace SabreTools.Models.ArchiveDotOrg
{
[XmlRoot("files")]
public class Files
{
[XmlElement("file")]
public File[]? File { get; set; }
}
}

View File

@@ -1,13 +0,0 @@
namespace SabreTools.Models.AttractMode
{
/// <summary>
/// #Name;Title;Emulator;CloneOf;Year;Manufacturer;Category;Players;Rotation;Control;Status;DisplayCount;DisplayType;AltRomname;AltTitle;Extra;Buttons /// </summary>
/// </summary>
public class MetadataFile
{
[Required]
public string[]? Header { get; set; }
public Row[]? Row { get; set; }
}
}

View File

@@ -1,51 +0,0 @@
namespace SabreTools.Models.AttractMode
{
public class Row
{
/// <remarks>Also called Romname</remarks>
[Required]
public string? Name { get; set; }
public string? Title { get; set; }
public string? Emulator { get; set; }
public string? CloneOf { get; set; }
public string? Year { get; set; }
public string? Manufacturer { get; set; }
public string? Category { get; set; }
public string? Players { get; set; }
public string? Rotation { get; set; }
public string? Control { get; set; }
public string? Status { get; set; }
public string? DisplayCount { get; set; }
public string? DisplayType { get; set; }
public string? AltRomname { get; set; }
public string? AltTitle { get; set; }
public string? Extra { get; set; }
public string? Buttons { get; set; }
public string? Favorite { get; set; }
public string? Tags { get; set; }
public string? PlayedCount { get; set; }
public string? PlayedTime { get; set; }
public string? FileIsAvailable { get; set; }
}
}

View File

@@ -1,10 +0,0 @@
namespace SabreTools.Models.ClrMamePro
{
/// <remarks>archive</remarks>
public class Archive
{
/// <remarks>name</remarks>
[Required]
public string? Name { get; set; }
}
}

View File

@@ -1,17 +0,0 @@
namespace SabreTools.Models.ClrMamePro
{
/// <remarks>biosset</remarks>
public class BiosSet
{
/// <remarks>name</remarks>
[Required]
public string? Name { get; set; }
/// <remarks>description</remarks>
[Required]
public string? Description { get; set; }
/// <remarks>default</remarks>
public string? Default { get; set; }
}
}

View File

@@ -1,20 +0,0 @@
namespace SabreTools.Models.ClrMamePro
{
/// <remarks>chip</remarks>
public class Chip
{
/// <remarks>type, (cpu|audio)</remarks>
[Required]
public string? Type { get; set; }
/// <remarks>name</remarks>
[Required]
public string? Name { get; set; }
/// <remarks>flags</remarks>
public string? Flags { get; set; }
/// <remarks>clock, Numeric?</remarks>
public string? Clock { get; set; }
}
}

View File

@@ -1,51 +0,0 @@
namespace SabreTools.Models.ClrMamePro
{
/// <remarks>clrmamepro</remarks>
public class ClrMamePro
{
/// <remarks>name</remarks>
public string? Name { get; set; }
/// <remarks>description</remarks>
public string? Description { get; set; }
/// <remarks>rootdir</remarks>
public string? RootDir { get; set; }
/// <remarks>category</remarks>
public string? Category { get; set; }
/// <remarks>version</remarks>
public string? Version { get; set; }
/// <remarks>date</remarks>
public string? Date { get; set; }
/// <remarks>author</remarks>
public string? Author { get; set; }
/// <remarks>homepage</remarks>
public string? Homepage { get; set; }
/// <remarks>url</remarks>
public string? Url { get; set; }
/// <remarks>comment</remarks>
public string? Comment { get; set; }
/// <remarks>header</remarks>
public string? Header { get; set; }
/// <remarks>type</remarks>
public string? Type { get; set; }
/// <remarks>forcemerging</remarks>
public string? ForceMerging { get; set; }
/// <remarks>forcezipping</remarks>
public string? ForceZipping { get; set; }
/// <remarks>forcepacking</remarks>
public string? ForcePacking { get; set; }
}
}

View File

@@ -1,16 +0,0 @@
namespace SabreTools.Models.ClrMamePro
{
/// <remarks>dipswitch</remarks>
public class DipSwitch
{
/// <remarks>name</remarks>
[Required]
public string? Name { get; set; }
/// <remarks>entry</remarks>
public string[]? Entry { get; set; }
/// <remarks>default, (yes|no) "no"</remarks>
public string? Default { get; set; }
}
}

View File

@@ -1,25 +0,0 @@
namespace SabreTools.Models.ClrMamePro
{
/// <remarks>disk</remarks>
public class Disk
{
/// <remarks>name</remarks>
[Required]
public string? Name { get; set; }
/// <remarks>md5</remarks>
public string? MD5 { get; set; }
/// <remarks>sha1</remarks>
public string? SHA1 { get; set; }
/// <remarks>merge</remarks>
public string? Merge { get; set; }
/// <remarks>status</remarks>
public string? Status { get; set; }
/// <remarks>flags</remarks>
public string? Flags { get; set; }
}
}

View File

@@ -1,22 +0,0 @@
namespace SabreTools.Models.ClrMamePro
{
/// <remarks>driver</remarks>
public class Driver
{
/// <remarks>status, (good|imperfect|preliminary)</remarks>
[Required]
public string? Status { get; set; }
/// <remarks>color, (good|imperfect|preliminary)</remarks>
public string? Color { get; set; }
/// <remarks>sound, (good|imperfect|preliminary)</remarks>
public string? Sound { get; set; }
/// <remarks>palettesize, Numeric?</remarks>
public string? PaletteSize { get; set; }
/// <remarks>blit, (plain|dirty)</remarks>
public string? Blit { get; set; }
}
}

View File

@@ -1,5 +0,0 @@
namespace SabreTools.Models.ClrMamePro
{
/// <remarks>game</remarks>
public class Game : GameBase { }
}

View File

@@ -1,80 +0,0 @@
namespace SabreTools.Models.ClrMamePro
{
/// <summary>
/// Base class to unify the various game-like types
/// </summary>
public abstract class GameBase
{
/// <remarks>name</remarks>
[Required]
public string? Name { get; set; }
/// <remarks>description</remarks>
public string? Description { get; set; }
/// <remarks>year</remarks>
public string? Year { get; set; }
/// <remarks>manufacturer</remarks>
public string? Manufacturer { get; set; }
/// <remarks>category</remarks>
public string? Category { get; set; }
/// <remarks>cloneof</remarks>
public string? CloneOf { get; set; }
/// <remarks>romof</remarks>
public string? RomOf { get; set; }
/// <remarks>sampleof</remarks>
public string? SampleOf { get; set; }
/// <remarks>release</remarks>
public Release[]? Release { get; set; }
/// <remarks>biosset</remarks>
public BiosSet[]? BiosSet { get; set; }
/// <remarks>rom</remarks>
public Rom[]? Rom { get; set; }
/// <remarks>disk</remarks>
public Disk[]? Disk { get; set; }
/// <remarks>sample</remarks>
public Sample[]? Sample { get; set; }
/// <remarks>archive</remarks>
public Archive[]? Archive { get; set; }
#region Aaru Extensions
/// <remarks>media, Appears after Disk</remarks>
public Media[]? Media { get; set; }
#endregion
#region MAME Extensions
/// <remarks>chip, Appears after Archive</remarks>
public Chip[]? Chip { get; set; }
/// <remarks>video, Appears after Chip</remarks>
public Video[]? Video { get; set; }
/// <remarks>sound, Appears after Video</remarks>
public Sound? Sound { get; set; }
/// <remarks>input, Appears after Sound</remarks>
public Input? Input { get; set; }
/// <remarks>dipswitch, Appears after Input</remarks>
public DipSwitch[]? DipSwitch { get; set; }
/// <remarks>driver, Appears after DipSwitch</remarks>
public Driver? Driver { get; set; }
#endregion
}
}

View File

@@ -1,26 +0,0 @@
namespace SabreTools.Models.ClrMamePro
{
/// <remarks>input</remarks>
public class Input
{
/// <remarks>players, Numeric/remarks>
[Required]
public string? Players { get; set; }
/// <remarks>control</remarks>
public string? Control { get; set; }
/// <remarks>buttons, Numeric</remarks>
[Required]
public string? Buttons { get; set; }
/// <remarks>coins, Numeric</remarks>
public string? Coins { get; set; }
/// <remarks>tilt, (yes|no) "no"</remarks>
public string? Tilt { get; set; }
/// <remarks>service, (yes|no) "no"</remarks>
public string? Service { get; set; }
}
}

View File

@@ -1,5 +0,0 @@
namespace SabreTools.Models.ClrMamePro
{
/// <remarks>machine</remarks>
public class Machine : GameBase { }
}

View File

@@ -1,22 +0,0 @@
namespace SabreTools.Models.ClrMamePro
{
/// <remarks>media</remarks>
public class Media
{
/// <remarks>name</remarks>
[Required]
public string? Name { get; set; }
/// <remarks>md5</remarks>
public string? MD5 { get; set; }
/// <remarks>sha1</remarks>
public string? SHA1 { get; set; }
/// <remarks>sha256</remarks>
public string? SHA256 { get; set; }
/// <remarks>spamsum</remarks>
public string? SpamSum { get; set; }
}
}

View File

@@ -1,11 +0,0 @@
namespace SabreTools.Models.ClrMamePro
{
public class MetadataFile
{
/// <remarks>clrmamepro</remarks>
public ClrMamePro? ClrMamePro { get; set; }
/// <remarks>game, machine, resource, set</remarks>
public GameBase[]? Game { get; set; }
}
}

View File

@@ -1,23 +0,0 @@
namespace SabreTools.Models.ClrMamePro
{
/// <remarks>release</remarks>
public class Release
{
/// <remarks>name</remarks>
[Required]
public string? Name { get; set; }
/// <remarks>region</remarks>
[Required]
public string? Region { get; set; }
/// <remarks>language</remarks>
public string? Language { get; set; }
/// <remarks>date</remarks>
public string? Date { get; set; }
/// <remarks>default</remarks>
public string? Default { get; set; }
}
}

View File

@@ -1,5 +0,0 @@
namespace SabreTools.Models.ClrMamePro
{
/// <remarks>resource</remarks>
public class Resource : GameBase { }
}

View File

@@ -1,103 +0,0 @@
namespace SabreTools.Models.ClrMamePro
{
/// <remarks>rom</remarks>
public class Rom
{
/// <remarks>name</remarks>
[Required]
public string? Name { get; set; }
/// <remarks>size, Numeric</remarks>
[Required]
public string? Size { get; set; }
/// <remarks>crc</remarks>
public string? CRC { get; set; }
/// <remarks>md5</remarks>
public string? MD5 { get; set; }
/// <remarks>sha1</remarks>
public string? SHA1 { get; set; }
/// <remarks>merge</remarks>
public string? Merge { get; set; }
/// <remarks>status</remarks>
public string? Status { get; set; }
/// <remarks>flags</remarks>
public string? Flags { get; set; }
/// <remarks>date</remarks>
public string? Date { get; set; }
#region Hash Extensions
/// <remarks>md2; Appears after CRC</remarks>
public string? MD2 { get; set; }
/// <remarks>md4; Appears after MD2</remarks>
public string? MD4 { get; set; }
/// <remarks>ripemd128; Appears after MD5</remarks>
public string? RIPEMD128 { get; set; }
/// <remarks>ripemd160; Appears after RIPEMD128</remarks>
public string? RIPEMD160 { get; set; }
/// <remarks>sha256; Also in No-Intro spec; Appears after SHA1</remarks>
public string? SHA256 { get; set; }
/// <remarks>sha384; Appears after SHA256</remarks>
public string? SHA384 { get; set; }
/// <remarks>sha512; Appears after SHA384</remarks>
public string? SHA512 { get; set; }
/// <remarks>spamsum; Appears after SHA512</remarks>
public string? SpamSum { get; set; }
#endregion
#region DiscImgeCreator Extensions
/// <remarks>xxh3_64; Appears after SpamSum</remarks>
public string? xxHash364 { get; set; }
/// <remarks>xxh3_128; Appears after xxHash364</remarks>
public string? xxHash3128 { get; set; }
#endregion
#region MAME Extensions
/// <remarks>region; Appears after Status</remarks>
public string? Region { get; set; }
/// <remarks>offs; Appears after Flags</remarks>
public string? Offs { get; set; }
#endregion
#region No-Intro Extensions
/// <remarks>serial; Appears after Offs</remarks>
public string? Serial { get; set; }
/// <remarks>header; Appears after Serial</remarks>
public string? Header { get; set; }
#endregion
#region RomVault Extensions
/// <remarks>inverted; Boolean; Appears after Date</remarks>
public string? Inverted { get; set; }
/// <remarks>mia; Boolean; Appears after Inverted</remarks>
public string? MIA { get; set; }
#endregion
}
}

View File

@@ -1,51 +0,0 @@
namespace SabreTools.Models.ClrMamePro
{
/// <remarks>romvault</remarks>
public class RomVault
{
/// <remarks>name</remarks>
public string? Name { get; set; }
/// <remarks>description</remarks>
public string? Description { get; set; }
/// <remarks>rootdir</remarks>
public string? RootDir { get; set; }
/// <remarks>category</remarks>
public string? Category { get; set; }
/// <remarks>version</remarks>
public string? Version { get; set; }
/// <remarks>date</remarks>
public string? Date { get; set; }
/// <remarks>author</remarks>
public string? Author { get; set; }
/// <remarks>homepage</remarks>
public string? Homepage { get; set; }
/// <remarks>url</remarks>
public string? Url { get; set; }
/// <remarks>comment</remarks>
public string? Comment { get; set; }
/// <remarks>header</remarks>
public string? Header { get; set; }
/// <remarks>type</remarks>
public string? Type { get; set; }
/// <remarks>forcemerging</remarks>
public string? ForceMerging { get; set; }
/// <remarks>forcezipping</remarks>
public string? ForceZipping { get; set; }
/// <remarks>forcepacking</remarks>
public string? ForcePacking { get; set; }
}
}

View File

@@ -1,10 +0,0 @@
namespace SabreTools.Models.ClrMamePro
{
/// <remarks>sample</remarks>
public class Sample
{
/// <remarks>name</remarks>
[Required]
public string? Name { get; set; }
}
}

View File

@@ -1,5 +0,0 @@
namespace SabreTools.Models.ClrMamePro
{
/// <remarks>set</remarks>
public class Set : GameBase { }
}

View File

@@ -1,10 +0,0 @@
namespace SabreTools.Models.ClrMamePro
{
/// <remarks>sound</remarks>
public class Sound
{
/// <remarks>channels, Numeric?</remarks>
[Required]
public string? Channels { get; set; }
}
}

View File

@@ -1,29 +0,0 @@
namespace SabreTools.Models.ClrMamePro
{
/// <remarks>video</remarks>
public class Video
{
/// <remarks>screen, (raster|vector)</remarks>
[Required]
public string? Screen { get; set; }
/// <remarks>orientation, (vertical|horizontal)</remarks>
[Required]
public string? Orientation { get; set; }
/// <remarks>x, Numeric?</remarks>
public string? X { get; set; }
/// <remarks>y, Numeric?</remarks>
public string? Y { get; set; }
/// <remarks>aspectx, Numeric?</remarks>
public string? AspectX { get; set; }
/// <remarks>aspecty, Numeric?</remarks>
public string? AspectY { get; set; }
/// <remarks>freq, Numeric?</remarks>
public string? Freq { get; set; }
}
}

View File

@@ -1,27 +0,0 @@
namespace SabreTools.Models.DosCenter
{
/// <remarks>doscenter</remarks>
public class DosCenter
{
/// <remarks>name</remarks>
public string? Name { get; set; }
/// <remarks>description</remarks>
public string? Description { get; set; }
/// <remarks>version</remarks>
public string? Version { get; set; }
/// <remarks>date</remarks>
public string? Date { get; set; }
/// <remarks>author</remarks>
public string? Author { get; set; }
/// <remarks>homepage</remarks>
public string? Homepage { get; set; }
/// <remarks>comment</remarks>
public string? Comment { get; set; }
}
}

View File

@@ -1,24 +0,0 @@
namespace SabreTools.Models.DosCenter
{
/// <remarks>file</remarks>
public class File
{
/// <remarks>name, attribute</remarks>
[Required]
public string? Name { get; set; }
/// <remarks>size, attribute, numeric</remarks>
[Required]
public string? Size { get; set; }
/// <remarks>crc, attribute</remarks>
[Required]
public string? CRC { get; set; }
/// <remarks>sha1, attribute</remarks>
public string? SHA1 { get; set; }
/// <remarks>date, attribute</remarks>
public string? Date { get; set; }
}
}

View File

@@ -1,13 +0,0 @@
namespace SabreTools.Models.DosCenter
{
/// <remarks>game</remarks>
public class Game
{
/// <remarks>name</remarks>
[Required]
public string? Name { get; set; }
/// <remarks>file</remarks>
public File[]? File { get; set; }
}
}

View File

@@ -1,11 +0,0 @@
namespace SabreTools.Models.DosCenter
{
public class MetadataFile
{
/// <remarks>doscenter</remarks>
public DosCenter? DosCenter { get; set; }
/// <remarks>game</remarks>
public Game[]? Game { get; set; }
}
}

View File

@@ -1,7 +0,0 @@
namespace SabreTools.Models.EverdriveSMDB
{
public class MetadataFile
{
public Row[]? Row { get; set; }
}
}

View File

@@ -1,25 +0,0 @@
namespace SabreTools.Models.EverdriveSMDB
{
/// <summary>
/// SHA-256 \t Machine Name/Filename \t SHA-1 \t MD5 \t CRC32 \t Size (Optional)
/// </summary>
public class Row
{
[Required]
public string? SHA256 { get; set; }
[Required]
public string? Name { get; set; }
[Required]
public string? SHA1 { get; set; }
[Required]
public string? MD5 { get; set; }
[Required]
public string? CRC32 { get; set; }
public string? Size { get; set; }
}
}

View File

@@ -1,32 +0,0 @@
namespace SabreTools.Models.GameHeader
{
/// <summary>
/// File Data section for all files
/// </summary>
public sealed class FileData
{
public string? System { get; set; }
public string? Path { get; set; }
public string? Archive { get; set; }
public string? File { get; set; }
public string? BitSize { get; set; }
public long SizeBytes { get; set; }
// Hex string, no prefix
public string? CRC32 { get; set; }
// Hex string, no prefix
public string? MD5 { get; set; }
// Hex string, no prefix
public string? SHA1 { get; set; }
// Hex string, no prefix
public string? SHA256 { get; set; }
}
}

View File

@@ -1,22 +0,0 @@
namespace SabreTools.Models.GameHeader
{
/// <summary>
/// Encrypted Data section for an NDS cart image
/// </summary>
public sealed class NitroEncryptedData
{
public ushort EncryptedSecure { get; set; }
// Hex string, no prefix
public string? EncryptedCRC32 { get; set; }
// Hex string, no prefix
public string? EncryptedMD5 { get; set; }
// Hex string, no prefix
public string? EncryptedSHA1 { get; set; }
// Hex string, no prefix
public string? EncryptedSHA256 { get; set; }
}
}

View File

@@ -1,202 +0,0 @@
namespace SabreTools.Models.GameHeader
{
/// <summary>
/// Header Data section for an NDS cart image
/// </summary>
public sealed class NitroHeaderData
{
public string? GameTitle { get; set; }
public string? GameSerial { get; set; }
public string? MakerCode { get; set; }
public byte UnitCode { get; set; }
public byte EncryptionSeed { get; set; }
public byte DeviceSize { get; set; }
public string? DeviceSizeInfo { get; set; }
public byte AsianRegion { get; set; }
// Hex string, prefixed
public string? Reserved1 { get; set; }
public byte Version { get; set; }
public string? VersionInfo { get; set; }
public byte Autostart { get; set; }
public string? AutostartInfo { get; set; }
public uint ARM9ROMOffset { get; set; }
public uint ARM9EntryAddress { get; set; }
public uint ARM9RAMOffset { get; set; }
public uint ARM7ROMOffset { get; set; }
public uint ARM7EntryAddress { get; set; }
public uint ARM7RAMOffset { get; set; }
public uint FNTOffset { get; set; }
public uint FNTSize { get; set; }
public uint FATOffset { get; set; }
public uint FATSize { get; set; }
public uint ARM9OverlayOffset { get; set; }
public uint ARM9OverlaySize { get; set; }
public uint ARM7OverlayOffset { get; set; }
public uint ARM7OverlaySize { get; set; }
public uint NormalCMDSetting { get; set; }
public uint Key1CMDSetting { get; set; }
public uint IconAddress { get; set; }
public ushort SecureCRC16 { get; set; }
public string? SecureCRC16Info { get; set; }
public ushort SecureTimeout { get; set; }
public uint ARM9AutoloadAddress { get; set; }
public uint ARM7AutoloadAddress { get; set; }
public ulong SecureDisable { get; set; }
public uint UsedRomSize { get; set; }
public string? UsedRomSizeInfo { get; set; }
public uint HeaderSize { get; set; }
public string? HeaderSizeInfo { get; set; }
// Hex string, no prefix
public string? Reserved2 { get; set; }
// Hex string, no prefix
public string? NintendoLogo { get; set; }
public ushort LogoCRC16 { get; set; }
public string? LogoCRC16Info { get; set; }
public ushort HeaderCRC16 { get; set; }
public string? HeaderCRC16Info { get; set; }
// Hex string, prefixed
public string? Reserved3 { get; set; }
// Hex string, prefixed
public string? ConfigSettings { get; set; }
public uint DsiRegionMask { get; set; }
public uint AccessControl { get; set; }
public uint ARM7SCFG { get; set; }
public uint DSiAppFlags { get; set; }
public uint DSi9RomOffset { get; set; }
public uint DSi9EntryAddress { get; set; }
public uint DSi9RamAddress { get; set; }
public uint DSi9Size { get; set; }
public uint DSi7RomOffset { get; set; }
public uint DSi7EntryAddress { get; set; }
public uint DSi7RamAddress { get; set; }
public uint DSi7Size { get; set; }
public uint DigestNTROffset { get; set; }
public uint DigestNTRSize { get; set; }
public uint DigestTWLOffset { get; set; }
public uint DigestTWLSize { get; set; }
public uint DigestSectorHashTableOffset { get; set; }
public uint DigestSectorHashTableSize { get; set; }
public uint DigestBlockHashTableOffset { get; set; }
public uint DigestBlockHashTableLength { get; set; }
public uint DigestSectorSize { get; set; }
public uint DigestBlockSectorCount { get; set; }
// Hex string, prefixed
public string? Reserved4 { get; set; }
public uint Modcrypt1Offset { get; set; }
public uint Modcrypt1Size { get; set; }
public uint Modcrypt2Offset { get; set; }
public uint Modcrypt2Size { get; set; }
public ulong TitleID { get; set; }
// Hex string, prefixed
public string? Reserved5 { get; set; }
// Hex string, prefixed
public string? ARM9SHA1HMAC { get; set; }
// Hex string, prefixed
public string? ARM7SHA1HMAC { get; set; }
// Hex string, prefixed
public string? DigestMasterSHA1HMAC { get; set; }
// Hex string, prefixed
public string? BannerSHA1HMAC { get; set; }
// Hex string, prefixed
public string? ARM9iSHA1HMAC { get; set; }
// Hex string, prefixed
public string? ARM7iSHA1HMAC { get; set; }
// Hex string, prefixed
public string? Reserved6 { get; set; }
// Hex string, prefixed
public string? UnknownHash { get; set; }
// Hex string, prefixed
public string? Reserved7 { get; set; }
// Hex string, prefixed
public string? Reserved8 { get; set; }
// Hex string, prefixed
public string? RSASignature { get; set; }
}
}

View File

@@ -1,26 +0,0 @@
namespace SabreTools.Models.GameHeader
{
/// <summary>
/// Icon/Title Data section for an NDS cart image
/// </summary>
public sealed class NitroIconTitleData
{
public ushort IconVersion { get; set; }
public ushort IconCRC16 { get; set; }
public string? IconCRCInfo { get; set; }
public string? JapaneseTitle { get; set; }
public string? EnglishTitle { get; set; }
public string? FrenchTitle { get; set; }
public string? GermanTitle { get; set; }
public string? SpanishTitle { get; set; }
public string? ItalianTitle { get; set; }
}
}

View File

@@ -1,28 +0,0 @@
namespace SabreTools.Models.Hashfile
{
/// <remarks>Hashfiles can only contain one type of hash at a time</remarks>
public class Hashfile
{
public SFV[]? SFV { get; set; }
public MD2[]? MD2 { get; set; }
public MD4[]? MD4 { get; set; }
public MD5[]? MD5 { get; set; }
public RIPEMD128[]? RIPEMD128 { get; set; }
public RIPEMD160[]? RIPEMD160 { 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; }
}
}

View File

@@ -1,14 +0,0 @@
namespace SabreTools.Models.Hashfile
{
/// <summary>
/// MD2 File
/// </summary>
public class MD2
{
[Required]
public string? Hash { get; set; }
[Required]
public string? File { get; set; }
}
}

View File

@@ -1,14 +0,0 @@
namespace SabreTools.Models.Hashfile
{
/// <summary>
/// MD4 File
/// </summary>
public class MD4
{
[Required]
public string? Hash { get; set; }
[Required]
public string? File { get; set; }
}
}

View File

@@ -1,14 +0,0 @@
namespace SabreTools.Models.Hashfile
{
/// <summary>
/// MD5 File
/// </summary>
public class MD5
{
[Required]
public string? Hash { get; set; }
[Required]
public string? File { get; set; }
}
}

View File

@@ -1,14 +0,0 @@
namespace SabreTools.Models.Hashfile
{
/// <summary>
/// RIPEMD128 File
/// </summary>
public class RIPEMD128
{
[Required]
public string? Hash { get; set; }
[Required]
public string? File { get; set; }
}
}

View File

@@ -1,14 +0,0 @@
namespace SabreTools.Models.Hashfile
{
/// <summary>
/// RIPEMD160 File
/// </summary>
public class RIPEMD160
{
[Required]
public string? Hash { get; set; }
[Required]
public string? File { get; set; }
}
}

View File

@@ -1,14 +0,0 @@
namespace SabreTools.Models.Hashfile
{
/// <summary>
/// File CRC
/// </summary>
public class SFV
{
[Required]
public string? File { get; set; }
[Required]
public string? Hash { get; set; }
}
}

View File

@@ -1,14 +0,0 @@
namespace SabreTools.Models.Hashfile
{
/// <summary>
/// SHA-1 File
/// </summary>
public class SHA1
{
[Required]
public string? Hash { get; set; }
[Required]
public string? File { get; set; }
}
}

View File

@@ -1,14 +0,0 @@
namespace SabreTools.Models.Hashfile
{
/// <summary>
/// SHA-256 File
/// </summary>
public class SHA256
{
[Required]
public string? Hash { get; set; }
[Required]
public string? File { get; set; }
}
}

View File

@@ -1,14 +0,0 @@
namespace SabreTools.Models.Hashfile
{
/// <summary>
/// SHA-384 File
/// </summary>
public class SHA384
{
[Required]
public string? Hash { get; set; }
[Required]
public string? File { get; set; }
}
}

View File

@@ -1,14 +0,0 @@
namespace SabreTools.Models.Hashfile
{
/// <summary>
/// SHA-512 File
/// </summary>
public class SHA512
{
[Required]
public string? Hash { get; set; }
[Required]
public string? File { get; set; }
}
}

View File

@@ -1,14 +0,0 @@
namespace SabreTools.Models.Hashfile
{
/// <summary>
/// SpamSum File
/// </summary>
public class SpamSum
{
[Required]
public string? Hash { get; set; }
[Required]
public string? File { get; set; }
}
}

View File

@@ -1,7 +0,0 @@
namespace SabreTools.Models.Listrom
{
public class MetadataFile
{
public Set[]? Set { get; set; }
}
}

View File

@@ -1,32 +0,0 @@
namespace SabreTools.Models.Listrom
{
/// <summary>
/// ROMs required for driver "testdriver".
/// Name Size Checksum
/// abcd.bin 1024 CRC(00000000) SHA1(da39a3ee5e6b4b0d3255bfef95601890afd80709)
/// efgh.bin 1024 BAD CRC(00000000) SHA1(da39a3ee5e6b4b0d3255bfef95601890afd80709) BAD_DUMP
/// ijkl.bin 1024 NO GOOD DUMP KNOWN
/// abcd MD5(d41d8cd98f00b204e9800998ecf8427e)
/// abcd SHA1(da39a3ee5e6b4b0d3255bfef95601890afd80709)
/// efgh BAD MD5(d41d8cd98f00b204e9800998ecf8427e) BAD_DUMP
/// efgh BAD SHA1(da39a3ee5e6b4b0d3255bfef95601890afd80709) BAD_DUMP
/// ijkl NO GOOD DUMP KNOWN
/// </summary>
public class Row
{
[Required]
public string? Name { get; set; }
public string? Size { get; set; }
public bool Bad { get; set; }
public string? CRC { get; set; }
public string? MD5 { get; set; }
public string? SHA1 { get; set; }
public bool NoGoodDumpKnown { get; set; }
}
}

View File

@@ -1,21 +0,0 @@
namespace SabreTools.Models.Listrom
{
/// <summary>
/// ROMs required for driver "testdriver".
/// Name Size Checksum
/// abcd.bin 1024 CRC(00000000) SHA1(da39a3ee5e6b4b0d3255bfef95601890afd80709)
/// efgh.bin 1024 BAD CRC(00000000) SHA1(da39a3ee5e6b4b0d3255bfef95601890afd80709) BAD_DUMP
/// ijkl.bin 1024 NO GOOD DUMP KNOWN
/// abcd SHA1(da39a3ee5e6b4b0d3255bfef95601890afd80709)
/// efgh BAD SHA1(da39a3ee5e6b4b0d3255bfef95601890afd80709) BAD_DUMP
/// ijkl NO GOOD DUMP KNOWN
/// </summary>
public class Set
{
public string? Driver { get; set; }
public string? Device { get; set; }
public Row[]? Row { get; set; }
}
}

View File

@@ -1,20 +0,0 @@
using System.Xml;
using System.Xml.Serialization;
namespace SabreTools.Models.Listxml
{
[XmlRoot("adjuster")]
public class Adjuster
{
[Required]
[XmlAttribute("name")]
public string? Name { get; set; }
/// <remarks>(yes|no) "no"</remarks>
[XmlAttribute("default")]
public string? Default { get; set; }
[XmlElement("condition")]
public Condition? Condition { get; set; }
}
}

View File

@@ -1,13 +0,0 @@
using System.Xml;
using System.Xml.Serialization;
namespace SabreTools.Models.Listxml
{
[XmlRoot("analog")]
public class Analog
{
[Required]
[XmlAttribute("mask")]
public string? Mask { get; set; }
}
}

View File

@@ -1,21 +0,0 @@
using System.Xml;
using System.Xml.Serialization;
namespace SabreTools.Models.Listxml
{
[XmlRoot("biosset")]
public class BiosSet
{
[Required]
[XmlAttribute("name")]
public string? Name { get; set; }
[Required]
[XmlAttribute("description")]
public string? Description { get; set; }
/// <remarks>(yes|no) "no"</remarks>
[XmlAttribute("default")]
public string? Default { get; set; }
}
}

View File

@@ -1,28 +0,0 @@
using System.Xml;
using System.Xml.Serialization;
namespace SabreTools.Models.Listxml
{
[XmlRoot("chip")]
public class Chip
{
[Required]
[XmlAttribute("name")]
public string? Name { get; set; }
[XmlAttribute("tag")]
public string? Tag { get; set; }
/// <remarks>(cpu|audio)</remarks>
[Required]
[XmlAttribute("type")]
public string? Type { get; set; }
/// <remarks>Only present in older versions</remarks>
[XmlAttribute("soundonly")]
public string? SoundOnly { get; set; }
[XmlAttribute("clock")]
public string? Clock { get; set; }
}
}

View File

@@ -1,26 +0,0 @@
using System.Xml;
using System.Xml.Serialization;
namespace SabreTools.Models.Listxml
{
[XmlRoot("condition")]
public class Condition
{
[Required]
[XmlAttribute("tag")]
public string? Tag { get; set; }
[Required]
[XmlAttribute("mask")]
public string? Mask { get; set; }
/// <remarks>(eq|ne|gt|le|lt|ge)</remarks>
[Required]
[XmlAttribute("relation")]
public string? Relation { get; set; }
[Required]
[XmlAttribute("value")]
public string? Value { get; set; }
}
}

View File

@@ -1,22 +0,0 @@
using System.Xml;
using System.Xml.Serialization;
namespace SabreTools.Models.Listxml
{
[XmlRoot("conflocation")]
public class ConfLocation
{
[Required]
[XmlAttribute("name")]
public string? Name { get; set; }
/// <remarks>Numeric?</remarks>
[Required]
[XmlAttribute("number")]
public string? Number { get; set; }
/// <remarks>(yes|no) "no"</remarks>
[XmlAttribute("inverted")]
public string? Inverted { get; set; }
}
}

View File

@@ -1,24 +0,0 @@
using System.Xml;
using System.Xml.Serialization;
namespace SabreTools.Models.Listxml
{
[XmlRoot("confsetting")]
public class ConfSetting
{
[Required]
[XmlAttribute("name")]
public string? Name { get; set; }
[Required]
[XmlAttribute("value")]
public string? Value { get; set; }
/// <remarks>(yes|no) "no"</remarks>
[XmlAttribute("default")]
public string? Default { get; set; }
[XmlElement("condition")]
public Condition? Condition { get; set; }
}
}

View File

@@ -1,29 +0,0 @@
using System.Xml;
using System.Xml.Serialization;
namespace SabreTools.Models.Listxml
{
[XmlRoot("configuration")]
public class Configuration
{
[Required]
[XmlAttribute("name")]
public string? Name { get; set; }
[Required]
[XmlAttribute("tag")]
public string? Tag { get; set; }
[XmlAttribute("mask")]
public string? Mask { get; set; }
[XmlElement("condition")]
public Condition? Condition { get; set; }
[XmlElement("conflocation")]
public ConfLocation[]? ConfLocation { get; set; }
[XmlElement("confsetting")]
public ConfSetting[]? ConfSetting { get; set; }
}
}

View File

@@ -1,58 +0,0 @@
using System.Xml;
using System.Xml.Serialization;
namespace SabreTools.Models.Listxml
{
[XmlRoot("control")]
public class Control
{
/// <remarks>(joy|stick|paddle|pedal|lightgun|positional|dial|trackball|mouse|only_buttons|keypad|keyboard|mahjong|hanafuda|gambling)</remarks>
[Required]
[XmlAttribute("type")]
public string? Type { get; set; }
/// <remarks>Numeric</remarks>
[XmlAttribute("player")]
public string? Player { get; set; }
/// <remarks>Numeric</remarks>
[XmlAttribute("buttons")]
public string? Buttons { get; set; }
/// <remarks>Numeric</remarks>
[XmlAttribute("reqbuttons")]
public string? ReqButtons { get; set; }
/// <remarks>Numeric</remarks>
[XmlAttribute("minimum")]
public string? Minimum { get; set; }
/// <remarks>Numeric</remarks>
[XmlAttribute("maximum")]
public string? Maximum { get; set; }
/// <remarks>Numeric</remarks>
[XmlAttribute("sensitivity")]
public string? Sensitivity { get; set; }
/// <remarks>Numeric</remarks>
[XmlAttribute("keydelta")]
public string? KeyDelta { get; set; }
/// <remarks>(yes|no) "no"</remarks>
[XmlAttribute("reverse")]
public string? Reverse { get; set; }
/// <remarks>Numeric?</remarks>
[XmlAttribute("ways")]
public string? Ways { get; set; }
/// <remarks>Numeric?</remarks>
[XmlAttribute("ways2")]
public string? Ways2 { get; set; }
/// <remarks>Numeric?</remarks>
[XmlAttribute("ways3")]
public string? Ways3 { get; set; }
}
}

View File

@@ -1,32 +0,0 @@
using System.Xml;
using System.Xml.Serialization;
namespace SabreTools.Models.Listxml
{
[XmlRoot("device")]
public class Device
{
[Required]
[XmlAttribute("type")]
public string? Type { get; set; }
[XmlAttribute("tag")]
public string? Tag { get; set; }
[XmlAttribute("fixed_image")]
public string? FixedImage { get; set; }
/// <remarks>Numeric boolean</remarks>
[XmlAttribute("mandatory")]
public string? Mandatory { get; set; }
[XmlAttribute("interface")]
public string? Interface { get; set; }
[XmlElement("instance")]
public Instance? Instance { get; set; }
[XmlElement("extension")]
public Extension[]? Extension { get; set; }
}
}

View File

@@ -1,13 +0,0 @@
using System.Xml;
using System.Xml.Serialization;
namespace SabreTools.Models.Listxml
{
[XmlRoot("device_ref")]
public class DeviceRef
{
[Required]
[XmlAttribute("name")]
public string? Name { get; set; }
}
}

View File

@@ -1,22 +0,0 @@
using System.Xml;
using System.Xml.Serialization;
namespace SabreTools.Models.Listxml
{
[XmlRoot("diplocation")]
public class DipLocation
{
[Required]
[XmlAttribute("name")]
public string? Name { get; set; }
/// <remarks>Numeric?</remarks>
[Required]
[XmlAttribute("number")]
public string? Number { get; set; }
/// <remarks>(yes|no) "no"</remarks>
[XmlAttribute("inverted")]
public string? Inverted { get; set; }
}
}

View File

@@ -1,29 +0,0 @@
using System.Xml;
using System.Xml.Serialization;
namespace SabreTools.Models.Listxml
{
[XmlRoot("dipswitch")]
public class DipSwitch
{
[Required]
[XmlAttribute("name")]
public string? Name { get; set; }
[Required]
[XmlAttribute("tag")]
public string? Tag { get; set; }
[XmlAttribute("mask")]
public string? Mask { get; set; }
[XmlElement("condition")]
public Condition? Condition { get; set; }
[XmlElement("diplocation")]
public DipLocation[]? DipLocation { get; set; }
[XmlElement("dipvalue")]
public DipValue[]? DipValue { get; set; }
}
}

View File

@@ -1,24 +0,0 @@
using System.Xml;
using System.Xml.Serialization;
namespace SabreTools.Models.Listxml
{
[XmlRoot("dipvalue")]
public class DipValue
{
[Required]
[XmlAttribute("name")]
public string? Name { get; set; }
[Required]
[XmlAttribute("value")]
public string? Value { get; set; }
/// <remarks>(yes|no) "no"</remarks>
[XmlAttribute("default")]
public string? Default { get; set; }
[XmlElement("condition")]
public Condition? Condition { get; set; }
}
}

View File

@@ -1,42 +0,0 @@
using System.Xml;
using System.Xml.Serialization;
namespace SabreTools.Models.Listxml
{
[XmlRoot("disk")]
public class Disk
{
[Required]
[XmlAttribute("name")]
public string? Name { get; set; }
/// <remarks>Only present in older versions</remarks>
[XmlAttribute("md5")]
public string? MD5 { get; set; }
[XmlAttribute("sha1")]
public string? SHA1 { get; set; }
[XmlAttribute("merge")]
public string? Merge { get; set; }
[XmlAttribute("region")]
public string? Region { get; set; }
/// <remarks>Numeric?</remarks>
[XmlAttribute("index")]
public string? Index { get; set; }
/// <remarks>(yes|no) "no"</remarks>
[XmlAttribute("writable")]
public string? Writable { get; set; }
/// <remarks>(baddump|nodump|good) "good"</remarks>
[XmlAttribute("status")]
public string? Status { get; set; }
/// <remarks>(yes|no) "no"</remarks>
[XmlAttribute("optional")]
public string? Optional { get; set; }
}
}

View File

@@ -1,66 +0,0 @@
using System.Xml;
using System.Xml.Serialization;
namespace SabreTools.Models.Listxml
{
[XmlRoot("display")]
public class Display
{
[XmlAttribute("tag")]
public string? Tag { get; set; }
/// <remarks>(raster|vector|lcd|svg|unknown)</remarks>
[Required]
[XmlAttribute("type")]
public string? Type { get; set; }
/// <remarks>(0|90|180|270)</remarks>
[XmlAttribute("rotate")]
public string? Rotate { get; set; }
/// <remarks>(yes|no) "no"</remarks>
[XmlAttribute("flipx")]
public string? FlipX { get; set; }
/// <remarks>Numeric</remarks>
[XmlAttribute("width")]
public string? Width { get; set; }
/// <remarks>Numeric</remarks>
[XmlAttribute("height")]
public string? Height { get; set; }
/// <remarks>Numeric</remarks>
[Required]
[XmlAttribute("refresh")]
public string? Refresh { get; set; }
/// <remarks>Numeric</remarks>
[XmlAttribute("pixclock")]
public string? PixClock { get; set; }
/// <remarks>Numeric</remarks>
[XmlAttribute("htotal")]
public string? HTotal { get; set; }
/// <remarks>Numeric</remarks>
[XmlAttribute("hbend")]
public string? HBEnd { get; set; }
/// <remarks>Numeric</remarks>
[XmlAttribute("hbstart")]
public string? HBStart { get; set; }
/// <remarks>Numeric</remarks>
[XmlAttribute("vtotal")]
public string? VTotal { get; set; }
/// <remarks>Numeric</remarks>
[XmlAttribute("vbend")]
public string? VBEnd { get; set; }
/// <remarks>Numeric</remarks>
[XmlAttribute("vbstart")]
public string? VBStart { get; set; }
}
}

View File

@@ -1,57 +0,0 @@
using System.Xml;
using System.Xml.Serialization;
namespace SabreTools.Models.Listxml
{
[XmlRoot("driver")]
public class Driver
{
/// <remarks>(good|imperfect|preliminary), (good|preliminary|test) in older versions</remarks>
[Required]
[XmlAttribute("status")]
public string? Status { get; set; }
/// <remarks>(good|imperfect|preliminary), Only present in older versions</remarks>
[XmlAttribute("color")]
public string? Color { get; set; }
/// <remarks>(good|imperfect|preliminary), Only present in older versions</remarks>
[XmlAttribute("sound")]
public string? Sound { get; set; }
/// <remarks>Only present in older versions</remarks>
[XmlAttribute("palettesize")]
public string? PaletteSize { get; set; }
/// <remarks>(good|imperfect|preliminary)</remarks>
[Required]
[XmlAttribute("emulation")]
public string? Emulation { get; set; }
/// <remarks>(good|imperfect|preliminary)</remarks>
[Required]
[XmlAttribute("cocktail")]
public string? Cocktail { get; set; }
/// <remarks>(supported|unsupported)</remarks>
[Required]
[XmlAttribute("savestate")]
public string? SaveState { get; set; }
/// <remarks>(yes|no) "no"</remarks>
[XmlAttribute("requiresartwork")]
public string? RequiresArtwork { get; set; }
/// <remarks>(yes|no) "no"</remarks>
[XmlAttribute("unofficial")]
public string? Unofficial { get; set; }
/// <remarks>(yes|no) "no"</remarks>
[XmlAttribute("nosoundhardware")]
public string? NoSoundHardware { get; set; }
/// <remarks>(yes|no) "no"</remarks>
[XmlAttribute("incomplete")]
public string? Incomplete { get; set; }
}
}

View File

@@ -1,13 +0,0 @@
using System.Xml;
using System.Xml.Serialization;
namespace SabreTools.Models.Listxml
{
[XmlRoot("extension")]
public class Extension
{
[Required]
[XmlAttribute("name")]
public string? Name { get; set; }
}
}

View File

@@ -1,22 +0,0 @@
using System.Xml;
using System.Xml.Serialization;
namespace SabreTools.Models.Listxml
{
[XmlRoot("feature")]
public class Feature
{
/// <remarks>(protection|timing|graphics|palette|sound|capture|camera|microphone|controls|keyboard|mouse|media|disk|printer|tape|punch|drum|rom|comms|lan|wan)</remarks>
[Required]
[XmlAttribute("type")]
public string? Type { get; set; }
/// <remarks>(unemulated|imperfect)</remarks>
[XmlAttribute("status")]
public string? Status { get; set; }
/// <remarks>(unemulated|imperfect)</remarks>
[XmlAttribute("overall")]
public string? Overall { get; set; }
}
}

View File

@@ -1,7 +0,0 @@
using System.Xml.Serialization;
namespace SabreTools.Models.Listxml
{
[XmlRoot("game")]
public class Game : GameBase { }
}

View File

@@ -1,119 +0,0 @@
using System.Xml;
using System.Xml.Serialization;
namespace SabreTools.Models.Listxml
{
/// <summary>
/// Base class to unify the various game-like types
/// </summary>
public abstract class GameBase
{
[Required]
[XmlAttribute("name")]
public string? Name { get; set; }
/// <remarks>Machine only</remarks>
[XmlAttribute("sourcefile")]
public string? SourceFile { get; set; }
/// <remarks>(yes|no) "no", Machine only</remarks>
[XmlAttribute("isbios")]
public string? IsBios { get; set; }
/// <remarks>(yes|no) "no", Machine only</remarks>
[XmlAttribute("isdevice")]
public string? IsDevice { get; set; }
/// <remarks>(yes|no) "no", Machine only</remarks>
[XmlAttribute("ismechanical")]
public string? IsMechanical { get; set; }
/// <remarks>(yes|no) "no"</remarks>
[XmlAttribute("runnable")]
public string? Runnable { get; set; }
[XmlAttribute("cloneof")]
public string? CloneOf { get; set; }
[XmlAttribute("romof")]
public string? RomOf { get; set; }
[XmlAttribute("sampleof")]
public string? SampleOf { get; set; }
[Required]
[XmlElement("description")]
public string? Description { get; set; }
[XmlElement("year")]
public string? Year { get; set; }
[XmlElement("manufacturer")]
public string? Manufacturer { get; set; }
/// <remarks>Game only</remarks>
[XmlElement("history")]
public string? History { get; set; }
[XmlElement("biosset")]
public BiosSet[]? BiosSet { get; set; }
[XmlElement("rom")]
public Rom[]? Rom { get; set; }
[XmlElement("disk")]
public Disk[]? Disk { get; set; }
[XmlElement("device_ref")]
public DeviceRef[]? DeviceRef { get; set; }
[XmlElement("sample")]
public Sample[]? Sample { get; set; }
[XmlElement("chip")]
public Chip[]? Chip { get; set; }
[XmlElement("display")]
public Display[]? Display { get; set; }
/// <remarks>Only present in older versions</remarks>
[XmlElement("video")]
public Video[]? Video { get; set; }
[XmlElement("sound")]
public Sound? Sound { get; set; }
[XmlElement("input")]
public Input? Input { get; set; }
[XmlElement("dipswitch")]
public DipSwitch[]? DipSwitch { get; set; }
[XmlElement("configuration")]
public Configuration[]? Configuration { get; set; }
[XmlElement("port")]
public Port[]? Port { get; set; }
[XmlElement("adjuster")]
public Adjuster[]? Adjuster { get; set; }
[XmlElement("driver")]
public Driver? Driver { get; set; }
[XmlElement("feature")]
public Feature[]? Feature { get; set; }
[XmlElement("device")]
public Device[]? Device { get; set; }
[XmlElement("slot")]
public Slot[]? Slot { get; set; }
[XmlElement("softwarelist")]
public SoftwareList[]? SoftwareList { get; set; }
[XmlElement("ramoption")]
public RamOption[]? RamOption { get; set; }
}
}

View File

@@ -1,37 +0,0 @@
using System.Xml;
using System.Xml.Serialization;
namespace SabreTools.Models.Listxml
{
[XmlRoot("input")]
public class Input
{
/// <remarks>(yes|no) "no"</remarks>
[XmlAttribute("service")]
public string? Service { get; set; }
/// <remarks>(yes|no) "no"</remarks>
[XmlAttribute("tilt")]
public string? Tilt { get; set; }
/// <remarks>Numeric</remarks>
[Required]
[XmlAttribute("players")]
public string? Players { get; set; }
/// <remarks>Only present in older versions</remarks>
[XmlAttribute("control")]
public string? ControlAttr { get; set; }
/// <remarks>Only present in older versions, Numeric?</remarks>
[XmlAttribute("buttons")]
public string? Buttons { get; set; }
/// <remarks>Numeric?</remarks>
[XmlAttribute("coins")]
public string? Coins { get; set; }
[XmlElement("control")]
public Control[]? Control { get; set; }
}
}

View File

@@ -1,17 +0,0 @@
using System.Xml;
using System.Xml.Serialization;
namespace SabreTools.Models.Listxml
{
[XmlRoot("instance")]
public class Instance
{
[Required]
[XmlAttribute("name")]
public string? Name { get; set; }
[Required]
[XmlAttribute("briefname")]
public string? BriefName { get; set; }
}
}

View File

@@ -1,16 +0,0 @@
using System.Xml;
using System.Xml.Serialization;
namespace SabreTools.Models.Listxml
{
[XmlRoot("m1")]
public class M1
{
[XmlAttribute("version")]
public string? Version { get; set; }
[XmlElement("machine", typeof(Machine))]
[XmlElement("game", typeof(Game))]
public GameBase[]? Game { get; set; }
}
}

View File

@@ -1,7 +0,0 @@
using System.Xml.Serialization;
namespace SabreTools.Models.Listxml
{
[XmlRoot("machine")]
public class Machine : GameBase { }
}

View File

@@ -1,24 +0,0 @@
using System.Xml;
using System.Xml.Serialization;
namespace SabreTools.Models.Listxml
{
[XmlRoot("mame")]
public class Mame
{
[XmlAttribute("build")]
public string? Build { get; set; }
/// <remarks>(yes|no) "no"</remarks>
[XmlAttribute("debug")]
public string? Debug { get; set; }
[Required]
[XmlAttribute("mameconfig")]
public string? MameConfig { get; set; }
[XmlElement("machine", typeof(Machine))]
[XmlElement("game", typeof(Game))]
public GameBase[]? Game { get; set; }
}
}

View File

@@ -1,16 +0,0 @@
using System.Xml;
using System.Xml.Serialization;
namespace SabreTools.Models.Listxml
{
[XmlRoot("mess")]
public class Mess
{
[XmlAttribute("version")]
public string? Version { get; set; }
[XmlElement("machine", typeof(Machine))]
[XmlElement("game", typeof(Game))]
public GameBase[]? Game { get; set; }
}
}

View File

@@ -1,16 +0,0 @@
using System.Xml;
using System.Xml.Serialization;
namespace SabreTools.Models.Listxml
{
[XmlRoot("port")]
public class Port
{
[Required]
[XmlAttribute("tag")]
public string? Tag { get; set; }
[XmlElement("analog")]
public Analog[]? Analog { get; set; }
}
}

View File

@@ -1,19 +0,0 @@
using System.Xml;
using System.Xml.Serialization;
namespace SabreTools.Models.Listxml
{
[XmlRoot("ramoption")]
public class RamOption
{
[Required]
[XmlAttribute("name")]
public string? Name { get; set; }
[XmlAttribute("default")]
public string? Default { get; set; }
[XmlText]
public string? Content { get; set; }
}
}

View File

@@ -1,53 +0,0 @@
using System.Xml;
using System.Xml.Serialization;
namespace SabreTools.Models.Listxml
{
[XmlRoot("rom")]
public class Rom
{
[Required]
[XmlAttribute("name")]
public string? Name { get; set; }
[XmlAttribute("bios")]
public string? Bios { get; set; }
/// <remarks>Numeric</remarks>
[Required]
[XmlAttribute("size")]
public string? Size { get; set; }
[XmlAttribute("crc")]
public string? CRC { get; set; }
[XmlAttribute("sha1")]
public string? SHA1 { get; set; }
[XmlAttribute("merge")]
public string? Merge { get; set; }
[XmlAttribute("region")]
public string? Region { get; set; }
/// <remarks>Numeric</remarks>
[XmlAttribute("offset")]
public string? Offset { get; set; }
/// <remarks>(baddump|nodump|good) "good"</remarks>
[XmlAttribute("status")]
public string? Status { get; set; }
/// <remarks>(yes|no) "no"</remarks>
[XmlAttribute("optional")]
public string? Optional { get; set; }
/// <remarks>(yes|no) "no", Only present in older versions</remarks>
[XmlAttribute("dispose")]
public string? Dispose { get; set; }
/// <remarks>(yes|no) "no", Only present in older versions</remarks>
[XmlAttribute("soundonly")]
public string? SoundOnly { get; set; }
}
}

View File

@@ -1,13 +0,0 @@
using System.Xml;
using System.Xml.Serialization;
namespace SabreTools.Models.Listxml
{
[XmlRoot("sample")]
public class Sample
{
[Required]
[XmlAttribute("name")]
public string? Name { get; set; }
}
}

View File

@@ -1,16 +0,0 @@
using System.Xml;
using System.Xml.Serialization;
namespace SabreTools.Models.Listxml
{
[XmlRoot("slot")]
public class Slot
{
[Required]
[XmlAttribute("name")]
public string? Name { get; set; }
[XmlElement("slotoption")]
public SlotOption[]? SlotOption { get; set; }
}
}

View File

@@ -1,21 +0,0 @@
using System.Xml;
using System.Xml.Serialization;
namespace SabreTools.Models.Listxml
{
[XmlRoot("slotoption")]
public class SlotOption
{
[Required]
[XmlAttribute("name")]
public string? Name { get; set; }
[Required]
[XmlAttribute("devname")]
public string? DevName { get; set; }
/// <remarks>(yes|no) "no"</remarks>
[XmlAttribute("default")]
public string? Default { get; set; }
}
}

View File

@@ -1,25 +0,0 @@
using System.Xml;
using System.Xml.Serialization;
namespace SabreTools.Models.Listxml
{
[XmlRoot("softwarelist")]
public class SoftwareList
{
[Required]
[XmlAttribute("tag")]
public string? Tag { get; set; }
[Required]
[XmlAttribute("name")]
public string? Name { get; set; }
/// <remarks>(original|compatible)</remarks>
[Required]
[XmlAttribute("status")]
public string? Status { get; set; }
[XmlAttribute("filter")]
public string? Filter { get; set; }
}
}

View File

@@ -1,14 +0,0 @@
using System.Xml;
using System.Xml.Serialization;
namespace SabreTools.Models.Listxml
{
[XmlRoot("sound")]
public class Sound
{
/// <remarks>Numeric</remarks>
[Required]
[XmlAttribute("channels")]
public string? Channels { get; set; }
}
}

View File

@@ -1,39 +0,0 @@
using System.Xml;
using System.Xml.Serialization;
namespace SabreTools.Models.Listxml
{
[XmlRoot("video")]
public class Video
{
/// <remarks>(raster|vector)</remarks>
[Required]
[XmlAttribute("screen")]
public string? Screen { get; set; }
/// <remarks>(vertical|horizontal)</remarks>
[Required]
[XmlAttribute("orientation")]
public string? Orientation { get; set; }
/// <remarks>Numeric</remarks>
[XmlAttribute("width")]
public string? Width { get; set; }
/// <remarks>Numeric</remarks>
[XmlAttribute("height")]
public string? Height { get; set; }
/// <remarks>Numeric</remarks>
[XmlAttribute("aspectx")]
public string? AspectX { get; set; }
/// <remarks>Numeric</remarks>
[XmlAttribute("aspecty")]
public string? AspectY { get; set; }
/// <remarks>Numeric</remarks>
[XmlAttribute("refresh")]
public string? Refresh { get; set; }
}
}

View File

@@ -1,13 +0,0 @@
using System.Xml;
using System.Xml.Serialization;
namespace SabreTools.Models.Logiqx
{
[XmlRoot("archive")]
public class Archive
{
[Required]
[XmlAttribute("name")]
public string? Name { get; set; }
}
}

View File

@@ -1,21 +0,0 @@
using System.Xml;
using System.Xml.Serialization;
namespace SabreTools.Models.Logiqx
{
[XmlRoot("biosset")]
public class BiosSet
{
[Required]
[XmlAttribute("name")]
public string? Name { get; set; }
[Required]
[XmlAttribute("description")]
public string? Description { get; set; }
/// <remarks>(yes|no) "no"</remarks>
[XmlAttribute("default")]
public string? Default { get; set; }
}
}

View File

@@ -1,24 +0,0 @@
using System.Xml;
using System.Xml.Serialization;
namespace SabreTools.Models.Logiqx
{
[XmlRoot("clrmamepro")]
public class ClrMamePro
{
[XmlAttribute("header")]
public string? Header { get; set; }
/// <remarks>(none|split|merged|nonmerged|fullmerged|device|full) "split"</remarks>
[XmlAttribute("forcemerging")]
public string? ForceMerging { get; set; }
/// <remarks>(obsolete|required|ignore) "obsolete"</remarks>
[XmlAttribute("forcenodump")]
public string? ForceNodump { get; set; }
/// <remarks>(zip|unzip) "zip"</remarks>
[XmlAttribute("forcepacking")]
public string? ForcePacking { get; set; }
}
}

View File

@@ -1,31 +0,0 @@
using System.Xml;
using System.Xml.Serialization;
namespace SabreTools.Models.Logiqx
{
[XmlRoot("datafile")]
public class Datafile
{
[XmlAttribute("build")]
public string? Build { get; set; }
/// <remarks>(yes|no) "no"</remarks>
[XmlAttribute("debug")]
public string? Debug { get; set; }
/// <remarks>No-Intro extension</remarks>
[XmlAttribute(Namespace = "http://www.w3.org/2001/XMLSchema-instance", AttributeName = "schemaLocation")]
public string? SchemaLocation { get; set; }
[XmlElement("header")]
public Header? Header { get; set; }
[XmlElement("game", typeof(Game))]
[XmlElement("machine", typeof(Machine))]
public GameBase[]? Game { get; set; }
/// <remarks>RomVault extension</remarks>
[XmlElement("dir")]
public Dir[]? Dir { get; set; }
}
}

View File

@@ -1,13 +0,0 @@
using System.Xml;
using System.Xml.Serialization;
namespace SabreTools.Models.Logiqx
{
[XmlRoot("device_ref")]
public class DeviceRef
{
[Required]
[XmlAttribute("name")]
public string? Name { get; set; }
}
}

View File

@@ -1,20 +0,0 @@
using System.Xml;
using System.Xml.Serialization;
namespace SabreTools.Models.Logiqx
{
[XmlRoot("dir")]
public class Dir
{
[Required]
[XmlAttribute("name")]
public string? Name { get; set; }
[XmlElement("dir", typeof(Dir))]
public Dir[]? Subdir { get; set; }
[XmlElement("game", typeof(Game))]
[XmlElement("machine", typeof(Machine))]
public GameBase[]? Game { get; set; }
}
}

View File

@@ -1,30 +0,0 @@
using System.Xml;
using System.Xml.Serialization;
namespace SabreTools.Models.Logiqx
{
[XmlRoot("disk")]
public class Disk
{
[Required]
[XmlAttribute("name")]
public string? Name { get; set; }
[XmlAttribute("md5")]
public string? MD5 { get; set; }
[XmlAttribute("sha1")]
public string? SHA1 { get; set; }
[XmlAttribute("merge")]
public string? Merge { get; set; }
/// <remarks>(baddump|nodump|good|verified) "good"</remarks>
[XmlAttribute("status")]
public string? Status { get; set; }
/// <remarks>MAME extension</remarks>
[XmlAttribute("region")]
public string? Region { get; set; }
}
}

View File

@@ -1,45 +0,0 @@
using System.Xml;
using System.Xml.Serialization;
namespace SabreTools.Models.Logiqx
{
[XmlRoot("driver")]
public class Driver
{
/// <remarks>(good|imperfect|preliminary)</remarks>
[Required]
[XmlAttribute("status")]
public string? Status { get; set; }
/// <remarks>(good|imperfect|preliminary)</remarks>
[Required]
[XmlAttribute("emulation")]
public string? Emulation { get; set; }
/// <remarks>(good|imperfect|preliminary)</remarks>
[Required]
[XmlAttribute("cocktail")]
public string? Cocktail { get; set; }
/// <remarks>(supported|unsupported)</remarks>
[Required]
[XmlAttribute("savestate")]
public string? SaveState { get; set; }
/// <remarks>(yes|no) "no"</remarks>
[XmlAttribute("requiresartwork")]
public string? RequiresArtwork { get; set; }
/// <remarks>(yes|no) "no"</remarks>
[XmlAttribute("unofficial")]
public string? Unofficial { get; set; }
/// <remarks>(yes|no) "no"</remarks>
[XmlAttribute("nosoundhardware")]
public string? NoSoundHardware { get; set; }
/// <remarks>(yes|no) "no"</remarks>
[XmlAttribute("incomplete")]
public string? Incomplete { get; set; }
}
}

View File

@@ -1,7 +0,0 @@
using System.Xml.Serialization;
namespace SabreTools.Models.Logiqx
{
[XmlRoot("game")]
public class Game : GameBase { }
}

View File

@@ -1,123 +0,0 @@
using System.Xml;
using System.Xml.Serialization;
namespace SabreTools.Models.Logiqx
{
/// <summary>
/// Base class to unify the various game-like types
/// </summary>
public abstract class GameBase
{
[Required]
[XmlAttribute("name")]
public string? Name { get; set; }
[XmlAttribute("sourcefile")]
public string? SourceFile { get; set; }
/// <remarks>(yes|no) "no"</remarks>
[XmlAttribute("isbios")]
public string? IsBios { get; set; }
/// <remarks>(yes|no) "no", MAME extension</remarks>
[XmlAttribute("isdevice")]
public string? IsDevice { get; set; }
/// <remarks>(yes|no) "no", MAME extension</remarks>
[XmlAttribute("ismechanical")]
public string? IsMechanical { get; set; }
[XmlAttribute("cloneof")]
public string? CloneOf { get; set; }
[XmlAttribute("romof")]
public string? RomOf { get; set; }
[XmlAttribute("sampleof")]
public string? SampleOf { get; set; }
[XmlAttribute("board")]
public string? Board { get; set; }
[XmlAttribute("rebuildto")]
public string? RebuildTo { get; set; }
/// <remarks>No-Intro extension</remarks>
[XmlAttribute("id")]
public string? Id { get; set; }
/// <remarks>No-Intro extension</remarks>
[XmlAttribute("cloneofid")]
public string? CloneOfId { get; set; }
/// <remarks>(no|partial|yes) "no"</remarks>
[XmlAttribute("runnable")]
public string? Runnable { get; set; }
[XmlElement("comment")]
public string[]? Comment { get; set; }
[Required]
[XmlElement("description")]
public string? Description { get; set; }
[XmlElement("year")]
public string? Year { get; set; }
[XmlElement("manufacturer")]
public string? Manufacturer { get; set; }
[XmlElement("publisher")]
public string? Publisher { get; set; }
/// <remarks>No-Intro extension includes more than 1 instance</remarks>
[XmlElement("category")]
public string[]? Category { get; set; }
/// <remarks>Trurip extension</remarks>
[XmlElement("trurip")]
public Trurip? Trurip { get; set; }
[XmlElement(elementName: "release")]
public Release[]? Release { get; set; }
[XmlElement("biosset")]
public BiosSet[]? BiosSet { get; set; }
[XmlElement("rom")]
public Rom[]? Rom { get; set; }
[XmlElement("disk")]
public Disk[]? Disk { get; set; }
/// <remarks>Aaru extension</remarks>
[XmlElement("media")]
public Media[]? Media { get; set; }
/// <remarks>MAME extension</remarks>
[XmlElement("device_ref")]
public DeviceRef[]? DeviceRef { get; set; }
[XmlElement("sample")]
public Sample[]? Sample { get; set; }
[XmlElement("archive")]
public Archive[]? Archive { get; set; }
/// <remarks>MAME extension</remarks>
[XmlElement("driver")]
public Driver? Driver { get; set; }
/// <remarks>MAME extension</remarks>
[XmlElement("softwarelist")]
public SoftwareList[]? SoftwareList { get; set; }
/// <remarks>RetroAchievements extension</remarks>
[XmlAttribute("url")]
public string? Url { get; set; }
/// <remarks>RetroAchievements extension</remarks>
[XmlAttribute("hash")]
public string? Hash { get; set; }
}
}

View File

@@ -1,61 +0,0 @@
using System.Xml;
using System.Xml.Serialization;
namespace SabreTools.Models.Logiqx
{
[XmlRoot("header")]
public class Header
{
/// <remarks>No-Intro extension</remarks>
[XmlElement("id")]
public string? Id { get; set; }
[Required]
[XmlElement("name")]
public string? Name { get; set; }
[Required]
[XmlElement("description")]
public string? Description { get; set; }
/// <remarks>Trurip extension</remarks>
[XmlElement("rootdir")]
public string? RootDir { get; set; }
[XmlElement("category")]
public string? Category { get; set; }
[Required]
[XmlElement("version")]
public string? Version { get; set; }
[XmlElement("date")]
public string? Date { get; set; }
[Required]
[XmlElement("author")]
public string? Author { get; set; }
[XmlElement("email")]
public string? Email { get; set; }
[XmlElement("homepage")]
public string? Homepage { get; set; }
[XmlElement("url")]
public string? Url { get; set; }
[XmlElement("comment")]
public string? Comment { get; set; }
/// <remarks>Trurip extension</remarks>
[XmlElement("type")]
public string? Type { get; set; }
[XmlElement("clrmamepro")]
public ClrMamePro? ClrMamePro { get; set; }
[XmlElement("romcenter")]
public RomCenter? RomCenter { get; set; }
}
}

View File

@@ -1,7 +0,0 @@
using System.Xml.Serialization;
namespace SabreTools.Models.Logiqx
{
[XmlRoot("machine")]
public class Machine : GameBase { }
}

View File

@@ -1,25 +0,0 @@
using System.Xml;
using System.Xml.Serialization;
namespace SabreTools.Models.Logiqx
{
[XmlRoot("media")]
public class Media
{
[Required]
[XmlAttribute("name")]
public string? Name { get; set; }
[XmlAttribute("md5")]
public string? MD5 { get; set; }
[XmlAttribute("sha1")]
public string? SHA1 { get; set; }
[XmlAttribute("sha256")]
public string? SHA256 { get; set; }
[XmlAttribute("spamsum")]
public string? SpamSum { get; set; }
}
}

View File

@@ -1,27 +0,0 @@
using System.Xml;
using System.Xml.Serialization;
namespace SabreTools.Models.Logiqx
{
[XmlRoot("release")]
public class Release
{
[Required]
[XmlAttribute("name")]
public string? Name { get; set; }
[Required]
[XmlAttribute("region")]
public string? Region { get; set; }
[XmlAttribute("language")]
public string? Language { get; set; }
[XmlAttribute("date")]
public string? Date { get; set; }
/// <remarks>(yes|no) "no"</remarks>
[XmlAttribute("default")]
public string? Default { get; set; }
}
}

Some files were not shown because too many files have changed in this diff Show More