diff --git a/command_event.c b/command_event.c
index 97f725d5fe..6f39ada31b 100644
--- a/command_event.c
+++ b/command_event.c
@@ -13,7 +13,11 @@
* If not, see .
*/
+#include
+
#include "command_event.h"
+
+#include "general.h"
#include "performance.h"
#include "runloop_data.h"
#include "runloop.h"
@@ -24,6 +28,7 @@
#include "retroarch.h"
#include "dir_list_special.h"
+#include "configuration.h"
#include "input/input_remapping.h"
#ifdef HAVE_MENU
diff --git a/menu/cbs/menu_cbs_deferred_push.c b/menu/cbs/menu_cbs_deferred_push.c
index 30c906d548..8ee074048e 100644
--- a/menu/cbs/menu_cbs_deferred_push.c
+++ b/menu/cbs/menu_cbs_deferred_push.c
@@ -16,10 +16,11 @@
#include
#include "../menu.h"
+#include "../menu_hash.h"
#include "../menu_displaylist.h"
+#include "../../general.h"
#include "../../file_ext.h"
-
#include "../../gfx/video_shader_driver.h"
static int deferred_push_core_information(menu_displaylist_info_t *info)
diff --git a/menu/cbs/menu_cbs_get_value.c b/menu/cbs/menu_cbs_get_value.c
index 20021555c5..8c604a3565 100644
--- a/menu/cbs/menu_cbs_get_value.c
+++ b/menu/cbs/menu_cbs_get_value.c
@@ -20,6 +20,7 @@
#include "../menu_cbs.h"
#include "../menu_shader.h"
+#include "../../general.h"
#include "../../performance.h"
#include "../../intl/intl.h"
diff --git a/menu/cbs/menu_cbs_info.c b/menu/cbs/menu_cbs_info.c
index a6bd9c2812..94f050aba6 100644
--- a/menu/cbs/menu_cbs_info.c
+++ b/menu/cbs/menu_cbs_info.c
@@ -13,7 +13,10 @@
* If not, see .
*/
+#include
+
#include "../menu.h"
+#include "../menu_hash.h"
static int action_info_default(unsigned type, const char *label)
{
diff --git a/menu/cbs/menu_cbs_iterate.c b/menu/cbs/menu_cbs_iterate.c
index b39bbbeae9..6c27026ed5 100644
--- a/menu/cbs/menu_cbs_iterate.c
+++ b/menu/cbs/menu_cbs_iterate.c
@@ -13,18 +13,21 @@
* If not, see .
*/
+#include
#include
#include
#include
#include "../menu.h"
#include "../menu_display.h"
+#include "../menu_hash.h"
#include "../menu_entry.h"
#include "../menu_setting.h"
#include "../menu_input.h"
#include "../menu_shader.h"
#include "../menu_navigation.h"
+#include "../../general.h"
#include "../../retroarch.h"
#include "../../input/input_autodetect.h"
diff --git a/menu/cbs/menu_cbs_left.c b/menu/cbs/menu_cbs_left.c
index 27ad6661ed..7518089cc2 100644
--- a/menu/cbs/menu_cbs_left.c
+++ b/menu/cbs/menu_cbs_left.c
@@ -16,10 +16,13 @@
#include
#include "../menu.h"
+#include "../menu_hash.h"
+#include "../menu_input.h"
#include "../menu_setting.h"
#include "../menu_shader.h"
#include "../menu_navigation.h"
+#include "../../general.h"
#include "../../retroarch.h"
diff --git a/menu/cbs/menu_cbs_ok.c b/menu/cbs/menu_cbs_ok.c
index 09a5d7fc8d..0af49db9a9 100644
--- a/menu/cbs/menu_cbs_ok.c
+++ b/menu/cbs/menu_cbs_ok.c
@@ -22,7 +22,9 @@
#include "../menu_entry.h"
#include "../menu_shader.h"
#include "../menu_navigation.h"
+#include "../menu_hash.h"
+#include "../../general.h"
#include "../../retroarch.h"
#include "../../runloop_data.h"
#include "../../input/input_remapping.h"
diff --git a/menu/cbs/menu_cbs_refresh.c b/menu/cbs/menu_cbs_refresh.c
index 9e6b915f29..89e9541d8f 100644
--- a/menu/cbs/menu_cbs_refresh.c
+++ b/menu/cbs/menu_cbs_refresh.c
@@ -14,6 +14,7 @@
*/
#include "../menu.h"
+#include "../menu_hash.h"
#include "../menu_displaylist.h"
static int action_refresh_default(file_list_t *list, file_list_t *menu_list)
diff --git a/menu/cbs/menu_cbs_right.c b/menu/cbs/menu_cbs_right.c
index 9fb79edc64..f51eea34de 100644
--- a/menu/cbs/menu_cbs_right.c
+++ b/menu/cbs/menu_cbs_right.c
@@ -16,10 +16,13 @@
#include
#include "../menu.h"
+#include "../menu_hash.h"
+#include "../menu_input.h"
#include "../menu_setting.h"
#include "../menu_shader.h"
#include "../menu_navigation.h"
+#include "../../general.h"
#include "../../retroarch.h"
diff --git a/menu/cbs/menu_cbs_start.c b/menu/cbs/menu_cbs_start.c
index e8c543f74b..587389e5f9 100644
--- a/menu/cbs/menu_cbs_start.c
+++ b/menu/cbs/menu_cbs_start.c
@@ -15,9 +15,12 @@
#include "../menu.h"
#include "../menu_cbs.h"
+#include "../menu_input.h"
#include "../menu_setting.h"
#include "../menu_shader.h"
+#include "../menu_hash.h"
+#include "../../general.h"
#include "../../retroarch.h"
#include "../../performance.h"
diff --git a/menu/cbs/menu_cbs_title.c b/menu/cbs/menu_cbs_title.c
index 8451874163..c6e966ad6b 100644
--- a/menu/cbs/menu_cbs_title.c
+++ b/menu/cbs/menu_cbs_title.c
@@ -18,6 +18,9 @@
#include
#include "../menu.h"
+#include "../menu_hash.h"
+
+#include "../../general.h"
static INLINE void replace_chars(char *str, char c1, char c2)
{
diff --git a/menu/menu.c b/menu/menu.c
index 0d991382b0..eded16617c 100644
--- a/menu/menu.c
+++ b/menu/menu.c
@@ -20,7 +20,9 @@
#include "menu_display.h"
#include "menu_entry.h"
#include "menu_shader.h"
+
#include "../dynamic.h"
+#include "../general.h"
#include "../frontend/frontend.h"
#include "../../retroarch.h"
#include "../../performance.h"
diff --git a/menu/menu.h b/menu/menu.h
index 2c25db5a32..c4ab1ca214 100644
--- a/menu/menu.h
+++ b/menu/menu.h
@@ -23,10 +23,8 @@
#include
#include
#include
-#include "../../general.h"
-#include "../../runloop.h"
-#include "menu_input.h"
-#include "menu_hash.h"
+
+#include "../driver.h"
#if defined(HAVE_CG) || defined(HAVE_HLSL) || defined(HAVE_GLSL)
#ifndef HAVE_SHADER_MANAGER
@@ -34,6 +32,10 @@
#endif
#endif
+#ifndef GFX_MAX_PARAMETERS
+#define GFX_MAX_PARAMETERS 64
+#endif
+
#ifndef GFX_MAX_SHADERS
#define GFX_MAX_SHADERS 16
#endif
diff --git a/menu/menu_cbs.c b/menu/menu_cbs.c
index 17d9c95755..a2f969cf4b 100644
--- a/menu/menu_cbs.c
+++ b/menu/menu_cbs.c
@@ -13,6 +13,8 @@
* If not, see .
*/
+#include
+#include
#include
#include "menu.h"
diff --git a/menu/menu_displaylist.c b/menu/menu_displaylist.c
index 63439e3f0c..14c7e833fe 100644
--- a/menu/menu_displaylist.c
+++ b/menu/menu_displaylist.c
@@ -22,16 +22,17 @@
#include
#include "menu.h"
+#include "menu_hash.h"
#include "menu_display.h"
#include "menu_displaylist.h"
#include "menu_navigation.h"
#include "menu_setting.h"
+#include "../general.h"
+#include "../retroarch.h"
#include "../gfx/video_shader_driver.h"
#include "../config.features.h"
-#include "../retroarch.h"
#include "../git_version.h"
-
#include "../performance.h"
#ifdef HAVE_NETWORKING
diff --git a/menu/menu_entries.c b/menu/menu_entries.c
index 5ab2753cd6..f9bb66b994 100644
--- a/menu/menu_entries.c
+++ b/menu/menu_entries.c
@@ -19,7 +19,8 @@
#include "menu_navigation.h"
#include "menu_setting.h"
#include "menu_input.h"
-#include "../runloop_data.h"
+
+#include "../general.h"
/* Returns the starting index of the menu entry list. */
size_t menu_entries_get_start(void)
diff --git a/menu/menu_entry.c b/menu/menu_entry.c
index f9bc73feba..e343fe73d1 100644
--- a/menu/menu_entry.c
+++ b/menu/menu_entry.c
@@ -13,6 +13,9 @@
* If not, see .
*/
+#include
+#include
+
#include "menu.h"
#include "menu_display.h"
#include "menu_entry.h"
diff --git a/menu/menu_entry.h b/menu/menu_entry.h
index 524234ff98..f4359704ae 100644
--- a/menu/menu_entry.h
+++ b/menu/menu_entry.h
@@ -19,6 +19,8 @@
#include
#include
+#include "menu_input.h"
+
#ifdef __cplusplus
extern "C" {
#endif
diff --git a/menu/menu_input.c b/menu/menu_input.c
index 7014e44d63..8d27d1ac00 100644
--- a/menu/menu_input.c
+++ b/menu/menu_input.c
@@ -32,6 +32,9 @@
#include "menu_setting.h"
#include "menu_shader.h"
#include "menu_navigation.h"
+#include "menu_hash.h"
+
+#include "./general.h"
#include "../cheats.h"
#include "../performance.h"
#include "../input/input_joypad.h"
diff --git a/menu/menu_setting.c b/menu/menu_setting.c
index 8a75c84d8e..6205eb794a 100644
--- a/menu/menu_setting.c
+++ b/menu/menu_setting.c
@@ -19,9 +19,12 @@
#include
#include "menu.h"
+#include "menu_input.h"
#include "menu_setting.h"
+#include "menu_hash.h"
#include "../driver.h"
+#include "../general.h"
#include "../gfx/video_monitor.h"
#include "../dynamic.h"
#include "../input/input_autodetect.h"
diff --git a/runloop.c b/runloop.c
index 83b7c4226f..11bd78836a 100644
--- a/runloop.c
+++ b/runloop.c
@@ -18,6 +18,8 @@
#include
#include
+
+#include "configuration.h"
#include "dynamic.h"
#include "performance.h"
#include "retroarch_logger.h"
@@ -25,7 +27,9 @@
#include "retroarch.h"
#include "runloop.h"
#include "runloop_data.h"
+
#include "input/keyboard_line.h"
+#include "input/input_common.h"
#ifdef HAVE_MENU
#include "menu/menu.h"
diff --git a/runloop_data.c b/runloop_data.c
index d8238f2d9b..2a97ab05c1 100644
--- a/runloop_data.c
+++ b/runloop_data.c
@@ -24,6 +24,7 @@
#ifdef HAVE_MENU
#include "menu/menu.h"
+#include "menu/menu_input.h"
#endif
enum