diff --git a/SabreTools.Library/DatFiles/ClrMamePro.cs b/SabreTools.Library/DatFiles/ClrMamePro.cs
index 31b6f4e2..6fe419b3 100644
--- a/SabreTools.Library/DatFiles/ClrMamePro.cs
+++ b/SabreTools.Library/DatFiles/ClrMamePro.cs
@@ -85,10 +85,13 @@ namespace SabreTools.Library.DatFiles
// If we have a known set type
else if (normalizedValue == "set" // Used by the most ancient DATs
|| normalizedValue == "game" // Used by most CMP DATs
- || normalizedValue == "machine" // Possibly used by MAME CMP DATs
- || normalizedValue == "resource") // Used by some other DATs to denote a BIOS set
+ || normalizedValue == "machine") // Possibly used by MAME CMP DATs
{
- ReadSet(sr, filename, sysid, srcid, keep, clean, remUnicode);
+ ReadSet(sr, false, filename, sysid, srcid, keep, clean, remUnicode);
+ }
+ else if (normalizedValue == "resource") // Used by some other DATs to denote a BIOS set
+ {
+ ReadSet(sr, true, filename, sysid, srcid, keep, clean, remUnicode);
}
}
}
@@ -227,6 +230,7 @@ namespace SabreTools.Library.DatFiles
/// Read set information
///
/// StreamReader to use to parse the header
+ /// True if the item is a resource (bios), false otherwise
/// Name of the file to be parsed
/// System ID for the DAT
/// Source ID for the DAT
@@ -235,6 +239,7 @@ namespace SabreTools.Library.DatFiles
/// True if we should remove non-ASCII characters from output, false otherwise (default)
private void ReadSet(
StreamReader reader,
+ bool resource,
// Standard Dat parsing
string filename,
@@ -248,7 +253,10 @@ namespace SabreTools.Library.DatFiles
{
// Prepare all internal variables
bool containsItems = false;
- Machine machine = new Machine();
+ Machine machine = new Machine()
+ {
+ MachineType = (resource ? MachineType.Bios : MachineType.None),
+ };
// If there's no subtree to the header, skip it
if (reader == null || reader.EndOfStream)
@@ -818,7 +826,7 @@ namespace SabreTools.Library.DatFiles
rom.MachineName = rom.MachineName.Substring(1);
}
- string state = "game (\n\tname \"" + rom.MachineName + "\"\n" +
+ string state = (rom.MachineType == MachineType.Bios ? "resource" : "game") + " (\n\tname \"" + rom.MachineName + "\"\n" +
(ExcludeOf ? "" :
(String.IsNullOrWhiteSpace(rom.RomOf) ? "" : "\tromof \"" + rom.RomOf + "\"\n") +
(String.IsNullOrWhiteSpace(rom.CloneOf) ? "" : "\tcloneof \"" + rom.CloneOf + "\"\n") +