diff --git a/SabreTools.Library/DatFiles/DatHeader.cs b/SabreTools.Library/DatFiles/DatHeader.cs
index 17f1670f..f5e8a45e 100644
--- a/SabreTools.Library/DatFiles/DatHeader.cs
+++ b/SabreTools.Library/DatFiles/DatHeader.cs
@@ -220,6 +220,7 @@ namespace SabreTools.Library.DatFiles
///
/// System
///
+ /// Known as "plugin" in RomCenter
[JsonProperty("system")]
public string System { get; set; }
diff --git a/SabreTools.Library/DatFiles/RomCenter.cs b/SabreTools.Library/DatFiles/RomCenter.cs
index 31928453..19980fe0 100644
--- a/SabreTools.Library/DatFiles/RomCenter.cs
+++ b/SabreTools.Library/DatFiles/RomCenter.cs
@@ -124,7 +124,7 @@ namespace SabreTools.Library.DatFiles
continue;
}
- // Get all credits items (ONLY OVERWRITE IF THERE'S NO DATA)
+ // Get all credits items
switch (kvp?.Key.ToLowerInvariant())
{
case "author":
@@ -199,7 +199,7 @@ namespace SabreTools.Library.DatFiles
continue;
}
- // Get all dat items (ONLY OVERWRITE IF THERE'S NO DATA)
+ // Get all dat items
switch (kvp?.Key.ToLowerInvariant())
{
case "version":
@@ -207,6 +207,7 @@ namespace SabreTools.Library.DatFiles
break;
case "plugin":
+ Header.System = (Header.System != null ? kvp?.Value : Header.System);
reader.ReadNextLine();
break;
@@ -473,6 +474,7 @@ namespace SabreTools.Library.DatFiles
iw.WriteSection("DAT");
iw.WriteKeyValuePair("version", "2.50");
+ iw.WriteKeyValuePair("plugin", Header.System);
iw.WriteKeyValuePair("split", Header.ForceMerging == ForceMerging.Split ? "1" : "0");
iw.WriteKeyValuePair("merge", Header.ForceMerging == ForceMerging.Full || Header.ForceMerging == ForceMerging.Merged ? "1" : "0");
diff --git a/SabreTools.Library/DatFiles/SeparatedValue.cs b/SabreTools.Library/DatFiles/SeparatedValue.cs
index 0885aa88..69466cbc 100644
--- a/SabreTools.Library/DatFiles/SeparatedValue.cs
+++ b/SabreTools.Library/DatFiles/SeparatedValue.cs
@@ -793,6 +793,7 @@ namespace SabreTools.Library.DatFiles
#region OfflineList
case "system":
+ case "plugin":
return "DatFile.System";
case "screenshotwidth":