diff --git a/Source/Core/Core/CMakeLists.txt b/Source/Core/Core/CMakeLists.txt
index b5e731ce15..734d966781 100644
--- a/Source/Core/Core/CMakeLists.txt
+++ b/Source/Core/Core/CMakeLists.txt
@@ -101,6 +101,7 @@ set(SRCS Src/ActionReplay.cpp
Src/HW/EXI_DeviceIPL.cpp
Src/HW/EXI_DeviceMemoryCard.cpp
Src/HW/EXI_DeviceMic.cpp
+ Src/HW/GCMemcard.cpp
Src/HW/GCPad.cpp
Src/HW/GCPadEmu.cpp
Src/HW/GPFifo.cpp
diff --git a/Source/Core/Core/Core.vcxproj b/Source/Core/Core/Core.vcxproj
index cc6d673f29..b0b72fcc1b 100644
--- a/Source/Core/Core/Core.vcxproj
+++ b/Source/Core/Core/Core.vcxproj
@@ -287,6 +287,7 @@
+
@@ -483,6 +484,7 @@
+
diff --git a/Source/Core/Core/Core.vcxproj.filters b/Source/Core/Core/Core.vcxproj.filters
index e51098f2ec..66b25af176 100644
--- a/Source/Core/Core/Core.vcxproj.filters
+++ b/Source/Core/Core/Core.vcxproj.filters
@@ -553,6 +553,9 @@
FifoPlayer
+
+ HW %28Flipper/Hollywood%29\GCMemcard
+
@@ -1027,6 +1030,9 @@
FifoPlayer
+
+ HW %28Flipper/Hollywood%29\GCMemcard
+
@@ -1165,5 +1171,8 @@
{ca7d56f7-4e84-4d15-9aea-7ae6fa7d6586}
+
+ {3e9e6e83-c1bf-45f9-aeff-231f98f60d29}
+
\ No newline at end of file
diff --git a/Source/Core/Core/SConscript b/Source/Core/Core/SConscript
index 2f350557ec..3dafad8a62 100644
--- a/Source/Core/Core/SConscript
+++ b/Source/Core/Core/SConscript
@@ -97,6 +97,7 @@ files = [
'Src/HW/EXI_DeviceIPL.cpp',
'Src/HW/EXI_DeviceMemoryCard.cpp',
'Src/HW/EXI_DeviceMic.cpp',
+ 'Src/HW/GCMemcard.cpp',
'Src/HW/GCPad.cpp',
'Src/HW/GCPadEmu.cpp',
'Src/HW/GPFifo.cpp',
diff --git a/Source/Core/Core/Src/HW/EXI_DeviceMemoryCard.cpp b/Source/Core/Core/Src/HW/EXI_DeviceMemoryCard.cpp
index dcf6cfb0e0..5e3d6865d4 100644
--- a/Source/Core/Core/Src/HW/EXI_DeviceMemoryCard.cpp
+++ b/Source/Core/Core/Src/HW/EXI_DeviceMemoryCard.cpp
@@ -26,7 +26,7 @@
#include "EXI_Device.h"
#include "EXI_DeviceMemoryCard.h"
#include "Sram.h"
-#include "../../DolphinWx/Src/MemoryCards/GCMemcard.h"
+#include "GCMemcard.h"
#define MC_STATUS_BUSY 0x80
#define MC_STATUS_UNLOCKED 0x40
diff --git a/Source/Core/DolphinWX/Src/MemoryCards/GCMemcard.cpp b/Source/Core/Core/Src/HW/GCMemcard.cpp
similarity index 100%
rename from Source/Core/DolphinWX/Src/MemoryCards/GCMemcard.cpp
rename to Source/Core/Core/Src/HW/GCMemcard.cpp
diff --git a/Source/Core/DolphinWX/Src/MemoryCards/GCMemcard.h b/Source/Core/Core/Src/HW/GCMemcard.h
similarity index 98%
rename from Source/Core/DolphinWX/Src/MemoryCards/GCMemcard.h
rename to Source/Core/Core/Src/HW/GCMemcard.h
index c53830034d..5aa0a3c97f 100644
--- a/Source/Core/DolphinWX/Src/MemoryCards/GCMemcard.h
+++ b/Source/Core/Core/Src/HW/GCMemcard.h
@@ -19,9 +19,9 @@
#define __GCMEMCARD_h__
#include "Common.h"
-#include "../../../Core/Src/HW/Sram.h"
+#include "Sram.h"
#include "StringUtil.h"
-#include "../../../Core/Src/HW/EXI_DeviceIPL.h"
+#include "EXI_DeviceIPL.h"
#define BE32(x) (Common::swap32(x))
#define BE16(x) (Common::swap16(x))
diff --git a/Source/Core/DolphinWX/CMakeLists.txt b/Source/Core/DolphinWX/CMakeLists.txt
index f38e791cd0..438ee9ce82 100644
--- a/Source/Core/DolphinWX/CMakeLists.txt
+++ b/Source/Core/DolphinWX/CMakeLists.txt
@@ -52,7 +52,6 @@ if(wxWidgets_FOUND)
Src/LogWindow.cpp
Src/Main.cpp
Src/MemcardManager.cpp
- Src/MemoryCards/GCMemcard.cpp
Src/MemoryCards/WiiSaveCrypted.cpp
Src/NetWindow.cpp
Src/PHackSettings.cpp
diff --git a/Source/Core/DolphinWX/Dolphin.vcxproj b/Source/Core/DolphinWX/Dolphin.vcxproj
index fc232ea77f..2d64eb58bc 100644
--- a/Source/Core/DolphinWX/Dolphin.vcxproj
+++ b/Source/Core/DolphinWX/Dolphin.vcxproj
@@ -255,7 +255,6 @@ xcopy "$(SolutionDir)..\Externals\SDL\$(PlatformName)\*.dll" "$(TargetDir)" /e /
true
-
@@ -309,7 +308,6 @@ xcopy "$(SolutionDir)..\Externals\SDL\$(PlatformName)\*.dll" "$(TargetDir)" /e /
-
diff --git a/Source/Core/DolphinWX/Dolphin.vcxproj.filters b/Source/Core/DolphinWX/Dolphin.vcxproj.filters
index 3c14226fc0..9c679eee36 100644
--- a/Source/Core/DolphinWX/Dolphin.vcxproj.filters
+++ b/Source/Core/DolphinWX/Dolphin.vcxproj.filters
@@ -6,9 +6,6 @@
-
- GUI\Saves
-
GUI\Saves
@@ -141,9 +138,6 @@
-
- GUI\Saves
-
GUI\Saves
diff --git a/Source/Core/DolphinWX/SConscript b/Source/Core/DolphinWX/SConscript
index 3d3d1e56c2..92ca4f9f62 100644
--- a/Source/Core/DolphinWX/SConscript
+++ b/Source/Core/DolphinWX/SConscript
@@ -43,7 +43,6 @@ else:
'Src/LogWindow.cpp',
'Src/Main.cpp',
'Src/MemcardManager.cpp',
- 'Src/MemoryCards/GCMemcard.cpp',
'Src/MemoryCards/WiiSaveCrypted.cpp',
'Src/NetWindow.cpp',
'Src/PHackSettings.cpp',
diff --git a/Source/Core/DolphinWX/Src/ConfigMain.cpp b/Source/Core/DolphinWX/Src/ConfigMain.cpp
index 8b2dcb07f6..10472b15eb 100644
--- a/Source/Core/DolphinWX/Src/ConfigMain.cpp
+++ b/Source/Core/DolphinWX/Src/ConfigMain.cpp
@@ -27,6 +27,7 @@
#include "HW/SI.h"
#include "HW/DSPHLE/DSPHLE.h"
#include "HW/DSPLLE/DSPLLE.h"
+#include "HW/GCMemcard.h"
#include "IPC_HLE/WII_IPC_HLE.h"
#include "NANDContentLoader.h"
@@ -37,7 +38,6 @@
#include "Frame.h"
#include "HotkeyDlg.h"
#include "Main.h"
-#include "MemoryCards/GCMemcard.h"
#include "VideoBackendBase.h"
#define TEXT_BOX(page, text) new wxStaticText(page, wxID_ANY, text, wxDefaultPosition, wxDefaultSize)
diff --git a/Source/Core/DolphinWX/Src/MemcardManager.h b/Source/Core/DolphinWX/Src/MemcardManager.h
index e3707f6414..beff71b671 100644
--- a/Source/Core/DolphinWX/Src/MemcardManager.h
+++ b/Source/Core/DolphinWX/Src/MemcardManager.h
@@ -29,7 +29,7 @@
#include "IniFile.h"
#include "FileUtil.h"
-#include "MemoryCards/GCMemcard.h"
+#include "HW/GCMemcard.h"
#undef MEMCARD_MANAGER_STYLE
#define MEMCARD_MANAGER_STYLE wxCAPTION | wxSYSTEM_MENU | wxDIALOG_NO_PARENT | wxCLOSE_BOX | wxRESIZE_BORDER | wxMAXIMIZE_BOX