diff --git a/SabreTools.Library/DatFiles/DatFile.cs b/SabreTools.Library/DatFiles/DatFile.cs index 4e103773..2bd31568 100644 --- a/SabreTools.Library/DatFiles/DatFile.cs +++ b/SabreTools.Library/DatFiles/DatFile.cs @@ -1952,7 +1952,7 @@ namespace SabreTools.Library.DatFiles } // Get the key and add the file - key = item.GetKey(Field.DatItem_CRC); + key = item.GetKey(Field.Machine_Name); Items.Add(key, item); return key; diff --git a/SabreTools.Library/DatFiles/ItemDictionary.cs b/SabreTools.Library/DatFiles/ItemDictionary.cs index ba6d5945..3f41a1a7 100644 --- a/SabreTools.Library/DatFiles/ItemDictionary.cs +++ b/SabreTools.Library/DatFiles/ItemDictionary.cs @@ -767,7 +767,7 @@ namespace SabreTools.Library.DatFiles // First do the initial sort of all of the roms inplace List oldkeys = Keys.ToList(); - for (int k = 0; k < oldkeys.Count; k++) + Parallel.For(0, oldkeys.Count, Globals.ParallelOptions, k => { string key = oldkeys[k]; @@ -793,7 +793,7 @@ namespace SabreTools.Library.DatFiles // If the key is now empty, remove it if (this[key].Count == 0) Remove(key); - } + }); } // If the merge type isn't the same, we want to merge the dictionary accordingly diff --git a/SabreTools.Library/Tools/Converters.cs b/SabreTools.Library/Tools/Converters.cs index 9af93ac7..a211b96c 100644 --- a/SabreTools.Library/Tools/Converters.cs +++ b/SabreTools.Library/Tools/Converters.cs @@ -160,9 +160,9 @@ namespace SabreTools.Library.Tools input = input.ToLowerInvariant(); // Create regex strings - string headerRegex = @"^(dat|header|datheader)[.-_\s]"; - string machineRegex = @"^(game|machine)[.-_\s]"; - string datItemRegex = @"^(item|datitem|archive|biosset|blank|disk|release|rom|sample)[.-_\s]"; + string headerRegex = @"^(dat|header|datheader)[.\-_\s]"; + string machineRegex = @"^(game|machine)[.\-_\s]"; + string datItemRegex = @"^(item|datitem)[.\-_\s]"; // If we have a header field if (Regex.IsMatch(input, headerRegex)) @@ -1057,7 +1057,8 @@ namespace SabreTools.Library.Tools // Else, we fall back on the old matching // TODO: Remove this entirely - switch (input.Replace(' ', '_').Replace('-', '_').Replace('.', '_')) + // TODO: Normalize space replacement + switch (input) { #region Machine