From 5e1f6ac4b3fe78bd04a35f605bd533cde3177ea1 Mon Sep 17 00:00:00 2001 From: Matt Nadareski Date: Wed, 28 Jan 2026 09:52:35 -0500 Subject: [PATCH] Partially hook up driverstatus for CMP --- SabreTools.Serialization.Test/CrossModel/ClrMameProTests.cs | 2 ++ SabreTools.Serialization.Test/Readers/ClrMameProTests.cs | 2 ++ SabreTools.Serialization/CrossModel/ClrMamePro.Deserializer.cs | 1 + SabreTools.Serialization/CrossModel/ClrMamePro.Serializer.cs | 1 + SabreTools.Serialization/Models/ClrMamePro/GameBase.cs | 3 +++ SabreTools.Serialization/Readers/ClrMamePro.cs | 3 +++ SabreTools.Serialization/Writers/ClrMamePro.cs | 1 + 7 files changed, 13 insertions(+) diff --git a/SabreTools.Serialization.Test/CrossModel/ClrMameProTests.cs b/SabreTools.Serialization.Test/CrossModel/ClrMameProTests.cs index 01d00903..348dece7 100644 --- a/SabreTools.Serialization.Test/CrossModel/ClrMameProTests.cs +++ b/SabreTools.Serialization.Test/CrossModel/ClrMameProTests.cs @@ -211,6 +211,7 @@ namespace SabreTools.Serialization.Test.CrossModel : new Data.Models.ClrMamePro.Machine(); gameBase.Name = "XXXXXX"; gameBase.Description = "XXXXXX"; + gameBase.DriverStatus = "XXXXXX"; gameBase.Year = "XXXXXX"; gameBase.Manufacturer = "XXXXXX"; gameBase.Category = "XXXXXX"; @@ -275,6 +276,7 @@ namespace SabreTools.Serialization.Test.CrossModel Assert.NotNull(gb); Assert.Equal("XXXXXX", gb.Name); Assert.Equal("XXXXXX", gb.Description); + // Assert.Equal("XXXXXX", gb.DriverStatus); Assert.Equal("XXXXXX", gb.Year); Assert.Equal("XXXXXX", gb.Manufacturer); Assert.Equal("XXXXXX", gb.Category); diff --git a/SabreTools.Serialization.Test/Readers/ClrMameProTests.cs b/SabreTools.Serialization.Test/Readers/ClrMameProTests.cs index 8257510f..347d23f2 100644 --- a/SabreTools.Serialization.Test/Readers/ClrMameProTests.cs +++ b/SabreTools.Serialization.Test/Readers/ClrMameProTests.cs @@ -328,6 +328,7 @@ namespace SabreTools.Serialization.Test.Readers : new Data.Models.ClrMamePro.Machine(); gameBase.Name = "XXXXXX"; gameBase.Description = "XXXXXX"; + gameBase.DriverStatus = "XXXXXX"; gameBase.Year = "XXXXXX"; gameBase.Manufacturer = "XXXXXX"; gameBase.Category = "XXXXXX"; @@ -392,6 +393,7 @@ namespace SabreTools.Serialization.Test.Readers Assert.NotNull(gb); Assert.Equal("XXXXXX", gb.Name); Assert.Equal("XXXXXX", gb.Description); + // Assert.Equal("XXXXXX", gb.DriverStatus); Assert.Equal("XXXXXX", gb.Year); Assert.Equal("XXXXXX", gb.Manufacturer); Assert.Equal("XXXXXX", gb.Category); diff --git a/SabreTools.Serialization/CrossModel/ClrMamePro.Deserializer.cs b/SabreTools.Serialization/CrossModel/ClrMamePro.Deserializer.cs index 55170993..1b9089b0 100644 --- a/SabreTools.Serialization/CrossModel/ClrMamePro.Deserializer.cs +++ b/SabreTools.Serialization/CrossModel/ClrMamePro.Deserializer.cs @@ -71,6 +71,7 @@ namespace SabreTools.Serialization.CrossModel gameBase.Name = item.ReadString(Data.Models.Metadata.Machine.NameKey); gameBase.Description = item.ReadString(Data.Models.Metadata.Machine.DescriptionKey); + // gameBase.DriverStatus = item.ReadString(Data.Models.Metadata.Machine.DriverKey); gameBase.Year = item.ReadString(Data.Models.Metadata.Machine.YearKey); gameBase.Manufacturer = item.ReadString(Data.Models.Metadata.Machine.ManufacturerKey); gameBase.Category = item.ReadString(Data.Models.Metadata.Machine.CategoryKey); diff --git a/SabreTools.Serialization/CrossModel/ClrMamePro.Serializer.cs b/SabreTools.Serialization/CrossModel/ClrMamePro.Serializer.cs index 88464923..6399a0db 100644 --- a/SabreTools.Serialization/CrossModel/ClrMamePro.Serializer.cs +++ b/SabreTools.Serialization/CrossModel/ClrMamePro.Serializer.cs @@ -66,6 +66,7 @@ namespace SabreTools.Serialization.CrossModel { [Data.Models.Metadata.Machine.NameKey] = item.Name, [Data.Models.Metadata.Machine.DescriptionKey] = item.Description, + // [Data.Models.Metadata.Machine.DriverKey] = item.DriverStatus, [Data.Models.Metadata.Machine.YearKey] = item.Year, [Data.Models.Metadata.Machine.ManufacturerKey] = item.Manufacturer, [Data.Models.Metadata.Machine.CategoryKey] = item.Category, diff --git a/SabreTools.Serialization/Models/ClrMamePro/GameBase.cs b/SabreTools.Serialization/Models/ClrMamePro/GameBase.cs index a0e95fe3..f3372028 100644 --- a/SabreTools.Serialization/Models/ClrMamePro/GameBase.cs +++ b/SabreTools.Serialization/Models/ClrMamePro/GameBase.cs @@ -59,6 +59,9 @@ namespace SabreTools.Data.Models.ClrMamePro #region MAME Extensions + /// status, (good|imperfect|preliminary), Appears after Description + public string? DriverStatus { get; set; } + /// chip, Appears after Archive public Chip[]? Chip { get; set; } diff --git a/SabreTools.Serialization/Readers/ClrMamePro.cs b/SabreTools.Serialization/Readers/ClrMamePro.cs index d9311849..55976ccd 100644 --- a/SabreTools.Serialization/Readers/ClrMamePro.cs +++ b/SabreTools.Serialization/Readers/ClrMamePro.cs @@ -283,6 +283,9 @@ namespace SabreTools.Serialization.Readers case "description": game.Description = reader.Standalone?.Value; break; + case "driverstatus": + game.DriverStatus = reader.Standalone?.Value; + break; case "year": game.Year = reader.Standalone?.Value; break; diff --git a/SabreTools.Serialization/Writers/ClrMamePro.cs b/SabreTools.Serialization/Writers/ClrMamePro.cs index c6e313fb..43ecb754 100644 --- a/SabreTools.Serialization/Writers/ClrMamePro.cs +++ b/SabreTools.Serialization/Writers/ClrMamePro.cs @@ -173,6 +173,7 @@ namespace SabreTools.Serialization.Writers // Write the standalone values writer.WriteRequiredStandalone("name", game.Name, throwOnError: true); writer.WriteOptionalStandalone("description", game.Description); + writer.WriteOptionalStandalone("driverstatus", game.DriverStatus); writer.WriteOptionalStandalone("year", game.Year); writer.WriteOptionalStandalone("manufacturer", game.Manufacturer); writer.WriteOptionalStandalone("category", game.Category);