diff --git a/Core/Core.vcxproj b/Core/Core.vcxproj
index 690577f7..dfabcf2e 100644
--- a/Core/Core.vcxproj
+++ b/Core/Core.vcxproj
@@ -84,25 +84,25 @@
-
+
-
+
-
-
-
-
+
+
+
+
-
-
-
-
-
-
+
+
+
+
+
+
@@ -131,7 +131,7 @@
-
+
@@ -139,12 +139,12 @@
-
-
-
-
-
-
+
+
+
+
+
+
@@ -170,13 +170,13 @@
-
+
-
-
+
+
-
+
@@ -187,17 +187,17 @@
-
-
+
+
-
-
-
+
+
+
-
+
@@ -241,37 +241,37 @@
-
-
-
-
-
-
-
+
+
+
+
+
+
+
-
-
-
-
+
+
+
+
-
+
-
+
-
-
-
-
+
+
+
+
@@ -279,8 +279,8 @@
-
-
+
+
@@ -307,7 +307,7 @@
-
+
@@ -316,10 +316,10 @@
-
-
-
-
+
+
+
+
@@ -327,12 +327,12 @@
-
-
-
-
-
-
+
+
+
+
+
+
@@ -355,19 +355,19 @@
-
+
-
+
-
-
-
-
+
+
+
+
@@ -383,13 +383,13 @@
-
-
-
-
+
+
+
+
-
+
@@ -398,27 +398,27 @@
-
-
-
+
+
+
-
-
-
+
+
+
-
+
-
-
-
-
+
+
+
+
@@ -434,7 +434,7 @@
Create
Create
-
+
diff --git a/Core/Core.vcxproj.filters b/Core/Core.vcxproj.filters
index 34a31c9c..69255a46 100644
--- a/Core/Core.vcxproj.filters
+++ b/Core/Core.vcxproj.filters
@@ -142,7 +142,7 @@
SNES\Input
-
+
SNES\Input
@@ -163,7 +163,7 @@
Debugger
-
+
Debugger
@@ -223,7 +223,7 @@
Misc
-
+
SNES\Input
@@ -247,13 +247,13 @@
Debugger\Disassembler
-
+
Debugger\Disassembler
-
+
Debugger\Disassembler
-
+
Debugger
@@ -280,10 +280,10 @@
SNES
-
+
Debugger\Disassembler
-
+
SNES\Coprocessors
@@ -295,82 +295,82 @@
Debugger
-
+
SNES\Coprocessors\SA1
-
+
SNES\Coprocessors\SA1
-
+
SNES\Coprocessors\SA1
-
+
SNES\Coprocessors\SA1
-
+
Debugger\Debuggers
-
+
Debugger\Debuggers
SNES
-
+
SNES\Coprocessors\GSU
-
+
SNES\Coprocessors\GSU
-
+
Debugger\Debuggers
-
+
Debugger\Disassembler
SNES
-
+
SNES\Coprocessors\GSU
-
+
SNES\Coprocessors\GSU
-
+
SNES\Coprocessors\SDD1
-
+
SNES\Coprocessors\SDD1
-
+
SNES\Coprocessors\SDD1
-
+
SNES\Coprocessors\SDD1
-
+
SNES\Coprocessors\CX4
-
+
SNES\Coprocessors\CX4
-
+
Debugger\Disassembler
-
+
SNES\Coprocessors\DSP
-
+
SNES\Coprocessors\DSP
-
+
SNES\Coprocessors\OBC1
-
+
SNES\Coprocessors\SA1
-
+
SNES\Input
@@ -391,7 +391,7 @@
Misc
-
+
SNES\Input
@@ -472,46 +472,46 @@
Debugger\Debuggers
-
+
SNES\Coprocessors\MSU1
SNES\Coprocessors\MSU1
-
+
SNES\Coprocessors\SA1
-
+
SNES\Coprocessors\SA1
Debugger
-
+
SNES\Coprocessors\SPC7110
-
+
SNES\Coprocessors\SPC7110
-
+
SNES\Coprocessors\SPC7110
-
+
SNES\Coprocessors\BSX
-
+
SNES\Coprocessors\BSX
-
+
SNES\Coprocessors\BSX
-
+
SNES\Coprocessors\BSX
-
+
Debugger\Debuggers
-
+
Debugger\Debuggers
@@ -574,7 +574,7 @@
GB\Carts
-
+
Debugger\EventManager
@@ -586,7 +586,7 @@
GB
-
+
Debugger\Assembler
@@ -595,7 +595,7 @@
Debugger\Assembler
-
+
SNES\Coprocessors\SuperGameboy
@@ -867,10 +867,10 @@
Debugger\Disassembler
-
+
Debugger\Disassembler
-
+
Debugger\Disassembler
@@ -900,58 +900,58 @@
SNES
-
+
Debugger\Disassembler
SNES
-
+
SNES\Coprocessors\SA1
-
+
SNES\Coprocessors\SA1
-
+
Debugger\Debuggers
-
+
Debugger\Debuggers
-
+
SNES\Coprocessors\GSU
-
+
SNES\Coprocessors\GSU
-
+
Debugger\Debuggers
-
+
Debugger\Disassembler
-
+
SNES\Coprocessors\SDD1
-
+
SNES\Coprocessors\SDD1
-
+
SNES\Coprocessors\SDD1
-
+
SNES\Coprocessors\CX4
-
+
SNES\Coprocessors\CX4
-
+
Debugger\Disassembler
-
+
SNES\Coprocessors\DSP
-
+
SNES\Coprocessors\OBC1
@@ -969,7 +969,7 @@
Misc
-
+
SNES\Input
@@ -978,7 +978,7 @@
SNES\Input
-
+
SNES\Input
@@ -1002,37 +1002,37 @@
SNES\Coprocessors\MSU1
-
+
SNES\Coprocessors\MSU1
Debugger
-
+
SNES\Coprocessors\SPC7110
-
+
SNES\Coprocessors\SPC7110
-
+
SNES\Coprocessors\SPC7110
-
+
SNES\Coprocessors\BSX
-
+
SNES\Coprocessors\BSX
-
+
SNES\Coprocessors\BSX
-
+
SNES\Coprocessors\BSX
-
+
Debugger\Debuggers
-
+
Debugger\Debuggers
@@ -1059,7 +1059,7 @@
GB
-
+
Debugger\EventManager
@@ -1068,7 +1068,7 @@
GB
-
+
Debugger\Assembler
@@ -1083,7 +1083,7 @@
GB\APU
-
+
SNES\Coprocessors\SuperGameboy
diff --git a/Core/Debugger.cpp b/Core/Debugger.cpp
index 4ac88b30..371f5591 100644
--- a/Core/Debugger.cpp
+++ b/Core/Debugger.cpp
@@ -6,16 +6,16 @@
#include "SNES/Cpu.h"
#include "SNES/Ppu.h"
#include "SNES/Spc.h"
-#include "SNES/Sa1.h"
-#include "SNES/Gsu.h"
-#include "SNES/Cx4.h"
-#include "SNES/NecDsp.h"
+#include "SNES/Coprocessors/SA1/Sa1.h"
+#include "SNES/Coprocessors/GSU/Gsu.h"
+#include "SNES/Coprocessors/CX4/Cx4.h"
+#include "SNES/Coprocessors/DSP/NecDsp.h"
#include "Gameboy/Gameboy.h"
-#include "SNES/CpuDebugger.h"
-#include "SNES/SpcDebugger.h"
-#include "SNES/GsuDebugger.h"
-#include "SNES/NecDspDebugger.h"
-#include "SNES/Cx4Debugger.h"
+#include "SNES/Debugger/CpuDebugger.h"
+#include "SNES/Debugger/SpcDebugger.h"
+#include "SNES/Debugger/GsuDebugger.h"
+#include "SNES/Debugger/NecDspDebugger.h"
+#include "SNES/Debugger/Cx4Debugger.h"
#include "Gameboy/GbDebugger.h"
#include "SNES/BaseCartridge.h"
#include "SNES/MemoryManager.h"
@@ -32,8 +32,6 @@
#include "Disassembler.h"
#include "BreakpointManager.h"
#include "PpuTools.h"
-#include "SNES/EventManager.h"
-#include "Gameboy/GbEventManager.h"
#include "EventType.h"
#include "DebugBreakHelper.h"
#include "LabelManager.h"
@@ -43,7 +41,6 @@
#include "SNES/InternalRegisters.h"
#include "SNES/AluMulDiv.h"
#include "SNES/DmaController.h"
-#include "SNES/Assembler.h"
#include "Gameboy/Gameboy.h"
#include "Gameboy/GbPpu.h"
#include "Gameboy/GbAssembler.h"
@@ -55,6 +52,7 @@
#include "NES/NesDebugger.h"
#include "NES/NesTypes.h"
#include "BaseState.h"
+#include "BaseEventManager.h"
Debugger::Debugger(Emulator* emu, IConsole* console)
{
diff --git a/Core/LuaApi.cpp b/Core/LuaApi.cpp
index 2d94e808..b8ae985e 100644
--- a/Core/LuaApi.cpp
+++ b/Core/LuaApi.cpp
@@ -19,7 +19,7 @@
#include "SNES/BaseCartridge.h"
#include "IKeyManager.h"
#include "SNES/ControlManager.h"
-#include "SNES/SnesController.h"
+#include "SNES/Input/SnesController.h"
#include "SNES/Ppu.h"
#include "KeyManager.h"
#include "MemoryAccessCounter.h"
diff --git a/Core/SNES/BaseCartridge.cpp b/Core/SNES/BaseCartridge.cpp
index 131b54f8..56baf241 100644
--- a/Core/SNES/BaseCartridge.cpp
+++ b/Core/SNES/BaseCartridge.cpp
@@ -4,26 +4,26 @@
#include "RomHandler.h"
#include "MemoryMappings.h"
#include "IMemoryHandler.h"
-#include "BaseCoprocessor.h"
#include "MessageManager.h"
#include "Emulator.h"
#include "Console.h"
#include "EmuSettings.h"
#include "SettingTypes.h"
#include "BatteryManager.h"
-#include "NecDsp.h"
-#include "Sa1.h"
-#include "Gsu.h"
-#include "Sdd1.h"
-#include "Cx4.h"
-#include "Obc1.h"
-#include "Spc7110.h"
-#include "BsxCart.h"
-#include "BsxMemoryPack.h"
#include "FirmwareHelper.h"
#include "SpcFileData.h"
-#include "SuperGameboy.h"
#include "Gameboy/Gameboy.h"
+#include "SNES/Coprocessors/DSP/NecDsp.h"
+#include "SNES/Coprocessors/BaseCoprocessor.h"
+#include "SNES/Coprocessors/SA1/Sa1.h"
+#include "SNES/Coprocessors/GSU/Gsu.h"
+#include "SNES/Coprocessors/SDD1/Sdd1.h"
+#include "SNES/Coprocessors/CX4/Cx4.h"
+#include "SNES/Coprocessors/OBC1/Obc1.h"
+#include "SNES/Coprocessors/SPC7110/Spc7110.h"
+#include "SNES/Coprocessors/BSX/BsxCart.h"
+#include "SNES/Coprocessors/BSX/BsxMemoryPack.h"
+#include "SNES/Coprocessors/SGB/SuperGameboy.h"
#include "Utilities/HexUtilities.h"
#include "Utilities/VirtualFile.h"
#include "Utilities/FolderUtilities.h"
diff --git a/Core/SNES/BaseCartridge.h b/Core/SNES/BaseCartridge.h
index 4531b33b..0b52b255 100644
--- a/Core/SNES/BaseCartridge.h
+++ b/Core/SNES/BaseCartridge.h
@@ -2,7 +2,7 @@
#include "stdafx.h"
#include "IMemoryHandler.h"
#include "CartTypes.h"
-#include "BaseCoprocessor.h"
+#include "Coprocessors/BaseCoprocessor.h"
#include "Utilities/ISerializable.h"
class MemoryMappings;
diff --git a/Core/SNES/Console.cpp b/Core/SNES/Console.cpp
index 72f9615b..d611fe1b 100644
--- a/Core/SNES/Console.cpp
+++ b/Core/SNES/Console.cpp
@@ -3,7 +3,6 @@
#include "Cpu.h"
#include "Ppu.h"
#include "Spc.h"
-#include "NecDsp.h"
#include "InternalRegisters.h"
#include "ControlManager.h"
#include "MemoryManager.h"
@@ -34,11 +33,11 @@
#include "MovieManager.h"
#include "SystemActionManager.h"
#include "SpcHud.h"
-#include "Msu1.h"
#include "Emulator.h"
-#include "Sa1.h"
-#include "Gsu.h"
-#include "Cx4.h"
+#include "SNES/Coprocessors/MSU1/Msu1.h"
+#include "SNES/Coprocessors/SA1/Sa1.h"
+#include "SNES/Coprocessors/GSU/Gsu.h"
+#include "SNES/Coprocessors/CX4/Cx4.h"
#include "IControlManager.h"
#include "Utilities/Serializer.h"
#include "Utilities/Timer.h"
diff --git a/Core/SNES/ControlManager.cpp b/Core/SNES/ControlManager.cpp
index c59228a3..8666c831 100644
--- a/Core/SNES/ControlManager.cpp
+++ b/Core/SNES/ControlManager.cpp
@@ -9,10 +9,10 @@
#include "IInputProvider.h"
#include "IInputRecorder.h"
#include "SystemActionManager.h"
-#include "SnesController.h"
-#include "SnesMouse.h"
-#include "Multitap.h"
-#include "SuperScope.h"
+#include "SNES/Input/SnesController.h"
+#include "SNES/Input/SnesMouse.h"
+#include "SNES/Input/Multitap.h"
+#include "SNES/Input/SuperScope.h"
#include "EventType.h"
#include "Utilities/Serializer.h"
diff --git a/Core/SNES/BsxCart.cpp b/Core/SNES/Coprocessors/BSX/BsxCart.cpp
similarity index 98%
rename from Core/SNES/BsxCart.cpp
rename to Core/SNES/Coprocessors/BSX/BsxCart.cpp
index a33bd546..8c9924af 100644
--- a/Core/SNES/BsxCart.cpp
+++ b/Core/SNES/Coprocessors/BSX/BsxCart.cpp
@@ -1,10 +1,10 @@
#include "stdafx.h"
-#include "BsxCart.h"
-#include "Console.h"
#include "Emulator.h"
-#include "MemoryManager.h"
#include "MemoryMappings.h"
-#include "BaseCartridge.h"
+#include "BsxCart.h"
+#include "SNES/Console.h"
+#include "SNES/MemoryManager.h"
+#include "SNES/BaseCartridge.h"
#include "BsxMemoryPack.h"
#include "BsxSatellaview.h"
#include "RamHandler.h"
diff --git a/Core/SNES/BsxCart.h b/Core/SNES/Coprocessors/BSX/BsxCart.h
similarity index 95%
rename from Core/SNES/BsxCart.h
rename to Core/SNES/Coprocessors/BSX/BsxCart.h
index c7240739..abf64984 100644
--- a/Core/SNES/BsxCart.h
+++ b/Core/SNES/Coprocessors/BSX/BsxCart.h
@@ -1,6 +1,6 @@
#pragma once
#include "stdafx.h"
-#include "BaseCoprocessor.h"
+#include "SNES/Coprocessors/BaseCoprocessor.h"
class Console;
class MemoryManager;
diff --git a/Core/SNES/BsxMemoryPack.cpp b/Core/SNES/Coprocessors/BSX/BsxMemoryPack.cpp
similarity index 99%
rename from Core/SNES/BsxMemoryPack.cpp
rename to Core/SNES/Coprocessors/BSX/BsxMemoryPack.cpp
index 1906c837..ef4fe26e 100644
--- a/Core/SNES/BsxMemoryPack.cpp
+++ b/Core/SNES/Coprocessors/BSX/BsxMemoryPack.cpp
@@ -1,6 +1,6 @@
#include "stdafx.h"
#include "BsxMemoryPack.h"
-#include "Console.h"
+#include "SNES/Console.h"
#include "Emulator.h"
#include "BatteryManager.h"
#include "Utilities/IpsPatcher.h"
diff --git a/Core/SNES/BsxMemoryPack.h b/Core/SNES/Coprocessors/BSX/BsxMemoryPack.h
similarity index 100%
rename from Core/SNES/BsxMemoryPack.h
rename to Core/SNES/Coprocessors/BSX/BsxMemoryPack.h
diff --git a/Core/SNES/BsxSatellaview.cpp b/Core/SNES/Coprocessors/BSX/BsxSatellaview.cpp
similarity index 98%
rename from Core/SNES/BsxSatellaview.cpp
rename to Core/SNES/Coprocessors/BSX/BsxSatellaview.cpp
index 014c9e4a..7486ad78 100644
--- a/Core/SNES/BsxSatellaview.cpp
+++ b/Core/SNES/Coprocessors/BSX/BsxSatellaview.cpp
@@ -1,8 +1,8 @@
#include "stdafx.h"
#include "BsxSatellaview.h"
-#include "Console.h"
+#include "SNES/Console.h"
#include "Emulator.h"
-#include "MemoryManager.h"
+#include "SNES/MemoryManager.h"
#include "EmuSettings.h"
#include "Utilities/Serializer.h"
diff --git a/Core/SNES/BsxSatellaview.h b/Core/SNES/Coprocessors/BSX/BsxSatellaview.h
similarity index 100%
rename from Core/SNES/BsxSatellaview.h
rename to Core/SNES/Coprocessors/BSX/BsxSatellaview.h
diff --git a/Core/SNES/BsxStream.cpp b/Core/SNES/Coprocessors/BSX/BsxStream.cpp
similarity index 98%
rename from Core/SNES/BsxStream.cpp
rename to Core/SNES/Coprocessors/BSX/BsxStream.cpp
index 3ad5dc16..ff603805 100644
--- a/Core/SNES/BsxStream.cpp
+++ b/Core/SNES/Coprocessors/BSX/BsxStream.cpp
@@ -1,7 +1,7 @@
#include "stdafx.h"
#include "BsxStream.h"
-#include "Console.h"
-#include "MemoryManager.h"
+#include "SNES/Console.h"
+#include "SNES/MemoryManager.h"
#include "Utilities/FolderUtilities.h"
#include "Utilities/HexUtilities.h"
#include "Utilities/Serializer.h"
diff --git a/Core/SNES/BsxStream.h b/Core/SNES/Coprocessors/BSX/BsxStream.h
similarity index 100%
rename from Core/SNES/BsxStream.h
rename to Core/SNES/Coprocessors/BSX/BsxStream.h
diff --git a/Core/BaseCoprocessor.h b/Core/SNES/Coprocessors/BaseCoprocessor.h
similarity index 100%
rename from Core/BaseCoprocessor.h
rename to Core/SNES/Coprocessors/BaseCoprocessor.h
diff --git a/Core/SNES/Cx4.Instructions.cpp b/Core/SNES/Coprocessors/CX4/Cx4.Instructions.cpp
similarity index 99%
rename from Core/SNES/Cx4.Instructions.cpp
rename to Core/SNES/Coprocessors/CX4/Cx4.Instructions.cpp
index 759d4423..eac0f0ef 100644
--- a/Core/SNES/Cx4.Instructions.cpp
+++ b/Core/SNES/Coprocessors/CX4/Cx4.Instructions.cpp
@@ -1,7 +1,7 @@
#include "stdafx.h"
#include "Cx4.h"
-#include "Cpu.h"
-#include "Cx4DisUtils.h"
+#include "SNES/Cpu.h"
+#include "SNES/Debugger/Cx4DisUtils.h"
#include "Utilities/HexUtilities.h"
static constexpr int shiftLut[4] = { 0 , 1, 8, 16 };
diff --git a/Core/SNES/Cx4.cpp b/Core/SNES/Coprocessors/CX4/Cx4.cpp
similarity index 99%
rename from Core/SNES/Cx4.cpp
rename to Core/SNES/Coprocessors/CX4/Cx4.cpp
index 44112faa..ef957e51 100644
--- a/Core/SNES/Cx4.cpp
+++ b/Core/SNES/Coprocessors/CX4/Cx4.cpp
@@ -1,11 +1,11 @@
#include "stdafx.h"
#include "Cx4.h"
-#include "Console.h"
+#include "SNES/Console.h"
#include "Emulator.h"
-#include "Cpu.h"
-#include "MemoryManager.h"
+#include "SNES/Cpu.h"
+#include "SNES/MemoryManager.h"
+#include "SNES/BaseCartridge.h"
#include "MemoryMappings.h"
-#include "BaseCartridge.h"
#include "EmuSettings.h"
#include "RamHandler.h"
#include "Utilities/HexUtilities.h"
diff --git a/Core/SNES/Cx4.h b/Core/SNES/Coprocessors/CX4/Cx4.h
similarity index 98%
rename from Core/SNES/Cx4.h
rename to Core/SNES/Coprocessors/CX4/Cx4.h
index 8410ceb1..86a05255 100644
--- a/Core/SNES/Cx4.h
+++ b/Core/SNES/Coprocessors/CX4/Cx4.h
@@ -1,6 +1,6 @@
#pragma once
#include "stdafx.h"
-#include "BaseCoprocessor.h"
+#include "SNES/Coprocessors/BaseCoprocessor.h"
#include "Cx4Types.h"
#include "MemoryMappings.h"
diff --git a/Core/SNES/Cx4Types.h b/Core/SNES/Coprocessors/CX4/Cx4Types.h
similarity index 100%
rename from Core/SNES/Cx4Types.h
rename to Core/SNES/Coprocessors/CX4/Cx4Types.h
diff --git a/Core/SNES/NecDsp.cpp b/Core/SNES/Coprocessors/DSP/NecDsp.cpp
similarity index 99%
rename from Core/SNES/NecDsp.cpp
rename to Core/SNES/Coprocessors/DSP/NecDsp.cpp
index 39089a9f..6f1ec800 100644
--- a/Core/SNES/NecDsp.cpp
+++ b/Core/SNES/Coprocessors/DSP/NecDsp.cpp
@@ -1,19 +1,19 @@
#include "stdafx.h"
+#include "Utilities/FolderUtilities.h"
+#include "Utilities/Serializer.h"
+#include "SNES/MemoryManager.h"
+#include "SNES/Console.h"
+#include "SNES/BaseCartridge.h"
+#include "SNES/CartTypes.h"
#include "NecDsp.h"
-#include "MemoryManager.h"
#include "MemoryMappings.h"
-#include "Console.h"
#include "Emulator.h"
#include "NotificationManager.h"
-#include "BaseCartridge.h"
-#include "CartTypes.h"
#include "MessageManager.h"
#include "EmuSettings.h"
#include "RamHandler.h"
#include "BatteryManager.h"
#include "FirmwareHelper.h"
-#include "Utilities/FolderUtilities.h"
-#include "Utilities/Serializer.h"
NecDsp::NecDsp(CoprocessorType type, Console* console, vector &programRom, vector &dataRom) : BaseCoprocessor(SnesMemoryType::Register)
{
diff --git a/Core/SNES/NecDsp.h b/Core/SNES/Coprocessors/DSP/NecDsp.h
similarity index 97%
rename from Core/SNES/NecDsp.h
rename to Core/SNES/Coprocessors/DSP/NecDsp.h
index 94724066..a4bfe10f 100644
--- a/Core/SNES/NecDsp.h
+++ b/Core/SNES/Coprocessors/DSP/NecDsp.h
@@ -1,7 +1,7 @@
#pragma once
#include "stdafx.h"
#include "NecDspTypes.h"
-#include "BaseCoprocessor.h"
+#include "SNES/Coprocessors/BaseCoprocessor.h"
class Console;
class Emulator;
diff --git a/Core/SNES/NecDspTypes.h b/Core/SNES/Coprocessors/DSP/NecDspTypes.h
similarity index 100%
rename from Core/SNES/NecDspTypes.h
rename to Core/SNES/Coprocessors/DSP/NecDspTypes.h
diff --git a/Core/SNES/Gsu.Instructions.cpp b/Core/SNES/Coprocessors/GSU/Gsu.Instructions.cpp
similarity index 99%
rename from Core/SNES/Gsu.Instructions.cpp
rename to Core/SNES/Coprocessors/GSU/Gsu.Instructions.cpp
index ccf933e3..88da2d01 100644
--- a/Core/SNES/Gsu.Instructions.cpp
+++ b/Core/SNES/Coprocessors/GSU/Gsu.Instructions.cpp
@@ -1,7 +1,7 @@
#include "stdafx.h"
#include "Gsu.h"
-#include "Cpu.h"
-#include "MemoryManager.h"
+#include "SNES/Cpu.h"
+#include "SNES/MemoryManager.h"
void Gsu::STOP()
{
diff --git a/Core/SNES/Gsu.cpp b/Core/SNES/Coprocessors/GSU/Gsu.cpp
similarity index 99%
rename from Core/SNES/Gsu.cpp
rename to Core/SNES/Coprocessors/GSU/Gsu.cpp
index 8ca84e34..0ac39231 100644
--- a/Core/SNES/Gsu.cpp
+++ b/Core/SNES/Coprocessors/GSU/Gsu.cpp
@@ -1,10 +1,10 @@
#include "stdafx.h"
#include "Gsu.h"
#include "Emulator.h"
-#include "Console.h"
-#include "Cpu.h"
-#include "MemoryManager.h"
-#include "BaseCartridge.h"
+#include "SNES/Console.h"
+#include "SNES/Cpu.h"
+#include "SNES/MemoryManager.h"
+#include "SNES/BaseCartridge.h"
#include "RamHandler.h"
#include "GsuRomHandler.h"
#include "GsuRamHandler.h"
diff --git a/Core/SNES/Gsu.h b/Core/SNES/Coprocessors/GSU/Gsu.h
similarity index 98%
rename from Core/SNES/Gsu.h
rename to Core/SNES/Coprocessors/GSU/Gsu.h
index 006880b0..fbf2ca28 100644
--- a/Core/SNES/Gsu.h
+++ b/Core/SNES/Coprocessors/GSU/Gsu.h
@@ -1,6 +1,6 @@
#pragma once
#include "stdafx.h"
-#include "BaseCoprocessor.h"
+#include "SNES/Coprocessors/BaseCoprocessor.h"
#include "GsuTypes.h"
#include "MemoryMappings.h"
#include "IMemoryHandler.h"
diff --git a/Core/SNES/GsuRamHandler.h b/Core/SNES/Coprocessors/GSU/GsuRamHandler.h
similarity index 100%
rename from Core/SNES/GsuRamHandler.h
rename to Core/SNES/Coprocessors/GSU/GsuRamHandler.h
diff --git a/Core/SNES/GsuRomHandler.h b/Core/SNES/Coprocessors/GSU/GsuRomHandler.h
similarity index 100%
rename from Core/SNES/GsuRomHandler.h
rename to Core/SNES/Coprocessors/GSU/GsuRomHandler.h
diff --git a/Core/SNES/GsuTypes.h b/Core/SNES/Coprocessors/GSU/GsuTypes.h
similarity index 100%
rename from Core/SNES/GsuTypes.h
rename to Core/SNES/Coprocessors/GSU/GsuTypes.h
diff --git a/Core/SNES/Msu1.cpp b/Core/SNES/Coprocessors/MSU1/Msu1.cpp
similarity index 99%
rename from Core/SNES/Msu1.cpp
rename to Core/SNES/Coprocessors/MSU1/Msu1.cpp
index e20160e9..29f14354 100644
--- a/Core/SNES/Msu1.cpp
+++ b/Core/SNES/Coprocessors/MSU1/Msu1.cpp
@@ -1,6 +1,6 @@
#include "stdafx.h"
#include "Msu1.h"
-#include "Spc.h"
+#include "SNES/Spc.h"
#include "Utilities/Serializer.h"
#include "Utilities/FolderUtilities.h"
diff --git a/Core/SNES/Msu1.h b/Core/SNES/Coprocessors/MSU1/Msu1.h
similarity index 100%
rename from Core/SNES/Msu1.h
rename to Core/SNES/Coprocessors/MSU1/Msu1.h
diff --git a/Core/SNES/Obc1.cpp b/Core/SNES/Coprocessors/OBC1/Obc1.cpp
similarity index 97%
rename from Core/SNES/Obc1.cpp
rename to Core/SNES/Coprocessors/OBC1/Obc1.cpp
index 067d15f5..7139ae7f 100644
--- a/Core/SNES/Obc1.cpp
+++ b/Core/SNES/Coprocessors/OBC1/Obc1.cpp
@@ -1,7 +1,7 @@
#include "stdafx.h"
#include "Obc1.h"
-#include "Console.h"
-#include "MemoryManager.h"
+#include "SNES/Console.h"
+#include "SNES/MemoryManager.h"
#include "MemoryMappings.h"
Obc1::Obc1(Console* console, uint8_t* saveRam, uint32_t saveRamSize) : BaseCoprocessor(SnesMemoryType::Register)
diff --git a/Core/SNES/Obc1.h b/Core/SNES/Coprocessors/OBC1/Obc1.h
similarity index 93%
rename from Core/SNES/Obc1.h
rename to Core/SNES/Coprocessors/OBC1/Obc1.h
index 189417f9..dfb3c5b6 100644
--- a/Core/SNES/Obc1.h
+++ b/Core/SNES/Coprocessors/OBC1/Obc1.h
@@ -1,6 +1,6 @@
#pragma once
#include "stdafx.h"
-#include "BaseCoprocessor.h"
+#include "SNES/Coprocessors/BaseCoprocessor.h"
class Console;
diff --git a/Core/SNES/CpuBwRamHandler.h b/Core/SNES/Coprocessors/SA1/CpuBwRamHandler.h
similarity index 100%
rename from Core/SNES/CpuBwRamHandler.h
rename to Core/SNES/Coprocessors/SA1/CpuBwRamHandler.h
diff --git a/Core/SNES/Sa1.cpp b/Core/SNES/Coprocessors/SA1/Sa1.cpp
similarity index 99%
rename from Core/SNES/Sa1.cpp
rename to Core/SNES/Coprocessors/SA1/Sa1.cpp
index 7a7d553e..7eb56212 100644
--- a/Core/SNES/Sa1.cpp
+++ b/Core/SNES/Coprocessors/SA1/Sa1.cpp
@@ -1,13 +1,15 @@
#include "stdafx.h"
+#include "Utilities/HexUtilities.h"
+#include "Utilities/Serializer.h"
+#include "SNES/Cpu.h"
+#include "SNES/Console.h"
+#include "SNES/MemoryManager.h"
+#include "SNES/BaseCartridge.h"
#include "Sa1.h"
#include "Sa1Cpu.h"
#include "EmuSettings.h"
-#include "Cpu.h"
#include "Emulator.h"
-#include "Console.h"
-#include "MemoryManager.h"
#include "MemoryMappings.h"
-#include "BaseCartridge.h"
#include "RamHandler.h"
#include "Sa1VectorHandler.h"
#include "Sa1IRamHandler.h"
@@ -16,8 +18,6 @@
#include "MessageManager.h"
#include "BatteryManager.h"
#include "MemoryOperationType.h"
-#include "Utilities/HexUtilities.h"
-#include "Utilities/Serializer.h"
Sa1::Sa1(Console* console) : BaseCoprocessor(SnesMemoryType::Register)
{
diff --git a/Core/SNES/Sa1.h b/Core/SNES/Coprocessors/SA1/Sa1.h
similarity index 98%
rename from Core/SNES/Sa1.h
rename to Core/SNES/Coprocessors/SA1/Sa1.h
index ece3f46c..8bd930dd 100644
--- a/Core/SNES/Sa1.h
+++ b/Core/SNES/Coprocessors/SA1/Sa1.h
@@ -1,6 +1,6 @@
#pragma once
#include "stdafx.h"
-#include "BaseCoprocessor.h"
+#include "SNES/Coprocessors/BaseCoprocessor.h"
#include "MemoryMappings.h"
#include "Sa1Types.h"
diff --git a/Core/SNES/Sa1BwRamHandler.h b/Core/SNES/Coprocessors/SA1/Sa1BwRamHandler.h
similarity index 100%
rename from Core/SNES/Sa1BwRamHandler.h
rename to Core/SNES/Coprocessors/SA1/Sa1BwRamHandler.h
diff --git a/Core/SNES/Sa1Cpu.cpp b/Core/SNES/Coprocessors/SA1/Sa1Cpu.cpp
similarity index 96%
rename from Core/SNES/Sa1Cpu.cpp
rename to Core/SNES/Coprocessors/SA1/Sa1Cpu.cpp
index 6eae5e56..d1dd7eeb 100644
--- a/Core/SNES/Sa1Cpu.cpp
+++ b/Core/SNES/Coprocessors/SA1/Sa1Cpu.cpp
@@ -1,17 +1,17 @@
#include "stdafx.h"
#include "Utilities/Serializer.h"
-#include "CpuTypes.h"
+#include "SNES/CpuTypes.h"
#include "Sa1Cpu.h"
#include "Emulator.h"
-#include "MemoryManager.h"
+#include "SNES/MemoryManager.h"
#include "EventType.h"
#include "Sa1.h"
#include "MemoryMappings.h"
#include "MemoryOperationType.h"
#define Cpu Sa1Cpu
-#include "Cpu.Instructions.h"
-#include "Cpu.Shared.h"
+#include "SNES/Cpu.Instructions.h"
+#include "SNES/Cpu.Shared.h"
#undef Cpu
Sa1Cpu::Sa1Cpu(Sa1* sa1, Emulator* emu)
diff --git a/Core/SNES/Sa1Cpu.h b/Core/SNES/Coprocessors/SA1/Sa1Cpu.h
similarity index 99%
rename from Core/SNES/Sa1Cpu.h
rename to Core/SNES/Coprocessors/SA1/Sa1Cpu.h
index d83e4690..a9407780 100644
--- a/Core/SNES/Sa1Cpu.h
+++ b/Core/SNES/Coprocessors/SA1/Sa1Cpu.h
@@ -1,6 +1,6 @@
#pragma once
#include "stdafx.h"
-#include "CpuTypes.h"
+#include "SNES/CpuTypes.h"
#include "Utilities/ISerializable.h"
#include "MemoryOperationType.h"
diff --git a/Core/SNES/Sa1IRamHandler.h b/Core/SNES/Coprocessors/SA1/Sa1IRamHandler.h
similarity index 100%
rename from Core/SNES/Sa1IRamHandler.h
rename to Core/SNES/Coprocessors/SA1/Sa1IRamHandler.h
diff --git a/Core/SNES/Sa1Types.h b/Core/SNES/Coprocessors/SA1/Sa1Types.h
similarity index 98%
rename from Core/SNES/Sa1Types.h
rename to Core/SNES/Coprocessors/SA1/Sa1Types.h
index b9106f1e..e1232596 100644
--- a/Core/SNES/Sa1Types.h
+++ b/Core/SNES/Coprocessors/SA1/Sa1Types.h
@@ -1,6 +1,6 @@
#pragma once
#include "stdafx.h"
-#include "CpuTypes.h"
+#include "SNES/CpuTypes.h"
enum class Sa1MathOp
{
diff --git a/Core/SNES/Sa1VectorHandler.h b/Core/SNES/Coprocessors/SA1/Sa1VectorHandler.h
similarity index 100%
rename from Core/SNES/Sa1VectorHandler.h
rename to Core/SNES/Coprocessors/SA1/Sa1VectorHandler.h
diff --git a/Core/SNES/Sdd1.cpp b/Core/SNES/Coprocessors/SDD1/Sdd1.cpp
similarity index 97%
rename from Core/SNES/Sdd1.cpp
rename to Core/SNES/Coprocessors/SDD1/Sdd1.cpp
index 6d941733..0d3c4b51 100644
--- a/Core/SNES/Sdd1.cpp
+++ b/Core/SNES/Coprocessors/SDD1/Sdd1.cpp
@@ -1,9 +1,9 @@
#include "stdafx.h"
#include "Sdd1.h"
#include "Sdd1Mmc.h"
-#include "Console.h"
-#include "BaseCartridge.h"
-#include "MemoryManager.h"
+#include "SNES/Console.h"
+#include "SNES/BaseCartridge.h"
+#include "SNES/MemoryManager.h"
#include "MemoryMappings.h"
#include "Utilities/Serializer.h"
diff --git a/Core/SNES/Sdd1.h b/Core/SNES/Coprocessors/SDD1/Sdd1.h
similarity index 92%
rename from Core/SNES/Sdd1.h
rename to Core/SNES/Coprocessors/SDD1/Sdd1.h
index b2bc379d..55d3de20 100644
--- a/Core/SNES/Sdd1.h
+++ b/Core/SNES/Coprocessors/SDD1/Sdd1.h
@@ -1,6 +1,6 @@
#pragma once
#include "stdafx.h"
-#include "BaseCoprocessor.h"
+#include "SNES/Coprocessors/BaseCoprocessor.h"
#include "Sdd1Types.h"
class Console;
diff --git a/Core/SNES/Sdd1Decomp.cpp b/Core/SNES/Coprocessors/SDD1/Sdd1Decomp.cpp
similarity index 100%
rename from Core/SNES/Sdd1Decomp.cpp
rename to Core/SNES/Coprocessors/SDD1/Sdd1Decomp.cpp
diff --git a/Core/SNES/Sdd1Decomp.h b/Core/SNES/Coprocessors/SDD1/Sdd1Decomp.h
similarity index 100%
rename from Core/SNES/Sdd1Decomp.h
rename to Core/SNES/Coprocessors/SDD1/Sdd1Decomp.h
diff --git a/Core/SNES/Sdd1Mmc.cpp b/Core/SNES/Coprocessors/SDD1/Sdd1Mmc.cpp
similarity index 98%
rename from Core/SNES/Sdd1Mmc.cpp
rename to Core/SNES/Coprocessors/SDD1/Sdd1Mmc.cpp
index 920cbf49..b548c809 100644
--- a/Core/SNES/Sdd1Mmc.cpp
+++ b/Core/SNES/Coprocessors/SDD1/Sdd1Mmc.cpp
@@ -1,7 +1,7 @@
#include "stdafx.h"
#include "Sdd1Mmc.h"
#include "Sdd1Types.h"
-#include "BaseCartridge.h"
+#include "SNES/BaseCartridge.h"
#include "Utilities/Serializer.h"
Sdd1Mmc::Sdd1Mmc(Sdd1State &state, BaseCartridge *cart) : IMemoryHandler(SnesMemoryType::Register)
diff --git a/Core/SNES/Sdd1Mmc.h b/Core/SNES/Coprocessors/SDD1/Sdd1Mmc.h
similarity index 100%
rename from Core/SNES/Sdd1Mmc.h
rename to Core/SNES/Coprocessors/SDD1/Sdd1Mmc.h
diff --git a/Core/SNES/Sdd1Types.h b/Core/SNES/Coprocessors/SDD1/Sdd1Types.h
similarity index 100%
rename from Core/SNES/Sdd1Types.h
rename to Core/SNES/Coprocessors/SDD1/Sdd1Types.h
diff --git a/Core/SNES/SuperGameboy.cpp b/Core/SNES/Coprocessors/SGB/SuperGameboy.cpp
similarity index 98%
rename from Core/SNES/SuperGameboy.cpp
rename to Core/SNES/Coprocessors/SGB/SuperGameboy.cpp
index e05af8b8..cfbe79d3 100644
--- a/Core/SNES/SuperGameboy.cpp
+++ b/Core/SNES/Coprocessors/SGB/SuperGameboy.cpp
@@ -1,10 +1,10 @@
#include "stdafx.h"
#include "SuperGameboy.h"
-#include "Console.h"
-#include "MemoryManager.h"
+#include "SNES/Console.h"
+#include "SNES/MemoryManager.h"
#include "EmuSettings.h"
-#include "BaseCartridge.h"
-#include "Spc.h"
+#include "SNES/BaseCartridge.h"
+#include "SNES/Spc.h"
#include "Emulator.h"
#include "Gameboy/Gameboy.h"
#include "Gameboy/GbApu.h"
diff --git a/Core/SNES/SuperGameboy.h b/Core/SNES/Coprocessors/SGB/SuperGameboy.h
similarity index 97%
rename from Core/SNES/SuperGameboy.h
rename to Core/SNES/Coprocessors/SGB/SuperGameboy.h
index c046d30c..09b52e71 100644
--- a/Core/SNES/SuperGameboy.h
+++ b/Core/SNES/Coprocessors/SGB/SuperGameboy.h
@@ -1,6 +1,6 @@
#pragma once
#include "stdafx.h"
-#include "BaseCoprocessor.h"
+#include "SNES/Coprocessors/BaseCoprocessor.h"
#include "IAudioProvider.h"
#include "Utilities/HermiteResampler.h"
diff --git a/Core/SNES/Rtc4513.cpp b/Core/SNES/Coprocessors/SPC7110/Rtc4513.cpp
similarity index 100%
rename from Core/SNES/Rtc4513.cpp
rename to Core/SNES/Coprocessors/SPC7110/Rtc4513.cpp
diff --git a/Core/SNES/Rtc4513.h b/Core/SNES/Coprocessors/SPC7110/Rtc4513.h
similarity index 100%
rename from Core/SNES/Rtc4513.h
rename to Core/SNES/Coprocessors/SPC7110/Rtc4513.h
diff --git a/Core/SNES/Spc7110.cpp b/Core/SNES/Coprocessors/SPC7110/Spc7110.cpp
similarity index 99%
rename from Core/SNES/Spc7110.cpp
rename to Core/SNES/Coprocessors/SPC7110/Spc7110.cpp
index 58e0ef45..3c38b43d 100644
--- a/Core/SNES/Spc7110.cpp
+++ b/Core/SNES/Coprocessors/SPC7110/Spc7110.cpp
@@ -1,11 +1,11 @@
#include "stdafx.h"
#include "Spc7110.h"
#include "Spc7110Decomp.h"
-#include "Console.h"
#include "Emulator.h"
#include "MemoryMappings.h"
-#include "BaseCartridge.h"
-#include "MemoryManager.h"
+#include "SNES/Console.h"
+#include "SNES/BaseCartridge.h"
+#include "SNES/MemoryManager.h"
#include "EmuSettings.h"
#include "BatteryManager.h"
#include "MessageManager.h"
diff --git a/Core/SNES/Spc7110.h b/Core/SNES/Coprocessors/SPC7110/Spc7110.h
similarity index 97%
rename from Core/SNES/Spc7110.h
rename to Core/SNES/Coprocessors/SPC7110/Spc7110.h
index 474dcd32..b1c8b9c3 100644
--- a/Core/SNES/Spc7110.h
+++ b/Core/SNES/Coprocessors/SPC7110/Spc7110.h
@@ -1,6 +1,6 @@
#pragma once
#include "stdafx.h"
-#include "BaseCoprocessor.h"
+#include "SNES/Coprocessors/BaseCoprocessor.h"
#include "Spc7110Decomp.h"
#include "Rtc4513.h"
diff --git a/Core/SNES/Spc7110Decomp.cpp b/Core/SNES/Coprocessors/SPC7110/Spc7110Decomp.cpp
similarity index 100%
rename from Core/SNES/Spc7110Decomp.cpp
rename to Core/SNES/Coprocessors/SPC7110/Spc7110Decomp.cpp
diff --git a/Core/SNES/Spc7110Decomp.h b/Core/SNES/Coprocessors/SPC7110/Spc7110Decomp.h
similarity index 100%
rename from Core/SNES/Spc7110Decomp.h
rename to Core/SNES/Coprocessors/SPC7110/Spc7110Decomp.h
diff --git a/Core/SNES/Assembler.cpp b/Core/SNES/Debugger/Assembler.cpp
similarity index 99%
rename from Core/SNES/Assembler.cpp
rename to Core/SNES/Debugger/Assembler.cpp
index 2cdbb7fe..0bd11c04 100644
--- a/Core/SNES/Assembler.cpp
+++ b/Core/SNES/Debugger/Assembler.cpp
@@ -4,8 +4,8 @@
#include "Utilities/HexUtilities.h"
#include "Utilities/StringUtilities.h"
#include "Assembler.h"
-#include "Cpu.h"
-#include "CpuDisUtils.h"
+#include "SNES/Cpu.h"
+#include "SNES/Debugger/CpuDisUtils.h"
#include "DisassemblyInfo.h"
#include "LabelManager.h"
diff --git a/Core/SNES/Assembler.h b/Core/SNES/Debugger/Assembler.h
similarity index 100%
rename from Core/SNES/Assembler.h
rename to Core/SNES/Debugger/Assembler.h
diff --git a/Core/SNES/CpuDebugger.cpp b/Core/SNES/Debugger/CpuDebugger.cpp
similarity index 98%
rename from Core/SNES/CpuDebugger.cpp
rename to Core/SNES/Debugger/CpuDebugger.cpp
index 0fcc06c2..08bf4506 100644
--- a/Core/SNES/CpuDebugger.cpp
+++ b/Core/SNES/Debugger/CpuDebugger.cpp
@@ -4,20 +4,20 @@
#include "SettingTypes.h"
#include "DisassemblyInfo.h"
#include "Disassembler.h"
-#include "Cpu.h"
-#include "Sa1.h"
+#include "SNES/Cpu.h"
+#include "SNES/Coprocessors/SA1/Sa1.h"
#include "TraceLogger.h"
#include "CallstackManager.h"
#include "BreakpointManager.h"
-#include "MemoryManager.h"
+#include "SNES/MemoryManager.h"
#include "CodeDataLogger.h"
#include "EmuSettings.h"
#include "EventManager.h"
#include "ScriptManager.h"
#include "MemoryMappings.h"
#include "Debugger.h"
-#include "BaseCartridge.h"
-#include "Console.h"
+#include "SNES/BaseCartridge.h"
+#include "SNES/Console.h"
#include "Emulator.h"
#include "MemoryAccessCounter.h"
#include "ExpressionEvaluator.h"
@@ -26,8 +26,8 @@
#include "Utilities/FolderUtilities.h"
#include "MemoryOperationType.h"
#include "CodeDataLogger.h"
-#include "Spc.h"
-#include "Ppu.h"
+#include "SNES/Spc.h"
+#include "SNES/Ppu.h"
CpuDebugger::CpuDebugger(Debugger* debugger, CpuType cpuType)
{
diff --git a/Core/SNES/CpuDebugger.h b/Core/SNES/Debugger/CpuDebugger.h
similarity index 98%
rename from Core/SNES/CpuDebugger.h
rename to Core/SNES/Debugger/CpuDebugger.h
index 6a2c5df7..67cac4c1 100644
--- a/Core/SNES/CpuDebugger.h
+++ b/Core/SNES/Debugger/CpuDebugger.h
@@ -2,7 +2,7 @@
#include "stdafx.h"
#include "DebugTypes.h"
#include "IDebugger.h"
-#include "CpuTypes.h"
+#include "SNES/CpuTypes.h"
class Disassembler;
class Debugger;
diff --git a/Core/SNES/CpuDisUtils.cpp b/Core/SNES/Debugger/CpuDisUtils.cpp
similarity index 99%
rename from Core/SNES/CpuDisUtils.cpp
rename to Core/SNES/Debugger/CpuDisUtils.cpp
index 46ab02a5..47f01505 100644
--- a/Core/SNES/CpuDisUtils.cpp
+++ b/Core/SNES/Debugger/CpuDisUtils.cpp
@@ -1,8 +1,8 @@
#include "stdafx.h"
#include "CpuDisUtils.h"
-#include "CpuTypes.h"
-#include "Cpu.h"
-#include "Console.h"
+#include "SNES/CpuTypes.h"
+#include "SNES/Cpu.h"
+#include "SNES/Console.h"
#include "EmuSettings.h"
#include "DisassemblyInfo.h"
#include "LabelManager.h"
diff --git a/Core/SNES/CpuDisUtils.h b/Core/SNES/Debugger/CpuDisUtils.h
similarity index 100%
rename from Core/SNES/CpuDisUtils.h
rename to Core/SNES/Debugger/CpuDisUtils.h
diff --git a/Core/SNES/Cx4Debugger.cpp b/Core/SNES/Debugger/Cx4Debugger.cpp
similarity index 97%
rename from Core/SNES/Cx4Debugger.cpp
rename to Core/SNES/Debugger/Cx4Debugger.cpp
index e251770f..a7ac6916 100644
--- a/Core/SNES/Cx4Debugger.cpp
+++ b/Core/SNES/Debugger/Cx4Debugger.cpp
@@ -1,21 +1,20 @@
#include "stdafx.h"
-#include "NecDsp.h"
#include "Cx4Debugger.h"
#include "DisassemblyInfo.h"
#include "Disassembler.h"
#include "TraceLogger.h"
#include "CallstackManager.h"
#include "BreakpointManager.h"
-#include "BaseCartridge.h"
-#include "MemoryManager.h"
+#include "SNES/BaseCartridge.h"
+#include "SNES/MemoryManager.h"
#include "Debugger.h"
-#include "Console.h"
+#include "SNES/Console.h"
#include "Emulator.h"
#include "MemoryAccessCounter.h"
#include "ExpressionEvaluator.h"
#include "CodeDataLogger.h"
#include "EmuSettings.h"
-#include "Cx4.h"
+#include "SNES/Coprocessors/CX4/Cx4.h"
#include "MemoryMappings.h"
#include "MemoryOperationType.h"
diff --git a/Core/SNES/Cx4Debugger.h b/Core/SNES/Debugger/Cx4Debugger.h
similarity index 100%
rename from Core/SNES/Cx4Debugger.h
rename to Core/SNES/Debugger/Cx4Debugger.h
diff --git a/Core/SNES/Cx4DisUtils.cpp b/Core/SNES/Debugger/Cx4DisUtils.cpp
similarity index 100%
rename from Core/SNES/Cx4DisUtils.cpp
rename to Core/SNES/Debugger/Cx4DisUtils.cpp
diff --git a/Core/SNES/Cx4DisUtils.h b/Core/SNES/Debugger/Cx4DisUtils.h
similarity index 100%
rename from Core/SNES/Cx4DisUtils.h
rename to Core/SNES/Debugger/Cx4DisUtils.h
diff --git a/Core/SNES/DummyCpu.h b/Core/SNES/Debugger/DummyCpu.h
similarity index 93%
rename from Core/SNES/DummyCpu.h
rename to Core/SNES/Debugger/DummyCpu.h
index 6cb7d817..8b9bc08c 100644
--- a/Core/SNES/DummyCpu.h
+++ b/Core/SNES/Debugger/DummyCpu.h
@@ -3,13 +3,13 @@
#include "stdafx.h"
#include "MemoryMappings.h"
#include "DebugTypes.h"
-#include "BaseCartridge.h"
-#include "Sa1.h"
+#include "SNES/BaseCartridge.h"
+#include "SNES/Coprocessors/SA1/Sa1.h"
#define DUMMYCPU
#define Cpu DummyCpu
-#include "Cpu.h"
-#include "Cpu.cpp"
+#include "SNES/Cpu.h"
+#include "SNES/Cpu.cpp"
#undef Cpu
#undef DUMMYCPU
diff --git a/Core/SNES/DummySpc.h b/Core/SNES/Debugger/DummySpc.h
similarity index 92%
rename from Core/SNES/DummySpc.h
rename to Core/SNES/Debugger/DummySpc.h
index 5e28dc77..1931976f 100644
--- a/Core/SNES/DummySpc.h
+++ b/Core/SNES/Debugger/DummySpc.h
@@ -4,13 +4,13 @@
#define DUMMYSPC
#define Spc DummySpc
-#include "Spc.h"
-#include "Spc.cpp"
-#include "Spc.Instructions.cpp"
+#include "SNES/Spc.h"
+#include "SNES/Spc.cpp"
+#include "SNES/Spc.Instructions.cpp"
#undef Spc
#undef DUMMYSPC
-#include "Spc.h"
+#include "SNES/Spc.h"
DummySpc::DummySpc(uint8_t *spcRam, SpcState &state)
{
diff --git a/Core/SNES/EventManager.cpp b/Core/SNES/Debugger/EventManager.cpp
similarity index 98%
rename from Core/SNES/EventManager.cpp
rename to Core/SNES/Debugger/EventManager.cpp
index e2b807e1..b8f4fbf6 100644
--- a/Core/SNES/EventManager.cpp
+++ b/Core/SNES/Debugger/EventManager.cpp
@@ -1,10 +1,10 @@
#include "stdafx.h"
#include "EventManager.h"
#include "DebugTypes.h"
-#include "Cpu.h"
-#include "Ppu.h"
-#include "DmaController.h"
-#include "MemoryManager.h"
+#include "SNES/Cpu.h"
+#include "SNES/Ppu.h"
+#include "SNES/DmaController.h"
+#include "SNES/MemoryManager.h"
#include "Debugger.h"
#include "DebugBreakHelper.h"
#include "DefaultVideoFilter.h"
diff --git a/Core/SNES/EventManager.h b/Core/SNES/Debugger/EventManager.h
similarity index 98%
rename from Core/SNES/EventManager.h
rename to Core/SNES/Debugger/EventManager.h
index 6cc185a4..0786f6ff 100644
--- a/Core/SNES/EventManager.h
+++ b/Core/SNES/Debugger/EventManager.h
@@ -1,6 +1,5 @@
#pragma once
#include "stdafx.h"
-#include "SNES/DmaController.h"
#include "DebugTypes.h"
#include "BaseEventManager.h"
#include "Utilities/SimpleLock.h"
diff --git a/Core/SNES/GsuDebugger.cpp b/Core/SNES/Debugger/GsuDebugger.cpp
similarity index 96%
rename from Core/SNES/GsuDebugger.cpp
rename to Core/SNES/Debugger/GsuDebugger.cpp
index e0d51c07..6cd4d4d9 100644
--- a/Core/SNES/GsuDebugger.cpp
+++ b/Core/SNES/Debugger/GsuDebugger.cpp
@@ -2,15 +2,15 @@
#include "GsuDebugger.h"
#include "DisassemblyInfo.h"
#include "Disassembler.h"
-#include "BaseCartridge.h"
-#include "Gsu.h"
+#include "SNES/BaseCartridge.h"
+#include "SNES/Coprocessors/GSU/Gsu.h"
#include "TraceLogger.h"
#include "CallstackManager.h"
#include "BreakpointManager.h"
#include "ExpressionEvaluator.h"
-#include "MemoryManager.h"
+#include "SNES/MemoryManager.h"
#include "Debugger.h"
-#include "Console.h"
+#include "SNES/Console.h"
#include "Emulator.h"
#include "EmuSettings.h"
#include "MemoryAccessCounter.h"
diff --git a/Core/SNES/GsuDebugger.h b/Core/SNES/Debugger/GsuDebugger.h
similarity index 100%
rename from Core/SNES/GsuDebugger.h
rename to Core/SNES/Debugger/GsuDebugger.h
diff --git a/Core/SNES/GsuDisUtils.cpp b/Core/SNES/Debugger/GsuDisUtils.cpp
similarity index 99%
rename from Core/SNES/GsuDisUtils.cpp
rename to Core/SNES/Debugger/GsuDisUtils.cpp
index ef5ba911..90667d19 100644
--- a/Core/SNES/GsuDisUtils.cpp
+++ b/Core/SNES/Debugger/GsuDisUtils.cpp
@@ -3,7 +3,7 @@
#include "DisassemblyInfo.h"
#include "LabelManager.h"
#include "EmuSettings.h"
-#include "GsuTypes.h"
+#include "SNES/Coprocessors/GSU/GsuTypes.h"
#include "Utilities/FastString.h"
#include "Utilities/HexUtilities.h"
diff --git a/Core/SNES/GsuDisUtils.h b/Core/SNES/Debugger/GsuDisUtils.h
similarity index 100%
rename from Core/SNES/GsuDisUtils.h
rename to Core/SNES/Debugger/GsuDisUtils.h
diff --git a/Core/SNES/NecDspDebugger.cpp b/Core/SNES/Debugger/NecDspDebugger.cpp
similarity index 96%
rename from Core/SNES/NecDspDebugger.cpp
rename to Core/SNES/Debugger/NecDspDebugger.cpp
index 96bce320..b8b1906e 100644
--- a/Core/SNES/NecDspDebugger.cpp
+++ b/Core/SNES/Debugger/NecDspDebugger.cpp
@@ -1,16 +1,16 @@
#include "stdafx.h"
-#include "NecDsp.h"
+#include "SNES/Coprocessors/DSP/NecDsp.h"
#include "NecDspDebugger.h"
#include "DisassemblyInfo.h"
#include "Disassembler.h"
#include "TraceLogger.h"
#include "CallstackManager.h"
#include "BreakpointManager.h"
-#include "BaseCartridge.h"
-#include "MemoryManager.h"
+#include "SNES/BaseCartridge.h"
+#include "SNES/MemoryManager.h"
#include "Debugger.h"
#include "Emulator.h"
-#include "Console.h"
+#include "SNES/Console.h"
#include "MemoryAccessCounter.h"
#include "ExpressionEvaluator.h"
#include "EmuSettings.h"
diff --git a/Core/SNES/NecDspDebugger.h b/Core/SNES/Debugger/NecDspDebugger.h
similarity index 100%
rename from Core/SNES/NecDspDebugger.h
rename to Core/SNES/Debugger/NecDspDebugger.h
diff --git a/Core/SNES/NecDspDisUtils.cpp b/Core/SNES/Debugger/NecDspDisUtils.cpp
similarity index 100%
rename from Core/SNES/NecDspDisUtils.cpp
rename to Core/SNES/Debugger/NecDspDisUtils.cpp
diff --git a/Core/SNES/NecDspDisUtils.h b/Core/SNES/Debugger/NecDspDisUtils.h
similarity index 100%
rename from Core/SNES/NecDspDisUtils.h
rename to Core/SNES/Debugger/NecDspDisUtils.h
diff --git a/Core/SNES/SpcDebugger.cpp b/Core/SNES/Debugger/SpcDebugger.cpp
similarity index 98%
rename from Core/SNES/SpcDebugger.cpp
rename to Core/SNES/Debugger/SpcDebugger.cpp
index cbbb4d48..a7667bc4 100644
--- a/Core/SNES/SpcDebugger.cpp
+++ b/Core/SNES/Debugger/SpcDebugger.cpp
@@ -2,14 +2,14 @@
#include "SpcDebugger.h"
#include "DisassemblyInfo.h"
#include "Disassembler.h"
-#include "Spc.h"
+#include "SNES/Spc.h"
#include "TraceLogger.h"
#include "CallstackManager.h"
#include "BreakpointManager.h"
-#include "MemoryManager.h"
+#include "SNES/MemoryManager.h"
#include "Debugger.h"
#include "Emulator.h"
-#include "Console.h"
+#include "SNES/Console.h"
#include "MemoryAccessCounter.h"
#include "ExpressionEvaluator.h"
#include "EmuSettings.h"
diff --git a/Core/SNES/SpcDebugger.h b/Core/SNES/Debugger/SpcDebugger.h
similarity index 100%
rename from Core/SNES/SpcDebugger.h
rename to Core/SNES/Debugger/SpcDebugger.h
diff --git a/Core/SNES/SpcDisUtils.cpp b/Core/SNES/Debugger/SpcDisUtils.cpp
similarity index 99%
rename from Core/SNES/SpcDisUtils.cpp
rename to Core/SNES/Debugger/SpcDisUtils.cpp
index c528cd11..b4e8ecf1 100644
--- a/Core/SNES/SpcDisUtils.cpp
+++ b/Core/SNES/Debugger/SpcDisUtils.cpp
@@ -1,6 +1,6 @@
#include "stdafx.h"
#include "SpcDisUtils.h"
-#include "Console.h"
+#include "SNES/Console.h"
#include "DummySpc.h"
#include "DisassemblyInfo.h"
#include "EmuSettings.h"
diff --git a/Core/SNES/SpcDisUtils.h b/Core/SNES/Debugger/SpcDisUtils.h
similarity index 100%
rename from Core/SNES/SpcDisUtils.h
rename to Core/SNES/Debugger/SpcDisUtils.h
diff --git a/Core/SNES/Multitap.cpp b/Core/SNES/Input/Multitap.cpp
similarity index 98%
rename from Core/SNES/Multitap.cpp
rename to Core/SNES/Input/Multitap.cpp
index 38ba1704..0e722303 100644
--- a/Core/SNES/Multitap.cpp
+++ b/Core/SNES/Input/Multitap.cpp
@@ -1,8 +1,8 @@
#include "stdafx.h"
#include "Multitap.h"
-#include "Console.h"
+#include "SNES/Console.h"
#include "Emulator.h"
-#include "InternalRegisters.h"
+#include "SNES/InternalRegisters.h"
#include "SnesController.h"
string Multitap::GetKeyNames()
diff --git a/Core/SNES/Multitap.h b/Core/SNES/Input/Multitap.h
similarity index 100%
rename from Core/SNES/Multitap.h
rename to Core/SNES/Input/Multitap.h
diff --git a/Core/SNES/SnesController.cpp b/Core/SNES/Input/SnesController.cpp
similarity index 100%
rename from Core/SNES/SnesController.cpp
rename to Core/SNES/Input/SnesController.cpp
diff --git a/Core/SNES/SnesController.h b/Core/SNES/Input/SnesController.h
similarity index 100%
rename from Core/SNES/SnesController.h
rename to Core/SNES/Input/SnesController.h
diff --git a/Core/SNES/SnesMouse.h b/Core/SNES/Input/SnesMouse.h
similarity index 98%
rename from Core/SNES/SnesMouse.h
rename to Core/SNES/Input/SnesMouse.h
index 61fe27e7..69451eb5 100644
--- a/Core/SNES/SnesMouse.h
+++ b/Core/SNES/Input/SnesMouse.h
@@ -3,7 +3,7 @@
#include "BaseControlDevice.h"
#include "IKeyManager.h"
#include "KeyManager.h"
-#include "Console.h"
+#include "SNES/Console.h"
#include "Emulator.h"
#include "EmuSettings.h"
#include "Utilities/Serializer.h"
diff --git a/Core/SNES/SuperScope.h b/Core/SNES/Input/SuperScope.h
similarity index 99%
rename from Core/SNES/SuperScope.h
rename to Core/SNES/Input/SuperScope.h
index 4ce9c8ed..a9a1fe31 100644
--- a/Core/SNES/SuperScope.h
+++ b/Core/SNES/Input/SuperScope.h
@@ -2,7 +2,7 @@
#include "stdafx.h"
#include "BaseControlDevice.h"
#include "KeyManager.h"
-#include "Ppu.h"
+#include "SNES/Ppu.h"
#include "Utilities/Serializer.h"
class SuperScope : public BaseControlDevice
diff --git a/Core/SNES/MemoryManager.cpp b/Core/SNES/MemoryManager.cpp
index c7ce67c5..d071541f 100644
--- a/Core/SNES/MemoryManager.cpp
+++ b/Core/SNES/MemoryManager.cpp
@@ -12,12 +12,7 @@
#include "MessageManager.h"
#include "DebugTypes.h"
#include "EmuSettings.h"
-#include "Sa1.h"
-#include "Gsu.h"
-#include "Cx4.h"
-#include "BaseCoprocessor.h"
#include "CheatManager.h"
-#include "Gameboy/Gameboy.h"
#include "Utilities/Serializer.h"
#include "Utilities/HexUtilities.h"
#include "MemoryOperationType.h"
diff --git a/Core/SNES/RegisterHandlerB.cpp b/Core/SNES/RegisterHandlerB.cpp
index fe94674e..2ac9d3b4 100644
--- a/Core/SNES/RegisterHandlerB.cpp
+++ b/Core/SNES/RegisterHandlerB.cpp
@@ -5,8 +5,8 @@
#include "Ppu.h"
#include "Spc.h"
#include "BaseCartridge.h"
-#include "Sa1.h"
-#include "Msu1.h"
+#include "SNES/Coprocessors/SA1/Sa1.h"
+#include "SNES/Coprocessors/MSU1/Msu1.h"
#include "CheatManager.h"
#include "Utilities/Serializer.h"