diff --git a/CMakeLists.txt b/CMakeLists.txt
index 1a0e3036..12c4fb46 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -156,12 +156,15 @@ SET(SRC_DMG
     src/dmg/gbPrinter.cpp
     src/dmg/gbSGB.cpp
     src/dmg/gbSound.cpp
-    src/dmg/gb_apu/Blip_Buffer.cpp
-    src/dmg/gb_apu/Effects_Buffer.cpp
-    src/dmg/gb_apu/Gb_Apu.cpp
-    src/dmg/gb_apu/Gb_Apu_State.cpp
-    src/dmg/gb_apu/Gb_Oscs.cpp
-    src/dmg/gb_apu/Multi_Buffer.cpp
+)
+
+SET(SRC_APU
+    src/apu/Blip_Buffer.cpp
+    src/apu/Effects_Buffer.cpp
+    src/apu/Gb_Apu.cpp
+    src/apu/Gb_Apu_State.cpp
+    src/apu/Gb_Oscs.cpp
+    src/apu/Multi_Buffer.cpp
 )
 
 SET(SRC_SDL
@@ -267,6 +270,7 @@ ADD_LIBRARY (
     ${SRC_MAIN}
     ${SRC_AGB}
     ${SRC_DMG}
+    ${SRC_APU}
     ${SRC_FEX_MINI}
     ${SRC_FILTERS}
     ${SRC_DEBUGGER}
diff --git a/src/Sound.cpp b/src/Sound.cpp
index f0075c9f..53a27349 100644
--- a/src/Sound.cpp
+++ b/src/Sound.cpp
@@ -7,8 +7,8 @@
 #include "Util.h"
 #include "common/Port.h"
 
-#include "dmg/gb_apu/Gb_Apu.h"
-#include "dmg/gb_apu/Multi_Buffer.h"
+#include "apu/Gb_Apu.h"
+#include "apu/Multi_Buffer.h"
 
 #include "common/SoundDriver.h"
 
diff --git a/src/dmg/gb_apu/Blip_Buffer.cpp b/src/apu/Blip_Buffer.cpp
similarity index 100%
rename from src/dmg/gb_apu/Blip_Buffer.cpp
rename to src/apu/Blip_Buffer.cpp
diff --git a/src/dmg/gb_apu/Blip_Buffer.h b/src/apu/Blip_Buffer.h
similarity index 100%
rename from src/dmg/gb_apu/Blip_Buffer.h
rename to src/apu/Blip_Buffer.h
diff --git a/src/dmg/gb_apu/Effects_Buffer.cpp b/src/apu/Effects_Buffer.cpp
similarity index 100%
rename from src/dmg/gb_apu/Effects_Buffer.cpp
rename to src/apu/Effects_Buffer.cpp
diff --git a/src/dmg/gb_apu/Effects_Buffer.h b/src/apu/Effects_Buffer.h
similarity index 100%
rename from src/dmg/gb_apu/Effects_Buffer.h
rename to src/apu/Effects_Buffer.h
diff --git a/src/dmg/gb_apu/Gb_Apu.cpp b/src/apu/Gb_Apu.cpp
similarity index 100%
rename from src/dmg/gb_apu/Gb_Apu.cpp
rename to src/apu/Gb_Apu.cpp
diff --git a/src/dmg/gb_apu/Gb_Apu.h b/src/apu/Gb_Apu.h
similarity index 100%
rename from src/dmg/gb_apu/Gb_Apu.h
rename to src/apu/Gb_Apu.h
diff --git a/src/dmg/gb_apu/Gb_Apu_State.cpp b/src/apu/Gb_Apu_State.cpp
similarity index 100%
rename from src/dmg/gb_apu/Gb_Apu_State.cpp
rename to src/apu/Gb_Apu_State.cpp
diff --git a/src/dmg/gb_apu/Gb_Oscs.cpp b/src/apu/Gb_Oscs.cpp
similarity index 100%
rename from src/dmg/gb_apu/Gb_Oscs.cpp
rename to src/apu/Gb_Oscs.cpp
diff --git a/src/dmg/gb_apu/Gb_Oscs.h b/src/apu/Gb_Oscs.h
similarity index 100%
rename from src/dmg/gb_apu/Gb_Oscs.h
rename to src/apu/Gb_Oscs.h
diff --git a/src/dmg/gb_apu/Multi_Buffer.cpp b/src/apu/Multi_Buffer.cpp
similarity index 100%
rename from src/dmg/gb_apu/Multi_Buffer.cpp
rename to src/apu/Multi_Buffer.cpp
diff --git a/src/dmg/gb_apu/Multi_Buffer.h b/src/apu/Multi_Buffer.h
similarity index 100%
rename from src/dmg/gb_apu/Multi_Buffer.h
rename to src/apu/Multi_Buffer.h
diff --git a/src/dmg/gb_apu/blargg_common.h b/src/apu/blargg_common.h
similarity index 100%
rename from src/dmg/gb_apu/blargg_common.h
rename to src/apu/blargg_common.h
diff --git a/src/dmg/gb_apu/blargg_config.h b/src/apu/blargg_config.h
similarity index 100%
rename from src/dmg/gb_apu/blargg_config.h
rename to src/apu/blargg_config.h
diff --git a/src/dmg/gb_apu/blargg_source.h b/src/apu/blargg_source.h
similarity index 100%
rename from src/dmg/gb_apu/blargg_source.h
rename to src/apu/blargg_source.h
diff --git a/src/dmg/gbSound.cpp b/src/dmg/gbSound.cpp
index 7239b02a..e10412c2 100644
--- a/src/dmg/gbSound.cpp
+++ b/src/dmg/gbSound.cpp
@@ -5,8 +5,8 @@
 #include "gbGlobals.h"
 #include "gbSound.h"
 
-#include "gb_apu/Gb_Apu.h"
-#include "gb_apu/Effects_Buffer.h"
+#include "../apu/Gb_Apu.h"
+#include "../apu/Effects_Buffer.h"
 
 extern int gbHardware;
 extern long soundSampleRate; // current sound quality