diff --git a/CHANGELIST.md b/CHANGELIST.md
index 6ac2f6aa..5ba2648e 100644
--- a/CHANGELIST.md
+++ b/CHANGELIST.md
@@ -20,6 +20,7 @@
- Be trickier when it comes to type from size
- Fix "detected" message
- Be smarter about media type based on system
+- Consolidate into MPF.Core
### 2.6.6 (2023-10-04)
diff --git a/MPF.Check/MPF.Check.csproj b/MPF.Check/MPF.Check.csproj
index cbf5d5f2..6ea7d916 100644
--- a/MPF.Check/MPF.Check.csproj
+++ b/MPF.Check/MPF.Check.csproj
@@ -17,7 +17,6 @@
-
diff --git a/MPF.Check/Program.cs b/MPF.Check/Program.cs
index de89c4f7..6fdd2e38 100644
--- a/MPF.Check/Program.cs
+++ b/MPF.Check/Program.cs
@@ -1,10 +1,10 @@
using System;
using System.IO;
using BurnOutSharp;
+using MPF.Core;
using MPF.Core.Converters;
using MPF.Core.Data;
using MPF.Core.Utilities;
-using MPF.Library;
using SabreTools.RedumpLib.Data;
using SabreTools.RedumpLib.Web;
diff --git a/MPF.Core/AssemblyInfo.cs b/MPF.Core/AssemblyInfo.cs
deleted file mode 100644
index c6ca6aa9..00000000
--- a/MPF.Core/AssemblyInfo.cs
+++ /dev/null
@@ -1,4 +0,0 @@
-using System.Runtime.CompilerServices;
-
-// Anything marked as internal can be used by the test methods
-[assembly: InternalsVisibleTo("MPF.Test")]
\ No newline at end of file
diff --git a/MPF.Library/DumpEnvironment.cs b/MPF.Core/DumpEnvironment.cs
similarity index 99%
rename from MPF.Library/DumpEnvironment.cs
rename to MPF.Core/DumpEnvironment.cs
index 49257495..f1884505 100644
--- a/MPF.Library/DumpEnvironment.cs
+++ b/MPF.Core/DumpEnvironment.cs
@@ -4,12 +4,13 @@ using System.Diagnostics;
using System.IO;
using System.Threading.Tasks;
using BurnOutSharp;
+using MPF.Core;
using MPF.Core.Data;
using MPF.Core.Utilities;
-using MPF.Modules;
+using MPF.Core.Modules;
using SabreTools.RedumpLib.Data;
-namespace MPF.Library
+namespace MPF.Core
{
///
/// Represents the state of all settings to be used during dumping
diff --git a/MPF.Library/InfoTool.cs b/MPF.Core/InfoTool.cs
similarity index 99%
rename from MPF.Library/InfoTool.cs
rename to MPF.Core/InfoTool.cs
index 180f4a61..6dcc2c8f 100644
--- a/MPF.Library/InfoTool.cs
+++ b/MPF.Core/InfoTool.cs
@@ -11,13 +11,13 @@ using System.Xml;
using BurnOutSharp;
using MPF.Core.Data;
using MPF.Core.Utilities;
-using MPF.Modules;
+using MPF.Core.Modules;
using Newtonsoft.Json;
using SabreTools.RedumpLib.Data;
using SabreTools.RedumpLib.Web;
using Formatting = Newtonsoft.Json.Formatting;
-namespace MPF.Library
+namespace MPF.Core
{
public static class InfoTool
{
diff --git a/MPF.Core/MPF.Core.csproj b/MPF.Core/MPF.Core.csproj
index 23923e3b..885c66d7 100644
--- a/MPF.Core/MPF.Core.csproj
+++ b/MPF.Core/MPF.Core.csproj
@@ -10,11 +10,20 @@
+
+
+
+
+
+ runtime; compile; build; native; analyzers; buildtransitive
+
+
+
diff --git a/MPF.Modules/Aaru/Constants.cs b/MPF.Core/Modules/Aaru/Constants.cs
similarity index 99%
rename from MPF.Modules/Aaru/Constants.cs
rename to MPF.Core/Modules/Aaru/Constants.cs
index 0ff24e7e..d0b6b65c 100644
--- a/MPF.Modules/Aaru/Constants.cs
+++ b/MPF.Core/Modules/Aaru/Constants.cs
@@ -1,4 +1,4 @@
-namespace MPF.Modules.Aaru
+namespace MPF.Core.Modules.Aaru
{
///
/// Top-level commands for Aaru
diff --git a/MPF.Modules/Aaru/Converters.cs b/MPF.Core/Modules/Aaru/Converters.cs
similarity index 94%
rename from MPF.Modules/Aaru/Converters.cs
rename to MPF.Core/Modules/Aaru/Converters.cs
index 939c699a..8020d0b7 100644
--- a/MPF.Modules/Aaru/Converters.cs
+++ b/MPF.Core/Modules/Aaru/Converters.cs
@@ -1,6 +1,6 @@
using SabreTools.RedumpLib.Data;
-namespace MPF.Modules.Aaru
+namespace MPF.Core.Modules.Aaru
{
public static class Converters
{
diff --git a/MPF.Modules/Aaru/Parameters.cs b/MPF.Core/Modules/Aaru/Parameters.cs
similarity index 99%
rename from MPF.Modules/Aaru/Parameters.cs
rename to MPF.Core/Modules/Aaru/Parameters.cs
index f594a14c..8ff145b4 100644
--- a/MPF.Modules/Aaru/Parameters.cs
+++ b/MPF.Core/Modules/Aaru/Parameters.cs
@@ -16,7 +16,7 @@ using Schemas;
// Ignore "Type or member is obsolete"
#pragma warning disable CS0618
-namespace MPF.Modules.Aaru
+namespace MPF.Core.Modules.Aaru
{
///
/// Represents a generic set of Aaru parameters
diff --git a/MPF.Modules/Aaru/cicm.cs b/MPF.Core/Modules/Aaru/cicm.cs
similarity index 100%
rename from MPF.Modules/Aaru/cicm.cs
rename to MPF.Core/Modules/Aaru/cicm.cs
diff --git a/MPF.Modules/BaseParameters.cs b/MPF.Core/Modules/BaseParameters.cs
similarity index 99%
rename from MPF.Modules/BaseParameters.cs
rename to MPF.Core/Modules/BaseParameters.cs
index 55663234..389ccb61 100644
--- a/MPF.Modules/BaseParameters.cs
+++ b/MPF.Core/Modules/BaseParameters.cs
@@ -15,7 +15,7 @@ using MPF.Core.Utilities;
using SabreTools.Models.PIC;
using SabreTools.RedumpLib.Data;
-namespace MPF.Modules
+namespace MPF.Core.Modules
{
public abstract class BaseParameters
{
diff --git a/MPF.Modules/CleanRIp/Parameters.cs b/MPF.Core/Modules/CleanRIp/Parameters.cs
similarity index 99%
rename from MPF.Modules/CleanRIp/Parameters.cs
rename to MPF.Core/Modules/CleanRIp/Parameters.cs
index 23b50175..e9e8f7ab 100644
--- a/MPF.Modules/CleanRIp/Parameters.cs
+++ b/MPF.Core/Modules/CleanRIp/Parameters.cs
@@ -7,7 +7,7 @@ using MPF.Core.Converters;
using MPF.Core.Data;
using SabreTools.RedumpLib.Data;
-namespace MPF.Modules.CleanRip
+namespace MPF.Core.Modules.CleanRip
{
///
/// Represents a generic set of CleanRip parameters
diff --git a/MPF.Modules/Datafile.cs b/MPF.Core/Modules/Datafile.cs
similarity index 98%
rename from MPF.Modules/Datafile.cs
rename to MPF.Core/Modules/Datafile.cs
index ecc18319..c42679c2 100644
--- a/MPF.Modules/Datafile.cs
+++ b/MPF.Core/Modules/Datafile.cs
@@ -1,6 +1,6 @@
using System.Xml.Serialization;
-namespace MPF.Modules
+namespace MPF.Core.Modules
{
[XmlRoot("datafile")]
public class Datafile
diff --git a/MPF.Modules/DiscImageCreator/Constants.cs b/MPF.Core/Modules/DiscImageCreator/Constants.cs
similarity index 98%
rename from MPF.Modules/DiscImageCreator/Constants.cs
rename to MPF.Core/Modules/DiscImageCreator/Constants.cs
index 35d13347..e3ca1759 100644
--- a/MPF.Modules/DiscImageCreator/Constants.cs
+++ b/MPF.Core/Modules/DiscImageCreator/Constants.cs
@@ -1,4 +1,4 @@
-namespace MPF.Modules.DiscImageCreator
+namespace MPF.Core.Modules.DiscImageCreator
{
///
/// Top-level commands for DiscImageCreator
diff --git a/MPF.Modules/DiscImageCreator/Converters.cs b/MPF.Core/Modules/DiscImageCreator/Converters.cs
similarity index 99%
rename from MPF.Modules/DiscImageCreator/Converters.cs
rename to MPF.Core/Modules/DiscImageCreator/Converters.cs
index 3b2f04f3..a544b38e 100644
--- a/MPF.Modules/DiscImageCreator/Converters.cs
+++ b/MPF.Core/Modules/DiscImageCreator/Converters.cs
@@ -1,6 +1,6 @@
using SabreTools.RedumpLib.Data;
-namespace MPF.Modules.DiscImageCreator
+namespace MPF.Core.Modules.DiscImageCreator
{
public static class Converters
{
diff --git a/MPF.Modules/DiscImageCreator/Parameters.cs b/MPF.Core/Modules/DiscImageCreator/Parameters.cs
similarity index 99%
rename from MPF.Modules/DiscImageCreator/Parameters.cs
rename to MPF.Core/Modules/DiscImageCreator/Parameters.cs
index b662806f..e9781094 100644
--- a/MPF.Modules/DiscImageCreator/Parameters.cs
+++ b/MPF.Core/Modules/DiscImageCreator/Parameters.cs
@@ -9,7 +9,7 @@ using MPF.Core.Utilities;
using SabreTools.Models.PIC;
using SabreTools.RedumpLib.Data;
-namespace MPF.Modules.DiscImageCreator
+namespace MPF.Core.Modules.DiscImageCreator
{
///
/// Represents a generic set of DiscImageCreator parameters
diff --git a/MPF.Modules/Redumper/Constants.cs b/MPF.Core/Modules/Redumper/Constants.cs
similarity index 98%
rename from MPF.Modules/Redumper/Constants.cs
rename to MPF.Core/Modules/Redumper/Constants.cs
index dc6dca2a..66a6dd25 100644
--- a/MPF.Modules/Redumper/Constants.cs
+++ b/MPF.Core/Modules/Redumper/Constants.cs
@@ -1,4 +1,4 @@
-namespace MPF.Modules.Redumper
+namespace MPF.Core.Modules.Redumper
{
///
/// Top-level commands for Redumper
diff --git a/MPF.Modules/Redumper/Converters.cs b/MPF.Core/Modules/Redumper/Converters.cs
similarity index 95%
rename from MPF.Modules/Redumper/Converters.cs
rename to MPF.Core/Modules/Redumper/Converters.cs
index 76399de5..83fd3319 100644
--- a/MPF.Modules/Redumper/Converters.cs
+++ b/MPF.Core/Modules/Redumper/Converters.cs
@@ -1,6 +1,6 @@
using SabreTools.RedumpLib.Data;
-namespace MPF.Modules.Redumper
+namespace MPF.Core.Modules.Redumper
{
public static class Converters
{
diff --git a/MPF.Modules/Redumper/Parameters.cs b/MPF.Core/Modules/Redumper/Parameters.cs
similarity index 99%
rename from MPF.Modules/Redumper/Parameters.cs
rename to MPF.Core/Modules/Redumper/Parameters.cs
index 48f810fb..631bc694 100644
--- a/MPF.Modules/Redumper/Parameters.cs
+++ b/MPF.Core/Modules/Redumper/Parameters.cs
@@ -8,7 +8,7 @@ using MPF.Core.Data;
using MPF.Core.Utilities;
using SabreTools.RedumpLib.Data;
-namespace MPF.Modules.Redumper
+namespace MPF.Core.Modules.Redumper
{
///
/// Represents a generic set of Redumper parameters
diff --git a/MPF.Modules/UmdImageCreator/Parameters.cs b/MPF.Core/Modules/UmdImageCreator/Parameters.cs
similarity index 99%
rename from MPF.Modules/UmdImageCreator/Parameters.cs
rename to MPF.Core/Modules/UmdImageCreator/Parameters.cs
index d141a8d8..9a729c05 100644
--- a/MPF.Modules/UmdImageCreator/Parameters.cs
+++ b/MPF.Core/Modules/UmdImageCreator/Parameters.cs
@@ -6,7 +6,7 @@ using MPF.Core.Converters;
using MPF.Core.Data;
using SabreTools.RedumpLib.Data;
-namespace MPF.Modules.UmdImageCreator
+namespace MPF.Core.Modules.UmdImageCreator
{
///
/// Represents a generic set of UmdImageCreator parameters
diff --git a/MPF.Library/Protection.cs b/MPF.Core/Protection.cs
similarity index 99%
rename from MPF.Library/Protection.cs
rename to MPF.Core/Protection.cs
index be071f74..5b34f20c 100644
--- a/MPF.Library/Protection.cs
+++ b/MPF.Core/Protection.cs
@@ -8,7 +8,7 @@ using BinaryObjectScanner.Protection;
using BurnOutSharp;
using psxt001z;
-namespace MPF.Library
+namespace MPF.Core
{
public static class Protection
{
diff --git a/MPF.Library/AssemblyInfo.cs b/MPF.Library/AssemblyInfo.cs
deleted file mode 100644
index c6ca6aa9..00000000
--- a/MPF.Library/AssemblyInfo.cs
+++ /dev/null
@@ -1,4 +0,0 @@
-using System.Runtime.CompilerServices;
-
-// Anything marked as internal can be used by the test methods
-[assembly: InternalsVisibleTo("MPF.Test")]
\ No newline at end of file
diff --git a/MPF.Library/MPF.Library.csproj b/MPF.Library/MPF.Library.csproj
deleted file mode 100644
index 97ad2df3..00000000
--- a/MPF.Library/MPF.Library.csproj
+++ /dev/null
@@ -1,33 +0,0 @@
-
-
-
- net48;net6.0;net7.0
- win-x64;linux-x64;osx-x64
- Matt Nadareski;ReignStumble;Jakz
- Copyright (c)2019-2023
- 2.6.6
- true
-
-
-
-
-
-
-
-
-
- runtime; compile; build; native; analyzers; buildtransitive
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/MPF.Modules/AssemblyInfo.cs b/MPF.Modules/AssemblyInfo.cs
deleted file mode 100644
index c6ca6aa9..00000000
--- a/MPF.Modules/AssemblyInfo.cs
+++ /dev/null
@@ -1,4 +0,0 @@
-using System.Runtime.CompilerServices;
-
-// Anything marked as internal can be used by the test methods
-[assembly: InternalsVisibleTo("MPF.Test")]
\ No newline at end of file
diff --git a/MPF.Modules/MPF.Modules.csproj b/MPF.Modules/MPF.Modules.csproj
deleted file mode 100644
index 108c6f30..00000000
--- a/MPF.Modules/MPF.Modules.csproj
+++ /dev/null
@@ -1,24 +0,0 @@
-
-
-
- net48;net6.0;net7.0
- win-x64;linux-x64;osx-x64
- Matt Nadareski;ReignStumble;Jakz
- Copyright (c)2019-2023
- 2.6.6
- true
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/MPF.Test/Library/DumpEnvironmentTests.cs b/MPF.Test/Library/DumpEnvironmentTests.cs
index 84f9c8fd..25cdce1b 100644
--- a/MPF.Test/Library/DumpEnvironmentTests.cs
+++ b/MPF.Test/Library/DumpEnvironmentTests.cs
@@ -1,6 +1,5 @@
-using System.IO;
+using MPF.Core;
using MPF.Core.Data;
-using MPF.Library;
using SabreTools.RedumpLib.Data;
using Xunit;
diff --git a/MPF.Test/MPF.Test.csproj b/MPF.Test/MPF.Test.csproj
index f56325f8..dee5bcb1 100644
--- a/MPF.Test/MPF.Test.csproj
+++ b/MPF.Test/MPF.Test.csproj
@@ -7,8 +7,6 @@
-
-
diff --git a/MPF.Test/Modules/DiscImageCreatorTests.cs b/MPF.Test/Modules/DiscImageCreatorTests.cs
index 2c055907..b2b98cb6 100644
--- a/MPF.Test/Modules/DiscImageCreatorTests.cs
+++ b/MPF.Test/Modules/DiscImageCreatorTests.cs
@@ -1,6 +1,6 @@
using System.Collections.Generic;
using MPF.Core.Data;
-using MPF.Modules.DiscImageCreator;
+using MPF.Core.Modules.DiscImageCreator;
using SabreTools.RedumpLib.Data;
using Xunit;
diff --git a/MPF.UI.Core/MPF.UI.Core.csproj b/MPF.UI.Core/MPF.UI.Core.csproj
index f8f47f7f..cc281334 100644
--- a/MPF.UI.Core/MPF.UI.Core.csproj
+++ b/MPF.UI.Core/MPF.UI.Core.csproj
@@ -17,7 +17,6 @@
-
diff --git a/MPF.UI.Core/ViewModels/MainViewModel.cs b/MPF.UI.Core/ViewModels/MainViewModel.cs
index 8a3c3354..8e35f1fd 100644
--- a/MPF.UI.Core/ViewModels/MainViewModel.cs
+++ b/MPF.UI.Core/ViewModels/MainViewModel.cs
@@ -5,9 +5,9 @@ using System.Linq;
using System.Windows;
using System.Windows.Controls;
using BurnOutSharp;
+using MPF.Core;
using MPF.Core.Data;
using MPF.Core.Utilities;
-using MPF.Library;
using MPF.UI.Core.ComboBoxItems;
using MPF.UI.Core.Windows;
using SabreTools.RedumpLib.Data;
diff --git a/MPF.sln b/MPF.sln
index f1244174..9fb5628d 100644
--- a/MPF.sln
+++ b/MPF.sln
@@ -7,8 +7,6 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "MPF", "MPF\MPF.csproj", "{7
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "MPF.Test", "MPF.Test\MPF.Test.csproj", "{7CC064D2-38AB-4A05-8519-28660DE4562A}"
EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "MPF.Library", "MPF.Library\MPF.Library.csproj", "{51AB0928-13F9-44BF-A407-B6957A43A056}"
-EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "MPF.Check", "MPF.Check\MPF.Check.csproj", "{8CFDE289-E171-4D49-A40D-5293265C1253}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{4D1DCF5A-F0B0-4E81-A05B-F1A7D37C9D9D}"
@@ -25,8 +23,6 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "MPF.Core", "MPF.Core\MPF.Core.csproj", "{70B1265D-FE49-472A-A83D-0B462152D37A}"
EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "MPF.Modules", "MPF.Modules\MPF.Modules.csproj", "{8A4254BD-552F-4238-B8EB-D59AACD768B9}"
-EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "MPF.UI.Core", "MPF.UI.Core\MPF.UI.Core.csproj", "{EA3768DB-694A-4653-82E4-9FF71B8963F3}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "MPF", "MPF", "{4160167D-681D-480B-ABC6-06AC869E5769}"
@@ -45,10 +41,6 @@ Global
{7CC064D2-38AB-4A05-8519-28660DE4562A}.Debug|Any CPU.Build.0 = Debug|Any CPU
{7CC064D2-38AB-4A05-8519-28660DE4562A}.Release|Any CPU.ActiveCfg = Release|Any CPU
{7CC064D2-38AB-4A05-8519-28660DE4562A}.Release|Any CPU.Build.0 = Release|Any CPU
- {51AB0928-13F9-44BF-A407-B6957A43A056}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {51AB0928-13F9-44BF-A407-B6957A43A056}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {51AB0928-13F9-44BF-A407-B6957A43A056}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {51AB0928-13F9-44BF-A407-B6957A43A056}.Release|Any CPU.Build.0 = Release|Any CPU
{8CFDE289-E171-4D49-A40D-5293265C1253}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{8CFDE289-E171-4D49-A40D-5293265C1253}.Debug|Any CPU.Build.0 = Debug|Any CPU
{8CFDE289-E171-4D49-A40D-5293265C1253}.Release|Any CPU.ActiveCfg = Release|Any CPU
@@ -57,10 +49,6 @@ Global
{70B1265D-FE49-472A-A83D-0B462152D37A}.Debug|Any CPU.Build.0 = Debug|Any CPU
{70B1265D-FE49-472A-A83D-0B462152D37A}.Release|Any CPU.ActiveCfg = Release|Any CPU
{70B1265D-FE49-472A-A83D-0B462152D37A}.Release|Any CPU.Build.0 = Release|Any CPU
- {8A4254BD-552F-4238-B8EB-D59AACD768B9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {8A4254BD-552F-4238-B8EB-D59AACD768B9}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {8A4254BD-552F-4238-B8EB-D59AACD768B9}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {8A4254BD-552F-4238-B8EB-D59AACD768B9}.Release|Any CPU.Build.0 = Release|Any CPU
{EA3768DB-694A-4653-82E4-9FF71B8963F3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{EA3768DB-694A-4653-82E4-9FF71B8963F3}.Debug|Any CPU.Build.0 = Debug|Any CPU
{EA3768DB-694A-4653-82E4-9FF71B8963F3}.Release|Any CPU.ActiveCfg = Release|Any CPU
@@ -72,10 +60,8 @@ Global
GlobalSection(NestedProjects) = preSolution
{7B1B75EB-8940-466F-BD51-76471A57F9BE} = {4160167D-681D-480B-ABC6-06AC869E5769}
{7CC064D2-38AB-4A05-8519-28660DE4562A} = {4160167D-681D-480B-ABC6-06AC869E5769}
- {51AB0928-13F9-44BF-A407-B6957A43A056} = {4160167D-681D-480B-ABC6-06AC869E5769}
{8CFDE289-E171-4D49-A40D-5293265C1253} = {4160167D-681D-480B-ABC6-06AC869E5769}
{70B1265D-FE49-472A-A83D-0B462152D37A} = {4160167D-681D-480B-ABC6-06AC869E5769}
- {8A4254BD-552F-4238-B8EB-D59AACD768B9} = {4160167D-681D-480B-ABC6-06AC869E5769}
{EA3768DB-694A-4653-82E4-9FF71B8963F3} = {4160167D-681D-480B-ABC6-06AC869E5769}
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
diff --git a/MPF/MPF.csproj b/MPF/MPF.csproj
index 6220fa5c..9295bb65 100644
--- a/MPF/MPF.csproj
+++ b/MPF/MPF.csproj
@@ -21,7 +21,6 @@
-