diff --git a/CHANGELIST.md b/CHANGELIST.md
index c4a11142..53a0d4f9 100644
--- a/CHANGELIST.md
+++ b/CHANGELIST.md
@@ -108,6 +108,7 @@
- Move Aaru CICM code to Core
- Clean up Core dependencies
- Move Aaru CICM code to Processors
+- Merge UI.Core into main application
### 3.1.9a (2024-05-21)
diff --git a/MPF.UI.Core/MPF.UI.Core.csproj b/MPF.UI.Core/MPF.UI.Core.csproj
deleted file mode 100644
index 63848704..00000000
--- a/MPF.UI.Core/MPF.UI.Core.csproj
+++ /dev/null
@@ -1,61 +0,0 @@
-
-
-
-
- net35;net40;net452;net462;net472;net48;netcoreapp3.1;net5.0-windows;net6.0-windows;net7.0-windows;net8.0-windows
- win-x86;win-x64
- false
- true
- false
- true
- latest
- enable
- true
- true
- true
- true
- 3.1.9
-
-
- Matt Nadareski;ReignStumble;Jakz
- Common code for all MPF UI implementations
- Copyright (c) Matt Nadareski 2019-2024
- https://github.com/SabreTools/
- https://github.com/SabreTools/MPF
- git
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- $(DefaultXamlRuntime)
-
-
- $(DefaultXamlRuntime)
-
-
- $(DefaultXamlRuntime)
-
-
-
diff --git a/MPF.sln b/MPF.sln
index ed5b49f8..068d0f65 100644
--- a/MPF.sln
+++ b/MPF.sln
@@ -20,8 +20,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.UI.Core", "MPF.UI.Core\MPF.UI.Core.csproj", "{EA3768DB-694A-4653-82E4-9FF71B8963F3}"
-EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ISSUE_TEMPLATE", "ISSUE_TEMPLATE", "{ADC5FDD7-F43F-4F9C-B222-19AA1D64D3D4}"
ProjectSection(SolutionItems) = preProject
.github\ISSUE_TEMPLATE\feature-request.md = .github\ISSUE_TEMPLATE\feature-request.md
@@ -64,10 +62,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
- {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
- {EA3768DB-694A-4653-82E4-9FF71B8963F3}.Release|Any CPU.Build.0 = Release|Any CPU
{92515FC1-2B4E-423F-AE8B-7B7C599C5F70}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{92515FC1-2B4E-423F-AE8B-7B7C599C5F70}.Debug|Any CPU.Build.0 = Debug|Any CPU
{92515FC1-2B4E-423F-AE8B-7B7C599C5F70}.Release|Any CPU.ActiveCfg = Release|Any CPU
diff --git a/MPF/App.xaml b/MPF/App.xaml
index cda9095d..50fbbd04 100644
--- a/MPF/App.xaml
+++ b/MPF/App.xaml
@@ -1,7 +1,7 @@
diff --git a/MPF.UI.Core/Constants.cs b/MPF/Constants.cs
similarity index 98%
rename from MPF.UI.Core/Constants.cs
rename to MPF/Constants.cs
index 6fddd767..c6549b54 100644
--- a/MPF.UI.Core/Constants.cs
+++ b/MPF/Constants.cs
@@ -4,7 +4,7 @@ using System.Linq;
using System.Windows.Media;
using static MPF.Frontend.InterfaceConstants;
-namespace MPF.UI.Core
+namespace MPF.UI
{
///
/// Variables for UI elements
diff --git a/MPF.UI.Core/ElementConverter.cs b/MPF/ElementConverter.cs
similarity index 98%
rename from MPF.UI.Core/ElementConverter.cs
rename to MPF/ElementConverter.cs
index 712cb8d8..356d18c2 100644
--- a/MPF.UI.Core/ElementConverter.cs
+++ b/MPF/ElementConverter.cs
@@ -5,7 +5,7 @@ using MPF.Core;
using MPF.Frontend.ComboBoxItems;
using SabreTools.RedumpLib.Data;
-namespace MPF.UI.Core
+namespace MPF.UI
{
internal class ElementConverter: IValueConverter
{
diff --git a/MPF.UI.Core/External/WPFCustomMessageBox/CustomMessageBox.cs b/MPF/External/WPFCustomMessageBox/CustomMessageBox.cs
similarity index 100%
rename from MPF.UI.Core/External/WPFCustomMessageBox/CustomMessageBox.cs
rename to MPF/External/WPFCustomMessageBox/CustomMessageBox.cs
diff --git a/MPF.UI.Core/External/WPFCustomMessageBox/CustomMessageBoxWindow.xaml b/MPF/External/WPFCustomMessageBox/CustomMessageBoxWindow.xaml
similarity index 100%
rename from MPF.UI.Core/External/WPFCustomMessageBox/CustomMessageBoxWindow.xaml
rename to MPF/External/WPFCustomMessageBox/CustomMessageBoxWindow.xaml
diff --git a/MPF.UI.Core/External/WPFCustomMessageBox/CustomMessageBoxWindow.xaml.cs b/MPF/External/WPFCustomMessageBox/CustomMessageBoxWindow.xaml.cs
similarity index 99%
rename from MPF.UI.Core/External/WPFCustomMessageBox/CustomMessageBoxWindow.xaml.cs
rename to MPF/External/WPFCustomMessageBox/CustomMessageBoxWindow.xaml.cs
index b893b3f5..3f060615 100644
--- a/MPF.UI.Core/External/WPFCustomMessageBox/CustomMessageBoxWindow.xaml.cs
+++ b/MPF/External/WPFCustomMessageBox/CustomMessageBoxWindow.xaml.cs
@@ -3,7 +3,7 @@ using System.Drawing;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Input;
-using MPF.UI.Core;
+using MPF.UI;
#pragma warning disable IDE1006 // Naming Styles
diff --git a/MPF.UI.Core/External/WPFCustomMessageBox/LICENSE b/MPF/External/WPFCustomMessageBox/LICENSE
similarity index 100%
rename from MPF.UI.Core/External/WPFCustomMessageBox/LICENSE
rename to MPF/External/WPFCustomMessageBox/LICENSE
diff --git a/MPF.UI.Core/External/WPFCustomMessageBox/Util.cs b/MPF/External/WPFCustomMessageBox/Util.cs
similarity index 100%
rename from MPF.UI.Core/External/WPFCustomMessageBox/Util.cs
rename to MPF/External/WPFCustomMessageBox/Util.cs
diff --git a/MPF.UI.Core/Images/ring-code-guide-1-layer.png b/MPF/Images/ring-code-guide-1-layer.png
similarity index 100%
rename from MPF.UI.Core/Images/ring-code-guide-1-layer.png
rename to MPF/Images/ring-code-guide-1-layer.png
diff --git a/MPF.UI.Core/Images/ring-code-guide-2-layer.png b/MPF/Images/ring-code-guide-2-layer.png
similarity index 100%
rename from MPF.UI.Core/Images/ring-code-guide-2-layer.png
rename to MPF/Images/ring-code-guide-2-layer.png
diff --git a/MPF.UI.Core/ItemHelper.cs b/MPF/ItemHelper.cs
similarity index 99%
rename from MPF.UI.Core/ItemHelper.cs
rename to MPF/ItemHelper.cs
index afee7f23..62525379 100644
--- a/MPF.UI.Core/ItemHelper.cs
+++ b/MPF/ItemHelper.cs
@@ -2,7 +2,7 @@
using System.Windows.Media;
using System.Windows;
-namespace MPF.UI.Core
+namespace MPF.UI
{
internal static class ItemHelper
{
diff --git a/MPF/MPF.csproj b/MPF/MPF.csproj
index 21a3be61..04b3c165 100644
--- a/MPF/MPF.csproj
+++ b/MPF/MPF.csproj
@@ -51,11 +51,13 @@
+
+
-
+
@@ -80,6 +82,18 @@
+
+
+ $(DefaultXamlRuntime)
+
+
+ $(DefaultXamlRuntime)
+
+
+ $(DefaultXamlRuntime)
+
+
+
diff --git a/MPF.UI.Core/Theme.cs b/MPF/Theme.cs
similarity index 99%
rename from MPF.UI.Core/Theme.cs
rename to MPF/Theme.cs
index f395ab99..c6093403 100644
--- a/MPF.UI.Core/Theme.cs
+++ b/MPF/Theme.cs
@@ -1,7 +1,7 @@
using System.Windows;
using System.Windows.Media;
-namespace MPF.UI.Core
+namespace MPF.UI
{
///
/// Represents all required mapping values for the UI
diff --git a/MPF.UI.Core/UserControls/LogOutput.xaml b/MPF/UserControls/LogOutput.xaml
similarity index 96%
rename from MPF.UI.Core/UserControls/LogOutput.xaml
rename to MPF/UserControls/LogOutput.xaml
index 85f68610..abd491bb 100644
--- a/MPF.UI.Core/UserControls/LogOutput.xaml
+++ b/MPF/UserControls/LogOutput.xaml
@@ -1,4 +1,4 @@
-
/// Interaction logic for UserInput.xaml
diff --git a/MPF.UI.Core/Windows/CheckDumpWindow.xaml b/MPF/Windows/CheckDumpWindow.xaml
similarity index 98%
rename from MPF.UI.Core/Windows/CheckDumpWindow.xaml
rename to MPF/Windows/CheckDumpWindow.xaml
index 2b927061..f6062cc6 100644
--- a/MPF.UI.Core/Windows/CheckDumpWindow.xaml
+++ b/MPF/Windows/CheckDumpWindow.xaml
@@ -1,10 +1,10 @@
-
/// Interaction logic for CheckDumpWindow.xaml
diff --git a/MPF.UI.Core/Windows/CreateIRDWindow.xaml b/MPF/Windows/CreateIRDWindow.xaml
similarity index 98%
rename from MPF.UI.Core/Windows/CreateIRDWindow.xaml
rename to MPF/Windows/CreateIRDWindow.xaml
index a05a955d..0e64883a 100644
--- a/MPF.UI.Core/Windows/CreateIRDWindow.xaml
+++ b/MPF/Windows/CreateIRDWindow.xaml
@@ -1,10 +1,10 @@
-
/// Interaction logic for CreateIRDWindow.xaml
diff --git a/MPF.UI.Core/Windows/DiscInformationWindow.xaml b/MPF/Windows/DiscInformationWindow.xaml
similarity index 99%
rename from MPF.UI.Core/Windows/DiscInformationWindow.xaml
rename to MPF/Windows/DiscInformationWindow.xaml
index ed06fd0d..0ecc0299 100644
--- a/MPF.UI.Core/Windows/DiscInformationWindow.xaml
+++ b/MPF/Windows/DiscInformationWindow.xaml
@@ -1,12 +1,12 @@
-
/// Interaction logic for DiscInformationWindow.xaml
diff --git a/MPF.UI.Core/Windows/MainWindow.xaml b/MPF/Windows/MainWindow.xaml
similarity index 98%
rename from MPF.UI.Core/Windows/MainWindow.xaml
rename to MPF/Windows/MainWindow.xaml
index 6795b19e..6ce595f8 100644
--- a/MPF.UI.Core/Windows/MainWindow.xaml
+++ b/MPF/Windows/MainWindow.xaml
@@ -1,11 +1,11 @@
-
/// Interaction logic for OptionsWindow.xaml
diff --git a/MPF.UI.Core/Windows/RingCodeGuideWindow.xaml b/MPF/Windows/RingCodeGuideWindow.xaml
similarity index 98%
rename from MPF.UI.Core/Windows/RingCodeGuideWindow.xaml
rename to MPF/Windows/RingCodeGuideWindow.xaml
index c8a3653e..7a8e7656 100644
--- a/MPF.UI.Core/Windows/RingCodeGuideWindow.xaml
+++ b/MPF/Windows/RingCodeGuideWindow.xaml
@@ -1,10 +1,10 @@
-
/// Interaction logic for RingCodeGuideWindow.xaml
diff --git a/MPF.UI.Core/Windows/WindowBase.cs b/MPF/Windows/WindowBase.cs
similarity index 97%
rename from MPF.UI.Core/Windows/WindowBase.cs
rename to MPF/Windows/WindowBase.cs
index e48de1a9..ccc83fa9 100644
--- a/MPF.UI.Core/Windows/WindowBase.cs
+++ b/MPF/Windows/WindowBase.cs
@@ -1,7 +1,7 @@
using System.Windows;
using System.Windows.Input;
-namespace MPF.UI.Core.Windows
+namespace MPF.UI.Windows
{
public class WindowBase : Window
{