diff --git a/menu/cbs/menu_cbs_left.c b/menu/cbs/menu_cbs_left.c
index ef96504f23..86dad88eab 100644
--- a/menu/cbs/menu_cbs_left.c
+++ b/menu/cbs/menu_cbs_left.c
@@ -17,6 +17,7 @@
 #include <string/stdstring.h>
 #include <lists/string_list.h>
 
+#include "../menu_content.h"
 #include "../menu_driver.h"
 #include "../menu_cbs.h"
 #include "../menu_input.h"
@@ -26,6 +27,7 @@
 
 #include "../../core_info.h"
 #include "../../managers/cheat_manager.h"
+#include "../../file_path_special.h"
 #include "../../general.h"
 #include "../../retroarch.h"
 #include "../../system.h"
@@ -324,8 +326,9 @@ static int playlist_association_left(unsigned type, const char *label,
    stnames = string_split(settings->playlist_names, ";");
    stcores = string_split(settings->playlist_cores, ";");
 
-   if (!menu_playlist_find_associated_core(path, core_path, sizeof(core_path)))
-         strlcpy(core_path, "DETECT", sizeof(core_path));
+   if (!menu_content_playlist_find_associated_core(path, core_path, sizeof(core_path)))
+         strlcpy(core_path,
+               file_path_str(FILE_PATH_DETECT), sizeof(core_path));
 
    for (i = 0; i < list->count; i++)
    {
diff --git a/menu/cbs/menu_cbs_ok.c b/menu/cbs/menu_cbs_ok.c
index 5d1c64f9cd..e40d3790d6 100644
--- a/menu/cbs/menu_cbs_ok.c
+++ b/menu/cbs/menu_cbs_ok.c
@@ -695,7 +695,7 @@ static int action_ok_playlist_entry_collection(const char *path,
       const char             *path_base      = 
          path_basename(menu->db_playlist_file);
       bool        found_associated_core      = 
-         menu_playlist_find_associated_core(
+         menu_content_playlist_find_associated_core(
             path_base, new_core_path, sizeof(new_core_path));
 
       core_info.inf  = NULL;
@@ -734,7 +734,7 @@ static int action_ok_playlist_entry_collection(const char *path,
    playlist_info.data = playlist;
    playlist_info.idx  = selection_ptr;
 
-   if (!menu_content_load_from_playlist(&playlist_info))
+   if (!menu_content_playlist_load(&playlist_info))
       return menu_cbs_exit();
 
    playlist_get_index(playlist,
@@ -809,7 +809,7 @@ static int action_ok_playlist_entry(const char *path,
       const char             *path_base      = 
          path_basename(menu->db_playlist_file);
       bool        found_associated_core      = 
-         menu_playlist_find_associated_core(
+         menu_content_playlist_find_associated_core(
             path_base, new_core_path, sizeof(new_core_path));
 
       core_info.inf                          = NULL;
@@ -848,7 +848,7 @@ static int action_ok_playlist_entry(const char *path,
    playlist_info.data = playlist;
    playlist_info.idx  = selection_ptr;
 
-   if (!menu_content_load_from_playlist(&playlist_info))
+   if (!menu_content_playlist_load(&playlist_info))
       return menu_cbs_exit();
 
    playlist_get_index(playlist,
diff --git a/menu/cbs/menu_cbs_right.c b/menu/cbs/menu_cbs_right.c
index ac6b50fb0f..a01c078be4 100644
--- a/menu/cbs/menu_cbs_right.c
+++ b/menu/cbs/menu_cbs_right.c
@@ -17,6 +17,7 @@
 #include <lists/string_list.h>
 #include <string/stdstring.h>
 
+#include "../menu_content.h"
 #include "../menu_driver.h"
 #include "../menu_cbs.h"
 #include "../menu_input.h"
@@ -26,6 +27,7 @@
 
 #include "../../core_info.h"
 #include "../../managers/cheat_manager.h"
+#include "../../file_path_special.h"
 #include "../../general.h"
 #include "../../retroarch.h"
 #include "../../system.h"
@@ -345,8 +347,9 @@ static int playlist_association_right(unsigned type, const char *label,
    stnames = string_split(settings->playlist_names, ";");
    stcores = string_split(settings->playlist_cores, ";");
 
-   if (!menu_playlist_find_associated_core(path, core_path, sizeof(core_path)))
-         strlcpy(core_path, "DETECT", sizeof(core_path));
+   if (!menu_content_playlist_find_associated_core(path, core_path, sizeof(core_path)))
+         strlcpy(core_path,
+               file_path_str(FILE_PATH_DETECT), sizeof(core_path));
 
    for (i = 0; i < list->count; i++)
    {
diff --git a/menu/menu_cbs.h b/menu/menu_cbs.h
index d48142412b..ccd979647d 100644
--- a/menu/menu_cbs.h
+++ b/menu/menu_cbs.h
@@ -206,8 +206,6 @@ void menu_cbs_init(void *data,
       const char *path, const char *label,
       unsigned type, size_t idx);
 
-bool menu_playlist_find_associated_core(const char *path, char *s, size_t len);
-
 int menu_cbs_exit(void);
 
 #endif
diff --git a/menu/menu_content.c b/menu/menu_content.c
index cf1431d3c3..13dd34434c 100644
--- a/menu/menu_content.c
+++ b/menu/menu_content.c
@@ -42,7 +42,7 @@
  *
  * Initializes core and loads content based on playlist entry.
  **/
-bool menu_content_load_from_playlist(menu_content_ctx_playlist_info_t *info)
+bool menu_content_playlist_load(menu_content_ctx_playlist_info_t *info)
 {
    playlist_t *playlist            = NULL;
    const char *path                = NULL;
@@ -94,6 +94,39 @@ error:
    return false;
 }
 
+bool menu_content_playlist_find_associated_core(const char *path, char *s, size_t len)
+{
+   unsigned j;
+   bool                     ret = false;
+   settings_t *settings         = config_get_ptr();
+   struct string_list *existing_core_names = 
+      string_split(settings->playlist_names, ";");
+   struct string_list *existing_core_paths = 
+      string_split(settings->playlist_cores, ";");
+
+   for (j = 0; j < existing_core_names->size; j++)
+   {
+      if (string_is_equal(path, existing_core_names->elems[j].data))
+      {
+         if (existing_core_paths)
+         {
+            const char *existing_core = existing_core_paths->elems[j].data;
+
+            if (existing_core)
+            {
+               strlcpy(s, existing_core, len);
+               ret = true;
+            }
+         }
+         break;
+      }
+   }
+
+   string_list_free(existing_core_names);
+   string_list_free(existing_core_paths);
+   return ret;
+}
+
 /**
  * menu_content_find_first_core:
  * @core_info            : Core info list handle.
diff --git a/menu/menu_content.h b/menu/menu_content.h
index b79108e3b2..81bab9c674 100644
--- a/menu/menu_content.h
+++ b/menu/menu_content.h
@@ -41,13 +41,16 @@ typedef struct menu_content_ctx_defer_info
 } menu_content_ctx_defer_info_t;
 
 /**
- * menu_content_load_from_playlist:
+ * menu_content_playlist_load:
  * @playlist             : Playlist handle.
  * @idx                  : Index in playlist.
  *
  * Initializes core and loads content based on playlist entry.
  **/
-bool menu_content_load_from_playlist(menu_content_ctx_playlist_info_t *info);
+bool menu_content_playlist_load(menu_content_ctx_playlist_info_t *info);
+
+bool menu_content_playlist_find_associated_core(const char *path,
+      char *s, size_t len);
 
 bool menu_content_find_first_core(menu_content_ctx_defer_info_t *def_info,
       bool load_content_with_current_core,
diff --git a/menu/menu_displaylist.c b/menu/menu_displaylist.c
index 0a451ca115..a32c1daa17 100644
--- a/menu/menu_displaylist.c
+++ b/menu/menu_displaylist.c
@@ -23,6 +23,7 @@
 #include <string/stdstring.h>
 #include <features/features_cpu.h>
 
+#include "menu_content.h"
 #include "menu_driver.h"
 #include "menu_navigation.h"
 #include "menu_cbs.h"
@@ -3405,39 +3406,6 @@ static int menu_displaylist_parse_generic(
    return 0;
 }
 
-bool menu_playlist_find_associated_core(const char *path, char *s, size_t len)
-{
-   unsigned j;
-   bool                     ret = false;
-   settings_t *settings         = config_get_ptr();
-   struct string_list *existing_core_names = 
-      string_split(settings->playlist_names, ";");
-   struct string_list *existing_core_paths = 
-      string_split(settings->playlist_cores, ";");
-
-   for (j = 0; j < existing_core_names->size; j++)
-   {
-      if (string_is_equal(path, existing_core_names->elems[j].data))
-      {
-         if (existing_core_paths)
-         {
-            const char *existing_core = existing_core_paths->elems[j].data;
-
-            if (existing_core)
-            {
-               strlcpy(s, existing_core, len);
-               ret = true;
-            }
-         }
-         break;
-      }
-   }
-
-   string_list_free(existing_core_names);
-   string_list_free(existing_core_paths);
-   return ret;
-}
-
 static void menu_displaylist_parse_playlist_associations(
       menu_displaylist_info_t *info)
 {
@@ -3462,7 +3430,7 @@ static void menu_displaylist_parse_playlist_associations(
          const char *path                 = 
             path_basename(str_list->elems[i].data);
 
-         if (!menu_playlist_find_associated_core(
+         if (!menu_content_playlist_find_associated_core(
                   path, core_path, sizeof(core_path)))
             strlcpy(core_path, file_path_str(FILE_PATH_DETECT), sizeof(core_path));