From 89e3ce381d763a75d1477a2d332aa547c8d69d3a Mon Sep 17 00:00:00 2001 From: twinaphex Date: Sat, 11 Jun 2016 14:09:04 +0200 Subject: [PATCH 01/50] Make Python optional --- qb/config.params.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/qb/config.params.sh b/qb/config.params.sh index c197aef6d9..fadf29e36b 100644 --- a/qb/config.params.sh +++ b/qb/config.params.sh @@ -59,7 +59,7 @@ C89_PULSE=no HAVE_FREETYPE=auto # FreeType support HAVE_STB_FONT=yes # stb_truetype font support HAVE_XVIDEO=auto # XVideo support -HAVE_PYTHON=auto # Python 3 support for shaders +HAVE_PYTHON=no # Python 3 support for shaders C89_PYTHON=no HAVE_V4L2=auto # Video4linux2 support HAVE_NEON=no # ARM NEON optimizations From 6989d60cdce47d697a2d47433e2437f71fa93157 Mon Sep 17 00:00:00 2001 From: twinaphex Date: Sat, 11 Jun 2016 19:21:58 +0200 Subject: [PATCH 02/50] Create fill_pathname_application_directory --- file_path_special.c | 35 +++++++++++++++++++++++++++++++++++ file_path_special.h | 8 ++++++++ menu/drivers/xmb.c | 39 ++++++++++++--------------------------- 3 files changed, 55 insertions(+), 27 deletions(-) diff --git a/file_path_special.c b/file_path_special.c index 08b74ae809..d4eb2b868f 100644 --- a/file_path_special.c +++ b/file_path_special.c @@ -40,6 +40,9 @@ #include #include +#include "configuration.h" +#include "file_path_special.h" + #include "verbosity.h" void fill_pathname_expand_special(char *out_path, @@ -257,3 +260,35 @@ void fill_pathname_application_path(char *s, size_t len) #endif } #endif + +#ifdef HAVE_XMB +const char *xmb_theme_ident(void); +#endif + +void fill_pathname_application_directory(char *s, size_t len, enum application_directory type) +{ + switch (type) + { + case APPLICATION_DIRECTORY_ASSETS_XMB: +#ifdef HAVE_XMB + { + char s1[PATH_MAX_LENGTH] = {0}; + char s2[PATH_MAX_LENGTH] = {0}; + settings_t *settings = config_get_ptr(); + + fill_pathname_join( + s1, + settings->directory.assets, + "xmb", + sizeof(s1)); + fill_pathname_join(s2, + s1, xmb_theme_ident(), sizeof(s2)); + strlcpy(s, s2, len); + } +#endif + break; + case APPLICATION_DIRECTORY_NONE: + default: + break; + } +} diff --git a/file_path_special.h b/file_path_special.h index 6d10b466e4..28ea72ef2c 100644 --- a/file_path_special.h +++ b/file_path_special.h @@ -22,6 +22,14 @@ #include +enum application_directory +{ + APPLICATION_DIRECTORY_NONE = 0, + APPLICATION_DIRECTORY_ASSETS_XMB +}; + bool fill_pathname_application_data(char *s, size_t len); +void fill_pathname_application_directory(char *s, size_t len, enum application_directory type); + #endif diff --git a/menu/drivers/xmb.c b/menu/drivers/xmb.c index 66e47c7106..3bb7ccd013 100644 --- a/menu/drivers/xmb.c +++ b/menu/drivers/xmb.c @@ -45,6 +45,7 @@ #include "../../configuration.h" #include "../../retroarch.h" #include "../../system.h" +#include "../../file_path_special.h" #include "../../tasks/tasks_internal.h" @@ -310,7 +311,7 @@ float gradient_dark[16] = { 0.0, 0.0, 0.0, 1.00, }; -static const char *xmb_theme_ident(void) +const char *xmb_theme_ident(void) { settings_t *settings = config_get_ptr(); switch (settings->menu.xmb_theme) @@ -386,16 +387,15 @@ static float *xmb_gradient_ident(void) static void xmb_fill_default_background_path(xmb_handle_t *xmb, char *path, size_t size) { - char mediapath[PATH_MAX_LENGTH] = {0}; char themepath[PATH_MAX_LENGTH] = {0}; char iconpath[PATH_MAX_LENGTH] = {0}; settings_t *settings = config_get_ptr(); strlcpy(xmb->icon.dir, "png", sizeof(xmb->icon.dir)); - fill_pathname_join(mediapath, settings->directory.assets, - "xmb", sizeof(mediapath)); - fill_pathname_join(themepath, mediapath, xmb_theme_ident(), sizeof(themepath)); + fill_pathname_application_directory(themepath, sizeof(themepath), + APPLICATION_DIRECTORY_ASSETS_XMB); + fill_pathname_join(iconpath, themepath, xmb->icon.dir, sizeof(iconpath)); fill_pathname_slash(iconpath, sizeof(iconpath)); @@ -1411,17 +1411,12 @@ static void xmb_context_reset_horizontal_list( static void xmb_refresh_horizontal_list(xmb_handle_t *xmb) { - char mediapath[PATH_MAX_LENGTH] = {0}; char themepath[PATH_MAX_LENGTH] = {0}; settings_t *settings = config_get_ptr(); - fill_pathname_join( - mediapath, - settings->directory.assets, - "xmb", - sizeof(mediapath)); - fill_pathname_join(themepath, mediapath, xmb_theme_ident(), sizeof(themepath)); + fill_pathname_application_directory(themepath, sizeof(themepath), + APPLICATION_DIRECTORY_ASSETS_XMB); xmb_context_destroy_horizontal_list(xmb); if (xmb->horizontal_list) @@ -2289,19 +2284,14 @@ static void xmb_frame(void *data) static void xmb_font(xmb_handle_t *xmb) { menu_display_ctx_font_t font_info; - char mediapath[PATH_MAX_LENGTH] = {0}; char themepath[PATH_MAX_LENGTH] = {0}; char fontpath[PATH_MAX_LENGTH] = {0}; settings_t *settings = config_get_ptr(); int font_size = menu_display_get_font_size(); - fill_pathname_join( - mediapath, - settings->directory.assets, - "xmb", - sizeof(mediapath)); - fill_pathname_join(themepath, - mediapath, xmb_theme_ident(), sizeof(themepath)); + fill_pathname_application_directory(themepath, sizeof(themepath), + APPLICATION_DIRECTORY_ASSETS_XMB); + if (string_is_empty(settings->menu.xmb_font)) fill_pathname_join(fontpath, themepath, "font.ttf", sizeof(fontpath)); else @@ -2806,7 +2796,6 @@ static void xmb_context_reset_background(const char *iconpath) static void xmb_context_reset(void *data) { - char mediapath[PATH_MAX_LENGTH] = {0}; char themepath[PATH_MAX_LENGTH] = {0}; char iconpath[PATH_MAX_LENGTH] = {0}; settings_t *settings = config_get_ptr(); @@ -2818,12 +2807,8 @@ static void xmb_context_reset(void *data) xmb_fill_default_background_path(xmb, xmb->background_file_path, sizeof(xmb->background_file_path)); - fill_pathname_join( - mediapath, - settings->directory.assets, - "xmb", - sizeof(mediapath)); - fill_pathname_join(themepath, mediapath, xmb_theme_ident(), sizeof(themepath)); + fill_pathname_application_directory(themepath, sizeof(themepath), + APPLICATION_DIRECTORY_ASSETS_XMB); fill_pathname_join(iconpath, themepath, xmb->icon.dir, sizeof(iconpath)); fill_pathname_slash(iconpath, sizeof(iconpath)); From 78904911cad2219e772562770e8edbc2409ef224 Mon Sep 17 00:00:00 2001 From: twinaphex Date: Sat, 11 Jun 2016 19:37:16 +0200 Subject: [PATCH 03/50] Start using fill_pathname_application_directory --- file_path_special.c | 14 ++++++++++++++ file_path_special.h | 3 ++- menu/drivers/xmb.c | 34 ++++++++++++++-------------------- 3 files changed, 30 insertions(+), 21 deletions(-) diff --git a/file_path_special.c b/file_path_special.c index d4eb2b868f..ebec0fb933 100644 --- a/file_path_special.c +++ b/file_path_special.c @@ -269,6 +269,20 @@ void fill_pathname_application_directory(char *s, size_t len, enum application_d { switch (type) { + case APPLICATION_DIRECTORY_ASSETS_XMB_ICONS: +#ifdef HAVE_XMB + { + char s1[PATH_MAX_LENGTH] = {0}; + char s2[PATH_MAX_LENGTH] = {0}; + fill_pathname_application_directory(s1, sizeof(s1), + APPLICATION_DIRECTORY_ASSETS_XMB); + fill_pathname_join(s2, s1, "png", + sizeof(s2)); + fill_pathname_slash(s2, sizeof(s2)); + strlcpy(s, s2, len); + } +#endif + break; case APPLICATION_DIRECTORY_ASSETS_XMB: #ifdef HAVE_XMB { diff --git a/file_path_special.h b/file_path_special.h index 28ea72ef2c..9b1be32c25 100644 --- a/file_path_special.h +++ b/file_path_special.h @@ -25,7 +25,8 @@ enum application_directory { APPLICATION_DIRECTORY_NONE = 0, - APPLICATION_DIRECTORY_ASSETS_XMB + APPLICATION_DIRECTORY_ASSETS_XMB, + APPLICATION_DIRECTORY_ASSETS_XMB_ICONS }; bool fill_pathname_application_data(char *s, size_t len); diff --git a/menu/drivers/xmb.c b/menu/drivers/xmb.c index 3bb7ccd013..db08c1ab16 100644 --- a/menu/drivers/xmb.c +++ b/menu/drivers/xmb.c @@ -194,7 +194,6 @@ typedef struct xmb_handle float vertical; } spacing; - char dir[4]; int size; } icon; @@ -387,22 +386,19 @@ static float *xmb_gradient_ident(void) static void xmb_fill_default_background_path(xmb_handle_t *xmb, char *path, size_t size) { - char themepath[PATH_MAX_LENGTH] = {0}; - char iconpath[PATH_MAX_LENGTH] = {0}; - settings_t *settings = config_get_ptr(); + char themepath[PATH_MAX_LENGTH] = {0}; + char iconpath[PATH_MAX_LENGTH] = {0}; + settings_t *settings = config_get_ptr(); - strlcpy(xmb->icon.dir, "png", sizeof(xmb->icon.dir)); + fill_pathname_application_directory(themepath, sizeof(themepath), + APPLICATION_DIRECTORY_ASSETS_XMB); + fill_pathname_application_directory(iconpath, sizeof(iconpath), + APPLICATION_DIRECTORY_ASSETS_XMB_ICONS); - fill_pathname_application_directory(themepath, sizeof(themepath), - APPLICATION_DIRECTORY_ASSETS_XMB); + fill_pathname_join(path, iconpath, "bg.png", size); - fill_pathname_join(iconpath, themepath, xmb->icon.dir, sizeof(iconpath)); - fill_pathname_slash(iconpath, sizeof(iconpath)); - - fill_pathname_join(path, iconpath, "bg.png", size); - - if (*settings->path.menu_wallpaper) - strlcpy(path, settings->path.menu_wallpaper, size); + if (*settings->path.menu_wallpaper) + strlcpy(path, settings->path.menu_wallpaper, size); } static size_t xmb_list_get_selection(void *data) @@ -1376,9 +1372,8 @@ static void xmb_context_reset_horizontal_list( strlcpy(sysname, path, sizeof(sysname)); path_remove_extension(sysname); - fill_pathname_join(iconpath, themepath, xmb->icon.dir, - sizeof(iconpath)); - fill_pathname_slash(iconpath, sizeof(iconpath)); + fill_pathname_application_directory(iconpath, sizeof(iconpath), + APPLICATION_DIRECTORY_ASSETS_XMB_ICONS); fill_pathname_join(texturepath, iconpath, sysname, sizeof(texturepath)); @@ -2803,14 +2798,13 @@ static void xmb_context_reset(void *data) if (!xmb) return; - strlcpy(xmb->icon.dir, "png", sizeof(xmb->icon.dir)); xmb_fill_default_background_path(xmb, xmb->background_file_path, sizeof(xmb->background_file_path)); fill_pathname_application_directory(themepath, sizeof(themepath), APPLICATION_DIRECTORY_ASSETS_XMB); - fill_pathname_join(iconpath, themepath, xmb->icon.dir, sizeof(iconpath)); - fill_pathname_slash(iconpath, sizeof(iconpath)); + fill_pathname_application_directory(iconpath, sizeof(iconpath), + APPLICATION_DIRECTORY_ASSETS_XMB_ICONS); xmb_layout(xmb); xmb_font(xmb); From 92bba6e46e35198a96c67ec80f8c53ed1da7b71c Mon Sep 17 00:00:00 2001 From: twinaphex Date: Sat, 11 Jun 2016 19:41:26 +0200 Subject: [PATCH 04/50] (MaterialUI) Use fill_pathname_application_directory --- file_path_special.c | 15 +++++++++++++++ file_path_special.h | 1 + menu/drivers/materialui.c | 10 ++++------ 3 files changed, 20 insertions(+), 6 deletions(-) diff --git a/file_path_special.c b/file_path_special.c index ebec0fb933..5d5c8a7a19 100644 --- a/file_path_special.c +++ b/file_path_special.c @@ -299,6 +299,21 @@ void fill_pathname_application_directory(char *s, size_t len, enum application_d s1, xmb_theme_ident(), sizeof(s2)); strlcpy(s, s2, len); } +#endif + break; + case APPLICATION_DIRECTORY_ASSETS_MATERIALUI_ICONS: +#ifdef HAVE_MATERIALUI + { + char s1[PATH_MAX_LENGTH] = {0}; + settings_t *settings = config_get_ptr(); + fill_pathname_join( + s1, + settings->directory.assets, + "glui", + sizeof(s1)); + fill_pathname_slash(s1, sizeof(s1)); + strlcpy(s, s1, len); + } #endif break; case APPLICATION_DIRECTORY_NONE: diff --git a/file_path_special.h b/file_path_special.h index 9b1be32c25..c7094a0790 100644 --- a/file_path_special.h +++ b/file_path_special.h @@ -25,6 +25,7 @@ enum application_directory { APPLICATION_DIRECTORY_NONE = 0, + APPLICATION_DIRECTORY_ASSETS_MATERIALUI_ICONS, APPLICATION_DIRECTORY_ASSETS_XMB, APPLICATION_DIRECTORY_ASSETS_XMB_ICONS }; diff --git a/menu/drivers/materialui.c b/menu/drivers/materialui.c index c1eb82e754..a02bc3b4ad 100644 --- a/menu/drivers/materialui.c +++ b/menu/drivers/materialui.c @@ -45,6 +45,8 @@ #include "../../verbosity.h" #include "../../tasks/tasks_internal.h" +#include "../../file_path_special.h" + enum { MUI_TEXTURE_POINTER = 0, @@ -1239,12 +1241,8 @@ static void mui_context_reset(void *data) if (!mui || !settings) return; - fill_pathname_join( - iconpath, - settings->directory.assets, - "glui", - sizeof(iconpath)); - fill_pathname_slash(iconpath, sizeof(iconpath)); + fill_pathname_application_directory(iconpath, sizeof(iconpath), + APPLICATION_DIRECTORY_ASSETS_MATERIALUI_ICONS); mui_layout(mui); mui_context_bg_destroy(mui); From ecb5c1adc0e5385ab4ae9a90f701f343f843415b Mon Sep 17 00:00:00 2001 From: twinaphex Date: Sat, 11 Jun 2016 19:43:14 +0200 Subject: [PATCH 05/50] Cleanups --- menu/drivers/materialui.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/menu/drivers/materialui.c b/menu/drivers/materialui.c index a02bc3b4ad..7b92a07ee5 100644 --- a/menu/drivers/materialui.c +++ b/menu/drivers/materialui.c @@ -144,10 +144,13 @@ static const char *mui_texture_path(unsigned id) return NULL; } -static void mui_context_reset_textures(mui_handle_t *mui, - const char *iconpath) +static void mui_context_reset_textures(mui_handle_t *mui) { unsigned i; + char iconpath[PATH_MAX_LENGTH] = {0}; + + fill_pathname_application_directory(iconpath, sizeof(iconpath), + APPLICATION_DIRECTORY_ASSETS_MATERIALUI_ICONS); for (i = 0; i < MUI_TEXTURE_LAST; i++) { @@ -1234,20 +1237,17 @@ static void mui_populate_entries( static void mui_context_reset(void *data) { - char iconpath[PATH_MAX_LENGTH] = {0}; mui_handle_t *mui = (mui_handle_t*)data; settings_t *settings = config_get_ptr(); if (!mui || !settings) return; - fill_pathname_application_directory(iconpath, sizeof(iconpath), - APPLICATION_DIRECTORY_ASSETS_MATERIALUI_ICONS); mui_layout(mui); mui_context_bg_destroy(mui); menu_display_allocate_white_texture(); - mui_context_reset_textures(mui, iconpath); + mui_context_reset_textures(mui); task_push_image_load(settings->path.menu_wallpaper, "cb_menu_wallpaper", menu_display_handle_wallpaper_upload, NULL); From c254c69c1ac612b638a3593e8cec56a2c9834b70 Mon Sep 17 00:00:00 2001 From: twinaphex Date: Sat, 11 Jun 2016 19:46:37 +0200 Subject: [PATCH 06/50] Use fill_pathname_application_path --- file_path_special.c | 21 ++++++++++++++++----- file_path_special.h | 1 + menu/drivers/materialui.c | 4 ++-- 3 files changed, 19 insertions(+), 7 deletions(-) diff --git a/file_path_special.c b/file_path_special.c index 5d5c8a7a19..54aa3921ac 100644 --- a/file_path_special.c +++ b/file_path_special.c @@ -299,6 +299,19 @@ void fill_pathname_application_directory(char *s, size_t len, enum application_d s1, xmb_theme_ident(), sizeof(s2)); strlcpy(s, s2, len); } +#endif + break; + case APPLICATION_DIRECTORY_ASSETS_MATERIALUI: +#ifdef HAVE_MATERIALUI + { + settings_t *settings = config_get_ptr(); + + fill_pathname_join( + s, + settings->directory.assets, + "glui", + len); + } #endif break; case APPLICATION_DIRECTORY_ASSETS_MATERIALUI_ICONS: @@ -306,11 +319,9 @@ void fill_pathname_application_directory(char *s, size_t len, enum application_d { char s1[PATH_MAX_LENGTH] = {0}; settings_t *settings = config_get_ptr(); - fill_pathname_join( - s1, - settings->directory.assets, - "glui", - sizeof(s1)); + + fill_pathname_application_directory(s1, + sizeof(s1), APPLICATION_DIRECTORY_ASSETS_MATERIALUI); fill_pathname_slash(s1, sizeof(s1)); strlcpy(s, s1, len); } diff --git a/file_path_special.h b/file_path_special.h index c7094a0790..b43dcf1685 100644 --- a/file_path_special.h +++ b/file_path_special.h @@ -25,6 +25,7 @@ enum application_directory { APPLICATION_DIRECTORY_NONE = 0, + APPLICATION_DIRECTORY_ASSETS_MATERIALUI, APPLICATION_DIRECTORY_ASSETS_MATERIALUI_ICONS, APPLICATION_DIRECTORY_ASSETS_XMB, APPLICATION_DIRECTORY_ASSETS_XMB_ICONS diff --git a/menu/drivers/materialui.c b/menu/drivers/materialui.c index 7b92a07ee5..9cfeab28ae 100644 --- a/menu/drivers/materialui.c +++ b/menu/drivers/materialui.c @@ -1010,8 +1010,8 @@ static void mui_font(void) settings_t *settings = config_get_ptr(); int font_size = menu_display_get_font_size(); - fill_pathname_join(mediapath, settings->directory.assets, - "glui", sizeof(mediapath)); + fill_pathname_application_directory(mediapath, sizeof(mediapath), + APPLICATION_DIRECTORY_ASSETS_MATERIALUI); fill_pathname_join(fontpath, mediapath, "Roboto-Regular.ttf", sizeof(fontpath)); From 538a8d9e18e9914252b453de78729b3a7b07bf1a Mon Sep 17 00:00:00 2001 From: twinaphex Date: Sat, 11 Jun 2016 19:50:44 +0200 Subject: [PATCH 07/50] (XMB) Cleanups --- menu/drivers/xmb.c | 23 ++++++++--------------- 1 file changed, 8 insertions(+), 15 deletions(-) diff --git a/menu/drivers/xmb.c b/menu/drivers/xmb.c index db08c1ab16..3197b5e38e 100644 --- a/menu/drivers/xmb.c +++ b/menu/drivers/xmb.c @@ -386,12 +386,9 @@ static float *xmb_gradient_ident(void) static void xmb_fill_default_background_path(xmb_handle_t *xmb, char *path, size_t size) { - char themepath[PATH_MAX_LENGTH] = {0}; char iconpath[PATH_MAX_LENGTH] = {0}; settings_t *settings = config_get_ptr(); - fill_pathname_application_directory(themepath, sizeof(themepath), - APPLICATION_DIRECTORY_ASSETS_XMB); fill_pathname_application_directory(iconpath, sizeof(iconpath), APPLICATION_DIRECTORY_ASSETS_XMB_ICONS); @@ -1330,11 +1327,15 @@ static void xmb_toggle_horizontal_list(xmb_handle_t *xmb) } static void xmb_context_reset_horizontal_list( - xmb_handle_t *xmb, const char *themepath) + xmb_handle_t *xmb) { unsigned i; int depth; /* keep this integer */ - size_t list_size = xmb_list_get_size(xmb, MENU_LIST_HORIZONTAL); + size_t list_size = xmb_list_get_size(xmb, MENU_LIST_HORIZONTAL); + char themepath[PATH_MAX_LENGTH] = {0}; + + fill_pathname_application_directory(themepath, sizeof(themepath), + APPLICATION_DIRECTORY_ASSETS_XMB); xmb->categories.x_pos = xmb->icon.spacing.horizontal * -(float)xmb->categories.selection_ptr; @@ -1406,13 +1407,8 @@ static void xmb_context_reset_horizontal_list( static void xmb_refresh_horizontal_list(xmb_handle_t *xmb) { - char themepath[PATH_MAX_LENGTH] = {0}; - settings_t *settings = config_get_ptr(); - fill_pathname_application_directory(themepath, sizeof(themepath), - APPLICATION_DIRECTORY_ASSETS_XMB); - xmb_context_destroy_horizontal_list(xmb); if (xmb->horizontal_list) file_list_free(xmb->horizontal_list); @@ -1421,7 +1417,7 @@ static void xmb_refresh_horizontal_list(xmb_handle_t *xmb) menu_driver_ctl(RARCH_MENU_CTL_SET_PREVENT_POPULATE, NULL); xmb_init_horizontal_list(xmb); - xmb_context_reset_horizontal_list(xmb, themepath); + xmb_context_reset_horizontal_list(xmb); } static int xmb_environ(enum menu_environ_cb type, void *data, void *userdata) @@ -2791,7 +2787,6 @@ static void xmb_context_reset_background(const char *iconpath) static void xmb_context_reset(void *data) { - char themepath[PATH_MAX_LENGTH] = {0}; char iconpath[PATH_MAX_LENGTH] = {0}; settings_t *settings = config_get_ptr(); xmb_handle_t *xmb = (xmb_handle_t*)data; @@ -2801,8 +2796,6 @@ static void xmb_context_reset(void *data) xmb_fill_default_background_path(xmb, xmb->background_file_path, sizeof(xmb->background_file_path)); - fill_pathname_application_directory(themepath, sizeof(themepath), - APPLICATION_DIRECTORY_ASSETS_XMB); fill_pathname_application_directory(iconpath, sizeof(iconpath), APPLICATION_DIRECTORY_ASSETS_XMB_ICONS); @@ -2810,7 +2803,7 @@ static void xmb_context_reset(void *data) xmb_font(xmb); xmb_context_reset_textures(xmb, iconpath); xmb_context_reset_background(iconpath); - xmb_context_reset_horizontal_list(xmb, themepath); + xmb_context_reset_horizontal_list(xmb); if (!string_is_equal(xmb_thumbnails_ident(), "OFF")) xmb_update_thumbnail_image(xmb); From 5ea923030b41373822c1cfb426bc0fe4bdab387e Mon Sep 17 00:00:00 2001 From: twinaphex Date: Sat, 11 Jun 2016 19:55:27 +0200 Subject: [PATCH 08/50] Rename functions/enums --- file_path_special.c | 20 ++++++++++---------- file_path_special.h | 14 +++++++------- menu/drivers/materialui.c | 8 ++++---- menu/drivers/xmb.c | 20 ++++++++++---------- 4 files changed, 31 insertions(+), 31 deletions(-) diff --git a/file_path_special.c b/file_path_special.c index 54aa3921ac..98a831b6e8 100644 --- a/file_path_special.c +++ b/file_path_special.c @@ -265,17 +265,17 @@ void fill_pathname_application_path(char *s, size_t len) const char *xmb_theme_ident(void); #endif -void fill_pathname_application_directory(char *s, size_t len, enum application_directory type) +void fill_pathname_application_special(char *s, size_t len, enum application_special_type type) { switch (type) { - case APPLICATION_DIRECTORY_ASSETS_XMB_ICONS: + case APPLICATION_SPECIAL_DIRECTORY_ASSETS_XMB_ICONS: #ifdef HAVE_XMB { char s1[PATH_MAX_LENGTH] = {0}; char s2[PATH_MAX_LENGTH] = {0}; - fill_pathname_application_directory(s1, sizeof(s1), - APPLICATION_DIRECTORY_ASSETS_XMB); + fill_pathname_application_special(s1, sizeof(s1), + APPLICATION_SPECIAL_DIRECTORY_ASSETS_XMB); fill_pathname_join(s2, s1, "png", sizeof(s2)); fill_pathname_slash(s2, sizeof(s2)); @@ -283,7 +283,7 @@ void fill_pathname_application_directory(char *s, size_t len, enum application_d } #endif break; - case APPLICATION_DIRECTORY_ASSETS_XMB: + case APPLICATION_SPECIAL_DIRECTORY_ASSETS_XMB: #ifdef HAVE_XMB { char s1[PATH_MAX_LENGTH] = {0}; @@ -301,7 +301,7 @@ void fill_pathname_application_directory(char *s, size_t len, enum application_d } #endif break; - case APPLICATION_DIRECTORY_ASSETS_MATERIALUI: + case APPLICATION_SPECIAL_DIRECTORY_ASSETS_MATERIALUI: #ifdef HAVE_MATERIALUI { settings_t *settings = config_get_ptr(); @@ -314,20 +314,20 @@ void fill_pathname_application_directory(char *s, size_t len, enum application_d } #endif break; - case APPLICATION_DIRECTORY_ASSETS_MATERIALUI_ICONS: + case APPLICATION_SPECIAL_DIRECTORY_ASSETS_MATERIALUI_ICONS: #ifdef HAVE_MATERIALUI { char s1[PATH_MAX_LENGTH] = {0}; settings_t *settings = config_get_ptr(); - fill_pathname_application_directory(s1, - sizeof(s1), APPLICATION_DIRECTORY_ASSETS_MATERIALUI); + fill_pathname_application_special(s1, + sizeof(s1), APPLICATION_SPECIAL_DIRECTORY_ASSETS_MATERIALUI); fill_pathname_slash(s1, sizeof(s1)); strlcpy(s, s1, len); } #endif break; - case APPLICATION_DIRECTORY_NONE: + case APPLICATION_SPECIAL_NONE: default: break; } diff --git a/file_path_special.h b/file_path_special.h index b43dcf1685..daac5a591a 100644 --- a/file_path_special.h +++ b/file_path_special.h @@ -22,17 +22,17 @@ #include -enum application_directory +enum application_special_type { - APPLICATION_DIRECTORY_NONE = 0, - APPLICATION_DIRECTORY_ASSETS_MATERIALUI, - APPLICATION_DIRECTORY_ASSETS_MATERIALUI_ICONS, - APPLICATION_DIRECTORY_ASSETS_XMB, - APPLICATION_DIRECTORY_ASSETS_XMB_ICONS + APPLICATION_SPECIAL_NONE = 0, + APPLICATION_SPECIAL_DIRECTORY_ASSETS_MATERIALUI, + APPLICATION_SPECIAL_DIRECTORY_ASSETS_MATERIALUI_ICONS, + APPLICATION_SPECIAL_DIRECTORY_ASSETS_XMB, + APPLICATION_SPECIAL_DIRECTORY_ASSETS_XMB_ICONS }; bool fill_pathname_application_data(char *s, size_t len); -void fill_pathname_application_directory(char *s, size_t len, enum application_directory type); +void fill_pathname_application_special(char *s, size_t len, enum application_special_type type); #endif diff --git a/menu/drivers/materialui.c b/menu/drivers/materialui.c index 9cfeab28ae..4bac873765 100644 --- a/menu/drivers/materialui.c +++ b/menu/drivers/materialui.c @@ -149,8 +149,8 @@ static void mui_context_reset_textures(mui_handle_t *mui) unsigned i; char iconpath[PATH_MAX_LENGTH] = {0}; - fill_pathname_application_directory(iconpath, sizeof(iconpath), - APPLICATION_DIRECTORY_ASSETS_MATERIALUI_ICONS); + fill_pathname_application_special(iconpath, sizeof(iconpath), + APPLICATION_SPECIAL_DIRECTORY_ASSETS_MATERIALUI_ICONS); for (i = 0; i < MUI_TEXTURE_LAST; i++) { @@ -1010,8 +1010,8 @@ static void mui_font(void) settings_t *settings = config_get_ptr(); int font_size = menu_display_get_font_size(); - fill_pathname_application_directory(mediapath, sizeof(mediapath), - APPLICATION_DIRECTORY_ASSETS_MATERIALUI); + fill_pathname_application_special(mediapath, sizeof(mediapath), + APPLICATION_SPECIAL_DIRECTORY_ASSETS_MATERIALUI); fill_pathname_join(fontpath, mediapath, "Roboto-Regular.ttf", sizeof(fontpath)); diff --git a/menu/drivers/xmb.c b/menu/drivers/xmb.c index 3197b5e38e..dff932ede0 100644 --- a/menu/drivers/xmb.c +++ b/menu/drivers/xmb.c @@ -389,8 +389,8 @@ static void xmb_fill_default_background_path(xmb_handle_t *xmb, char iconpath[PATH_MAX_LENGTH] = {0}; settings_t *settings = config_get_ptr(); - fill_pathname_application_directory(iconpath, sizeof(iconpath), - APPLICATION_DIRECTORY_ASSETS_XMB_ICONS); + fill_pathname_application_special(iconpath, sizeof(iconpath), + APPLICATION_SPECIAL_DIRECTORY_ASSETS_XMB_ICONS); fill_pathname_join(path, iconpath, "bg.png", size); @@ -1334,8 +1334,8 @@ static void xmb_context_reset_horizontal_list( size_t list_size = xmb_list_get_size(xmb, MENU_LIST_HORIZONTAL); char themepath[PATH_MAX_LENGTH] = {0}; - fill_pathname_application_directory(themepath, sizeof(themepath), - APPLICATION_DIRECTORY_ASSETS_XMB); + fill_pathname_application_special(themepath, sizeof(themepath), + APPLICATION_SPECIAL_DIRECTORY_ASSETS_XMB); xmb->categories.x_pos = xmb->icon.spacing.horizontal * -(float)xmb->categories.selection_ptr; @@ -1373,8 +1373,8 @@ static void xmb_context_reset_horizontal_list( strlcpy(sysname, path, sizeof(sysname)); path_remove_extension(sysname); - fill_pathname_application_directory(iconpath, sizeof(iconpath), - APPLICATION_DIRECTORY_ASSETS_XMB_ICONS); + fill_pathname_application_special(iconpath, sizeof(iconpath), + APPLICATION_SPECIAL_DIRECTORY_ASSETS_XMB_ICONS); fill_pathname_join(texturepath, iconpath, sysname, sizeof(texturepath)); @@ -2280,8 +2280,8 @@ static void xmb_font(xmb_handle_t *xmb) settings_t *settings = config_get_ptr(); int font_size = menu_display_get_font_size(); - fill_pathname_application_directory(themepath, sizeof(themepath), - APPLICATION_DIRECTORY_ASSETS_XMB); + fill_pathname_application_special(themepath, sizeof(themepath), + APPLICATION_SPECIAL_DIRECTORY_ASSETS_XMB); if (string_is_empty(settings->menu.xmb_font)) fill_pathname_join(fontpath, themepath, "font.ttf", sizeof(fontpath)); @@ -2796,8 +2796,8 @@ static void xmb_context_reset(void *data) xmb_fill_default_background_path(xmb, xmb->background_file_path, sizeof(xmb->background_file_path)); - fill_pathname_application_directory(iconpath, sizeof(iconpath), - APPLICATION_DIRECTORY_ASSETS_XMB_ICONS); + fill_pathname_application_special(iconpath, sizeof(iconpath), + APPLICATION_SPECIAL_DIRECTORY_ASSETS_XMB_ICONS); xmb_layout(xmb); xmb_font(xmb); From f3815ed8153014b076ec2be192074742929e5d3b Mon Sep 17 00:00:00 2001 From: twinaphex Date: Sat, 11 Jun 2016 19:57:45 +0200 Subject: [PATCH 09/50] Add APPLICATION_SPECIAL_DIRECTORY_ASSETS_MATERIALUI_FONT --- file_path_special.c | 10 ++++++++++ file_path_special.h | 4 +++- menu/drivers/materialui.c | 7 ++----- 3 files changed, 15 insertions(+), 6 deletions(-) diff --git a/file_path_special.c b/file_path_special.c index 98a831b6e8..9b3543f587 100644 --- a/file_path_special.c +++ b/file_path_special.c @@ -325,6 +325,16 @@ void fill_pathname_application_special(char *s, size_t len, enum application_spe fill_pathname_slash(s1, sizeof(s1)); strlcpy(s, s1, len); } +#endif + break; + case APPLICATION_SPECIAL_DIRECTORY_ASSETS_MATERIALUI_FONT: +#ifdef HAVE_MATERIALUI + { + char s1[PATH_MAX_LENGTH] = {0}; + fill_pathname_application_special(s1, sizeof(s1), + APPLICATION_SPECIAL_DIRECTORY_ASSETS_MATERIALUI); + fill_pathname_join(s, s1, "Roboto-Regular.ttf", len); + } #endif break; case APPLICATION_SPECIAL_NONE: diff --git a/file_path_special.h b/file_path_special.h index daac5a591a..cf8d620861 100644 --- a/file_path_special.h +++ b/file_path_special.h @@ -26,9 +26,11 @@ enum application_special_type { APPLICATION_SPECIAL_NONE = 0, APPLICATION_SPECIAL_DIRECTORY_ASSETS_MATERIALUI, + APPLICATION_SPECIAL_DIRECTORY_ASSETS_MATERIALUI_FONT, APPLICATION_SPECIAL_DIRECTORY_ASSETS_MATERIALUI_ICONS, APPLICATION_SPECIAL_DIRECTORY_ASSETS_XMB, - APPLICATION_SPECIAL_DIRECTORY_ASSETS_XMB_ICONS + APPLICATION_SPECIAL_DIRECTORY_ASSETS_XMB_ICONS, + APPLICATION_SPECIAL_DIRECTORY_ASSETS_XMB_FONT }; bool fill_pathname_application_data(char *s, size_t len); diff --git a/menu/drivers/materialui.c b/menu/drivers/materialui.c index 4bac873765..b8786dd877 100644 --- a/menu/drivers/materialui.c +++ b/menu/drivers/materialui.c @@ -1005,15 +1005,12 @@ static void mui_frame(void *data) static void mui_font(void) { menu_display_ctx_font_t font_info; - char mediapath[PATH_MAX_LENGTH] = {0}; char fontpath[PATH_MAX_LENGTH] = {0}; settings_t *settings = config_get_ptr(); int font_size = menu_display_get_font_size(); - fill_pathname_application_special(mediapath, sizeof(mediapath), - APPLICATION_SPECIAL_DIRECTORY_ASSETS_MATERIALUI); - fill_pathname_join(fontpath, mediapath, - "Roboto-Regular.ttf", sizeof(fontpath)); + fill_pathname_application_special(fontpath, sizeof(fontpath), + APPLICATION_SPECIAL_DIRECTORY_ASSETS_MATERIALUI_FONT); font_info.path = fontpath; font_info.size = font_size; From 7d0cb7c68923e13809bb19685b0c196ccbf3348c Mon Sep 17 00:00:00 2001 From: twinaphex Date: Sat, 11 Jun 2016 20:01:33 +0200 Subject: [PATCH 10/50] More cleanups --- file_path_special.c | 12 ++++++++++++ menu/drivers/xmb.c | 11 ++++------- 2 files changed, 16 insertions(+), 7 deletions(-) diff --git a/file_path_special.c b/file_path_special.c index 9b3543f587..92a2dffb05 100644 --- a/file_path_special.c +++ b/file_path_special.c @@ -335,6 +335,18 @@ void fill_pathname_application_special(char *s, size_t len, enum application_spe APPLICATION_SPECIAL_DIRECTORY_ASSETS_MATERIALUI); fill_pathname_join(s, s1, "Roboto-Regular.ttf", len); } +#endif + break; + case APPLICATION_SPECIAL_DIRECTORY_ASSETS_XMB_FONT: +#ifdef HAVE_XMB + { + char s1[PATH_MAX_LENGTH] = {0}; + settings_t *settings = config_get_ptr(); + + fill_pathname_application_special(s1, sizeof(s1), + APPLICATION_SPECIAL_DIRECTORY_ASSETS_XMB); + fill_pathname_join(s, s1, "font.ttf", len); + } #endif break; case APPLICATION_SPECIAL_NONE: diff --git a/menu/drivers/xmb.c b/menu/drivers/xmb.c index dff932ede0..24b76a749b 100644 --- a/menu/drivers/xmb.c +++ b/menu/drivers/xmb.c @@ -2275,18 +2275,15 @@ static void xmb_frame(void *data) static void xmb_font(xmb_handle_t *xmb) { menu_display_ctx_font_t font_info; - char themepath[PATH_MAX_LENGTH] = {0}; char fontpath[PATH_MAX_LENGTH] = {0}; settings_t *settings = config_get_ptr(); int font_size = menu_display_get_font_size(); - fill_pathname_application_special(themepath, sizeof(themepath), - APPLICATION_SPECIAL_DIRECTORY_ASSETS_XMB); + fill_pathname_application_special(fontpath, sizeof(fontpath), + APPLICATION_SPECIAL_DIRECTORY_ASSETS_XMB_FONT); - if (string_is_empty(settings->menu.xmb_font)) - fill_pathname_join(fontpath, themepath, "font.ttf", sizeof(fontpath)); - else - strlcpy(fontpath, settings->menu.xmb_font,sizeof(fontpath)); + if (!string_is_empty(settings->menu.xmb_font)) + strlcpy(fontpath, settings->menu.xmb_font,sizeof(fontpath)); font_info.path = fontpath; font_info.size = font_size; From 5b76402e6bf34eb424851b3d097bb8987cf20f4f Mon Sep 17 00:00:00 2001 From: twinaphex Date: Sat, 11 Jun 2016 20:03:11 +0200 Subject: [PATCH 11/50] Remove unused variables --- file_path_special.c | 3 --- menu/drivers/materialui.c | 1 - menu/drivers/xmb.c | 3 --- 3 files changed, 7 deletions(-) diff --git a/file_path_special.c b/file_path_special.c index 92a2dffb05..93f6992abb 100644 --- a/file_path_special.c +++ b/file_path_special.c @@ -318,8 +318,6 @@ void fill_pathname_application_special(char *s, size_t len, enum application_spe #ifdef HAVE_MATERIALUI { char s1[PATH_MAX_LENGTH] = {0}; - settings_t *settings = config_get_ptr(); - fill_pathname_application_special(s1, sizeof(s1), APPLICATION_SPECIAL_DIRECTORY_ASSETS_MATERIALUI); fill_pathname_slash(s1, sizeof(s1)); @@ -341,7 +339,6 @@ void fill_pathname_application_special(char *s, size_t len, enum application_spe #ifdef HAVE_XMB { char s1[PATH_MAX_LENGTH] = {0}; - settings_t *settings = config_get_ptr(); fill_pathname_application_special(s1, sizeof(s1), APPLICATION_SPECIAL_DIRECTORY_ASSETS_XMB); diff --git a/menu/drivers/materialui.c b/menu/drivers/materialui.c index b8786dd877..5ad83937f9 100644 --- a/menu/drivers/materialui.c +++ b/menu/drivers/materialui.c @@ -1006,7 +1006,6 @@ static void mui_font(void) { menu_display_ctx_font_t font_info; char fontpath[PATH_MAX_LENGTH] = {0}; - settings_t *settings = config_get_ptr(); int font_size = menu_display_get_font_size(); fill_pathname_application_special(fontpath, sizeof(fontpath), diff --git a/menu/drivers/xmb.c b/menu/drivers/xmb.c index 24b76a749b..ea3034c780 100644 --- a/menu/drivers/xmb.c +++ b/menu/drivers/xmb.c @@ -1407,8 +1407,6 @@ static void xmb_context_reset_horizontal_list( static void xmb_refresh_horizontal_list(xmb_handle_t *xmb) { - settings_t *settings = config_get_ptr(); - xmb_context_destroy_horizontal_list(xmb); if (xmb->horizontal_list) file_list_free(xmb->horizontal_list); @@ -2785,7 +2783,6 @@ static void xmb_context_reset_background(const char *iconpath) static void xmb_context_reset(void *data) { char iconpath[PATH_MAX_LENGTH] = {0}; - settings_t *settings = config_get_ptr(); xmb_handle_t *xmb = (xmb_handle_t*)data; if (!xmb) return; From 3d2cc8b14a0f216d3fae46ea94b740143979edbe Mon Sep 17 00:00:00 2001 From: twinaphex Date: Sat, 11 Jun 2016 20:11:36 +0200 Subject: [PATCH 12/50] Cleanups --- file_path_special.c | 16 ++++++++++++++++ file_path_special.h | 1 + menu/drivers/xmb.c | 23 +++++------------------ 3 files changed, 22 insertions(+), 18 deletions(-) diff --git a/file_path_special.c b/file_path_special.c index 93f6992abb..a71da6a721 100644 --- a/file_path_special.c +++ b/file_path_special.c @@ -281,6 +281,22 @@ void fill_pathname_application_special(char *s, size_t len, enum application_spe fill_pathname_slash(s2, sizeof(s2)); strlcpy(s, s2, len); } +#endif + break; + case APPLICATION_SPECIAL_DIRECTORY_ASSETS_XMB_BG: +#ifdef HAVE_XMB + { + char s1[PATH_MAX_LENGTH] = {0}; + settings_t *settings = config_get_ptr(); + + fill_pathname_application_special(s1, sizeof(s1), + APPLICATION_SPECIAL_DIRECTORY_ASSETS_XMB_ICONS); + + if (*settings->path.menu_wallpaper) + strlcpy(s, settings->path.menu_wallpaper, len); + else + fill_pathname_join(s, s1, "bg.png", len); + } #endif break; case APPLICATION_SPECIAL_DIRECTORY_ASSETS_XMB: diff --git a/file_path_special.h b/file_path_special.h index cf8d620861..b853501139 100644 --- a/file_path_special.h +++ b/file_path_special.h @@ -29,6 +29,7 @@ enum application_special_type APPLICATION_SPECIAL_DIRECTORY_ASSETS_MATERIALUI_FONT, APPLICATION_SPECIAL_DIRECTORY_ASSETS_MATERIALUI_ICONS, APPLICATION_SPECIAL_DIRECTORY_ASSETS_XMB, + APPLICATION_SPECIAL_DIRECTORY_ASSETS_XMB_BG, APPLICATION_SPECIAL_DIRECTORY_ASSETS_XMB_ICONS, APPLICATION_SPECIAL_DIRECTORY_ASSETS_XMB_FONT }; diff --git a/menu/drivers/xmb.c b/menu/drivers/xmb.c index ea3034c780..9ad15a6dbb 100644 --- a/menu/drivers/xmb.c +++ b/menu/drivers/xmb.c @@ -383,21 +383,6 @@ static float *xmb_gradient_ident(void) } #endif -static void xmb_fill_default_background_path(xmb_handle_t *xmb, - char *path, size_t size) -{ - char iconpath[PATH_MAX_LENGTH] = {0}; - settings_t *settings = config_get_ptr(); - - fill_pathname_application_special(iconpath, sizeof(iconpath), - APPLICATION_SPECIAL_DIRECTORY_ASSETS_XMB_ICONS); - - fill_pathname_join(path, iconpath, "bg.png", size); - - if (*settings->path.menu_wallpaper) - strlcpy(path, settings->path.menu_wallpaper, size); -} - static size_t xmb_list_get_selection(void *data) { xmb_handle_t *xmb = (xmb_handle_t*)data; @@ -1060,7 +1045,8 @@ static void xmb_list_switch_new(xmb_handle_t *xmb, strlcat(path, ".png", sizeof(path)); if (!path_file_exists(path)) - xmb_fill_default_background_path(xmb, path, sizeof(path)); + fill_pathname_application_special(path, sizeof(path), + APPLICATION_SPECIAL_DIRECTORY_ASSETS_XMB_BG); if(!string_is_equal(path, xmb->background_file_path)) { @@ -2787,8 +2773,9 @@ static void xmb_context_reset(void *data) if (!xmb) return; - xmb_fill_default_background_path(xmb, - xmb->background_file_path, sizeof(xmb->background_file_path)); + fill_pathname_application_special(xmb->background_file_path, + sizeof(xmb->background_file_path), + APPLICATION_SPECIAL_DIRECTORY_ASSETS_XMB_BG); fill_pathname_application_special(iconpath, sizeof(iconpath), APPLICATION_SPECIAL_DIRECTORY_ASSETS_XMB_ICONS); From deda6fdf0162781b099673fcfe509fc828fbf4a1 Mon Sep 17 00:00:00 2001 From: twinaphex Date: Sat, 11 Jun 2016 20:16:34 +0200 Subject: [PATCH 13/50] Cleanups --- file_path_special.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/file_path_special.c b/file_path_special.c index a71da6a721..e087324e3e 100644 --- a/file_path_special.c +++ b/file_path_special.c @@ -286,16 +286,17 @@ void fill_pathname_application_special(char *s, size_t len, enum application_spe case APPLICATION_SPECIAL_DIRECTORY_ASSETS_XMB_BG: #ifdef HAVE_XMB { - char s1[PATH_MAX_LENGTH] = {0}; settings_t *settings = config_get_ptr(); - fill_pathname_application_special(s1, sizeof(s1), - APPLICATION_SPECIAL_DIRECTORY_ASSETS_XMB_ICONS); - if (*settings->path.menu_wallpaper) strlcpy(s, settings->path.menu_wallpaper, len); else + { + char s1[PATH_MAX_LENGTH] = {0}; + fill_pathname_application_special(s1, sizeof(s1), + APPLICATION_SPECIAL_DIRECTORY_ASSETS_XMB_ICONS); fill_pathname_join(s, s1, "bg.png", len); + } } #endif break; From 1e13cb9c69438e85ffbd2fcea48278ccc1e59557 Mon Sep 17 00:00:00 2001 From: twinaphex Date: Sat, 11 Jun 2016 20:21:22 +0200 Subject: [PATCH 14/50] Cleanups --- file_path_special.c | 10 ++++++++-- menu/drivers/xmb.c | 3 --- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/file_path_special.c b/file_path_special.c index e087324e3e..ab4c0c0eea 100644 --- a/file_path_special.c +++ b/file_path_special.c @@ -34,6 +34,7 @@ #endif #include +#include #include #include @@ -288,7 +289,7 @@ void fill_pathname_application_special(char *s, size_t len, enum application_spe { settings_t *settings = config_get_ptr(); - if (*settings->path.menu_wallpaper) + if (!string_is_empty(settings->path.menu_wallpaper)) strlcpy(s, settings->path.menu_wallpaper, len); else { @@ -356,10 +357,15 @@ void fill_pathname_application_special(char *s, size_t len, enum application_spe #ifdef HAVE_XMB { char s1[PATH_MAX_LENGTH] = {0}; + settings_t *settings = config_get_ptr(); fill_pathname_application_special(s1, sizeof(s1), APPLICATION_SPECIAL_DIRECTORY_ASSETS_XMB); - fill_pathname_join(s, s1, "font.ttf", len); + + if (!string_is_empty(settings->menu.xmb_font)) + strlcpy(s, settings->menu.xmb_font, len); + else + fill_pathname_join(s, s1, "font.ttf", len); } #endif break; diff --git a/menu/drivers/xmb.c b/menu/drivers/xmb.c index 9ad15a6dbb..b97123821d 100644 --- a/menu/drivers/xmb.c +++ b/menu/drivers/xmb.c @@ -2266,9 +2266,6 @@ static void xmb_font(xmb_handle_t *xmb) fill_pathname_application_special(fontpath, sizeof(fontpath), APPLICATION_SPECIAL_DIRECTORY_ASSETS_XMB_FONT); - if (!string_is_empty(settings->menu.xmb_font)) - strlcpy(fontpath, settings->menu.xmb_font,sizeof(fontpath)); - font_info.path = fontpath; font_info.size = font_size; From 8cfb5b292270c40f6dd98b29f03e07623a65904b Mon Sep 17 00:00:00 2001 From: twinaphex Date: Sat, 11 Jun 2016 20:22:03 +0200 Subject: [PATCH 15/50] Cleanups --- file_path_special.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/file_path_special.c b/file_path_special.c index ab4c0c0eea..ff5a41b399 100644 --- a/file_path_special.c +++ b/file_path_special.c @@ -356,16 +356,17 @@ void fill_pathname_application_special(char *s, size_t len, enum application_spe case APPLICATION_SPECIAL_DIRECTORY_ASSETS_XMB_FONT: #ifdef HAVE_XMB { - char s1[PATH_MAX_LENGTH] = {0}; settings_t *settings = config_get_ptr(); - fill_pathname_application_special(s1, sizeof(s1), - APPLICATION_SPECIAL_DIRECTORY_ASSETS_XMB); - if (!string_is_empty(settings->menu.xmb_font)) strlcpy(s, settings->menu.xmb_font, len); else + { + char s1[PATH_MAX_LENGTH] = {0}; + fill_pathname_application_special(s1, sizeof(s1), + APPLICATION_SPECIAL_DIRECTORY_ASSETS_XMB); fill_pathname_join(s, s1, "font.ttf", len); + } } #endif break; From 8990736e6678c6a7028704c7b262da10d117dc8a Mon Sep 17 00:00:00 2001 From: twinaphex Date: Sat, 11 Jun 2016 20:34:49 +0200 Subject: [PATCH 16/50] Cleanups --- file_path_special.c | 28 ++++++++++++++++++++++++++++ file_path_special.h | 5 ++++- menu/drivers/zarch.c | 14 +++++--------- 3 files changed, 37 insertions(+), 10 deletions(-) diff --git a/file_path_special.c b/file_path_special.c index ff5a41b399..92efc533a7 100644 --- a/file_path_special.c +++ b/file_path_special.c @@ -270,6 +270,34 @@ void fill_pathname_application_special(char *s, size_t len, enum application_spe { switch (type) { + case APPLICATION_SPECIAL_DIRECTORY_ASSETS_ZARCH_ICONS: +#ifdef HAVE_ZARCH + { + } +#endif + break; + case APPLICATION_SPECIAL_DIRECTORY_ASSETS_ZARCH_FONT: +#ifdef HAVE_ZARCH + { + char s1[PATH_MAX_LENGTH] = {0}; + fill_pathname_application_special(s1, sizeof(s1), + APPLICATION_SPECIAL_DIRECTORY_ASSETS_ZARCH); + fill_pathname_join(s, + s1, "Roboto-Condensed.ttf", len); + } +#endif + break; + case APPLICATION_SPECIAL_DIRECTORY_ASSETS_ZARCH: +#ifdef HAVE_ZARCH + { + settings_t *settings = config_get_ptr(); + fill_pathname_join(s, + settings->directory.assets, + "zarch", + len); + } +#endif + break; case APPLICATION_SPECIAL_DIRECTORY_ASSETS_XMB_ICONS: #ifdef HAVE_XMB { diff --git a/file_path_special.h b/file_path_special.h index b853501139..d7b0e37f1e 100644 --- a/file_path_special.h +++ b/file_path_special.h @@ -31,7 +31,10 @@ enum application_special_type APPLICATION_SPECIAL_DIRECTORY_ASSETS_XMB, APPLICATION_SPECIAL_DIRECTORY_ASSETS_XMB_BG, APPLICATION_SPECIAL_DIRECTORY_ASSETS_XMB_ICONS, - APPLICATION_SPECIAL_DIRECTORY_ASSETS_XMB_FONT + APPLICATION_SPECIAL_DIRECTORY_ASSETS_XMB_FONT, + APPLICATION_SPECIAL_DIRECTORY_ASSETS_ZARCH, + APPLICATION_SPECIAL_DIRECTORY_ASSETS_ZARCH_FONT, + APPLICATION_SPECIAL_DIRECTORY_ASSETS_ZARCH_ICONS }; bool fill_pathname_application_data(char *s, size_t len); diff --git a/menu/drivers/zarch.c b/menu/drivers/zarch.c index 0c44ed33c6..30864b1afd 100644 --- a/menu/drivers/zarch.c +++ b/menu/drivers/zarch.c @@ -30,12 +30,14 @@ #include #include #include +#include #include "menu_generic.h" #include "../../config.def.h" #include "../../list_special.h" +#include "../../file_path_special.h" #include "../menu_driver.h" #include "../menu_animation.h" @@ -170,18 +172,12 @@ static enum zarch_layout_type zarch_layout; static void zarch_zui_font(void) { menu_display_ctx_font_t font_info; - char mediapath[PATH_MAX_LENGTH] = {0}; char fontpath[PATH_MAX_LENGTH] = {0}; - settings_t *settings = config_get_ptr(); int font_size = menu_display_get_font_size(); - fill_pathname_join( - mediapath, - settings->directory.assets, - "zarch", - sizeof(mediapath)); - fill_pathname_join(fontpath, - mediapath, "Roboto-Condensed.ttf", sizeof(fontpath)); + fill_pathname_application_special( + fontpath, sizeof(fontpath), + APPLICATION_SPECIAL_DIRECTORY_ASSETS_ZARCH_FONT); font_info.path = fontpath; font_info.size = font_size; From 917e3078e95cd38e2075ad7417481eb0626876cc Mon Sep 17 00:00:00 2001 From: twinaphex Date: Sat, 11 Jun 2016 21:08:57 +0200 Subject: [PATCH 17/50] Cleanups --- menu/drivers/materialui.c | 7 +++---- menu/drivers/xmb.c | 9 ++++----- menu/drivers/zarch.c | 10 ++++------ 3 files changed, 11 insertions(+), 15 deletions(-) diff --git a/menu/drivers/materialui.c b/menu/drivers/materialui.c index 5ad83937f9..69e9264767 100644 --- a/menu/drivers/materialui.c +++ b/menu/drivers/materialui.c @@ -1002,14 +1002,13 @@ static void mui_frame(void *data) menu_display_unset_viewport(); } -static void mui_font(void) +static void mui_font(enum application_special_type type) { menu_display_ctx_font_t font_info; char fontpath[PATH_MAX_LENGTH] = {0}; int font_size = menu_display_get_font_size(); - fill_pathname_application_special(fontpath, sizeof(fontpath), - APPLICATION_SPECIAL_DIRECTORY_ASSETS_MATERIALUI_FONT); + fill_pathname_application_special(fontpath, sizeof(fontpath), type); font_info.path = fontpath; font_info.size = font_size; @@ -1051,7 +1050,7 @@ static void mui_layout(mui_handle_t *mui) /* we assume the average glyph aspect ratio is close to 3:4 */ mui->glyph_width = new_font_size * 3/4; - mui_font(); + mui_font(APPLICATION_SPECIAL_DIRECTORY_ASSETS_MATERIALUI_FONT); fb_buf = menu_display_get_font_buffer(); diff --git a/menu/drivers/xmb.c b/menu/drivers/xmb.c index b97123821d..c416a77e2a 100644 --- a/menu/drivers/xmb.c +++ b/menu/drivers/xmb.c @@ -2255,8 +2255,7 @@ static void xmb_frame(void *data) menu_display_unset_viewport(); } - -static void xmb_font(xmb_handle_t *xmb) +static void xmb_font(enum application_special_type type) { menu_display_ctx_font_t font_info; char fontpath[PATH_MAX_LENGTH] = {0}; @@ -2264,7 +2263,7 @@ static void xmb_font(xmb_handle_t *xmb) int font_size = menu_display_get_font_size(); fill_pathname_application_special(fontpath, sizeof(fontpath), - APPLICATION_SPECIAL_DIRECTORY_ASSETS_XMB_FONT); + type); font_info.path = fontpath; font_info.size = font_size; @@ -2531,7 +2530,7 @@ static void *xmb_init(void **userdata) menu_display_allocate_white_texture(); xmb_init_horizontal_list(xmb); - xmb_font(xmb); + xmb_font(APPLICATION_SPECIAL_DIRECTORY_ASSETS_XMB_FONT); xmb_init_ribbon(xmb); return menu; @@ -2778,7 +2777,7 @@ static void xmb_context_reset(void *data) APPLICATION_SPECIAL_DIRECTORY_ASSETS_XMB_ICONS); xmb_layout(xmb); - xmb_font(xmb); + xmb_font(APPLICATION_SPECIAL_DIRECTORY_ASSETS_XMB_FONT); xmb_context_reset_textures(xmb, iconpath); xmb_context_reset_background(iconpath); xmb_context_reset_horizontal_list(xmb); diff --git a/menu/drivers/zarch.c b/menu/drivers/zarch.c index 30864b1afd..1a31527681 100644 --- a/menu/drivers/zarch.c +++ b/menu/drivers/zarch.c @@ -169,15 +169,13 @@ struct zui_tabbed static enum zarch_layout_type zarch_layout; -static void zarch_zui_font(void) +static void zarch_zui_font(enum application_special_type type) { menu_display_ctx_font_t font_info; char fontpath[PATH_MAX_LENGTH] = {0}; int font_size = menu_display_get_font_size(); - fill_pathname_application_special( - fontpath, sizeof(fontpath), - APPLICATION_SPECIAL_DIRECTORY_ASSETS_ZARCH_FONT); + fill_pathname_application_special(fontpath, sizeof(fontpath), type); font_info.path = fontpath; font_info.size = font_size; @@ -1029,7 +1027,7 @@ static void *zarch_init(void **userdata) matrix_4x4_ortho(&zui->mvp, 0, 1, 1, 0, 0, 1); - zarch_zui_font(); + zarch_zui_font(APPLICATION_SPECIAL_DIRECTORY_ASSETS_ZARCH_FONT); return menu; error: @@ -1114,7 +1112,7 @@ static void zarch_context_reset(void *data) menu_display_allocate_white_texture(); menu_display_set_font_size(zui->font_size); - zarch_zui_font(); + zarch_zui_font(APPLICATION_SPECIAL_DIRECTORY_ASSETS_ZARCH_FONT); } static int zarch_iterate(void *data, void *userdata, enum menu_action action) From 8badf1787dbfa4658a0052c291a28ba576dfdaec Mon Sep 17 00:00:00 2001 From: twinaphex Date: Sat, 11 Jun 2016 21:11:57 +0200 Subject: [PATCH 18/50] CLeanups --- menu/drivers/materialui.c | 17 +---------------- menu/drivers/xmb.c | 21 ++------------------- menu/drivers/zarch.c | 19 ++----------------- menu/menu_display.c | 20 ++++++++++++++++++++ menu/menu_display.h | 3 +++ 5 files changed, 28 insertions(+), 52 deletions(-) diff --git a/menu/drivers/materialui.c b/menu/drivers/materialui.c index 69e9264767..93746bbb8f 100644 --- a/menu/drivers/materialui.c +++ b/menu/drivers/materialui.c @@ -1002,21 +1002,6 @@ static void mui_frame(void *data) menu_display_unset_viewport(); } -static void mui_font(enum application_special_type type) -{ - menu_display_ctx_font_t font_info; - char fontpath[PATH_MAX_LENGTH] = {0}; - int font_size = menu_display_get_font_size(); - - fill_pathname_application_special(fontpath, sizeof(fontpath), type); - - font_info.path = fontpath; - font_info.size = font_size; - - if (!menu_display_font_main_init(&font_info)) - RARCH_WARN("Failed to load font."); -} - static void mui_layout(mui_handle_t *mui) { void *fb_buf; @@ -1050,7 +1035,7 @@ static void mui_layout(mui_handle_t *mui) /* we assume the average glyph aspect ratio is close to 3:4 */ mui->glyph_width = new_font_size * 3/4; - mui_font(APPLICATION_SPECIAL_DIRECTORY_ASSETS_MATERIALUI_FONT); + menu_display_font(APPLICATION_SPECIAL_DIRECTORY_ASSETS_MATERIALUI_FONT); fb_buf = menu_display_get_font_buffer(); diff --git a/menu/drivers/xmb.c b/menu/drivers/xmb.c index c416a77e2a..cdbacbc9e8 100644 --- a/menu/drivers/xmb.c +++ b/menu/drivers/xmb.c @@ -2255,23 +2255,6 @@ static void xmb_frame(void *data) menu_display_unset_viewport(); } -static void xmb_font(enum application_special_type type) -{ - menu_display_ctx_font_t font_info; - char fontpath[PATH_MAX_LENGTH] = {0}; - settings_t *settings = config_get_ptr(); - int font_size = menu_display_get_font_size(); - - fill_pathname_application_special(fontpath, sizeof(fontpath), - type); - - font_info.path = fontpath; - font_info.size = font_size; - - if (!menu_display_font_main_init(&font_info)) - RARCH_WARN("Failed to load font."); -} - static void xmb_layout_ps3(xmb_handle_t *xmb, int width) { unsigned new_font_size, new_header_height; @@ -2530,7 +2513,7 @@ static void *xmb_init(void **userdata) menu_display_allocate_white_texture(); xmb_init_horizontal_list(xmb); - xmb_font(APPLICATION_SPECIAL_DIRECTORY_ASSETS_XMB_FONT); + menu_display_font(APPLICATION_SPECIAL_DIRECTORY_ASSETS_XMB_FONT); xmb_init_ribbon(xmb); return menu; @@ -2777,7 +2760,7 @@ static void xmb_context_reset(void *data) APPLICATION_SPECIAL_DIRECTORY_ASSETS_XMB_ICONS); xmb_layout(xmb); - xmb_font(APPLICATION_SPECIAL_DIRECTORY_ASSETS_XMB_FONT); + menu_display_font(APPLICATION_SPECIAL_DIRECTORY_ASSETS_XMB_FONT); xmb_context_reset_textures(xmb, iconpath); xmb_context_reset_background(iconpath); xmb_context_reset_horizontal_list(xmb); diff --git a/menu/drivers/zarch.c b/menu/drivers/zarch.c index 1a31527681..73f255f4b0 100644 --- a/menu/drivers/zarch.c +++ b/menu/drivers/zarch.c @@ -169,21 +169,6 @@ struct zui_tabbed static enum zarch_layout_type zarch_layout; -static void zarch_zui_font(enum application_special_type type) -{ - menu_display_ctx_font_t font_info; - char fontpath[PATH_MAX_LENGTH] = {0}; - int font_size = menu_display_get_font_size(); - - fill_pathname_application_special(fontpath, sizeof(fontpath), type); - - font_info.path = fontpath; - font_info.size = font_size; - - if (!menu_display_font_main_init(&font_info)) - RARCH_WARN("Failed to load font."); -} - static float zarch_zui_strwidth(void *fb_buf, const char *text, float scale) { return font_driver_get_message_width(fb_buf, text, strlen(text), scale); @@ -1027,7 +1012,7 @@ static void *zarch_init(void **userdata) matrix_4x4_ortho(&zui->mvp, 0, 1, 1, 0, 0, 1); - zarch_zui_font(APPLICATION_SPECIAL_DIRECTORY_ASSETS_ZARCH_FONT); + menu_display_font(APPLICATION_SPECIAL_DIRECTORY_ASSETS_ZARCH_FONT); return menu; error: @@ -1112,7 +1097,7 @@ static void zarch_context_reset(void *data) menu_display_allocate_white_texture(); menu_display_set_font_size(zui->font_size); - zarch_zui_font(APPLICATION_SPECIAL_DIRECTORY_ASSETS_ZARCH_FONT); + menu_display_font(APPLICATION_SPECIAL_DIRECTORY_ASSETS_ZARCH_FONT); } static int zarch_iterate(void *data, void *userdata, enum menu_action action) diff --git a/menu/menu_display.c b/menu/menu_display.c index 2b1adf8c5c..33e2714bc7 100644 --- a/menu/menu_display.c +++ b/menu/menu_display.c @@ -162,6 +162,26 @@ void menu_display_font_main_deinit(void) menu_display_font_size = 0; } +bool menu_display_font(enum application_special_type type) +{ + menu_display_ctx_font_t font_info; + char fontpath[PATH_MAX_LENGTH] = {0}; + int font_size = menu_display_get_font_size(); + + fill_pathname_application_special(fontpath, sizeof(fontpath), type); + + font_info.path = fontpath; + font_info.size = font_size; + + if (!menu_display_font_main_init(&font_info)) + { + RARCH_WARN("Failed to load font."); + return false; + } + + return true; +} + bool menu_display_font_main_init(menu_display_ctx_font_t *font) { menu_display_font_main_deinit(); diff --git a/menu/menu_display.h b/menu/menu_display.h index 7f88a78dad..87c2ce14b9 100644 --- a/menu/menu_display.h +++ b/menu/menu_display.h @@ -23,6 +23,7 @@ #include #include +#include "../file_path_special.h" #include "../gfx/video_context_driver.h" #include "../gfx/video_coord_array.h" @@ -202,6 +203,8 @@ void menu_display_draw_text(const char *msg, int width, int height, void menu_display_set_alpha(float *color, float alpha_value); +bool menu_display_font(enum application_special_type type); + extern uintptr_t menu_display_white_texture; extern menu_display_ctx_driver_t menu_display_ctx_gl; From 7c904d47c2f77859b50cc14d2a9305c816bd9459 Mon Sep 17 00:00:00 2001 From: twinaphex Date: Sat, 11 Jun 2016 21:51:28 +0200 Subject: [PATCH 19/50] Cleanups --- file_path_special.c | 9 +++++++++ file_path_special.h | 1 + input/input_autodetect.c | 11 ++++------- 3 files changed, 14 insertions(+), 7 deletions(-) diff --git a/file_path_special.c b/file_path_special.c index 92efc533a7..7f67fd7682 100644 --- a/file_path_special.c +++ b/file_path_special.c @@ -270,6 +270,15 @@ void fill_pathname_application_special(char *s, size_t len, enum application_spe { switch (type) { + case APPLICATION_SPECIAL_DIRECTORY_AUTOCONFIG: + { + settings_t *settings = config_get_ptr(); + fill_pathname_join(s, + settings->directory.autoconfig, + settings->input.joypad_driver, + len); + } + break; case APPLICATION_SPECIAL_DIRECTORY_ASSETS_ZARCH_ICONS: #ifdef HAVE_ZARCH { diff --git a/file_path_special.h b/file_path_special.h index d7b0e37f1e..b35c2b6529 100644 --- a/file_path_special.h +++ b/file_path_special.h @@ -25,6 +25,7 @@ enum application_special_type { APPLICATION_SPECIAL_NONE = 0, + APPLICATION_SPECIAL_DIRECTORY_AUTOCONFIG, APPLICATION_SPECIAL_DIRECTORY_ASSETS_MATERIALUI, APPLICATION_SPECIAL_DIRECTORY_ASSETS_MATERIALUI_FONT, APPLICATION_SPECIAL_DIRECTORY_ASSETS_MATERIALUI_ICONS, diff --git a/input/input_autodetect.c b/input/input_autodetect.c index 48556bd676..c860578236 100644 --- a/input/input_autodetect.c +++ b/input/input_autodetect.c @@ -26,6 +26,7 @@ #include "input_autodetect.h" #include "../configuration.h" +#include "../file_path_special.h" #include "../list_special.h" #include "../runloop.h" #include "../verbosity.h" @@ -213,19 +214,15 @@ static bool input_autoconfigure_joypad_from_conf_dir( int current_best = 0; config_file_t *conf = NULL; struct string_list *list = NULL; - settings_t *settings = config_get_ptr(); - if (!settings) - return false; + fill_pathname_application_special(path, sizeof(path), + APPLICATION_SPECIAL_DIRECTORY_AUTOCONFIG); - fill_pathname_join(path, - settings->directory.autoconfig, - settings->input.joypad_driver, - sizeof(path)); list = dir_list_new_special(path, DIR_LIST_AUTOCONFIG, "cfg"); if (!list || !list->size) { + settings_t *settings = config_get_ptr(); if (list) string_list_free(list); list = dir_list_new_special(settings->directory.autoconfig, From 6f8b6a22b7255f8c6c87aafa54c94f19c57bd9a8 Mon Sep 17 00:00:00 2001 From: twinaphex Date: Sat, 11 Jun 2016 21:55:55 +0200 Subject: [PATCH 20/50] Creat APPLICATION_SPECIAL_DIRECTORY_CONFIG --- file_path_special.c | 13 +++++++++++++ file_path_special.h | 1 + retroarch.c | 14 +++----------- 3 files changed, 17 insertions(+), 11 deletions(-) diff --git a/file_path_special.c b/file_path_special.c index 7f67fd7682..c6902bd622 100644 --- a/file_path_special.c +++ b/file_path_special.c @@ -44,6 +44,7 @@ #include "configuration.h" #include "file_path_special.h" +#include "runloop.h" #include "verbosity.h" void fill_pathname_expand_special(char *out_path, @@ -279,6 +280,18 @@ void fill_pathname_application_special(char *s, size_t len, enum application_spe len); } break; + case APPLICATION_SPECIAL_DIRECTORY_CONFIG: + { + settings_t *settings = config_get_ptr(); + global_t *global = global_get_ptr(); + /* Try config directory setting first, + * fallback to the location of the current configuration file. */ + if (!string_is_empty(settings->directory.menu_config)) + strlcpy(s, settings->directory.menu_config, len); + else if (!string_is_empty(global->path.config)) + fill_pathname_basedir(s, global->path.config, len); + } + break; case APPLICATION_SPECIAL_DIRECTORY_ASSETS_ZARCH_ICONS: #ifdef HAVE_ZARCH { diff --git a/file_path_special.h b/file_path_special.h index b35c2b6529..3db5fe7feb 100644 --- a/file_path_special.h +++ b/file_path_special.h @@ -26,6 +26,7 @@ enum application_special_type { APPLICATION_SPECIAL_NONE = 0, APPLICATION_SPECIAL_DIRECTORY_AUTOCONFIG, + APPLICATION_SPECIAL_DIRECTORY_CONFIG, APPLICATION_SPECIAL_DIRECTORY_ASSETS_MATERIALUI, APPLICATION_SPECIAL_DIRECTORY_ASSETS_MATERIALUI_FONT, APPLICATION_SPECIAL_DIRECTORY_ASSETS_MATERIALUI_ICONS, diff --git a/retroarch.c b/retroarch.c index 209c0d96e2..4018d10da1 100644 --- a/retroarch.c +++ b/retroarch.c @@ -51,6 +51,7 @@ #include "dynamic.h" #include "msg_hash.h" #include "movie.h" +#include "file_path_special.h" #include "verbosity.h" #include "frontend/frontend_driver.h" @@ -1195,17 +1196,8 @@ bool retroarch_validate_game_options(char *s, size_t len, bool mkdir) if (string_is_empty(core_name) || string_is_empty(game_name)) return false; - /* Config directory: config_directory. - * Try config directory setting first, - * fallback to the location of the current configuration file. */ - if (!string_is_empty(settings->directory.menu_config)) - strlcpy(config_directory, - settings->directory.menu_config, sizeof(config_directory)); - else if (!string_is_empty(global->path.config)) - fill_pathname_basedir(config_directory, - global->path.config, sizeof(config_directory)); - else - return false; + fill_pathname_application_special(config_directory, sizeof(config_directory), + APPLICATION_SPECIAL_DIRECTORY_CONFIG); /* Concatenate strings into full paths for game_path */ fill_pathname_join(s, From 7dc6d0f36918b12fea84eaeae5b17cd111d8bbf4 Mon Sep 17 00:00:00 2001 From: twinaphex Date: Sat, 11 Jun 2016 22:00:29 +0200 Subject: [PATCH 21/50] Cleanup --- configuration.c | 14 ++------------ 1 file changed, 2 insertions(+), 12 deletions(-) diff --git a/configuration.c b/configuration.c index 4b3dd9104f..bcb8b65bcb 100644 --- a/configuration.c +++ b/configuration.c @@ -1971,18 +1971,8 @@ bool config_load_override(void) if (string_is_empty(core_name) || string_is_empty(game_name)) return false; - /* Config directory: config_directory. - * Try config directory setting first, - * fallback to the location of the current configuration file. */ - if (!string_is_empty(settings->directory.menu_config)) - strlcpy(config_directory, - settings->directory.menu_config, - sizeof(config_directory)); - else if (!string_is_empty(global->path.config)) - fill_pathname_basedir(config_directory, - global->path.config, sizeof(config_directory)); - else - return false; + fill_pathname_application_special(config_directory, sizeof(config_directory), + APPLICATION_SPECIAL_DIRECTORY_CONFIG); /* Concatenate strings into full paths for core_path, game_path */ fill_pathname_join(game_path, From 0c87175a61416c4a9b5c5e0ee220045700cba6ca Mon Sep 17 00:00:00 2001 From: twinaphex Date: Sat, 11 Jun 2016 22:19:40 +0200 Subject: [PATCH 22/50] Remove unused variables --- retroarch.c | 1 - 1 file changed, 1 deletion(-) diff --git a/retroarch.c b/retroarch.c index 4018d10da1..8ba091021c 100644 --- a/retroarch.c +++ b/retroarch.c @@ -1184,7 +1184,6 @@ bool retroarch_validate_game_options(char *s, size_t len, bool mkdir) const char *game_name = NULL; rarch_system_info_t *system = NULL; global_t *global = global_get_ptr(); - settings_t *settings = config_get_ptr(); runloop_ctl(RUNLOOP_CTL_SYSTEM_INFO_GET, &system); From 94545127a68d823164a2bb05509285a2ae3f1c07 Mon Sep 17 00:00:00 2001 From: twinaphex Date: Sat, 11 Jun 2016 22:21:04 +0200 Subject: [PATCH 23/50] Ifdef __builtin_ctz to not be used for consoles --- libretro-common/include/compat/intrinsics.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libretro-common/include/compat/intrinsics.h b/libretro-common/include/compat/intrinsics.h index d93623ba8c..4889490b40 100644 --- a/libretro-common/include/compat/intrinsics.h +++ b/libretro-common/include/compat/intrinsics.h @@ -55,7 +55,7 @@ static INLINE unsigned compat_clz_u16(uint16_t val) } /* Count Trailing Zero */ -#if defined(__GNUC__) +#if defined(__GNUC__) && !defined(RARCH_CONSOLE) static INLINE int compat_ctz(unsigned x) { return __builtin_ctz(x); From f0e05ecbc883765c346e6d904ea7c74fc8887fc9 Mon Sep 17 00:00:00 2001 From: twinaphex Date: Sun, 12 Jun 2016 02:33:07 +0200 Subject: [PATCH 24/50] Start adding get_total_mem callback --- frontend/drivers/platform_ctr.c | 1 + frontend/drivers/platform_darwin.m | 1 + frontend/drivers/platform_gx.c | 1 + frontend/drivers/platform_linux.c | 15 +++++++++++++-- frontend/drivers/platform_null.c | 1 + frontend/drivers/platform_ps3.c | 1 + frontend/drivers/platform_psp.c | 1 + frontend/drivers/platform_qnx.c | 1 + frontend/drivers/platform_win32.c | 1 + frontend/drivers/platform_xdk.cpp | 1 + frontend/drivers/platform_xenon.c | 1 + frontend/frontend_driver.c | 8 ++++++++ frontend/frontend_driver.h | 4 ++++ 13 files changed, 35 insertions(+), 2 deletions(-) diff --git a/frontend/drivers/platform_ctr.c b/frontend/drivers/platform_ctr.c index f93f166e44..3cccc7483e 100644 --- a/frontend/drivers/platform_ctr.c +++ b/frontend/drivers/platform_ctr.c @@ -278,5 +278,6 @@ frontend_ctx_driver_t frontend_ctx_ctr = { frontend_ctr_get_architecture, NULL, /* get_powerstate */ frontend_ctr_parse_drive_list, + NULL, /* get_mem_total */ "ctr", }; diff --git a/frontend/drivers/platform_darwin.m b/frontend/drivers/platform_darwin.m index 996e1a5bf7..fb07cb50a5 100644 --- a/frontend/drivers/platform_darwin.m +++ b/frontend/drivers/platform_darwin.m @@ -681,5 +681,6 @@ frontend_ctx_driver_t frontend_ctx_darwin = { frontend_darwin_get_architecture, frontend_darwin_get_powerstate, frontend_darwin_parse_drive_list, + NULL, /* get_mem_total */ "darwin", }; diff --git a/frontend/drivers/platform_gx.c b/frontend/drivers/platform_gx.c index dccdb73d58..394fb1ded6 100644 --- a/frontend/drivers/platform_gx.c +++ b/frontend/drivers/platform_gx.c @@ -501,5 +501,6 @@ frontend_ctx_driver_t frontend_ctx_gx = { frontend_gx_get_architecture, NULL, /* get_powerstate */ frontend_gx_parse_drive_list, + NULL, /* get_mem_total */ "gx", }; diff --git a/frontend/drivers/platform_linux.c b/frontend/drivers/platform_linux.c index 32efd9aac8..8760a03c06 100644 --- a/frontend/drivers/platform_linux.c +++ b/frontend/drivers/platform_linux.c @@ -1881,6 +1881,13 @@ static void frontend_linux_exitspawn(char *core_path, size_t core_path_size) } #endif +static uint32_t frontend_linux_get_mem_total(void) +{ + long pages = sysconf(_SC_PHYS_PAGES); + long page_size = sysconf(_SC_PAGE_SIZE); + return pages * page_size; +} + frontend_ctx_driver_t frontend_ctx_linux = { frontend_linux_get_env, /* environment_get */ frontend_linux_init, /* init */ @@ -1912,9 +1919,13 @@ frontend_ctx_driver_t frontend_ctx_linux = { frontend_linux_get_powerstate, #ifdef ANDROID frontend_android_parse_drive_list, /* parse_drive_list */ - "android", #else NULL, /* parse_drive_list */ - "linux", +#endif + frontend_linux_get_mem_total, +#ifdef ANDROID + "android" +#else + "linux" #endif }; diff --git a/frontend/drivers/platform_null.c b/frontend/drivers/platform_null.c index 4ecebaf8b4..3807e71fc1 100644 --- a/frontend/drivers/platform_null.c +++ b/frontend/drivers/platform_null.c @@ -35,5 +35,6 @@ frontend_ctx_driver_t frontend_ctx_null = { NULL, /* get_architecture */ NULL, /* get_powerstate */ NULL, /* parse_drive_list */ + NULL, /* get_mem_total */ "null", }; diff --git a/frontend/drivers/platform_ps3.c b/frontend/drivers/platform_ps3.c index 1863b89977..ed5292ee95 100644 --- a/frontend/drivers/platform_ps3.c +++ b/frontend/drivers/platform_ps3.c @@ -539,5 +539,6 @@ frontend_ctx_driver_t frontend_ctx_ps3 = { frontend_ps3_get_architecture, NULL, /* get_powerstate */ frontend_ps3_parse_drive_list, + NULL, /* get_mem_total */ "ps3", }; diff --git a/frontend/drivers/platform_psp.c b/frontend/drivers/platform_psp.c index cd843fc12b..94b9f008fd 100644 --- a/frontend/drivers/platform_psp.c +++ b/frontend/drivers/platform_psp.c @@ -404,6 +404,7 @@ frontend_ctx_driver_t frontend_ctx_psp = { frontend_psp_get_architecture, frontend_psp_get_powerstate, frontend_psp_parse_drive_list, + NULL, /* get_mem_total */ #ifdef VITA "vita", #else diff --git a/frontend/drivers/platform_qnx.c b/frontend/drivers/platform_qnx.c index 55a012543d..3236b56aa2 100644 --- a/frontend/drivers/platform_qnx.c +++ b/frontend/drivers/platform_qnx.c @@ -84,5 +84,6 @@ frontend_ctx_driver_t frontend_ctx_qnx = { frontend_qnx_get_architecture, NULL, /* get_powerstate */ NULL, /* parse_drive_list */ + NULL, /* get_mem_total */ "qnx", }; diff --git a/frontend/drivers/platform_win32.c b/frontend/drivers/platform_win32.c index 0bd492dab9..e874d4fb20 100644 --- a/frontend/drivers/platform_win32.c +++ b/frontend/drivers/platform_win32.c @@ -316,5 +316,6 @@ frontend_ctx_driver_t frontend_ctx_win32 = { frontend_win32_get_architecture, frontend_win32_get_powerstate, frontend_win32_parse_drive_list, + NULL, /* get_mem_total */ "win32", }; diff --git a/frontend/drivers/platform_xdk.cpp b/frontend/drivers/platform_xdk.cpp index 4b3250785c..cf89f525a2 100644 --- a/frontend/drivers/platform_xdk.cpp +++ b/frontend/drivers/platform_xdk.cpp @@ -1406,5 +1406,6 @@ frontend_ctx_driver_t frontend_ctx_xdk = { frontend_xdk_get_architecture, NULL, /* get_powerstate */ frontend_xdk_parse_drive_list, + NULL, /* get_mem_total */ "xdk", }; diff --git a/frontend/drivers/platform_xenon.c b/frontend/drivers/platform_xenon.c index d215d54414..6984a3e06e 100644 --- a/frontend/drivers/platform_xenon.c +++ b/frontend/drivers/platform_xenon.c @@ -84,5 +84,6 @@ frontend_ctx_driver_t frontend_ctx_qnx = { frontend_xenon_get_architecture, NULL, /* get_powerstate */ NULL, /* parse_drive_list */ + NULL, /* get_mem_total */ "xenon", }; diff --git a/frontend/frontend_driver.c b/frontend/frontend_driver.c index 104ffa03a8..eff9f24cae 100644 --- a/frontend/frontend_driver.c +++ b/frontend/frontend_driver.c @@ -308,4 +308,12 @@ enum frontend_architecture frontend_driver_get_cpu_architecture(void) return FRONTEND_ARCH_NONE; return frontend->get_architecture(); } + +uint32_t frontend_driver_get_total_memory(void) +{ + frontend_ctx_driver_t *frontend = frontend_get_ptr(); + if (!frontend || !frontend->get_total_mem) + return 0; + return frontend->get_total_mem(); +} #endif diff --git a/frontend/frontend_driver.h b/frontend/frontend_driver.h index c35da1e2cc..c9b94a68d5 100644 --- a/frontend/frontend_driver.h +++ b/frontend/frontend_driver.h @@ -17,6 +17,7 @@ #ifndef __FRONTEND_DRIVER_H #define __FRONTEND_DRIVER_H +#include #include #include @@ -79,6 +80,7 @@ typedef struct frontend_ctx_driver enum frontend_architecture (*get_architecture)(void); enum frontend_powerstate (*get_powerstate)(int *seconds, int *percent); int (*parse_drive_list)(void*); + uint32_t (*get_total_mem)(void); const char *ident; @@ -152,6 +154,8 @@ bool frontend_driver_get_core_extension(char *s, size_t len); bool frontend_driver_get_salamander_basename(char *s, size_t len); +uint32_t frontend_driver_get_total_memory(void); + RETRO_END_DECLS #endif From 9a25826ae918d0dd1bd08481df0d5221606e873b Mon Sep 17 00:00:00 2001 From: twinaphex Date: Sun, 12 Jun 2016 12:44:28 +0200 Subject: [PATCH 25/50] Create get_mem_free callback --- frontend/drivers/platform_ctr.c | 1 + frontend/drivers/platform_darwin.m | 1 + frontend/drivers/platform_gx.c | 1 + frontend/drivers/platform_linux.c | 8 ++++++++ frontend/drivers/platform_null.c | 1 + frontend/drivers/platform_ps3.c | 1 + frontend/drivers/platform_psp.c | 1 + frontend/drivers/platform_qnx.c | 1 + frontend/drivers/platform_win32.c | 1 + frontend/drivers/platform_xdk.cpp | 1 + frontend/frontend_driver.h | 1 + 11 files changed, 18 insertions(+) diff --git a/frontend/drivers/platform_ctr.c b/frontend/drivers/platform_ctr.c index 3cccc7483e..1e336b42df 100644 --- a/frontend/drivers/platform_ctr.c +++ b/frontend/drivers/platform_ctr.c @@ -279,5 +279,6 @@ frontend_ctx_driver_t frontend_ctx_ctr = { NULL, /* get_powerstate */ frontend_ctr_parse_drive_list, NULL, /* get_mem_total */ + NULL, /* get_mem_free */ "ctr", }; diff --git a/frontend/drivers/platform_darwin.m b/frontend/drivers/platform_darwin.m index fb07cb50a5..0ff13d097e 100644 --- a/frontend/drivers/platform_darwin.m +++ b/frontend/drivers/platform_darwin.m @@ -682,5 +682,6 @@ frontend_ctx_driver_t frontend_ctx_darwin = { frontend_darwin_get_powerstate, frontend_darwin_parse_drive_list, NULL, /* get_mem_total */ + NULL, /* get_mem_free */ "darwin", }; diff --git a/frontend/drivers/platform_gx.c b/frontend/drivers/platform_gx.c index 394fb1ded6..bfabbea6ab 100644 --- a/frontend/drivers/platform_gx.c +++ b/frontend/drivers/platform_gx.c @@ -502,5 +502,6 @@ frontend_ctx_driver_t frontend_ctx_gx = { NULL, /* get_powerstate */ frontend_gx_parse_drive_list, NULL, /* get_mem_total */ + NULL, /* get_mem_free */ "gx", }; diff --git a/frontend/drivers/platform_linux.c b/frontend/drivers/platform_linux.c index 8760a03c06..20c1a4ab6f 100644 --- a/frontend/drivers/platform_linux.c +++ b/frontend/drivers/platform_linux.c @@ -1888,6 +1888,13 @@ static uint32_t frontend_linux_get_mem_total(void) return pages * page_size; } +static uint32_t frontend_linux_get_mem_free(void) +{ + long pages = sysconf(_SC_AVPHYS_PAGES); + long page_size = sysconf(_SC_PAGE_SIZE); + return pages * page_size; +} + frontend_ctx_driver_t frontend_ctx_linux = { frontend_linux_get_env, /* environment_get */ frontend_linux_init, /* init */ @@ -1923,6 +1930,7 @@ frontend_ctx_driver_t frontend_ctx_linux = { NULL, /* parse_drive_list */ #endif frontend_linux_get_mem_total, + frontend_linux_get_mem_free, #ifdef ANDROID "android" #else diff --git a/frontend/drivers/platform_null.c b/frontend/drivers/platform_null.c index 3807e71fc1..b558e111c1 100644 --- a/frontend/drivers/platform_null.c +++ b/frontend/drivers/platform_null.c @@ -36,5 +36,6 @@ frontend_ctx_driver_t frontend_ctx_null = { NULL, /* get_powerstate */ NULL, /* parse_drive_list */ NULL, /* get_mem_total */ + NULL, /* get_mem_free */ "null", }; diff --git a/frontend/drivers/platform_ps3.c b/frontend/drivers/platform_ps3.c index ed5292ee95..a9d436933d 100644 --- a/frontend/drivers/platform_ps3.c +++ b/frontend/drivers/platform_ps3.c @@ -540,5 +540,6 @@ frontend_ctx_driver_t frontend_ctx_ps3 = { NULL, /* get_powerstate */ frontend_ps3_parse_drive_list, NULL, /* get_mem_total */ + NULL, /* get_mem_free */ "ps3", }; diff --git a/frontend/drivers/platform_psp.c b/frontend/drivers/platform_psp.c index 94b9f008fd..4b3dc1cc40 100644 --- a/frontend/drivers/platform_psp.c +++ b/frontend/drivers/platform_psp.c @@ -405,6 +405,7 @@ frontend_ctx_driver_t frontend_ctx_psp = { frontend_psp_get_powerstate, frontend_psp_parse_drive_list, NULL, /* get_mem_total */ + NULL, /* get_mem_free */ #ifdef VITA "vita", #else diff --git a/frontend/drivers/platform_qnx.c b/frontend/drivers/platform_qnx.c index 3236b56aa2..41f6d3d785 100644 --- a/frontend/drivers/platform_qnx.c +++ b/frontend/drivers/platform_qnx.c @@ -85,5 +85,6 @@ frontend_ctx_driver_t frontend_ctx_qnx = { NULL, /* get_powerstate */ NULL, /* parse_drive_list */ NULL, /* get_mem_total */ + NULL, /* get_mem_free */ "qnx", }; diff --git a/frontend/drivers/platform_win32.c b/frontend/drivers/platform_win32.c index e874d4fb20..d314192a8c 100644 --- a/frontend/drivers/platform_win32.c +++ b/frontend/drivers/platform_win32.c @@ -317,5 +317,6 @@ frontend_ctx_driver_t frontend_ctx_win32 = { frontend_win32_get_powerstate, frontend_win32_parse_drive_list, NULL, /* get_mem_total */ + NULL, /* get_mem_free */ "win32", }; diff --git a/frontend/drivers/platform_xdk.cpp b/frontend/drivers/platform_xdk.cpp index cf89f525a2..2b4a76978c 100644 --- a/frontend/drivers/platform_xdk.cpp +++ b/frontend/drivers/platform_xdk.cpp @@ -1407,5 +1407,6 @@ frontend_ctx_driver_t frontend_ctx_xdk = { NULL, /* get_powerstate */ frontend_xdk_parse_drive_list, NULL, /* get_mem_total */ + NULL, /* get_mem_free */ "xdk", }; diff --git a/frontend/frontend_driver.h b/frontend/frontend_driver.h index c9b94a68d5..7cf0824d78 100644 --- a/frontend/frontend_driver.h +++ b/frontend/frontend_driver.h @@ -81,6 +81,7 @@ typedef struct frontend_ctx_driver enum frontend_powerstate (*get_powerstate)(int *seconds, int *percent); int (*parse_drive_list)(void*); uint32_t (*get_total_mem)(void); + uint32_t (*get_free_mem)(void); const char *ident; From c3056a0d06052395a6128f4ff36c0bae4eee3448 Mon Sep 17 00:00:00 2001 From: twinaphex Date: Sun, 12 Jun 2016 12:45:13 +0200 Subject: [PATCH 26/50] Add free_memory function --- frontend/frontend_driver.c | 8 ++++++++ frontend/frontend_driver.h | 2 ++ 2 files changed, 10 insertions(+) diff --git a/frontend/frontend_driver.c b/frontend/frontend_driver.c index eff9f24cae..634f354618 100644 --- a/frontend/frontend_driver.c +++ b/frontend/frontend_driver.c @@ -316,4 +316,12 @@ uint32_t frontend_driver_get_total_memory(void) return 0; return frontend->get_total_mem(); } + +uint32_t frontend_driver_get_free_memory(void) +{ + frontend_ctx_driver_t *frontend = frontend_get_ptr(); + if (!frontend || !frontend->get_free_mem) + return 0; + return frontend->get_free_mem(); +} #endif diff --git a/frontend/frontend_driver.h b/frontend/frontend_driver.h index 7cf0824d78..d84e9f4016 100644 --- a/frontend/frontend_driver.h +++ b/frontend/frontend_driver.h @@ -157,6 +157,8 @@ bool frontend_driver_get_salamander_basename(char *s, size_t len); uint32_t frontend_driver_get_total_memory(void); +uint32_t frontend_driver_get_free_memory(void); + RETRO_END_DECLS #endif From d7c2201385bad596c1e0610b89456574eb0751dd Mon Sep 17 00:00:00 2001 From: twinaphex Date: Sun, 12 Jun 2016 13:20:54 +0200 Subject: [PATCH 27/50] Show memory information in System Information --- frontend/drivers/platform_linux.c | 4 +- frontend/frontend_driver.c | 4 +- frontend/frontend_driver.h | 8 +-- menu/menu_displaylist.c | 82 +++++++++++++++++++++++++++++++ 4 files changed, 90 insertions(+), 8 deletions(-) diff --git a/frontend/drivers/platform_linux.c b/frontend/drivers/platform_linux.c index 20c1a4ab6f..beb4119957 100644 --- a/frontend/drivers/platform_linux.c +++ b/frontend/drivers/platform_linux.c @@ -1881,14 +1881,14 @@ static void frontend_linux_exitspawn(char *core_path, size_t core_path_size) } #endif -static uint32_t frontend_linux_get_mem_total(void) +static uint64_t frontend_linux_get_mem_total(void) { long pages = sysconf(_SC_PHYS_PAGES); long page_size = sysconf(_SC_PAGE_SIZE); return pages * page_size; } -static uint32_t frontend_linux_get_mem_free(void) +static uint64_t frontend_linux_get_mem_free(void) { long pages = sysconf(_SC_AVPHYS_PAGES); long page_size = sysconf(_SC_PAGE_SIZE); diff --git a/frontend/frontend_driver.c b/frontend/frontend_driver.c index 634f354618..e4a469252a 100644 --- a/frontend/frontend_driver.c +++ b/frontend/frontend_driver.c @@ -309,7 +309,7 @@ enum frontend_architecture frontend_driver_get_cpu_architecture(void) return frontend->get_architecture(); } -uint32_t frontend_driver_get_total_memory(void) +uint64_t frontend_driver_get_total_memory(void) { frontend_ctx_driver_t *frontend = frontend_get_ptr(); if (!frontend || !frontend->get_total_mem) @@ -317,7 +317,7 @@ uint32_t frontend_driver_get_total_memory(void) return frontend->get_total_mem(); } -uint32_t frontend_driver_get_free_memory(void) +uint64_t frontend_driver_get_free_memory(void) { frontend_ctx_driver_t *frontend = frontend_get_ptr(); if (!frontend || !frontend->get_free_mem) diff --git a/frontend/frontend_driver.h b/frontend/frontend_driver.h index d84e9f4016..c0c9793a60 100644 --- a/frontend/frontend_driver.h +++ b/frontend/frontend_driver.h @@ -80,8 +80,8 @@ typedef struct frontend_ctx_driver enum frontend_architecture (*get_architecture)(void); enum frontend_powerstate (*get_powerstate)(int *seconds, int *percent); int (*parse_drive_list)(void*); - uint32_t (*get_total_mem)(void); - uint32_t (*get_free_mem)(void); + uint64_t (*get_total_mem)(void); + uint64_t (*get_free_mem)(void); const char *ident; @@ -155,9 +155,9 @@ bool frontend_driver_get_core_extension(char *s, size_t len); bool frontend_driver_get_salamander_basename(char *s, size_t len); -uint32_t frontend_driver_get_total_memory(void); +uint64_t frontend_driver_get_total_memory(void); -uint32_t frontend_driver_get_free_memory(void); +uint64_t frontend_driver_get_free_memory(void); RETRO_END_DECLS diff --git a/menu/menu_displaylist.c b/menu/menu_displaylist.c index 222592fdab..e05c72ecf6 100644 --- a/menu/menu_displaylist.c +++ b/menu/menu_displaylist.c @@ -597,6 +597,21 @@ static int menu_displaylist_parse_network_info(menu_displaylist_info_t *info) #endif #endif +static uint64_t bytes_to_kb(uint64_t bytes) +{ + return bytes / 1024; +} + +static uint64_t bytes_to_mb(uint64_t bytes) +{ + return bytes / 1024 / 1024; +} + +static uint64_t bytes_to_gb(uint64_t bytes) +{ + return bytes_to_kb(bytes) / 1024 / 1024; +} + static int menu_displaylist_parse_system_info(menu_displaylist_info_t *info) { int controller; @@ -765,6 +780,73 @@ static int menu_displaylist_parse_system_info(menu_displaylist_info_t *info) menu_entries_add(info->list, tmp, "", MENU_SETTINGS_CORE_INFO_NONE, 0, 0); + { + char tmp[PATH_MAX_LENGTH] = {0}; + char tmp2[PATH_MAX_LENGTH] = {0}; + char tmp3[PATH_MAX_LENGTH] = {0}; + uint64_t memory_free = frontend_driver_get_free_memory(); + uint64_t memory_total = frontend_driver_get_total_memory(); + + if (memory_free != 0 && memory_total != 0) + { +#ifdef _WIN32 + snprintf(tmp, sizeof(tmp), + "Memory (in bytes): %Iu/%Iu B", + memory_free, + memory_total + ); + snprintf(tmp2, sizeof(tmp2), + "Memory (in megabytes): %Iu/%Iu MB", + bytes_to_mb(memory_free), + bytes_to_mb(memory_total) + ); + snprintf(tmp3, sizeof(tmp3), + "Memory (in gigabytes): %Iu/%Iu GB", + bytes_to_gb(memory_free), + bytes_to_gb(memory_total) + ); +#elif defined(__STDC_VERSION__) && __STDC_VERSION__>=199901L + snprintf(tmp, sizeof(tmp), + "Memory (in bytes) : %zu/%zu B", + memory_free, + memory_total + ); + snprintf(tmp2, sizeof(tmp2), + "Memory (in megabytes) : %zu/%zu MB", + bytes_to_mb(memory_free), + bytes_to_mb(memory_total) + ); + snprintf(tmp3, sizeof(tmp3), + "Memory (in gigabytes): %zu/%zu GB", + bytes_to_gb(memory_free), + bytes_to_gb(memory_total) + ); +#else + snprintf(tmp, sizeof(tmp), + "Memory (in bytes): %lu/%lu B", + memory_free, + memory_total + ); + snprintf(tmp2, sizeof(tmp2), + "Memory (in megabytes) : %1u/%1u MB", + bytes_to_mb(memory_free), + bytes_to_mb(memory_total) + ); + snprintf(tmp3, sizeof(tmp3), + "Memory (in gigabytes) : %1u/%1u GB", + bytes_to_gb(memory_free), + bytes_to_gb(memory_total) + ); +#endif + menu_entries_add(info->list, tmp, "", + MENU_SETTINGS_CORE_INFO_NONE, 0, 0); + menu_entries_add(info->list, tmp2, "", + MENU_SETTINGS_CORE_INFO_NONE, 0, 0); + menu_entries_add(info->list, tmp3, "", + MENU_SETTINGS_CORE_INFO_NONE, 0, 0); + } + } + if (frontend->get_powerstate) { int seconds = 0, percent = 0; From ae894fb01547588aaf0a9faf7e79e72eefab9d8e Mon Sep 17 00:00:00 2001 From: Twinaphex Date: Sun, 12 Jun 2016 13:49:00 +0200 Subject: [PATCH 28/50] Implement frontend_darwin_get_mem_total --- frontend/drivers/platform_darwin.m | 14 +++++++++++++- menu/menu_displaylist.c | 6 +++--- 2 files changed, 16 insertions(+), 4 deletions(-) diff --git a/frontend/drivers/platform_darwin.m b/frontend/drivers/platform_darwin.m index 0ff13d097e..15d6204411 100644 --- a/frontend/drivers/platform_darwin.m +++ b/frontend/drivers/platform_darwin.m @@ -665,6 +665,18 @@ static int frontend_darwin_parse_drive_list(void *data) return ret; } +static uint64_t frontend_darwin_get_mem_total(void) +{ + uint64_t size; + int mib[2] = { CTL_HW, HW_MEMSIZE }; + u_int namelen = sizeof(mib) / sizeof(mib[0]); + size_t len = sizeof(size); + + if (sysctl(mib, namelen, &size, &len, NULL, 0) < 0) + return 0; + return size; +} + frontend_ctx_driver_t frontend_ctx_darwin = { frontend_darwin_get_environment_settings, NULL, /* init */ @@ -681,7 +693,7 @@ frontend_ctx_driver_t frontend_ctx_darwin = { frontend_darwin_get_architecture, frontend_darwin_get_powerstate, frontend_darwin_parse_drive_list, - NULL, /* get_mem_total */ + frontend_darwin_get_mem_total, NULL, /* get_mem_free */ "darwin", }; diff --git a/menu/menu_displaylist.c b/menu/menu_displaylist.c index e05c72ecf6..1ad0cda720 100644 --- a/menu/menu_displaylist.c +++ b/menu/menu_displaylist.c @@ -807,17 +807,17 @@ static int menu_displaylist_parse_system_info(menu_displaylist_info_t *info) ); #elif defined(__STDC_VERSION__) && __STDC_VERSION__>=199901L snprintf(tmp, sizeof(tmp), - "Memory (in bytes) : %zu/%zu B", + "Memory (in bytes) : %llu/%llu B", memory_free, memory_total ); snprintf(tmp2, sizeof(tmp2), - "Memory (in megabytes) : %zu/%zu MB", + "Memory (in megabytes) : %llu/%llu MB", bytes_to_mb(memory_free), bytes_to_mb(memory_total) ); snprintf(tmp3, sizeof(tmp3), - "Memory (in gigabytes): %zu/%zu GB", + "Memory (in gigabytes): %llu/%llu GB", bytes_to_gb(memory_free), bytes_to_gb(memory_total) ); From 6283cb5eefcfe25e1e057601c4fac9a9387dd9b5 Mon Sep 17 00:00:00 2001 From: twinaphex Date: Sun, 12 Jun 2016 13:50:29 +0200 Subject: [PATCH 29/50] Get rid of warnings --- menu/menu_displaylist.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/menu/menu_displaylist.c b/menu/menu_displaylist.c index 1ad0cda720..5f9eb3346f 100644 --- a/menu/menu_displaylist.c +++ b/menu/menu_displaylist.c @@ -808,18 +808,18 @@ static int menu_displaylist_parse_system_info(menu_displaylist_info_t *info) #elif defined(__STDC_VERSION__) && __STDC_VERSION__>=199901L snprintf(tmp, sizeof(tmp), "Memory (in bytes) : %llu/%llu B", - memory_free, - memory_total + (unsigned long long)memory_free, + (unsigned long long)memory_total ); snprintf(tmp2, sizeof(tmp2), "Memory (in megabytes) : %llu/%llu MB", - bytes_to_mb(memory_free), - bytes_to_mb(memory_total) + (unsigned long long)bytes_to_mb(memory_free), + (unsigned long long)bytes_to_mb(memory_total) ); snprintf(tmp3, sizeof(tmp3), "Memory (in gigabytes): %llu/%llu GB", - bytes_to_gb(memory_free), - bytes_to_gb(memory_total) + (unsigned long long)bytes_to_gb(memory_free), + (unsigned long long)bytes_to_gb(memory_total) ); #else snprintf(tmp, sizeof(tmp), From 19d4498d2ca5bff5341a0fb3e05dcdbe615ab635 Mon Sep 17 00:00:00 2001 From: Twinaphex Date: Sun, 12 Jun 2016 14:16:49 +0200 Subject: [PATCH 30/50] (iOS) Buildfix --- frontend/drivers/platform_darwin.m | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/frontend/drivers/platform_darwin.m b/frontend/drivers/platform_darwin.m index 15d6204411..8d96f398f7 100644 --- a/frontend/drivers/platform_darwin.m +++ b/frontend/drivers/platform_darwin.m @@ -667,6 +667,7 @@ static int frontend_darwin_parse_drive_list(void *data) static uint64_t frontend_darwin_get_mem_total(void) { +#if defined(OSX) uint64_t size; int mib[2] = { CTL_HW, HW_MEMSIZE }; u_int namelen = sizeof(mib) / sizeof(mib[0]); @@ -675,6 +676,9 @@ static uint64_t frontend_darwin_get_mem_total(void) if (sysctl(mib, namelen, &size, &len, NULL, 0) < 0) return 0; return size; +#else + return 0; +#endif } frontend_ctx_driver_t frontend_ctx_darwin = { From a01985273bde586468daec716251e05a3a8db5bf Mon Sep 17 00:00:00 2001 From: Twinaphex Date: Sun, 12 Jun 2016 18:42:03 +0200 Subject: [PATCH 31/50] Implement frontend_darwin_get_mem_free --- frontend/drivers/platform_darwin.m | 24 +++++++++++++++++++++++- 1 file changed, 23 insertions(+), 1 deletion(-) diff --git a/frontend/drivers/platform_darwin.m b/frontend/drivers/platform_darwin.m index 8d96f398f7..65b49ae891 100644 --- a/frontend/drivers/platform_darwin.m +++ b/frontend/drivers/platform_darwin.m @@ -681,6 +681,28 @@ static uint64_t frontend_darwin_get_mem_total(void) #endif } +static uint64_t frontend_darwin_get_mem_free(void) +{ +#ifdef OSX + vm_size_t page_size; + vm_statistics64_data_t vm_stats; + mach_port_t mach_port = mach_host_self(); + mach_msg_type_number_t count = sizeof(vm_stats) / sizeof(natural_t); + + if (KERN_SUCCESS == host_page_size(mach_port, &page_size) && + KERN_SUCCESS == host_statistics64(mach_port, HOST_VM_INFO, + (host_info64_t)&vm_stats, &count)) + { + + long long used_memory = ((int64_t)vm_stats.active_count + + (int64_t)vm_stats.inactive_count + + (int64_t)vm_stats.wire_count) * (int64_t)page_size; + return used_memory; + } +#endif + return 0; +} + frontend_ctx_driver_t frontend_ctx_darwin = { frontend_darwin_get_environment_settings, NULL, /* init */ @@ -698,6 +720,6 @@ frontend_ctx_driver_t frontend_ctx_darwin = { frontend_darwin_get_powerstate, frontend_darwin_parse_drive_list, frontend_darwin_get_mem_total, - NULL, /* get_mem_free */ + frontend_darwin_get_mem_free, "darwin", }; From 8431b6323570eabb450f3be1bfba079e3cfeeb9c Mon Sep 17 00:00:00 2001 From: twinaphex Date: Sun, 12 Jun 2016 18:52:30 +0200 Subject: [PATCH 32/50] Exclude this code for OSX PPC for now --- frontend/drivers/platform_darwin.m | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/frontend/drivers/platform_darwin.m b/frontend/drivers/platform_darwin.m index 65b49ae891..894c60d48b 100644 --- a/frontend/drivers/platform_darwin.m +++ b/frontend/drivers/platform_darwin.m @@ -683,7 +683,7 @@ static uint64_t frontend_darwin_get_mem_total(void) static uint64_t frontend_darwin_get_mem_free(void) { -#ifdef OSX +#if defined(OSX) && !defined(OSX_PPC) vm_size_t page_size; vm_statistics64_data_t vm_stats; mach_port_t mach_port = mach_host_self(); From b11bfc8a7390243f35ea81e640da9e3064259db6 Mon Sep 17 00:00:00 2001 From: Twinaphex Date: Sun, 12 Jun 2016 19:29:07 +0200 Subject: [PATCH 33/50] Add ui_companion_driver_get_main_window --- ui/drivers/cocoa/cocoa_common.h | 9 --------- ui/drivers/cocoa/ui_cocoa_msg_window.m | 2 +- ui/drivers/ui_cocoa.m | 17 ++++++++++++++++- ui/drivers/ui_cocoatouch.m | 1 + ui/drivers/ui_null.c | 1 + ui/drivers/ui_qt.cpp | 1 + ui/drivers/ui_win32.c | 1 + ui/ui_companion_driver.c | 8 ++++++++ ui/ui_companion_driver.h | 3 +++ 9 files changed, 32 insertions(+), 11 deletions(-) diff --git a/ui/drivers/cocoa/cocoa_common.h b/ui/drivers/cocoa/cocoa_common.h index 10af179091..07654189e5 100644 --- a/ui/drivers/cocoa/cocoa_common.h +++ b/ui/drivers/cocoa/cocoa_common.h @@ -101,15 +101,6 @@ void get_ios_version(int *major, int *minor); @end -@interface RetroArch_OSX : NSObject -{ - NSWindow* _window; -} - -@property (nonatomic, retain) NSWindow IBOutlet* window; - -@end - #endif #define BOXSTRING(x) [NSString stringWithUTF8String:x] diff --git a/ui/drivers/cocoa/ui_cocoa_msg_window.m b/ui/drivers/cocoa/ui_cocoa_msg_window.m index f09672b2d0..78449181f5 100644 --- a/ui/drivers/cocoa/ui_cocoa_msg_window.m +++ b/ui/drivers/cocoa/ui_cocoa_msg_window.m @@ -72,7 +72,7 @@ static enum ui_msg_window_response ui_msg_window_cocoa_dialog(ui_msg_window_stat break; } - [alert beginSheetModalForWindow:((RetroArch_OSX*)[[NSApplication sharedApplication] delegate]).window + [alert beginSheetModalForWindow:ui_companion_driver_get_main_window() modalDelegate:apple_platform didEndSelector:@selector(alertDidEnd:returnCode:contextInfo:) contextInfo:nil]; diff --git a/ui/drivers/ui_cocoa.m b/ui/drivers/ui_cocoa.m index 9b702a50f5..160ea32ac2 100644 --- a/ui/drivers/ui_cocoa.m +++ b/ui/drivers/ui_cocoa.m @@ -37,6 +37,15 @@ id apple_platform; +@interface RetroArch_OSX : NSObject +{ + NSWindow* _window; +} + +@property (nonatomic, retain) NSWindow IBOutlet* window; + +@end + static void app_terminate(void) { [[NSApplication sharedApplication] terminate:nil]; @@ -384,7 +393,7 @@ static void open_document_handler(ui_browser_window_state_t *state, bool result) if (browser) { - ui_browser_window_state_t browser_state = {0}; + ui_browser_window_state_t browser_state = {{0}}; settings_t *settings = config_get_ptr(); NSString *startdir = BOXSTRING(settings->directory.menu_content); @@ -546,6 +555,11 @@ static void ui_companion_cocoa_notify_list_pushed(void *data, (void)menu_list; } +static void *ui_companion_cocoa_get_main_window(void *data) +{ + return ((RetroArch_OSX*)[[NSApplication sharedApplication] delegate]).window; +} + const ui_companion_driver_t ui_companion_cocoa = { ui_companion_cocoa_init, ui_companion_cocoa_deinit, @@ -557,6 +571,7 @@ const ui_companion_driver_t ui_companion_cocoa = { NULL, NULL, NULL, + ui_companion_cocoa_get_main_window, &ui_browser_window_cocoa, &ui_msg_window_cocoa, &ui_window_cocoa, diff --git a/ui/drivers/ui_cocoatouch.m b/ui/drivers/ui_cocoatouch.m index 2f3df5027e..c694516846 100644 --- a/ui/drivers/ui_cocoatouch.m +++ b/ui/drivers/ui_cocoatouch.m @@ -689,6 +689,7 @@ const ui_companion_driver_t ui_companion_cocoatouch = { ui_companion_cocoatouch_notify_refresh, ui_companion_cocoatouch_msg_queue_push, ui_companion_cocoatouch_render_messagebox, + NULL, &ui_browser_window_null, &ui_msg_window_null, &ui_window_null, diff --git a/ui/drivers/ui_null.c b/ui/drivers/ui_null.c index d1520c7875..f43fcd29f7 100644 --- a/ui/drivers/ui_null.c +++ b/ui/drivers/ui_null.c @@ -88,6 +88,7 @@ const ui_companion_driver_t ui_companion_null = { NULL, NULL, NULL, + NULL, &ui_browser_window_null, &ui_msg_window_null, &ui_window_null, diff --git a/ui/drivers/ui_qt.cpp b/ui/drivers/ui_qt.cpp index 9257bf907e..16453bb419 100644 --- a/ui/drivers/ui_qt.cpp +++ b/ui/drivers/ui_qt.cpp @@ -144,6 +144,7 @@ const ui_companion_driver_t ui_companion_qt = { NULL, NULL, NULL, + NULL, &ui_browser_window_qt, &ui_msg_window_qt, &ui_window_qt, diff --git a/ui/drivers/ui_win32.c b/ui/drivers/ui_win32.c index 1b32658669..31b7ac6700 100644 --- a/ui/drivers/ui_win32.c +++ b/ui/drivers/ui_win32.c @@ -741,6 +741,7 @@ const ui_companion_driver_t ui_companion_win32 = { NULL, NULL, NULL, + NULL, &ui_browser_window_win32, &ui_msg_window_win32, &ui_window_win32, diff --git a/ui/ui_companion_driver.c b/ui/ui_companion_driver.c index 8764cbe159..c9124c325a 100644 --- a/ui/ui_companion_driver.c +++ b/ui/ui_companion_driver.c @@ -201,3 +201,11 @@ const ui_application_t *ui_companion_driver_get_application_ptr(void) return NULL; return ui->application; } + +void *ui_companion_driver_get_main_window(void) +{ + const ui_companion_driver_t *ui = ui_companion_get_ptr(); + if (!ui || !ui->get_main_window) + return NULL; + return ui->get_main_window(ui_companion_data); +} diff --git a/ui/ui_companion_driver.h b/ui/ui_companion_driver.h index 52cfbdab7b..c611fde7eb 100644 --- a/ui/ui_companion_driver.h +++ b/ui/ui_companion_driver.h @@ -133,6 +133,7 @@ typedef struct ui_companion_driver void (*notify_refresh)(void *data); void (*msg_queue_push)(const char *msg, unsigned priority, unsigned duration, bool flush); void (*render_messagebox)(const char *msg); + void *(*get_main_window)(void *data); const ui_browser_window_t *browser_window; const ui_msg_window_t *msg_window; const ui_window_t *window; @@ -215,6 +216,8 @@ const ui_window_t *ui_companion_driver_get_window_ptr(void); const ui_application_t *ui_companion_driver_get_application_ptr(void); +void *ui_companion_driver_get_main_window(void); + RETRO_END_DECLS #endif From e8988e29da99540720d0dd3ab954ffca142fe1bc Mon Sep 17 00:00:00 2001 From: gouchi Date: Sun, 12 Jun 2016 19:35:57 +0200 Subject: [PATCH 34/50] Add French messages --- intl/french.h | 82 ++++++++++++++++++++ intl/msg_hash_fr.c | 188 ++++++++++++++++++++++++++++++++++++++++++++- 2 files changed, 269 insertions(+), 1 deletion(-) create mode 100644 intl/french.h diff --git a/intl/french.h b/intl/french.h new file mode 100644 index 0000000000..81f59bd623 --- /dev/null +++ b/intl/french.h @@ -0,0 +1,82 @@ +/* RetroArch - A frontend for libretro. + * Copyright (C) 2010-2014 - Hans-Kristian Arntzen + * Copyright (C) 2011-2016 - Daniel De Matteis + * + * RetroArch is free software: you can redistribute it and/or modify it under the terms + * of the GNU General Public License as published by the Free Software Found- + * ation, either version 3 of the License, or (at your option) any later version. + * + * RetroArch is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; + * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + * PURPOSE. See the GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License along with RetroArch. + * If not, see . + */ + +#ifndef __INTL_FRENCH_H +#define __INTL_FRENCH_H + +#define RETRO_LBL_JOYPAD_B "Bouton RetroPad B" +#define RETRO_LBL_JOYPAD_Y "Bouton RetroPad Y" +#define RETRO_LBL_JOYPAD_SELECT "Bouton RetroPad Select" +#define RETRO_LBL_JOYPAD_START "Bouton RetroPad Start" +#define RETRO_LBL_JOYPAD_UP "RetroPad D-Pad Up" +#define RETRO_LBL_JOYPAD_DOWN "Croix directionnelle RetroPad Haut" +#define RETRO_LBL_JOYPAD_LEFT "Croix directionnelle RetroPad Gauche" +#define RETRO_LBL_JOYPAD_RIGHT "Croix directionnelle RetroPad Droite" +#define RETRO_LBL_JOYPAD_A "Bouton RetroPad A" +#define RETRO_LBL_JOYPAD_X "Bouton RetroPad X" +#define RETRO_LBL_JOYPAD_L "Bouton RetroPad L" +#define RETRO_LBL_JOYPAD_R "Bouton RetroPad R" +#define RETRO_LBL_JOYPAD_L2 "Bouton RetroPad L2" +#define RETRO_LBL_JOYPAD_R2 "Bouton RetroPad R2" +#define RETRO_LBL_JOYPAD_L3 "Bouton RetroPad L3" +#define RETRO_LBL_JOYPAD_R3 "Bouton RetroPad R3" +#define RETRO_LBL_TURBO_ENABLE "Turbo Activé" +#define RETRO_LBL_ANALOG_LEFT_X "Analogue Gauche X" +#define RETRO_LBL_ANALOG_LEFT_Y "Analogue Gauche Y" +#define RETRO_LBL_ANALOG_RIGHT_X "Analogue Droite X" +#define RETRO_LBL_ANALOG_RIGHT_Y "Analogue Droite Y" +#define RETRO_LBL_ANALOG_LEFT_X_PLUS "Analogue Gauche X +" +#define RETRO_LBL_ANALOG_LEFT_X_MINUS "Analogue Gauche X -" +#define RETRO_LBL_ANALOG_LEFT_Y_PLUS "Analogue Gauche Y +" +#define RETRO_LBL_ANALOG_LEFT_Y_MINUS "Analogue Gauche Y -" +#define RETRO_LBL_ANALOG_RIGHT_X_PLUS "Analogue Droite X +" +#define RETRO_LBL_ANALOG_RIGHT_X_MINUS "Analogue Droite X -" +#define RETRO_LBL_ANALOG_RIGHT_Y_PLUS "Analogue Droite Y +" +#define RETRO_LBL_ANALOG_RIGHT_Y_MINUS "Analogue Droite Y -" +#define RETRO_LBL_FAST_FORWARD_KEY "Avance Rapide" +#define RETRO_LBL_FAST_FORWARD_HOLD_KEY "Avance Rapide Appui Maintenu" +#define RETRO_LBL_LOAD_STATE_KEY "Charger une savestate" +#define RETRO_LBL_SAVE_STATE_KEY "Sauvegarder une savestate" +#define RETRO_LBL_FULLSCREEN_TOGGLE_KEY "Mode plein écran" +#define RETRO_LBL_QUIT_KEY "Quitter" +#define RETRO_LBL_STATE_SLOT_PLUS "État Slot Suivant" +#define RETRO_LBL_STATE_SLOT_MINUS "État Slot Antérieur" +#define RETRO_LBL_REWIND "Rembobinage" +#define RETRO_LBL_MOVIE_RECORD_TOGGLE "Commutateur enregistrement vidéo" +#define RETRO_LBL_PAUSE_TOGGLE "Pause" +#define RETRO_LBL_FRAMEADVANCE "Défiler image" +#define RETRO_LBL_RESET "Reset" +#define RETRO_LBL_SHADER_NEXT "Prochain Shader" +#define RETRO_LBL_SHADER_PREV "Précédent Shader" +#define RETRO_LBL_CHEAT_INDEX_PLUS "Index Cheat Suivant" +#define RETRO_LBL_CHEAT_INDEX_MINUS "Index Cheat Antérieur" +#define RETRO_LBL_CHEAT_TOGGLE "Commutateur Mode Triche" +#define RETRO_LBL_SCREENSHOT "Capture d'écran" +#define RETRO_LBL_MUTE "Couper le son" +#define RETRO_LBL_OSK "Active le clavier visuel" +#define RETRO_LBL_NETPLAY_FLIP "Inversement des joueurs Netplay" +#define RETRO_LBL_SLOWMOTION "Ralenti" +#define RETRO_LBL_ENABLE_HOTKEY "Active raccourci clavier" +#define RETRO_LBL_VOLUME_UP "Augmenter le volume" +#define RETRO_LBL_VOLUME_DOWN "Diminuer le volume" +#define RETRO_LBL_OVERLAY_NEXT "Prochain Overlay" +#define RETRO_LBL_DISK_EJECT_TOGGLE "Commutateur éjecter le disque" +#define RETRO_LBL_DISK_NEXT "Prochain Changement Disque" +#define RETRO_LBL_DISK_PREV "Précédent Changement Disque" +#define RETRO_LBL_GRAB_MOUSE_TOGGLE "Commutateur capturer la souris" +#define RETRO_LBL_MENU_TOGGLE "Commutateur Menu" + +#endif diff --git a/intl/msg_hash_fr.c b/intl/msg_hash_fr.c index 98e7c27e3c..01d1719bf0 100644 --- a/intl/msg_hash_fr.c +++ b/intl/msg_hash_fr.c @@ -15,11 +15,197 @@ #include "../msg_hash.h" +#ifdef __clang__ +#pragma clang diagnostic ignored "-Winvalid-source-encoding" +#endif + + /* IMPORTANT: + * For non-english characters to work without proper unicode support, + * we need this file to be encoded in ISO 8859-1 (Latin1), not UTF-8. + * If you save this file as UTF-8, you'll break non-english characters + * (e.g. German "Umlauts" and Portugese diacritics). + */ +/* DO NOT REMOVE THIS. If it causes build failure, it's because you saved the file as UTF-8. Read the above comment. */ +extern const char force_iso_8859_1[sizeof("äÄöÖßüÜ")==7+1 ? 1 : -1]; + const char *msg_hash_to_str_fr(uint32_t hash) { switch (hash) { - case 0: + case MSG_PROGRAM: + return "RetroArch"; + case MSG_MOVIE_RECORD_STOPPED: + return "Arrêt de l'enregistrement vidéo."; + case MSG_MOVIE_PLAYBACK_ENDED: + return "Fin de la lecture vidéo"; + case MSG_AUTOSAVE_FAILED: + return "Impossible d'activer l'enregistrement automatique."; + case MSG_NETPLAY_FAILED_MOVIE_PLAYBACK_HAS_STARTED: + return "Lecture en cours. Impossible d'activer le jeu en réseau."; + case MSG_NETPLAY_FAILED: + return "Échec de l'initialisation du jeu en réseau"; + case MSG_LIBRETRO_ABI_BREAK: + return "est compilé avec une version différente de la bibliothèque libretro actuelle."; + case MSG_REWIND_INIT_FAILED_NO_SAVESTATES: + return "L'implémentation ne supporte pas la sauvegarde d'état. Impossible d'activer le retour rapide."; + case MSG_REWIND_INIT_FAILED_THREADED_AUDIO: + return "L'implémentation utilise audio thread. Impossible d'activer le retour rapide."; + case MSG_REWIND_INIT_FAILED: + return "Échec de l'initialisation du tampon pour le retour rapide. Cette fonctionnalité sera désactivée."; + case MSG_REWIND_INIT: + return "Initialisation du tampon pour le retour rapide avec une taille"; + case MSG_CUSTOM_TIMING_GIVEN: + return "Temps personnalisé attribué"; + case MSG_VIEWPORT_SIZE_CALCULATION_FAILED: + return "Échec du calcul de la taille du visuel ! Utilisation des données brutes. Cela ne fonctionnera probablement pas bien ..."; + case MSG_HW_RENDERED_MUST_USE_POSTSHADED_RECORDING: + return "Le core Libretro utilise le rendu matériel. Obligation d'utiliser également l'enregistrement post-shaded."; + case MSG_RECORDING_TO: + return "Enregistrement vers"; + case MSG_DETECTED_VIEWPORT_OF: + return "Détection du visuel"; + case MSG_TAKING_SCREENSHOT: + return "Réalisation d'une copie d'écran."; + case MSG_FAILED_TO_TAKE_SCREENSHOT: + return "Échec de la copie d'écran."; + case MSG_FAILED_TO_START_RECORDING: + return "Échec de l'activation de l'enregistrement."; + case MSG_RECORDING_TERMINATED_DUE_TO_RESIZE: + return "Enregistrement interrompu à cause du redimensionnement."; + case MSG_USING_LIBRETRO_DUMMY_CORE_RECORDING_SKIPPED: + return "Utilisation d'un core libretro simple. Ignore l'enregistrement."; + case MSG_UNKNOWN: + return "Inconnu"; + case MSG_LOADING_CONTENT_FILE: + return "Chargement du contenu"; + case MSG_RECEIVED: + return "Reçu"; + case MSG_UNRECOGNIZED_COMMAND: + return "Commande non reconnue"; + case MSG_SENDING_COMMAND: + return "Envoi commande"; + case MSG_GOT_INVALID_DISK_INDEX: + return "Index du disque invalide."; + case MSG_FAILED_TO_REMOVE_DISK_FROM_TRAY: + return "Impossible d'éjecter le disque du lecteur."; + case MSG_REMOVED_DISK_FROM_TRAY: + return "Éjection du disque du lecteur."; + case MSG_VIRTUAL_DISK_TRAY: + return "Lecteur de disque virtuel."; + case MSG_FAILED_TO: + return "Échec de"; + case MSG_TO: + return "de"; + case MSG_SAVING_RAM_TYPE: + return "Sauvegarde du type de RAM"; + case MSG_SAVING_STATE: + return "Sauvegarde savestate"; + case MSG_LOADING_STATE: + return "Chargement savestate"; + case MSG_FAILED_TO_LOAD_MOVIE_FILE: + return "Échec du chargement du fichier vidéo"; + case MSG_FAILED_TO_LOAD_CONTENT: + return "Échec du chargement du fichier"; + case MSG_COULD_NOT_READ_CONTENT_FILE: + return "Impossible de lire le contenu du fichier"; + case MSG_GRAB_MOUSE_STATE: + return "Capture la souris"; + case MSG_PAUSED: + return "Pause."; + case MSG_UNPAUSED: + return "Relancé."; + case MSG_FAILED_TO_LOAD_OVERLAY: + return "Impossible de charger l'overlay."; + case MSG_FAILED_TO_UNMUTE_AUDIO: + return "Impossible de remettre le son."; + case MSG_AUDIO_MUTED: + return "Son coupé."; + case MSG_AUDIO_UNMUTED: + return "Remise du son."; + case MSG_RESET: + return "Reset"; + case MSG_FAILED_TO_LOAD_STATE: + return "Impossible de charger la savestate à partir de"; + case MSG_FAILED_TO_SAVE_STATE_TO: + return "Impossible de sauvegarder la savestate vers"; + case MSG_FAILED_TO_LOAD_UNDO: + return "Aucun savestate de retour arrière trouvé"; + case MSG_FAILED_TO_SAVE_UNDO: + return "Impossible de sauvegarder les informations de savestate de retour arrière"; + case MSG_FAILED_TO_SAVE_SRAM: + return "Impossible de sauvegarder la SRAM"; + case MSG_STATE_SIZE: + return "Taille savestate"; + case MSG_FOUND_SHADER: + return "Shader trouvé"; + case MSG_SRAM_WILL_NOT_BE_SAVED: + return "SRAM ne sera pas sauvegardée."; + case MSG_BLOCKING_SRAM_OVERWRITE: + return "Bloque l'écrasement de la SRAM"; + case MSG_CORE_DOES_NOT_SUPPORT_SAVESTATES: + return "Le core ne supporte pas les savestates."; + case MSG_SAVED_STATE_TO_SLOT: + return "Savestate vers slot"; + case MSG_SAVED_SUCCESSFULLY_TO: + return "Sauvegarde réussie vers"; + case MSG_BYTES: + return "octets"; + case MSG_CONFIG_DIRECTORY_NOT_SET: + return "Répertoire de configuration non défini. Impossible de sauvegarder le nouveau fichier."; + case MSG_SKIPPING_SRAM_LOAD: + return "Ignore le chargement de la SRAM."; + case MSG_APPENDED_DISK: + return "Disque fusionné"; + case MSG_STARTING_MOVIE_PLAYBACK: + return "Démarrage de la lecture vidéo."; + case MSG_FAILED_TO_REMOVE_TEMPORARY_FILE: + return "Impossible de supprimer le fichier temporaire"; + case MSG_REMOVING_TEMPORARY_CONTENT_FILE: + return "Suppression du fichier temporaire"; + case MSG_LOADED_STATE_FROM_SLOT: + return "Chargement du savestate à partir du slot"; + case MSG_COULD_NOT_PROCESS_ZIP_FILE: + return "Impossible de traiter le fichier ZIP."; + case MSG_SCANNING_OF_DIRECTORY_FINISHED: + return "Analyse des dossiers terminée"; + case MSG_SCANNING: + return "Analyse"; + case MSG_REDIRECTING_CHEATFILE_TO: + return "Redirection du fichier triche vers"; + case MSG_REDIRECTING_SAVEFILE_TO: + return "Redirection de la sauvegarde vers"; + case MSG_REDIRECTING_SAVESTATE_TO: + return "Redirection de la savestate vers"; + case MSG_SHADER: + return "Shader"; + case MSG_APPLYING_SHADER: + return "Application du shader"; + case MSG_FAILED_TO_APPLY_SHADER: + return "Impossible d'appliquer le shader."; + case MSG_STARTING_MOVIE_RECORD_TO: + return "Démarrage de l'enregistrement vidéo vers"; + case MSG_FAILED_TO_START_MOVIE_RECORD: + return "Impossible de démarrer l'enregistrement vidéo."; + case MSG_STATE_SLOT: + return "State slot"; + case MSG_RESTARTING_RECORDING_DUE_TO_DRIVER_REINIT: + return "Redémarrage de l'enregistrement à cause de la réinitialisation du pilote."; + case MSG_SLOW_MOTION: + return "Ralenti."; + case MSG_SLOW_MOTION_REWIND: + return "Rembobinage ralenti."; + case MSG_REWINDING: + return "Rembobinage."; + case MSG_REWIND_REACHED_END: + return "Atteinte de la fin du tampon de rembobinage."; + case MSG_CHEEVOS_HARDCORE_MODE_ENABLE: + return "Mode matériel activé : savestate et rembobinage sont désactivés."; + case MSG_TASK_FAILED: + return "Échec"; + case MSG_DOWNLOADING: + return "Téléchargement"; + case MSG_EXTRACTING: + return "Extraction"; default: break; } From 35b48bca2cb4783218056a77bcba82c5a29eb835 Mon Sep 17 00:00:00 2001 From: neville Date: Sun, 12 Jun 2016 19:38:30 +0200 Subject: [PATCH 35/50] (OSX PPC) Buildfix --- ui/drivers/ui_cocoa.m | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/ui/drivers/ui_cocoa.m b/ui/drivers/ui_cocoa.m index 160ea32ac2..20bad35df3 100644 --- a/ui/drivers/ui_cocoa.m +++ b/ui/drivers/ui_cocoa.m @@ -37,7 +37,11 @@ id apple_platform; +#ifdef OSX_PPC +@interface RetroArch_OSX : NSObject +#else @interface RetroArch_OSX : NSObject +#endif { NSWindow* _window; } From 2b37c92a64d8e08deaa29e64cc7e8af938689505 Mon Sep 17 00:00:00 2001 From: twinaphex Date: Sun, 12 Jun 2016 20:38:48 +0200 Subject: [PATCH 36/50] (Win32) Implement get_mem_total/get_mem_free --- frontend/drivers/platform_win32.c | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/frontend/drivers/platform_win32.c b/frontend/drivers/platform_win32.c index d314192a8c..76b0172f26 100644 --- a/frontend/drivers/platform_win32.c +++ b/frontend/drivers/platform_win32.c @@ -297,7 +297,22 @@ static void frontend_win32_environment_get(int *argc, char *argv[], snprintf(g_defaults.settings.menu, sizeof(g_defaults.settings.menu), "xmb"); #endif #endif +} +static uint64_t frontend_win32_get_mem_total(void) +{ + MEMORYSTATUSEX mem_info; + mem_info.dwLength = sizeof(MEMORYSTATUSEX); + GlobalMemoryStatusEx(&mem_info); + return mem_info.ullTotalPhys; +} + +static uint64_t frontend_win32_get_mem_free(void) +{ + MEMORYSTATUSEX mem_info; + mem_info.dwLength = sizeof(MEMORYSTATUSEX); + GlobalMemoryStatusEx(&mem_info); + return mem_info.ullAvailPhys; } frontend_ctx_driver_t frontend_ctx_win32 = { @@ -316,7 +331,7 @@ frontend_ctx_driver_t frontend_ctx_win32 = { frontend_win32_get_architecture, frontend_win32_get_powerstate, frontend_win32_parse_drive_list, - NULL, /* get_mem_total */ - NULL, /* get_mem_free */ + frontend_win32_get_mem_total, + frontend_win32_get_mem_free, "win32", }; From 75cdcf25ad48c617799c44ac7352b3cf9f34975f Mon Sep 17 00:00:00 2001 From: thiolliere Date: Sun, 12 Jun 2016 20:44:55 +0200 Subject: [PATCH 37/50] resolve deadlink in readme.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index d35f00898c..9fac1c1a0c 100644 --- a/README.md +++ b/README.md @@ -14,7 +14,7 @@ A libretro core written in portable C or C++ can run seamlessly on many platform While RetroArch is the reference frontend for libretro, several other projects have used the libretro interface to include support for emulators and/or game engines. libretro is completely open and free for anyone to use. -[libretro API header](https://github.com/libretro/RetroArch/blob/master/libretro.h) +[libretro API header](https://github.com/libretro/RetroArch/blob/master/libretro-common/include/libretro.h) ## Binaries From 040798cdb94cb17bbf61eab947bb9e3a27747241 Mon Sep 17 00:00:00 2001 From: twinaphex Date: Sun, 12 Jun 2016 20:46:51 +0200 Subject: [PATCH 38/50] (GX) Implement get_mem_total/get_mem_free --- frontend/drivers/platform_gx.c | 27 +++++++++++++++++++++++++-- 1 file changed, 25 insertions(+), 2 deletions(-) diff --git a/frontend/drivers/platform_gx.c b/frontend/drivers/platform_gx.c index bfabbea6ab..cf9935ee6d 100644 --- a/frontend/drivers/platform_gx.c +++ b/frontend/drivers/platform_gx.c @@ -21,12 +21,17 @@ #include #include +#include +#include + #if defined(HW_RVL) && !defined(IS_SALAMANDER) #include #include #include "../../memory/wii/mem2_manager.h" #endif +#include "../../defines/gx_defines.h" + #include #include @@ -481,6 +486,24 @@ static void frontend_gx_shutdown(bool unused) #endif } +static uint64_t frontend_gx_get_mem_total(void) +{ + uint64_t total = SYSMEM1_SIZE; +#if defined(HW_RVL) && !defined(IS_SALAMANDER) + total += gx_mem2_total(); +#endif + return total; +} + +static uint64_t frontend_gx_get_mem_free(void) +{ + uint64_t total = SYSMEM1_SIZE - SYS_GetArena1Size(); +#if defined(HW_RVL) && !defined(IS_SALAMANDER) + total += gx_mem2_used(); +#endif + return total; +} + frontend_ctx_driver_t frontend_ctx_gx = { frontend_gx_get_environment_settings, frontend_gx_init, @@ -501,7 +524,7 @@ frontend_ctx_driver_t frontend_ctx_gx = { frontend_gx_get_architecture, NULL, /* get_powerstate */ frontend_gx_parse_drive_list, - NULL, /* get_mem_total */ - NULL, /* get_mem_free */ + frontend_gx_get_mem_total, + frontend_gx_get_mem_free, "gx", }; From dae55553b79d5b30ff433cd0e59b3875a00993fa Mon Sep 17 00:00:00 2001 From: twinaphex Date: Sun, 12 Jun 2016 20:50:03 +0200 Subject: [PATCH 39/50] Rename memory_free to memory_used --- frontend/drivers/platform_darwin.m | 4 ++-- frontend/drivers/platform_gx.c | 4 ++-- frontend/drivers/platform_linux.c | 4 ++-- frontend/drivers/platform_win32.c | 6 +++--- frontend/frontend_driver.c | 6 +++--- frontend/frontend_driver.h | 4 ++-- menu/menu_displaylist.c | 22 +++++++++++----------- 7 files changed, 25 insertions(+), 25 deletions(-) diff --git a/frontend/drivers/platform_darwin.m b/frontend/drivers/platform_darwin.m index 894c60d48b..78a4f8cbff 100644 --- a/frontend/drivers/platform_darwin.m +++ b/frontend/drivers/platform_darwin.m @@ -681,7 +681,7 @@ static uint64_t frontend_darwin_get_mem_total(void) #endif } -static uint64_t frontend_darwin_get_mem_free(void) +static uint64_t frontend_darwin_get_mem_used(void) { #if defined(OSX) && !defined(OSX_PPC) vm_size_t page_size; @@ -720,6 +720,6 @@ frontend_ctx_driver_t frontend_ctx_darwin = { frontend_darwin_get_powerstate, frontend_darwin_parse_drive_list, frontend_darwin_get_mem_total, - frontend_darwin_get_mem_free, + frontend_darwin_get_mem_used, "darwin", }; diff --git a/frontend/drivers/platform_gx.c b/frontend/drivers/platform_gx.c index cf9935ee6d..39af0db8bf 100644 --- a/frontend/drivers/platform_gx.c +++ b/frontend/drivers/platform_gx.c @@ -495,7 +495,7 @@ static uint64_t frontend_gx_get_mem_total(void) return total; } -static uint64_t frontend_gx_get_mem_free(void) +static uint64_t frontend_gx_get_mem_used(void) { uint64_t total = SYSMEM1_SIZE - SYS_GetArena1Size(); #if defined(HW_RVL) && !defined(IS_SALAMANDER) @@ -525,6 +525,6 @@ frontend_ctx_driver_t frontend_ctx_gx = { NULL, /* get_powerstate */ frontend_gx_parse_drive_list, frontend_gx_get_mem_total, - frontend_gx_get_mem_free, + frontend_gx_get_mem_used, "gx", }; diff --git a/frontend/drivers/platform_linux.c b/frontend/drivers/platform_linux.c index beb4119957..e6ec654196 100644 --- a/frontend/drivers/platform_linux.c +++ b/frontend/drivers/platform_linux.c @@ -1888,7 +1888,7 @@ static uint64_t frontend_linux_get_mem_total(void) return pages * page_size; } -static uint64_t frontend_linux_get_mem_free(void) +static uint64_t frontend_linux_get_mem_used(void) { long pages = sysconf(_SC_AVPHYS_PAGES); long page_size = sysconf(_SC_PAGE_SIZE); @@ -1930,7 +1930,7 @@ frontend_ctx_driver_t frontend_ctx_linux = { NULL, /* parse_drive_list */ #endif frontend_linux_get_mem_total, - frontend_linux_get_mem_free, + frontend_linux_get_mem_used, #ifdef ANDROID "android" #else diff --git a/frontend/drivers/platform_win32.c b/frontend/drivers/platform_win32.c index 76b0172f26..285f294a1f 100644 --- a/frontend/drivers/platform_win32.c +++ b/frontend/drivers/platform_win32.c @@ -307,7 +307,7 @@ static uint64_t frontend_win32_get_mem_total(void) return mem_info.ullTotalPhys; } -static uint64_t frontend_win32_get_mem_free(void) +static uint64_t frontend_win32_get_mem_used(void) { MEMORYSTATUSEX mem_info; mem_info.dwLength = sizeof(MEMORYSTATUSEX); @@ -332,6 +332,6 @@ frontend_ctx_driver_t frontend_ctx_win32 = { frontend_win32_get_powerstate, frontend_win32_parse_drive_list, frontend_win32_get_mem_total, - frontend_win32_get_mem_free, - "win32", + frontend_win32_get_mem_used, + "win32" }; diff --git a/frontend/frontend_driver.c b/frontend/frontend_driver.c index e4a469252a..9a5a3d1037 100644 --- a/frontend/frontend_driver.c +++ b/frontend/frontend_driver.c @@ -317,11 +317,11 @@ uint64_t frontend_driver_get_total_memory(void) return frontend->get_total_mem(); } -uint64_t frontend_driver_get_free_memory(void) +uint64_t frontend_driver_get_used_memory(void) { frontend_ctx_driver_t *frontend = frontend_get_ptr(); - if (!frontend || !frontend->get_free_mem) + if (!frontend || !frontend->get_used_mem) return 0; - return frontend->get_free_mem(); + return frontend->get_used_mem(); } #endif diff --git a/frontend/frontend_driver.h b/frontend/frontend_driver.h index c0c9793a60..8a6bb0ff16 100644 --- a/frontend/frontend_driver.h +++ b/frontend/frontend_driver.h @@ -81,7 +81,7 @@ typedef struct frontend_ctx_driver enum frontend_powerstate (*get_powerstate)(int *seconds, int *percent); int (*parse_drive_list)(void*); uint64_t (*get_total_mem)(void); - uint64_t (*get_free_mem)(void); + uint64_t (*get_used_mem)(void); const char *ident; @@ -157,7 +157,7 @@ bool frontend_driver_get_salamander_basename(char *s, size_t len); uint64_t frontend_driver_get_total_memory(void); -uint64_t frontend_driver_get_free_memory(void); +uint64_t frontend_driver_get_used_memory(void); RETRO_END_DECLS diff --git a/menu/menu_displaylist.c b/menu/menu_displaylist.c index 5f9eb3346f..f35b233eba 100644 --- a/menu/menu_displaylist.c +++ b/menu/menu_displaylist.c @@ -784,57 +784,57 @@ static int menu_displaylist_parse_system_info(menu_displaylist_info_t *info) char tmp[PATH_MAX_LENGTH] = {0}; char tmp2[PATH_MAX_LENGTH] = {0}; char tmp3[PATH_MAX_LENGTH] = {0}; - uint64_t memory_free = frontend_driver_get_free_memory(); + uint64_t memory_used = frontend_driver_get_used_memory(); uint64_t memory_total = frontend_driver_get_total_memory(); - if (memory_free != 0 && memory_total != 0) + if (memory_used != 0 && memory_total != 0) { #ifdef _WIN32 snprintf(tmp, sizeof(tmp), "Memory (in bytes): %Iu/%Iu B", - memory_free, + memory_used, memory_total ); snprintf(tmp2, sizeof(tmp2), "Memory (in megabytes): %Iu/%Iu MB", - bytes_to_mb(memory_free), + bytes_to_mb(memory_used), bytes_to_mb(memory_total) ); snprintf(tmp3, sizeof(tmp3), "Memory (in gigabytes): %Iu/%Iu GB", - bytes_to_gb(memory_free), + bytes_to_gb(memory_used), bytes_to_gb(memory_total) ); #elif defined(__STDC_VERSION__) && __STDC_VERSION__>=199901L snprintf(tmp, sizeof(tmp), "Memory (in bytes) : %llu/%llu B", - (unsigned long long)memory_free, + (unsigned long long)memory_used, (unsigned long long)memory_total ); snprintf(tmp2, sizeof(tmp2), "Memory (in megabytes) : %llu/%llu MB", - (unsigned long long)bytes_to_mb(memory_free), + (unsigned long long)bytes_to_mb(memory_used), (unsigned long long)bytes_to_mb(memory_total) ); snprintf(tmp3, sizeof(tmp3), "Memory (in gigabytes): %llu/%llu GB", - (unsigned long long)bytes_to_gb(memory_free), + (unsigned long long)bytes_to_gb(memory_used), (unsigned long long)bytes_to_gb(memory_total) ); #else snprintf(tmp, sizeof(tmp), "Memory (in bytes): %lu/%lu B", - memory_free, + memory_used, memory_total ); snprintf(tmp2, sizeof(tmp2), "Memory (in megabytes) : %1u/%1u MB", - bytes_to_mb(memory_free), + bytes_to_mb(memory_used), bytes_to_mb(memory_total) ); snprintf(tmp3, sizeof(tmp3), "Memory (in gigabytes) : %1u/%1u GB", - bytes_to_gb(memory_free), + bytes_to_gb(memory_used), bytes_to_gb(memory_total) ); #endif From 8ddafd0023bdd349534c3c25f51f663edce00667 Mon Sep 17 00:00:00 2001 From: twinaphex Date: Sun, 12 Jun 2016 21:00:52 +0200 Subject: [PATCH 40/50] Cleanup --- frontend/drivers/platform_linux.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/frontend/drivers/platform_linux.c b/frontend/drivers/platform_linux.c index e6ec654196..7742a0140f 100644 --- a/frontend/drivers/platform_linux.c +++ b/frontend/drivers/platform_linux.c @@ -1173,7 +1173,7 @@ static void frontend_linux_get_os(char *s, static void frontend_linux_get_env(int *argc, char *argv[], void *data, void *params_data) { - RARCH_LOG("Configuring platform driver ...\n"); + char base_path[PATH_MAX] = {0}; #ifdef ANDROID int32_t major, minor, rel; char device_model[PROP_VALUE_MAX] = {0}; @@ -1632,7 +1632,6 @@ static void frontend_linux_get_env(int *argc, snprintf(g_defaults.settings.menu, sizeof(g_defaults.settings.menu), "xmb"); #else - char base_path[PATH_MAX] = {0}; const char *xdg = getenv("XDG_CONFIG_HOME"); const char *home = getenv("HOME"); From 3ca57ddd84d4c6e81867bc759b244d2c9d339dc6 Mon Sep 17 00:00:00 2001 From: twinaphex Date: Sun, 12 Jun 2016 21:51:08 +0200 Subject: [PATCH 41/50] Correct frontend_win32_get_mem_used --- frontend/drivers/platform_win32.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/frontend/drivers/platform_win32.c b/frontend/drivers/platform_win32.c index 285f294a1f..a3cd030f8f 100644 --- a/frontend/drivers/platform_win32.c +++ b/frontend/drivers/platform_win32.c @@ -312,7 +312,7 @@ static uint64_t frontend_win32_get_mem_used(void) MEMORYSTATUSEX mem_info; mem_info.dwLength = sizeof(MEMORYSTATUSEX); GlobalMemoryStatusEx(&mem_info); - return mem_info.ullAvailPhys; + return ((frontend_win32_get_mem_total() - mem_info.ullAvailPhys)); } frontend_ctx_driver_t frontend_ctx_win32 = { From 9970e9c0898fc0a5644f2d45fc491f643d5b6726 Mon Sep 17 00:00:00 2001 From: Rob Loach Date: Mon, 13 Jun 2016 11:59:11 -0400 Subject: [PATCH 42/50] Remove "This game doesn't feature achievements" message --- cheevos.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/cheevos.c b/cheevos.c index df4eb7b324..b13872e08a 100644 --- a/cheevos.c +++ b/cheevos.c @@ -2149,9 +2149,7 @@ bool cheevos_load(const void *data) if (game_id) goto found; } - - runloop_msg_queue_push("This game doesn't feature achievements", - 0, 5 * 60, false); + RARCH_LOG("CHEEVOS this game doesn't feature achievements\n"); return false; From e7b4f4fd4d2869bab7f1b578de69077176d9b692 Mon Sep 17 00:00:00 2001 From: Hans-Kristian Arntzen Date: Mon, 13 Jun 2016 17:47:52 +0200 Subject: [PATCH 43/50] Fix various Android Vulkan issues. Was getting bogus swapchain width/height causing weird issues. Also, create swapchain after swap interval is correctly set. --- gfx/common/vksym.h | 3 + gfx/common/vulkan_common.c | 107 ++++++++++++++++++++++++++++-- gfx/drivers_context/android_ctx.c | 58 ++++++++++++---- 3 files changed, 151 insertions(+), 17 deletions(-) diff --git a/gfx/common/vksym.h b/gfx/common/vksym.h index 51f3f5d07c..10410eef20 100644 --- a/gfx/common/vksym.h +++ b/gfx/common/vksym.h @@ -82,6 +82,9 @@ typedef struct vulkan_context_fp PFN_vkCreateInstance vkCreateInstance; PFN_vkDestroyInstance vkDestroyInstance; + PFN_vkEnumerateInstanceExtensionProperties vkEnumerateInstanceExtensionProperties; + PFN_vkEnumerateDeviceExtensionProperties vkEnumerateDeviceExtensionProperties; + /* Device */ PFN_vkCreateDevice vkCreateDevice; PFN_vkDestroyDevice vkDestroyDevice; diff --git a/gfx/common/vulkan_common.c b/gfx/common/vulkan_common.c index 74a71bd4d7..963c6c199c 100644 --- a/gfx/common/vulkan_common.c +++ b/gfx/common/vulkan_common.c @@ -1045,6 +1045,7 @@ void vulkan_buffer_chain_free( static bool vulkan_load_instance_symbols(gfx_ctx_vulkan_data_t *vk) { + VK_GET_INSTANCE_PROC_ADDR(EnumerateDeviceExtensionProperties); VK_GET_INSTANCE_PROC_ADDR(GetDeviceProcAddr); VK_GET_INSTANCE_PROC_ADDR(DestroyInstance); VK_GET_INSTANCE_PROC_ADDR(GetPhysicalDeviceFormatProperties); @@ -1207,6 +1208,98 @@ static bool vulkan_load_device_symbols(gfx_ctx_vulkan_data_t *vk) return true; } +static bool vulkan_find_extensions(const char **exts, unsigned num_exts, + const VkExtensionProperties *properties, unsigned property_count) +{ + unsigned i, ext; + bool found; + for (ext = 0; ext < num_exts; ext++) + { + found = false; + for (i = 0; i < property_count; i++) + { + if (!strcmp(exts[ext], properties[i].extensionName)) + { + found = true; + break; + } + } + + if (!found) + return false; + } + return true; +} + +static bool vulkan_find_instance_extensions(const char **exts, unsigned num_exts) +{ + bool ret = true; + VkExtensionProperties *properties = NULL; + uint32_t property_count; + + if (VKFUNC(vkEnumerateInstanceExtensionProperties(NULL, &property_count, NULL)) != VK_SUCCESS) + return false; + + properties = (VkExtensionProperties*)malloc(property_count * sizeof(*properties)); + if (!properties) + { + ret = false; + goto end; + } + + if (VKFUNC(vkEnumerateInstanceExtensionProperties(NULL, &property_count, properties)) != VK_SUCCESS) + { + ret = false; + goto end; + } + + if (!vulkan_find_extensions(exts, num_exts, properties, property_count)) + { + RARCH_ERR("[Vulkan]: Could not find instance extensions. Will attempt without them.\n"); + ret = false; + goto end; + } + +end: + free(properties); + return ret; +} + +static bool vulkan_find_device_extensions(VkPhysicalDevice gpu, const char **exts, unsigned num_exts) +{ + bool ret = true; + VkExtensionProperties *properties = NULL; + uint32_t property_count; + + if (VKFUNC(vkEnumerateDeviceExtensionProperties(gpu, NULL, &property_count, NULL)) != VK_SUCCESS) + return false; + + properties = (VkExtensionProperties*)malloc(property_count * sizeof(*properties)); + if (!properties) + { + ret = false; + goto end; + } + + if (VKFUNC(vkEnumerateDeviceExtensionProperties(gpu, NULL, &property_count, properties)) != VK_SUCCESS) + { + ret = false; + goto end; + } + + if (!vulkan_find_extensions(exts, num_exts, properties, property_count)) + { + RARCH_ERR("[Vulkan]: Could not find device extensions. Will attempt without them.\n"); + ret = false; + goto end; + } + +end: + free(properties); + return ret; +} + + bool vulkan_context_init(gfx_ctx_vulkan_data_t *vk, enum vulkan_wsi_type type) { @@ -1227,6 +1320,7 @@ bool vulkan_context_init(gfx_ctx_vulkan_data_t *vk, "VK_KHR_swapchain", }; static const char *instance_extensions[2]; + bool use_instance_ext, use_device_ext; instance_extensions[0] = "VK_KHR_surface"; @@ -1271,6 +1365,9 @@ bool vulkan_context_init(gfx_ctx_vulkan_data_t *vk, RARCH_LOG("Vulkan dynamic library loaded.\n"); VKSYM(vk, GetInstanceProcAddr); + VK_GET_INSTANCE_PROC_ADDR(EnumerateInstanceExtensionProperties); + + use_instance_ext = vulkan_find_instance_extensions(instance_extensions, ARRAY_SIZE(instance_extensions)); app.pApplicationName = "RetroArch"; app.applicationVersion = 0; @@ -1279,8 +1376,8 @@ bool vulkan_context_init(gfx_ctx_vulkan_data_t *vk, app.apiVersion = VK_MAKE_VERSION(1, 0, 6); info.pApplicationInfo = &app; - info.enabledExtensionCount = ARRAY_SIZE(instance_extensions); - info.ppEnabledExtensionNames = instance_extensions; + info.enabledExtensionCount = use_instance_ext ? ARRAY_SIZE(instance_extensions) : 0; + info.ppEnabledExtensionNames = use_instance_ext ? instance_extensions : NULL; if (cached_instance) { @@ -1382,14 +1479,16 @@ bool vulkan_context_init(gfx_ctx_vulkan_data_t *vk, return false; } + use_device_ext = vulkan_find_device_extensions(vk->context.gpu, device_extensions, ARRAY_SIZE(device_extensions)); + queue_info.queueFamilyIndex = vk->context.graphics_queue_index; queue_info.queueCount = 1; queue_info.pQueuePriorities = &one; device_info.queueCreateInfoCount = 1; device_info.pQueueCreateInfos = &queue_info; - device_info.enabledExtensionCount = ARRAY_SIZE(device_extensions); - device_info.ppEnabledExtensionNames = device_extensions; + device_info.enabledExtensionCount = use_device_ext ? ARRAY_SIZE(device_extensions) : 0; + device_info.ppEnabledExtensionNames = use_device_ext ? device_extensions : NULL; device_info.pEnabledFeatures = &features; if (cached_device) diff --git a/gfx/drivers_context/android_ctx.c b/gfx/drivers_context/android_ctx.c index 58cb47a57c..e6b7996d60 100644 --- a/gfx/drivers_context/android_ctx.c +++ b/gfx/drivers_context/android_ctx.c @@ -167,16 +167,6 @@ static void *android_gfx_ctx_init(void *video_driver) if (!egl_create_surface(&and->egl, android_app->window)) goto unlock_error; -#endif - break; - case GFX_CTX_VULKAN_API: -#ifdef HAVE_VULKAN - and->width = ANativeWindow_getWidth(android_app->window); - and->height = ANativeWindow_getHeight(android_app->window); - if (!vulkan_surface_create(&and->vk, VULKAN_WSI_ANDROID, - NULL, android_app->window, - and->width, and->height, and->swap_interval)) - goto error; #endif break; case GFX_CTX_NONE: @@ -243,6 +233,8 @@ static void android_gfx_ctx_check_window(void *data, bool *quit, /* Swapchains are recreated in set_resize as a * central place, so use that to trigger swapchain reinit. */ *resize = and->vk.need_new_swapchain; + new_width = and->width; + new_height = and->height; #endif break; case GFX_CTX_NONE: @@ -252,6 +244,9 @@ static void android_gfx_ctx_check_window(void *data, bool *quit, if (new_width != *width || new_height != *height) { + RARCH_LOG("[Android]: Resizing (%u x %u) -> (%u x %u).\n", + *width, *height, new_width, new_height); + *width = new_width; *height = new_height; *resize = true; @@ -265,10 +260,37 @@ static void android_gfx_ctx_check_window(void *data, bool *quit, static bool android_gfx_ctx_set_resize(void *data, unsigned width, unsigned height) { +#ifdef HAVE_VULKAN + android_ctx_data_t *and = (android_ctx_data_t*)data; + struct android_app *android_app = (struct android_app*)g_android; +#endif (void)data; (void)width; (void)height; + switch (android_api) + { + case GFX_CTX_VULKAN_API: +#ifdef HAVE_VULKAN + and->width = ANativeWindow_getWidth(android_app->window); + and->height = ANativeWindow_getHeight(android_app->window); + RARCH_LOG("[Android]: Native window size: %u x %u.\n", and->width, and->height); + if (!vulkan_create_swapchain(&and->vk, and->width, and->height, and->swap_interval)) + { + RARCH_ERR("[Android]: Failed to update swapchain.\n"); + return false; + } + + and->vk.context.invalid_swapchain = true; + and->vk.need_new_swapchain = false; +#endif + break; + + case GFX_CTX_NONE: + default: + break; + } + return false; } @@ -289,7 +311,8 @@ static bool android_gfx_ctx_set_video_mode(void *data, bool fullscreen) { #ifdef HAVE_VULKAN - android_ctx_data_t *and = (android_ctx_data_t*)data; + struct android_app *android_app = (struct android_app*)g_android; + android_ctx_data_t *and = (android_ctx_data_t*)data; #endif (void)width; @@ -300,10 +323,18 @@ static bool android_gfx_ctx_set_video_mode(void *data, { case GFX_CTX_VULKAN_API: #ifdef HAVE_VULKAN - and->width = width; - and->height = height; + and->width = ANativeWindow_getWidth(android_app->window); + and->height = ANativeWindow_getHeight(android_app->window); + RARCH_LOG("[Android]: Native window size: %u x %u.\n", and->width, and->height); + if (!vulkan_surface_create(&and->vk, VULKAN_WSI_ANDROID, NULL, android_app->window, + and->width, and->height, and->swap_interval)) + { + RARCH_ERR("[Android]: Failed to create surface.\n"); + return false; + } #endif break; + case GFX_CTX_NONE: default: break; @@ -479,6 +510,7 @@ static void android_gfx_ctx_set_swap_interval(void *data, unsigned swap_interval #ifdef HAVE_VULKAN if (and->swap_interval != swap_interval) { + RARCH_LOG("[Vulkan]: Setting swap interval: %u.\n", swap_interval); and->swap_interval = swap_interval; if (and->vk.swapchain) and->vk.need_new_swapchain = true; From 21be54501b0f1543b8eb8d3d2dd5f1c603509e8f Mon Sep 17 00:00:00 2001 From: Hans-Kristian Arntzen Date: Mon, 13 Jun 2016 22:00:32 +0200 Subject: [PATCH 44/50] Log which present modes are supported. --- gfx/common/vulkan_common.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/gfx/common/vulkan_common.c b/gfx/common/vulkan_common.c index 963c6c199c..73d92726f2 100644 --- a/gfx/common/vulkan_common.c +++ b/gfx/common/vulkan_common.c @@ -1855,6 +1855,12 @@ bool vulkan_create_swapchain(gfx_ctx_vulkan_data_t *vk, vk->context.gpu, vk->vk_surface, &present_mode_count, present_modes); + for (i = 0; i < present_mode_count; i++) + { + RARCH_LOG("[Vulkan]: Swapchain supports present mode: %u.\n", + present_modes[i]); + } + for (i = 0; i < present_mode_count; i++) { if (!swap_interval && present_modes[i] == VK_PRESENT_MODE_MAILBOX_KHR) From 2bf2131224ff8f2d6df36fbf3707a0d3a9a86675 Mon Sep 17 00:00:00 2001 From: twinaphex Date: Tue, 14 Jun 2016 15:04:49 +0200 Subject: [PATCH 45/50] Refactor msg_hash --- intl/msg_hash_de.c | 4 +- intl/msg_hash_eo.c | 4 +- intl/msg_hash_es.c | 4 +- intl/msg_hash_fr.c | 4 +- intl/msg_hash_it.c | 4 +- intl/msg_hash_nl.c | 4 +- intl/msg_hash_pl.c | 4 +- intl/msg_hash_pt.c | 4 +- intl/msg_hash_ru.c | 4 +- intl/msg_hash_us.c | 4 +- msg_hash.c | 22 ++-- msg_hash.h | 253 ++++++++++++++++++--------------------------- 12 files changed, 134 insertions(+), 181 deletions(-) diff --git a/intl/msg_hash_de.c b/intl/msg_hash_de.c index a687e4fad7..47b5c1e087 100644 --- a/intl/msg_hash_de.c +++ b/intl/msg_hash_de.c @@ -15,9 +15,9 @@ #include "../msg_hash.h" -const char *msg_hash_to_str_de(uint32_t hash) +const char *msg_hash_to_str_de(enum msg_hash_enums msg) { - switch (hash) + switch (msg) { case 0: default: diff --git a/intl/msg_hash_eo.c b/intl/msg_hash_eo.c index caaee85ef9..f31cba720a 100644 --- a/intl/msg_hash_eo.c +++ b/intl/msg_hash_eo.c @@ -15,9 +15,9 @@ #include "../msg_hash.h" -const char *msg_hash_to_str_eo(uint32_t hash) +const char *msg_hash_to_str_eo(enum msg_hash_enums msg) { - switch (hash) + switch (msg) { case 0: default: diff --git a/intl/msg_hash_es.c b/intl/msg_hash_es.c index 7844ded498..0dd6340600 100644 --- a/intl/msg_hash_es.c +++ b/intl/msg_hash_es.c @@ -28,9 +28,9 @@ /* DO NOT REMOVE THIS. If it causes build failure, it's because you saved the file as UTF-8. Read the above comment. */ extern const char force_iso_8859_1[sizeof("äÄöÖßüÜ")==7+1 ? 1 : -1]; -const char *msg_hash_to_str_es(uint32_t hash) +const char *msg_hash_to_str_es(enum msg_hash_enums msg) { - switch (hash) + switch (msg) { case MSG_PROGRAM: return "RetroArch"; diff --git a/intl/msg_hash_fr.c b/intl/msg_hash_fr.c index 01d1719bf0..8a2d9292f8 100644 --- a/intl/msg_hash_fr.c +++ b/intl/msg_hash_fr.c @@ -28,9 +28,9 @@ /* DO NOT REMOVE THIS. If it causes build failure, it's because you saved the file as UTF-8. Read the above comment. */ extern const char force_iso_8859_1[sizeof("äÄöÖßüÜ")==7+1 ? 1 : -1]; -const char *msg_hash_to_str_fr(uint32_t hash) +const char *msg_hash_to_str_fr(enum msg_hash_enums msg) { - switch (hash) + switch (msg) { case MSG_PROGRAM: return "RetroArch"; diff --git a/intl/msg_hash_it.c b/intl/msg_hash_it.c index 8a47519e05..03b3d2cb0e 100644 --- a/intl/msg_hash_it.c +++ b/intl/msg_hash_it.c @@ -15,9 +15,9 @@ #include "../msg_hash.h" -const char *msg_hash_to_str_it(uint32_t hash) +const char *msg_hash_to_str_it(enum msg_hash_enums msg) { - switch (hash) + switch (msg) { case 0: default: diff --git a/intl/msg_hash_nl.c b/intl/msg_hash_nl.c index 1ddf742ab6..96f1db94ec 100644 --- a/intl/msg_hash_nl.c +++ b/intl/msg_hash_nl.c @@ -15,9 +15,9 @@ #include "../msg_hash.h" -const char *msg_hash_to_str_nl(uint32_t hash) +const char *msg_hash_to_str_nl(enum msg_hash_enums msg) { - switch (hash) + switch (msg) { case 0: default: diff --git a/intl/msg_hash_pl.c b/intl/msg_hash_pl.c index 20b781c09b..b0e998cee2 100644 --- a/intl/msg_hash_pl.c +++ b/intl/msg_hash_pl.c @@ -15,9 +15,9 @@ #include "../msg_hash.h" -const char *msg_hash_to_str_pl(uint32_t hash) +const char *msg_hash_to_str_pl(enum msg_hash_enums msg) { - switch (hash) + switch (msg) { case MSG_PROGRAM: return "RetroArch"; diff --git a/intl/msg_hash_pt.c b/intl/msg_hash_pt.c index 854746b298..3f01c89366 100644 --- a/intl/msg_hash_pt.c +++ b/intl/msg_hash_pt.c @@ -15,9 +15,9 @@ #include "../msg_hash.h" -const char *msg_hash_to_str_pt(uint32_t hash) +const char *msg_hash_to_str_pt(enum msg_hash_enums msg) { - switch (hash) + switch (msg) { case MSG_UNKNOWN: return "Desconhecido"; diff --git a/intl/msg_hash_ru.c b/intl/msg_hash_ru.c index 934a66a5e1..665fa82750 100644 --- a/intl/msg_hash_ru.c +++ b/intl/msg_hash_ru.c @@ -16,9 +16,9 @@ #include "../msg_hash.h" -const char *msg_hash_to_str_ru(uint32_t hash) +const char *msg_hash_to_str_ru(enum msg_hash_enums msg) { - switch (hash) + switch (msg) { case MSG_PROGRAM: return "RetroArch"; diff --git a/intl/msg_hash_us.c b/intl/msg_hash_us.c index 5c331af928..f4580c74b3 100644 --- a/intl/msg_hash_us.c +++ b/intl/msg_hash_us.c @@ -15,9 +15,9 @@ #include "../msg_hash.h" -const char *msg_hash_to_str_us(uint32_t hash) +const char *msg_hash_to_str_us(enum msg_hash_enums msg) { - switch (hash) + switch (msg) { case MSG_PROGRAM: return "RetroArch"; diff --git a/msg_hash.c b/msg_hash.c index 06ef0994bb..f3c7be7161 100644 --- a/msg_hash.c +++ b/msg_hash.c @@ -22,7 +22,7 @@ #include "configuration.h" -const char *msg_hash_to_str(uint32_t hash) +const char *msg_hash_to_str(enum msg_hash_enums msg) { const char *ret = NULL; settings_t *settings = config_get_ptr(); @@ -34,32 +34,32 @@ const char *msg_hash_to_str(uint32_t hash) switch (settings->user_language) { case RETRO_LANGUAGE_FRENCH: - ret = msg_hash_to_str_fr(hash); + ret = msg_hash_to_str_fr(msg); break; case RETRO_LANGUAGE_GERMAN: - ret = msg_hash_to_str_de(hash); + ret = msg_hash_to_str_de(msg); break; case RETRO_LANGUAGE_SPANISH: - ret = msg_hash_to_str_es(hash); + ret = msg_hash_to_str_es(msg); break; case RETRO_LANGUAGE_ITALIAN: - ret = msg_hash_to_str_it(hash); + ret = msg_hash_to_str_it(msg); break; case RETRO_LANGUAGE_PORTUGUESE: - ret = msg_hash_to_str_pt(hash); + ret = msg_hash_to_str_pt(msg); break; case RETRO_LANGUAGE_DUTCH: - ret = msg_hash_to_str_nl(hash); + ret = msg_hash_to_str_nl(msg); break; case RETRO_LANGUAGE_ESPERANTO: - ret = msg_hash_to_str_eo(hash); + ret = msg_hash_to_str_eo(msg); break; case RETRO_LANGUAGE_POLISH: - ret = msg_hash_to_str_pl(hash); + ret = msg_hash_to_str_pl(msg); break; case RETRO_LANGUAGE_RUSSIAN: #ifdef HAVE_UTF8 - ret = msg_hash_to_str_ru(hash); + ret = msg_hash_to_str_ru(msg); #endif break; default: @@ -71,7 +71,7 @@ const char *msg_hash_to_str(uint32_t hash) return ret; end: - return msg_hash_to_str_us(hash); + return msg_hash_to_str_us(msg); } uint32_t msg_hash_calculate(const char *s) diff --git a/msg_hash.h b/msg_hash.h index 03a11f6b4d..8624c67317 100644 --- a/msg_hash.h +++ b/msg_hash.h @@ -22,171 +22,124 @@ #include -#define MSG_UNKNOWN 0x3a834e55U -#define MSG_PROGRAM 0xc339565dU -#define MSG_FOUND_SHADER 0x817f42b7U - -#define MSG_LOADING_HISTORY_FILE 0x865210d3U -#define MSG_SRAM_WILL_NOT_BE_SAVED 0x16f17d61U - -#define MSG_RECEIVED 0xfe0c06acU - -#define MSG_LOADING_CONTENT_FILE 0x236398dcU - -#define MSG_USING_LIBRETRO_DUMMY_CORE_RECORDING_SKIPPED 0x9e8a1febU -#define MSG_RECORDING_TERMINATED_DUE_TO_RESIZE 0x361a07feU -#define MSG_FAILED_TO_START_RECORDING 0x90c3e2d5U - -#define MSG_REWIND_INIT 0xf7732001U -#define MSG_REWIND_INIT_FAILED 0x9c1db0a6U -#define MSG_REWIND_INIT_FAILED_THREADED_AUDIO 0x359001b6U -#define MSG_REWIND_INIT_FAILED_NO_SAVESTATES 0x979b9cc3U - -#define MSG_LIBRETRO_ABI_BREAK 0xf02cccd7U - -#define MSG_NETPLAY_FAILED 0x61ee3426U -#define MSG_NETPLAY_FAILED_MOVIE_PLAYBACK_HAS_STARTED 0xb1e5dbfcU - -#define MSG_DETECTED_VIEWPORT_OF 0xdf7002baU -#define MSG_RECORDING_TO 0x189fd324U -#define MSG_HW_RENDERED_MUST_USE_POSTSHADED_RECORDING 0x7f9f7659U -#define MSG_VIEWPORT_SIZE_CALCULATION_FAILED 0x9da84911U - -#define MSG_AUTOSAVE_FAILED 0x9a02d8d1U - -#define MSG_MOVIE_RECORD_STOPPED 0xbc7832c1U -#define MSG_MOVIE_PLAYBACK_ENDED 0xbeadce2aU - -#define MSG_TAKING_SCREENSHOT 0xdcfda0e0U -#define MSG_FAILED_TO_TAKE_SCREENSHOT 0x7a480a2dU - -#define MSG_CUSTOM_TIMING_GIVEN 0x259c95dfU - -#define MSG_SAVING_STATE 0xe4f3eb4dU -#define MSG_LOADING_STATE 0x68d8d483U -#define MSG_FAILED_TO_SAVE_STATE_TO 0xcc005f3cU -#define MSG_FAILED_TO_SAVE_SRAM 0x0f72de6cU -#define MSG_STATE_SIZE 0x27b67400U - -#define MSG_FAILED_TO_LOAD_CONTENT 0x0186e5a5U -#define MSG_COULD_NOT_READ_CONTENT_FILE 0x2dc7f4a0U -#define MSG_SAVED_SUCCESSFULLY_TO 0x9f59a7deU - -#define MSG_BYTES 0x0f30b64cU - -#define MSG_BLOCKING_SRAM_OVERWRITE 0x1f91d486U - -#define MSG_UNRECOGNIZED_COMMAND 0x946b8a50U - -#define MSG_SENDING_COMMAND 0x562cf28bU - -#define MSG_RESTARTING_RECORDING_DUE_TO_DRIVER_REINIT 0x5aa753b8U - -#define MSG_REWINDING 0xccbeec2cU -#define MSG_SLOW_MOTION_REWIND 0x385adb27U -#define MSG_SLOW_MOTION 0x744c437fU -#define MSG_REWIND_REACHED_END 0x4f1aab8fU -#define MSG_FAILED_TO_START_MOVIE_RECORD 0x61221776U - -#define MSG_CHEEVOS_HARDCORE_MODE_ENABLE 0x0d212ca9U - -#define MSG_STATE_SLOT 0x27b67f67U -#define MSG_STARTING_MOVIE_RECORD_TO 0x6a7e0d50U -#define MSG_FAILED_TO_START_MOVIE_RECORD 0x61221776U - -#define MSG_FAILED_TO_APPLY_SHADER 0x2094eb67U -#define MSG_APPLYING_SHADER 0x35599b7fU -#define MSG_SHADER 0x1bb1211cU - -#define MSG_REDIRECTING_SAVESTATE_TO 0x8d98f7a6U -#define MSG_REDIRECTING_SAVEFILE_TO 0x868c54a5U -#define MSG_REDIRECTING_CHEATFILE_TO 0xd5f1b27bU - -#define MSG_SCANNING 0x4c547516U -#define MSG_SCANNING_OF_DIRECTORY_FINISHED 0x399632a7U - -#define MSG_COULD_NOT_PROCESS_ZIP_FILE 0xc18c89bbU - -#define MSG_LOADED_STATE_FROM_SLOT 0xadb48582U - -#define MSG_REMOVING_TEMPORARY_CONTENT_FILE 0x7121c9e7U -#define MSG_FAILED_TO_REMOVE_TEMPORARY_FILE 0xb6707b1aU - -#define MSG_STARTING_MOVIE_PLAYBACK 0x96e545b6U - -#define MSG_APPENDED_DISK 0x814ea0f0U - -#define MSG_SKIPPING_SRAM_LOAD 0x88d4c8dbU - -#define MSG_CONFIG_DIRECTORY_NOT_SET 0xcd45252aU - -#define MSG_SAVED_STATE_TO_SLOT 0xe1e3dc3bU - -#define MSG_CORE_DOES_NOT_SUPPORT_SAVESTATES 0xd50adf46U -#define MSG_FAILED_TO_LOAD_STATE 0x91f348ebU - -#define MSG_FAILED_TO_LOAD_UNDO 0xb6e2fc55U -#define MSG_FAILED_TO_SAVE_UNDO 0xf2e29478U - -#define MSG_RESET 0x10474288U - -#define MSG_AUDIO_MUTED 0xfa0c3bd5U -#define MSG_AUDIO_UNMUTED 0x0512bab8U -#define MSG_FAILED_TO_UNMUTE_AUDIO 0xf698763aU - -#define MSG_FAILED_TO_LOAD_OVERLAY 0xacf201ecU - -#define MSG_PAUSED 0x143e3307U -#define MSG_UNPAUSED 0x95aede0aU - -#define MSG_CORE_DOES_NOT_SUPPORT_DISK_OPTIONS 0x6ba5abf9U - -#define MSG_GRAB_MOUSE_STATE 0x893a7329U - -#define MSG_FAILED_TO_LOAD_MOVIE_FILE 0x9455a5a9U - -#define MSG_FAILED_TO 0x768f6dacU - -#define MSG_SAVING_RAM_TYPE 0x9cd21d2dU - -#define MSG_TO 0x005979a8U - -#define MSG_VIRTUAL_DISK_TRAY 0x4aa37f15U -#define MSG_REMOVED_DISK_FROM_TRAY 0xf26a9653U - -#define MSG_FAILED_TO_REMOVE_DISK_FROM_TRAY 0xc1c9a655U - -#define MSG_GOT_INVALID_DISK_INDEX 0xb138dd76U - -#define MSG_TASK_FAILED 0xb23ed64aU -#define MSG_DOWNLOADING 0x465305dbU -#define MSG_EXTRACTING 0x25a4c19eU +enum msg_hash_enums +{ + MSG_UNKNOWN = 0, + MSG_PROGRAM, + MSG_FOUND_SHADER, + MSG_LOADING_HISTORY_FILE, + MSG_SRAM_WILL_NOT_BE_SAVED, + MSG_RECEIVED, + MSG_LOADING_CONTENT_FILE, + MSG_USING_LIBRETRO_DUMMY_CORE_RECORDING_SKIPPED, + MSG_RECORDING_TERMINATED_DUE_TO_RESIZE, + MSG_FAILED_TO_START_RECORDING, + MSG_REWIND_INIT, + MSG_REWIND_INIT_FAILED, + MSG_REWIND_INIT_FAILED_THREADED_AUDIO, + MSG_REWIND_INIT_FAILED_NO_SAVESTATES, + MSG_LIBRETRO_ABI_BREAK, + MSG_NETPLAY_FAILED, + MSG_NETPLAY_FAILED_MOVIE_PLAYBACK_HAS_STARTED, + MSG_DETECTED_VIEWPORT_OF, + MSG_RECORDING_TO, + MSG_HW_RENDERED_MUST_USE_POSTSHADED_RECORDING, + MSG_VIEWPORT_SIZE_CALCULATION_FAILED, + MSG_AUTOSAVE_FAILED, + MSG_MOVIE_RECORD_STOPPED, + MSG_MOVIE_PLAYBACK_ENDED, + MSG_TAKING_SCREENSHOT, + MSG_FAILED_TO_TAKE_SCREENSHOT, + MSG_CUSTOM_TIMING_GIVEN, + MSG_SAVING_STATE, + MSG_LOADING_STATE, + MSG_FAILED_TO_SAVE_STATE_TO, + MSG_FAILED_TO_SAVE_SRAM, + MSG_STATE_SIZE, + MSG_FAILED_TO_LOAD_CONTENT, + MSG_COULD_NOT_READ_CONTENT_FILE, + MSG_SAVED_SUCCESSFULLY_TO, + MSG_BYTES, + MSG_BLOCKING_SRAM_OVERWRITE, + MSG_UNRECOGNIZED_COMMAND, + MSG_SENDING_COMMAND, + MSG_RESTARTING_RECORDING_DUE_TO_DRIVER_REINIT, + MSG_REWINDING, + MSG_SLOW_MOTION_REWIND, + MSG_SLOW_MOTION, + MSG_REWIND_REACHED_END, + MSG_FAILED_TO_START_MOVIE_RECORD, + MSG_CHEEVOS_HARDCORE_MODE_ENABLE, + MSG_STATE_SLOT, + MSG_STARTING_MOVIE_RECORD_TO, + MSG_FAILED_TO_APPLY_SHADER, + MSG_APPLYING_SHADER, + MSG_SHADER, + MSG_REDIRECTING_SAVESTATE_TO, + MSG_REDIRECTING_SAVEFILE_TO, + MSG_REDIRECTING_CHEATFILE_TO, + MSG_SCANNING, + MSG_SCANNING_OF_DIRECTORY_FINISHED, + MSG_COULD_NOT_PROCESS_ZIP_FILE, + MSG_LOADED_STATE_FROM_SLOT, + MSG_REMOVING_TEMPORARY_CONTENT_FILE, + MSG_FAILED_TO_REMOVE_TEMPORARY_FILE, + MSG_STARTING_MOVIE_PLAYBACK, + MSG_APPENDED_DISK, + MSG_SKIPPING_SRAM_LOAD, + MSG_CONFIG_DIRECTORY_NOT_SET, + MSG_SAVED_STATE_TO_SLOT, + MSG_CORE_DOES_NOT_SUPPORT_SAVESTATES, + MSG_FAILED_TO_LOAD_STATE, + MSG_FAILED_TO_LOAD_UNDO, + MSG_FAILED_TO_SAVE_UNDO, + MSG_RESET, + MSG_AUDIO_MUTED, + MSG_AUDIO_UNMUTED, + MSG_FAILED_TO_UNMUTE_AUDIO, + MSG_FAILED_TO_LOAD_OVERLAY, + MSG_PAUSED, + MSG_UNPAUSED, + MSG_CORE_DOES_NOT_SUPPORT_DISK_OPTIONS, + MSG_GRAB_MOUSE_STATE, + MSG_FAILED_TO_LOAD_MOVIE_FILE, + MSG_FAILED_TO, + MSG_SAVING_RAM_TYPE, + MSG_TO, + MSG_VIRTUAL_DISK_TRAY, + MSG_REMOVED_DISK_FROM_TRAY, + MSG_FAILED_TO_REMOVE_DISK_FROM_TRAY, + MSG_GOT_INVALID_DISK_INDEX, + MSG_TASK_FAILED, + MSG_DOWNLOADING, + MSG_EXTRACTING +}; RETRO_BEGIN_DECLS -const char *msg_hash_to_str(uint32_t hash); +const char *msg_hash_to_str(enum msg_hash_enums msg); -const char *msg_hash_to_str_fr(uint32_t hash); +const char *msg_hash_to_str_fr(enum msg_hash_enums msg); #ifdef HAVE_UTF8 -const char *msg_hash_to_str_ru(uint32_t hash); +const char *msg_hash_to_str_ru(enum msg_hash_enums msg); #endif -const char *msg_hash_to_str_de(uint32_t hash); +const char *msg_hash_to_str_de(enum msg_hash_enums msg); -const char *msg_hash_to_str_es(uint32_t hash); +const char *msg_hash_to_str_es(enum msg_hash_enums msg); -const char *msg_hash_to_str_eo(uint32_t hash); +const char *msg_hash_to_str_eo(enum msg_hash_enums msg); -const char *msg_hash_to_str_it(uint32_t hash); +const char *msg_hash_to_str_it(enum msg_hash_enums msg); -const char *msg_hash_to_str_pt(uint32_t hash); +const char *msg_hash_to_str_pt(enum msg_hash_enums msg); -const char *msg_hash_to_str_pl(uint32_t hash); +const char *msg_hash_to_str_pl(enum msg_hash_enums msg); -const char *msg_hash_to_str_nl(uint32_t hash); +const char *msg_hash_to_str_nl(enum msg_hash_enums msg); -const char *msg_hash_to_str_us(uint32_t hash); +const char *msg_hash_to_str_us(enum msg_hash_enums msg); uint32_t msg_hash_calculate(const char *s); From c65fc21bacf0c5816ead4c3385517121016cc7e9 Mon Sep 17 00:00:00 2001 From: twinaphex Date: Tue, 14 Jun 2016 17:59:02 +0200 Subject: [PATCH 46/50] Add menu-refactor.diff --- menu-refactor.diff | 2782 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 2782 insertions(+) create mode 100644 menu-refactor.diff diff --git a/menu-refactor.diff b/menu-refactor.diff new file mode 100644 index 0000000000..c850893eb3 --- /dev/null +++ b/menu-refactor.diff @@ -0,0 +1,2782 @@ +diff --git a/menu/intl/menu_hash_de.c b/menu/intl/menu_hash_de.c +index 6ccd009..9ccf040 100644 +--- a/menu/intl/menu_hash_de.c ++++ b/menu/intl/menu_hash_de.c +@@ -30,9 +30,9 @@ + /* DO NOT REMOVE THIS. If it causes build failure, it's because you saved the file as UTF-8. Read the above comment. */ + extern const char force_iso_8859_1[sizeof("äÄöÖßüÜ")==7+1 ? 1 : -1]; + +-const char *menu_hash_to_str_de(uint32_t hash) ++const char *menu_hash_to_str_de(enum menu_hash_enums msg) + { +- switch (hash) ++ switch (msg) + { + case MENU_LABEL_VALUE_INFORMATION_LIST: + return "Information"; +@@ -835,7 +835,7 @@ const char *menu_hash_to_str_de(uint32_t hash) + return "null"; + } + +-int menu_hash_get_help_de(uint32_t hash, char *s, size_t len) ++int menu_hash_get_help_de(enum menu_hash_enums msg, char *s, size_t len) + { + uint32_t driver_hash = 0; + settings_t *settings = config_get_ptr(); +@@ -843,7 +843,7 @@ int menu_hash_get_help_de(uint32_t hash, char *s, size_t len) + /* If this one throws errors, stop sledgehammering square pegs into round holes and */ + /* READ THE COMMENTS at the top of the file. */ (void)sizeof(force_iso_8859_1); + +- switch (hash) ++ switch (msg) + { + case MENU_LABEL_INPUT_DRIVER: + driver_hash = menu_hash_calculate(settings->input.driver); +diff --git a/menu/intl/menu_hash_eo.c b/menu/intl/menu_hash_eo.c +index eb82427..d4c8262 100644 +--- a/menu/intl/menu_hash_eo.c ++++ b/menu/intl/menu_hash_eo.c +@@ -18,9 +18,9 @@ + + #include "../menu_hash.h" + +-const char *menu_hash_to_str_eo(uint32_t hash) ++const char *menu_hash_to_str_eo(enum menu_hash_enums msg) + { +- switch (hash) ++ switch (msg) + { + case 0: + default: +@@ -30,11 +30,11 @@ const char *menu_hash_to_str_eo(uint32_t hash) + return "null"; + } + +-int menu_hash_get_help_eo(uint32_t hash, char *s, size_t len) ++int menu_hash_get_help_eo(enum menu_hash_enums msg, char *s, size_t len) + { + int ret = 0; + +- switch (hash) ++ switch (msg) + { + case 0: + default: +diff --git a/menu/intl/menu_hash_es.c b/menu/intl/menu_hash_es.c +index f9e61b8..4db94b6 100644 +--- a/menu/intl/menu_hash_es.c ++++ b/menu/intl/menu_hash_es.c +@@ -31,10 +31,9 @@ + /* DO NOT REMOVE THIS. If it causes build failure, it's because you saved the file as UTF-8. Read the above comment. */ + extern const char force_iso_8859_1[sizeof("¿áéíÍñóºú")==9+1 ? 1 : -1]; + +-const char *menu_hash_to_str_es(uint32_t hash) ++const char *menu_hash_to_str_es(enum menu_hash_enums msg) + { +- +- switch (hash) ++ switch (msg) + { + case MENU_LABEL_VALUE_MENU_LINEAR_FILTER: + return "Filtro lineal del menú"; +@@ -992,7 +991,7 @@ const char *menu_hash_to_str_es(uint32_t hash) + return "null"; + } + +-int menu_hash_get_help_es(uint32_t hash, char *s, size_t len) ++int menu_hash_get_help_es(enum menu_hash_enums msg, char *s, size_t len) + { + uint32_t driver_hash = 0; + settings_t *settings = config_get_ptr(); +@@ -1001,7 +1000,7 @@ int menu_hash_get_help_es(uint32_t hash, char *s, size_t len) + /* READ THE COMMENTS at the top of the file. */ + (void)sizeof(force_iso_8859_1); + +- switch (hash) ++ switch (msg) + { + case MENU_LABEL_VALUE_HELP_AUDIO_VIDEO_TROUBLESHOOTING_DESC: + { +diff --git a/menu/intl/menu_hash_fr.c b/menu/intl/menu_hash_fr.c +index 121619b..f7c454e 100644 +--- a/menu/intl/menu_hash_fr.c ++++ b/menu/intl/menu_hash_fr.c +@@ -27,9 +27,9 @@ + /* DO NOT REMOVE THIS. If it causes build failure, it's because you saved the file as UTF-8. Read the above comment. */ + extern const char force_iso_8859_1[sizeof("àéÉèêô")==6+1 ? 1 : -1]; + +-const char *menu_hash_to_str_fr(uint32_t hash) ++const char *menu_hash_to_str_fr(enum menu_hash_enums msg) + { +- switch (hash) ++ switch (msg) + { + case MENU_LABEL_VALUE_OVERLAY_AUTOLOAD_PREFERRED: + return "Charger l'overlay préféré automatiquement"; +@@ -848,14 +848,14 @@ const char *menu_hash_to_str_fr(uint32_t hash) + return "null"; + } + +-int menu_hash_get_help_fr(uint32_t hash, char *s, size_t len) ++int menu_hash_get_help_fr(enum menu_hash_enums msg, char *s, size_t len) + { + int ret = 0; + /* If this one throws errors, stop sledgehammering square pegs into round holes and */ + /* READ THE COMMENTS at the top of the file. */ + (void)sizeof(force_iso_8859_1); + +- switch (hash) ++ switch (msg) + { + case 0: + default: +diff --git a/menu/intl/menu_hash_it.c b/menu/intl/menu_hash_it.c +index b19195c..5da75df 100644 +--- a/menu/intl/menu_hash_it.c ++++ b/menu/intl/menu_hash_it.c +@@ -31,10 +31,9 @@ + /* DO NOT REMOVE THIS. If it causes build failure, it's because you saved the file as UTF-8. Read the above comment. */ + extern const char force_iso_8859_1[sizeof("àèéìòù")==6+1 ? 1 : -1]; + +-const char *menu_hash_to_str_it(uint32_t hash) ++const char *menu_hash_to_str_it(enum menu_hash_enums msg) + { +- +- switch (hash) ++ switch (msg) + { + case MENU_LABEL_VALUE_INPUT_ICADE_ENABLE: + return "Abilita mappatura gamepad tastiera"; +@@ -984,7 +983,7 @@ const char *menu_hash_to_str_it(uint32_t hash) + return "null"; + } + +-int menu_hash_get_help_it(uint32_t hash, char *s, size_t len) ++int menu_hash_get_help_it(enum menu_hash_enums msg, char *s, size_t len) + { + uint32_t driver_hash = 0; + settings_t *settings = config_get_ptr(); +@@ -993,7 +992,7 @@ int menu_hash_get_help_it(uint32_t hash, char *s, size_t len) + /* READ THE COMMENTS at the top of the file. */ + (void)sizeof(force_iso_8859_1); + +- switch (hash) ++ switch (msg) + { + case MENU_LABEL_VALUE_HELP_AUDIO_VIDEO_TROUBLESHOOTING_DESC: + { +diff --git a/menu/intl/menu_hash_nl.c b/menu/intl/menu_hash_nl.c +index e12e823..18b3b6a 100644 +--- a/menu/intl/menu_hash_nl.c ++++ b/menu/intl/menu_hash_nl.c +@@ -20,9 +20,9 @@ + + #include "../menu_hash.h" + +-const char *menu_hash_to_str_nl(uint32_t hash) ++const char *menu_hash_to_str_nl(enum menu_hash_enums msg) + { +- switch (hash) ++ switch (msg) + { + case MENU_LABEL_VALUE_HELP_SCANNING_CONTENT: + return "Scannen naar Content"; +@@ -885,11 +885,11 @@ const char *menu_hash_to_str_nl(uint32_t hash) + return "null"; + } + +-int menu_hash_get_help_nl(uint32_t hash, char *s, size_t len) ++int menu_hash_get_help_nl(enum menu_hash_enums msg, char *s, size_t len) + { + int ret = 0; + +- switch (hash) ++ switch (msg) + { + case 0: + default: +diff --git a/menu/intl/menu_hash_pl.c b/menu/intl/menu_hash_pl.c +index f325d5b..6ad8050 100644 +--- a/menu/intl/menu_hash_pl.c ++++ b/menu/intl/menu_hash_pl.c +@@ -26,9 +26,9 @@ + * (e.g. German "Umlauts" and Portugese diacritics). + */ + +-const char *menu_hash_to_str_pl(uint32_t hash) ++const char *menu_hash_to_str_pl(enum menu_hash_enums msg) + { +- switch (hash) ++ switch (msg) + { + case MENU_LABEL_VALUE_OVERLAY_AUTOLOAD_PREFERRED: + return "Automatycznie wczytaj preferowan± nak³adkê"; +@@ -855,11 +855,11 @@ const char *menu_hash_to_str_pl(uint32_t hash) + return "null"; + } + +-int menu_hash_get_help_pl(uint32_t hash, char *s, size_t len) ++int menu_hash_get_help_pl(enum menu_hash_enums msg, char *s, size_t len) + { + int ret = 0; + +- switch (hash) ++ switch (msg) + { + case 0: + default: +diff --git a/menu/intl/menu_hash_pt.c b/menu/intl/menu_hash_pt.c +index 18f6c9b..3066d06 100644 +--- a/menu/intl/menu_hash_pt.c ++++ b/menu/intl/menu_hash_pt.c +@@ -31,9 +31,9 @@ + /* DO NOT REMOVE THIS. If it causes build failure, it's because you saved the file as UTF-8. Read the above comment. */ + extern const char force_iso_8859_1[sizeof("áÁâãçéêíÍóõú")==12+1 ? 1 : -1]; + +-const char *menu_hash_to_str_pt(uint32_t hash) ++const char *menu_hash_to_str_pt(enum menu_hash_enums msg) + { +- switch (hash) ++ switch (msg) + { + case MENU_LABEL_VALUE_START_NET_RETROPAD: + return "Iniciar RetroPad Remoto"; +@@ -856,7 +856,7 @@ const char *menu_hash_to_str_pt(uint32_t hash) + return "null"; + } + +-int menu_hash_get_help_pt(uint32_t hash, char *s, size_t len) ++int menu_hash_get_help_pt(enum menu_hash_enums msg, char *s, size_t len) + { + uint32_t driver_hash = 0; + settings_t *settings = config_get_ptr(); +@@ -864,7 +864,7 @@ int menu_hash_get_help_pt(uint32_t hash, char *s, size_t len) + /* If this one throws errors, stop sledgehammering square pegs into round holes and */ + /* READ THE COMMENTS at the top of the file. */ (void)sizeof(force_iso_8859_1); + +- switch (hash) ++ switch (msg) + { + case MENU_LABEL_INPUT_DRIVER: + driver_hash = menu_hash_calculate(settings->input.driver); +diff --git a/menu/intl/menu_hash_us.c b/menu/intl/menu_hash_us.c +index b9b7990..c593ef7 100644 +--- a/menu/intl/menu_hash_us.c ++++ b/menu/intl/menu_hash_us.c +@@ -22,9 +22,9 @@ + #include "../menu_hash.h" + #include "../../configuration.h" + +-static const char *menu_hash_to_str_us_label(uint32_t hash) ++static const char *menu_hash_to_str_us_label(enum menu_hash_enums msg) + { +- switch (hash) ++ switch (msg) + { + case MENU_LABEL_MENU_LINEAR_FILTER: + return "menu_linear_filter"; +@@ -751,14 +751,14 @@ static const char *menu_hash_to_str_us_label(uint32_t hash) + return "null"; + } + +-const char *menu_hash_to_str_us(uint32_t hash) ++const char *menu_hash_to_str_us(enum menu_hash_enums msg) + { +- const char *ret = menu_hash_to_str_us_label(hash); ++ const char *ret = menu_hash_to_str_us_label(msg); + + if (ret && !string_is_equal(ret, "null")) + return ret; + +- switch (hash) ++ switch (msg) + { + case MENU_LABEL_VALUE_START_NET_RETROPAD: + return "Start Remote RetroPad"; +@@ -1749,12 +1749,12 @@ const char *menu_hash_to_str_us(uint32_t hash) + return "null"; + } + +-int menu_hash_get_help_us(uint32_t hash, char *s, size_t len) ++int menu_hash_get_help_us(enum menu_hash_enums msg, char *s, size_t len) + { + uint32_t driver_hash = 0; + settings_t *settings = config_get_ptr(); + +- switch (hash) ++ switch (msg) + { + case MENU_LABEL_VALUE_HELP_AUDIO_VIDEO_TROUBLESHOOTING_DESC: + { +diff --git a/menu/intl/menu_hash_uspseudo.c b/menu/intl/menu_hash_uspseudo.c +index 09f971c..71b4f7a 100644 +--- a/menu/intl/menu_hash_uspseudo.c ++++ b/menu/intl/menu_hash_uspseudo.c +@@ -23,9 +23,9 @@ + #include "../menu_hash.h" + #include "../../configuration.h" + +-static const char *menu_hash_to_str_us_label(uint32_t hash) ++static const char *menu_hash_to_str_us_label(enum menu_hash_enums msg) + { +- switch (hash) ++ switch (msg) + { + case MENU_LABEL_START_CORE: + return "start_core"; +@@ -723,14 +723,14 @@ static const char *menu_hash_to_str_us_label(uint32_t hash) + return "null"; + } + +-const char *menu_hash_to_str_us(uint32_t hash) ++const char *menu_hash_to_str_us(enum menu_hash_enums msg) + { +- const char *ret = menu_hash_to_str_us_label(hash); ++ const char *ret = menu_hash_to_str_us_label(msg); + + if (ret && !string_is_equal(ret, "null")) + return ret; + +- switch (hash) ++ switch (msg) + { + case MENU_LABEL_VALUE_CHEEVOS_TEST_UNOFFICIAL: + return "Tëst unoffiçial"; +diff --git a/menu/menu_hash.c b/menu/menu_hash.c +index 8c7ed37..c645f63 100644 +--- a/menu/menu_hash.c ++++ b/menu/menu_hash.c +@@ -23,7 +23,7 @@ + + #include "../configuration.h" + +-const char *menu_hash_to_str(uint32_t hash) ++const char *menu_hash_to_str(enum menu_hash_enums msg) + { + const char *ret = NULL; + settings_t *settings = config_get_ptr(); +@@ -35,28 +35,28 @@ const char *menu_hash_to_str(uint32_t hash) + switch (settings->user_language) + { + case RETRO_LANGUAGE_FRENCH: +- ret = menu_hash_to_str_fr(hash); ++ ret = menu_hash_to_str_fr(msg); + break; + case RETRO_LANGUAGE_GERMAN: +- ret = menu_hash_to_str_de(hash); ++ ret = menu_hash_to_str_de(msg); + break; + case RETRO_LANGUAGE_SPANISH: +- ret = menu_hash_to_str_es(hash); ++ ret = menu_hash_to_str_es(msg); + break; + case RETRO_LANGUAGE_ITALIAN: +- ret = menu_hash_to_str_it(hash); ++ ret = menu_hash_to_str_it(msg); + break; + case RETRO_LANGUAGE_PORTUGUESE: +- ret = menu_hash_to_str_pt(hash); ++ ret = menu_hash_to_str_pt(msg); + break; + case RETRO_LANGUAGE_DUTCH: +- ret = menu_hash_to_str_nl(hash); ++ ret = menu_hash_to_str_nl(msg); + break; + case RETRO_LANGUAGE_ESPERANTO: +- ret = menu_hash_to_str_eo(hash); ++ ret = menu_hash_to_str_eo(msg); + break; + case RETRO_LANGUAGE_POLISH: +- ret = menu_hash_to_str_pl(hash); ++ ret = menu_hash_to_str_pl(msg); + break; + default: + break; +@@ -66,10 +66,10 @@ const char *menu_hash_to_str(uint32_t hash) + if (ret && !string_is_equal(ret, "null")) + return ret; + +- return menu_hash_to_str_us(hash); ++ return menu_hash_to_str_us(msg); + } + +-int menu_hash_get_help(uint32_t hash, char *s, size_t len) ++int menu_hash_get_help(enum menu_hash_enums msg, char *s, size_t len) + { + int ret = -1; + settings_t *settings = config_get_ptr(); +@@ -81,28 +81,28 @@ int menu_hash_get_help(uint32_t hash, char *s, size_t len) + switch (settings->user_language) + { + case RETRO_LANGUAGE_FRENCH: +- ret = menu_hash_get_help_fr(hash, s, len); ++ ret = menu_hash_get_help_fr(msg, s, len); + break; + case RETRO_LANGUAGE_GERMAN: +- ret = menu_hash_get_help_de(hash, s, len); ++ ret = menu_hash_get_help_de(msg, s, len); + break; + case RETRO_LANGUAGE_SPANISH: +- ret = menu_hash_get_help_es(hash, s, len); ++ ret = menu_hash_get_help_es(msg, s, len); + break; + case RETRO_LANGUAGE_ITALIAN: +- ret = menu_hash_get_help_it(hash, s, len); ++ ret = menu_hash_get_help_it(msg, s, len); + break; + case RETRO_LANGUAGE_PORTUGUESE: +- ret = menu_hash_get_help_pt(hash, s, len); ++ ret = menu_hash_get_help_pt(msg, s, len); + break; + case RETRO_LANGUAGE_DUTCH: +- ret = menu_hash_get_help_nl(hash, s, len); ++ ret = menu_hash_get_help_nl(msg, s, len); + break; + case RETRO_LANGUAGE_ESPERANTO: +- ret = menu_hash_get_help_eo(hash, s, len); ++ ret = menu_hash_get_help_eo(msg, s, len); + break; + case RETRO_LANGUAGE_POLISH: +- ret = menu_hash_get_help_pl(hash, s, len); ++ ret = menu_hash_get_help_pl(msg, s, len); + break; + default: + break; +@@ -112,7 +112,7 @@ int menu_hash_get_help(uint32_t hash, char *s, size_t len) + if (ret == 0) + return ret; + +- return menu_hash_get_help_us(hash, s, len); ++ return menu_hash_get_help_us(msg, s, len); + } + + uint32_t menu_hash_calculate(const char *s) +diff --git a/menu/menu_hash.h b/menu/menu_hash.h +index 2080248..e8e5c61 100644 +--- a/menu/menu_hash.h ++++ b/menu/menu_hash.h +@@ -20,1191 +20,1193 @@ + + RETRO_BEGIN_DECLS + +-#define MENU_LABEL_START_NET_RETROPAD 0xf2ae670dU +-#define MENU_LABEL_VALUE_START_NET_RETROPAD 0xad11a6a0U ++enum menu_hash_enums ++{ ++ MENU_LABEL_UNKNOWN = 0, ++ MENU_LABEL_START_NET_RETROPAD, ++ MENU_LABEL_VALUE_START_NET_RETROPAD, + +-#define CB_THUMBNAILS_UPDATER_DOWNLOAD 0xf4ee156bU ++ CB_THUMBNAILS_UPDATER_DOWNLOAD, + +-#define MENU_LABEL_THUMBNAILS_UPDATER_LIST 0xff70176bU +-#define MENU_LABEL_VALUE_THUMBNAILS_UPDATER_LIST 0x75028b11U ++ MENU_LABEL_THUMBNAILS_UPDATER_LIST, ++ MENU_LABEL_VALUE_THUMBNAILS_UPDATER_LIST, + +-#define MENU_LABEL_DEFERRED_THUMBNAILS_UPDATER_LIST 0x364dfa2bU ++ MENU_LABEL_DEFERRED_THUMBNAILS_UPDATER_LIST, + +-#define MENU_LABEL_MENU_LINEAR_FILTER 0x5fe9128cU +-#define MENU_LABEL_VALUE_MENU_LINEAR_FILTER 0x192de208U ++ MENU_LABEL_MENU_LINEAR_FILTER, ++ MENU_LABEL_VALUE_MENU_LINEAR_FILTER, + +-#define MENU_LABEL_MENU_THROTTLE_FRAMERATE 0x9a8681c5U +-#define MENU_LABEL_VALUE_MENU_THROTTLE_FRAMERATE 0x285bb667U ++ MENU_LABEL_MENU_THROTTLE_FRAMERATE, ++ MENU_LABEL_VALUE_MENU_THROTTLE_FRAMERATE, + +-#define MENU_LABEL_INPUT_POLL_TYPE_BEHAVIOR 0x8360107bU +-#define MENU_LABEL_VALUE_INPUT_POLL_TYPE_BEHAVIOR 0xaa23fc1eU ++ MENU_LABEL_INPUT_POLL_TYPE_BEHAVIOR, ++ MENU_LABEL_VALUE_INPUT_POLL_TYPE_BEHAVIOR, + +-#define MENU_LABEL_VALUE_SYSTEM_INFO_DYNAMIC_SUPPORT 0xe5f4b599U ++ MENU_LABEL_VALUE_SYSTEM_INFO_DYNAMIC_SUPPORT, + +-#define MENU_LABEL_UI_COMPANION_ENABLE 0xb2d7a20cU +-#define MENU_LABEL_VALUE_UI_COMPANION_ENABLE 0xee4933ceU ++ MENU_LABEL_UI_COMPANION_ENABLE, ++ MENU_LABEL_VALUE_UI_COMPANION_ENABLE, + +-#define MENU_LABEL_CHEEVOS_HARDCORE_MODE_ENABLE 0xf71b3b16U +-#define MENU_LABEL_VALUE_CHEEVOS_HARDCORE_MODE_ENABLE 0xa4d69592U ++ MENU_LABEL_CHEEVOS_HARDCORE_MODE_ENABLE, ++ MENU_LABEL_VALUE_CHEEVOS_HARDCORE_MODE_ENABLE, + +-#define MENU_LABEL_CHEEVOS_TEST_UNOFFICIAL 0xa1ae28f0U +-#define MENU_LABEL_VALUE_CHEEVOS_TEST_UNOFFICIAL 0x0698e665U ++ MENU_LABEL_CHEEVOS_TEST_UNOFFICIAL, ++ MENU_LABEL_VALUE_CHEEVOS_TEST_UNOFFICIAL, + +-#define MENU_LABEL_VALUE_ENABLE 0xb0d05f8cU ++ MENU_LABEL_VALUE_ENABLE, + +-#define MENU_LABEL_VALUE_CHEEVOS_SETTINGS 0x1fe3be93U ++ MENU_LABEL_VALUE_CHEEVOS_SETTINGS, + +-#define MENU_LABEL_CHEEVOS_ENABLE 0x2748f998U ++ MENU_LABEL_CHEEVOS_ENABLE, + +-#define MENU_LABEL_VALUE_INPUT_KEYBOARD_GAMEPAD_MAPPING_TYPE 0x507c52f3U +-#define MENU_LABEL_INPUT_KEYBOARD_GAMEPAD_MAPPING_TYPE 0x3665cbb0U ++ MENU_LABEL_VALUE_INPUT_KEYBOARD_GAMEPAD_MAPPING_TYPE, ++ MENU_LABEL_INPUT_KEYBOARD_GAMEPAD_MAPPING_TYPE, + +-#define MENU_LABEL_CHEEVOS_DESCRIPTION 0x7e00e0f5U ++ MENU_LABEL_CHEEVOS_DESCRIPTION, + +-#define MENU_LABEL_VALUE_CHEEVOS_DESCRIPTION 0xab3975d6U ++ MENU_LABEL_VALUE_CHEEVOS_DESCRIPTION, + +-#define MENU_LABEL_VALUE_STATE_SLOT 0xa1dec768U ++ MENU_LABEL_VALUE_STATE_SLOT, + +-#define MENU_LABEL_STATE_SLOT 0x27b67f67U ++ MENU_LABEL_STATE_SLOT, + +-#define MENU_LABEL_INPUT_HOTKEY_BINDS_BEGIN 0x5a56139bU ++ MENU_LABEL_INPUT_HOTKEY_BINDS_BEGIN, + +-#define MENU_LABEL_INPUT_SETTINGS 0x78b4a7c5U ++ MENU_LABEL_INPUT_SETTINGS, + +-#define MENU_LABEL_PLAYLIST_SETTINGS_BEGIN 0x80a8d2cbU +-#define MENU_LABEL_DEFERRED_PLAYLIST_SETTINGS_LIST 0x9518e0c7U ++ MENU_LABEL_PLAYLIST_SETTINGS_BEGIN, ++ MENU_LABEL_DEFERRED_PLAYLIST_SETTINGS_LIST, + +-#define MENU_LABEL_INPUT_SETTINGS_BEGIN 0xddee308bU ++ MENU_LABEL_INPUT_SETTINGS_BEGIN, ++ MENU_LABEL_DEFERRED_INPUT_SETTINGS_LIST, + +-#define MENU_LABEL_DEFERRED_INPUT_SETTINGS_LIST 0x050bec60U ++ MENU_LABEL_DEFERRED_USER_BINDS_LIST, + +-#define MENU_LABEL_DEFERRED_USER_BINDS_LIST 0x28c5750eU ++ MENU_LABEL_CHEEVOS_USERNAME, ++ MENU_LABEL_CHEEVOS_PASSWORD, + +-#define MENU_LABEL_CHEEVOS_USERNAME 0x6ce57e31U +-#define MENU_LABEL_CHEEVOS_PASSWORD 0x86c38d24U ++ MENU_LABEL_VALUE_ACCOUNTS_CHEEVOS_SETTINGS, ++ MENU_LABEL_ACCOUNTS_CHEEVOS_PASSWORD, ++ MENU_LABEL_VALUE_ACCOUNTS_CHEEVOS_PASSWORD, + +-#define MENU_LABEL_VALUE_ACCOUNTS_CHEEVOS_SETTINGS 0xe0b53ce3U ++ MENU_LABEL_ACCOUNTS_CHEEVOS_USERNAME, ++ MENU_LABEL_VALUE_ACCOUNTS_CHEEVOS_USERNAME, + +-#define MENU_LABEL_ACCOUNTS_CHEEVOS_PASSWORD 0x45cf62e3U +-#define MENU_LABEL_VALUE_ACCOUNTS_CHEEVOS_PASSWORD 0xe5a73d05U ++ MENU_LABEL_ACCOUNTS_RETRO_ACHIEVEMENTS, ++ MENU_LABEL_VALUE_ACCOUNTS_RETRO_ACHIEVEMENTS, + +-#define MENU_LABEL_ACCOUNTS_CHEEVOS_USERNAME 0x2bf153f0U +-#define MENU_LABEL_VALUE_ACCOUNTS_CHEEVOS_USERNAME 0xcbc92e12U ++ MENU_LABEL_DEFERRED_ACCOUNTS_CHEEVOS_LIST, ++ MENU_LABEL_DEFERRED_ACCOUNTS_LIST, ++ MENU_LABEL_ACCOUNTS_LIST, ++ MENU_LABEL_VALUE_ACCOUNTS_LIST, ++ MENU_LABEL_VALUE_ACCOUNTS_LIST_END, + +-#define MENU_LABEL_ACCOUNTS_RETRO_ACHIEVEMENTS 0xe6b7c16cU +-#define MENU_LABEL_VALUE_ACCOUNTS_RETRO_ACHIEVEMENTS 0x7d247a6dU ++ MENU_LABEL_DEBUG_PANEL_ENABLE, ++ MENU_LABEL_VALUE_DEBUG_PANEL_ENABLE, + +-#define MENU_LABEL_DEFERRED_ACCOUNTS_CHEEVOS_LIST 0x1322324cU +-#define MENU_LABEL_DEFERRED_ACCOUNTS_LIST 0x3d2b8860U +-#define MENU_LABEL_ACCOUNTS_LIST 0x774c15a0U +-#define MENU_LABEL_VALUE_ACCOUNTS_LIST 0x86e551a1U +-#define MENU_LABEL_VALUE_ACCOUNTS_LIST_END 0x3d559522U ++ MENU_LABEL_VALUE_MENU_CONTROLS_PROLOG, + +-#define MENU_LABEL_DEBUG_PANEL_ENABLE 0xbad176a1U +-#define MENU_LABEL_VALUE_DEBUG_PANEL_ENABLE 0x15042803U ++ MENU_LABEL_VALUE_HELP_WHAT_IS_A_CORE, ++ MENU_LABEL_HELP_WHAT_IS_A_CORE, + +-#define MENU_LABEL_VALUE_MENU_CONTROLS_PROLOG 0x72674cdfU ++ MENU_LABEL_HELP_LOADING_CONTENT, ++ MENU_LABEL_VALUE_HELP_LOADING_CONTENT, + +-#define MENU_LABEL_VALUE_HELP_WHAT_IS_A_CORE 0xf3b0f77eU +-#define MENU_LABEL_HELP_WHAT_IS_A_CORE 0x83fcbc44U ++ MENU_LABEL_HELP_LIST, ++ MENU_LABEL_VALUE_HELP_LIST, + +-#define MENU_LABEL_HELP_LOADING_CONTENT 0x231d8245U +-#define MENU_LABEL_VALUE_HELP_LOADING_CONTENT 0x70bab027U ++ MENU_LABEL_VALUE_HELP_CONTROLS, ++ MENU_LABEL_HELP_CONTROLS, + +-#define MENU_LABEL_HELP_LIST 0x006af669U +-#define MENU_LABEL_VALUE_HELP_LIST 0x6c57426aU ++ MENU_LABEL_VALUE_BASIC_MENU_CONTROLS, ++ MENU_LABEL_VALUE_BASIC_MENU_CONTROLS_SCROLL_UP, ++ MENU_LABEL_VALUE_BASIC_MENU_CONTROLS_SCROLL_DOWN, ++ MENU_LABEL_VALUE_BASIC_MENU_CONTROLS_CONFIRM, ++ MENU_LABEL_VALUE_BASIC_MENU_CONTROLS_BACK, ++ MENU_LABEL_VALUE_BASIC_MENU_CONTROLS_START, ++ MENU_LABEL_VALUE_BASIC_MENU_CONTROLS_INFO, ++ MENU_LABEL_VALUE_BASIC_MENU_CONTROLS_TOGGLE_MENU, ++ MENU_LABEL_VALUE_BASIC_MENU_CONTROLS_QUIT, ++ MENU_LABEL_VALUE_BASIC_MENU_CONTROLS_TOGGLE_KEYBOARD, + +-#define MENU_LABEL_VALUE_HELP_CONTROLS 0xe5c9f6a2U +-#define MENU_LABEL_HELP_CONTROLS 0x04859221U ++ MENU_LABEL_VALUE_EXTRACTING_PLEASE_WAIT, + +-#define MENU_LABEL_VALUE_BASIC_MENU_CONTROLS 0x7c05810eU +-#define MENU_LABEL_VALUE_BASIC_MENU_CONTROLS_SCROLL_UP 0x8c2f7b00U +-#define MENU_LABEL_VALUE_BASIC_MENU_CONTROLS_SCROLL_DOWN 0x55f0f413U +-#define MENU_LABEL_VALUE_BASIC_MENU_CONTROLS_CONFIRM 0x40e50edbU +-#define MENU_LABEL_VALUE_BASIC_MENU_CONTROLS_BACK 0xd834d89eU +-#define MENU_LABEL_VALUE_BASIC_MENU_CONTROLS_START 0xe00df0fbU +-#define MENU_LABEL_VALUE_BASIC_MENU_CONTROLS_INFO 0xd838e6f9U +-#define MENU_LABEL_VALUE_BASIC_MENU_CONTROLS_TOGGLE_MENU 0x98159c23U +-#define MENU_LABEL_VALUE_BASIC_MENU_CONTROLS_QUIT 0xd83d6830U +-#define MENU_LABEL_VALUE_BASIC_MENU_CONTROLS_TOGGLE_KEYBOARD 0xe408c2ffU ++ MENU_LABEL_WELCOME_TO_RETROARCH, + +-#define MENU_LABEL_VALUE_EXTRACTING_PLEASE_WAIT 0xec5a348bU ++ MENU_LABEL_DEFERRED_ARCHIVE_ACTION_DETECT_CORE, ++ MENU_LABEL_DEFERRED_ARCHIVE_ACTION, ++ MENU_LABEL_DEFERRED_ARCHIVE_OPEN_DETECT_CORE, ++ MENU_LABEL_DEFERRED_ARCHIVE_OPEN, + +-#define MENU_LABEL_WELCOME_TO_RETROARCH 0xbcff0b3cU ++ MENU_LABEL_VALUE_INPUT_BACK_AS_MENU_TOGGLE_ENABLE, ++ MENU_LABEL_INPUT_BACK_AS_MENU_TOGGLE_ENABLE, + +-#define MENU_LABEL_DEFERRED_ARCHIVE_ACTION_DETECT_CORE 0xdc9c0064U +-#define MENU_LABEL_DEFERRED_ARCHIVE_ACTION 0x7faf0284U +-#define MENU_LABEL_DEFERRED_ARCHIVE_OPEN_DETECT_CORE 0xd9452498U +-#define MENU_LABEL_DEFERRED_ARCHIVE_OPEN 0xfa0938b8U ++ MENU_LABEL_INPUT_MENU_TOGGLE_GAMEPAD_COMBO, ++ MENU_LABEL_VALUE_INPUT_MENU_TOGGLE_GAMEPAD_COMBO, + +-#define MENU_LABEL_VALUE_INPUT_BACK_AS_MENU_TOGGLE_ENABLE 0x1cf1e6a8U +-#define MENU_LABEL_INPUT_BACK_AS_MENU_TOGGLE_ENABLE 0x60bacd04U ++ MENU_LABEL_INPUT_OVERLAY_HIDE_IN_MENU, ++ MENU_LABEL_VALUE_INPUT_OVERLAY_HIDE_IN_MENU, + +-#define MENU_LABEL_INPUT_MENU_TOGGLE_GAMEPAD_COMBO 0xc5b7aa47U +-#define MENU_LABEL_VALUE_INPUT_MENU_TOGGLE_GAMEPAD_COMBO 0x0dedea3bU ++ MENU_LABEL_VALUE_DOWNLOADED_FILE_DETECT_CORE_LIST, ++ MENU_LABEL_DOWNLOADED_FILE_DETECT_CORE_LIST, + +-#define MENU_LABEL_INPUT_OVERLAY_HIDE_IN_MENU 0xf09e230aU +-#define MENU_LABEL_VALUE_INPUT_OVERLAY_HIDE_IN_MENU 0x39b5bd0dU ++ MENU_LABEL_VALUE_UPDATE_CORE_INFO_FILES, ++ MENU_LABEL_UPDATE_CORE_INFO_FILES, + +-#define MENU_LABEL_VALUE_DOWNLOADED_FILE_DETECT_CORE_LIST 0x39310fc8U +-#define MENU_LABEL_DOWNLOADED_FILE_DETECT_CORE_LIST 0xb4f82700U ++ MENU_VALUE_SEARCH, + +-#define MENU_LABEL_VALUE_UPDATE_CORE_INFO_FILES 0xba274810U +-#define MENU_LABEL_UPDATE_CORE_INFO_FILES 0x620d758dU ++ MENU_LABEL_DEFERRED_CORE_CONTENT_LIST, ++ MENU_LABEL_DEFERRED_LAKKA_LIST, + +-#define MENU_VALUE_SEARCH 0xd0d5febbU ++ MENU_LABEL_VALUE_DOWNLOAD_CORE_CONTENT, ++ MENU_LABEL_DOWNLOAD_CORE_CONTENT, + +-#define MENU_LABEL_DEFERRED_CORE_CONTENT_LIST 0x76150c63U +-#define MENU_LABEL_DEFERRED_LAKKA_LIST 0x3db437c4U ++ MENU_LABEL_SCAN_THIS_DIRECTORY, ++ MENU_LABEL_VALUE_SCAN_THIS_DIRECTORY, + +-#define MENU_LABEL_VALUE_DOWNLOAD_CORE_CONTENT 0xa8bb22d8U +-#define MENU_LABEL_DOWNLOAD_CORE_CONTENT 0xc63b1d3fU ++ MENU_LABEL_SCAN_DIRECTORY, ++ MENU_LABEL_VALUE_SCAN_DIRECTORY, + +-#define MENU_LABEL_SCAN_THIS_DIRECTORY 0x6921b775U +-#define MENU_LABEL_VALUE_SCAN_THIS_DIRECTORY 0x2911e177U ++ MENU_LABEL_VALUE_SCAN_FILE, ++ MENU_LABEL_SCAN_FILE, + +-#define MENU_LABEL_SCAN_DIRECTORY 0x57de303eU +-#define MENU_LABEL_VALUE_SCAN_DIRECTORY 0x61af24dfU ++ MENU_LABEL_ADD_CONTENT_LIST, ++ MENU_LABEL_VALUE_ADD_CONTENT_LIST, + +-#define MENU_LABEL_VALUE_SCAN_FILE 0x41be3aeaU +-#define MENU_LABEL_SCAN_FILE 0xd5d1eee9U ++ MENU_LABEL_UPDATE_AUTOCONFIG_PROFILES_HID, ++ MENU_LABEL_VALUE_UPDATE_AUTOCONFIG_PROFILES_HID, + +-#define MENU_LABEL_ADD_CONTENT_LIST 0x046f4668U +-#define MENU_LABEL_VALUE_ADD_CONTENT_LIST 0x955da2c9U ++ MENU_VALUE_DONT_CARE, ++ MENU_VALUE_LINEAR, ++ MENU_VALUE_NEAREST, ++ MENU_VALUE_UNKNOWN, ++ MENU_VALUE_USER, ++ MENU_VALUE_CHEAT, ++ MENU_VALUE_SHADER, ++ MENU_VALUE_DIRECTORY_CONTENT, ++ MENU_VALUE_DIRECTORY_NONE, ++ MENU_VALUE_DIRECTORY_DEFAULT, ++ MENU_VALUE_NOT_AVAILABLE, ++ MENU_VALUE_ASK_ARCHIVE, + +-#define MENU_LABEL_UPDATE_AUTOCONFIG_PROFILES_HID 0x1e94ee4dU +-#define MENU_LABEL_VALUE_UPDATE_AUTOCONFIG_PROFILES_HID 0x524f4590U ++ MENU_LABEL_UPDATE_ASSETS, ++ MENU_LABEL_VALUE_UPDATE_ASSETS, + +-#define MENU_VALUE_DONT_CARE 0x19da07bcU +-#define MENU_VALUE_LINEAR 0xc0d12dc0U +-#define MENU_VALUE_NEAREST 0x6ab2b0b7U +-#define MENU_VALUE_UNKNOWN 0x9b3bb635U +-#define MENU_VALUE_USER 0x7c8da264U +-#define MENU_VALUE_CHEAT 0x0cf62beaU +-#define MENU_VALUE_SHADER 0xd10c0cfcU +-#define MENU_VALUE_DIRECTORY_CONTENT 0x89a45bd9U +-#define MENU_VALUE_DIRECTORY_NONE 0x9996c10fU +-#define MENU_VALUE_DIRECTORY_DEFAULT 0xdcc3a2e4U +-#define MENU_VALUE_NOT_AVAILABLE 0x0b880503U +-#define MENU_VALUE_ASK_ARCHIVE 0x0b87d6a4U ++ MENU_LABEL_UPDATE_LAKKA, ++ MENU_LABEL_VALUE_UPDATE_LAKKA, + +-#define MENU_LABEL_UPDATE_ASSETS 0x37fa42daU +-#define MENU_LABEL_VALUE_UPDATE_ASSETS 0x0fdf0b1bU ++ MENU_LABEL_UPDATE_CHEATS, ++ MENU_LABEL_VALUE_UPDATE_CHEATS, + +-#define MENU_LABEL_UPDATE_LAKKA 0x19b51eebU +-#define MENU_LABEL_VALUE_UPDATE_LAKKA 0x6611630cU ++ MENU_LABEL_UPDATE_AUTOCONFIG_PROFILES, ++ MENU_LABEL_VALUE_UPDATE_AUTOCONFIG_PROFILES, + +-#define MENU_LABEL_UPDATE_CHEATS 0x3bd5c83fU +-#define MENU_LABEL_VALUE_UPDATE_CHEATS 0x13ba9080U ++ MENU_LABEL_UPDATE_DATABASES, ++ MENU_LABEL_VALUE_UPDATE_DATABASES, + +-#define MENU_LABEL_UPDATE_AUTOCONFIG_PROFILES 0xddfcf979U +-#define MENU_LABEL_VALUE_UPDATE_AUTOCONFIG_PROFILES 0x6ddaf7fbU ++ MENU_LABEL_UPDATE_OVERLAYS, ++ MENU_LABEL_VALUE_UPDATE_OVERLAYS, + +-#define MENU_LABEL_UPDATE_DATABASES 0x158ee0cfU +-#define MENU_LABEL_VALUE_UPDATE_DATABASES 0x00c24d70U ++ MENU_LABEL_UPDATE_CG_SHADERS, ++ MENU_LABEL_VALUE_UPDATE_CG_SHADERS, + +-#define MENU_LABEL_UPDATE_OVERLAYS 0xd25d221cU +-#define MENU_LABEL_VALUE_UPDATE_OVERLAYS 0x3694fe9dU ++ MENU_LABEL_UPDATE_GLSL_SHADERS, ++ MENU_LABEL_VALUE_UPDATE_GLSL_SHADERS, ++ ++ MENU_LABEL_INFORMATION_LIST, ++ MENU_LABEL_VALUE_INFORMATION_LIST, ++ ++ MENU_LABEL_USE_BUILTIN_PLAYER, ++ MENU_LABEL_VALUE_USE_BUILTIN_PLAYER, ++ ++ MENU_LABEL_CONTENT_SETTINGS, ++ MENU_LABEL_VALUE_CONTENT_SETTINGS, ++ ++ MENU_LABEL_LOAD_CONTENT_LIST, ++ MENU_LABEL_VALUE_LOAD_CONTENT_LIST, ++ ++ MENU_LABEL_NO_SETTINGS_FOUND, ++ MENU_LABEL_VALUE_NO_SETTINGS_FOUND, ++ MENU_LABEL_VALUE_NO_PERFORMANCE_COUNTERS, ++ ++ MENU_LABEL_VIDEO_FONT_ENABLE, ++ MENU_LABEL_VALUE_VIDEO_FONT_ENABLE, ++ MENU_LABEL_VIDEO_FONT_PATH, ++ MENU_LABEL_VALUE_VIDEO_FONT_PATH, ++ MENU_LABEL_VIDEO_FONT_SIZE, ++ MENU_LABEL_VALUE_VIDEO_FONT_SIZE, ++ MENU_LABEL_VIDEO_MESSAGE_POS_X, ++ MENU_LABEL_VALUE_VIDEO_MESSAGE_POS_X, ++ MENU_LABEL_VIDEO_MESSAGE_POS_Y, ++ MENU_LABEL_VALUE_VIDEO_MESSAGE_POS_Y, ++ ++ MENU_LABEL_DEFERRED_INPUT_HOTKEY_BINDS_LIST, ++ MENU_LABEL_INPUT_HOTKEY_BINDS, ++ MENU_LABEL_VALUE_INPUT_HOTKEY_BINDS, ++ ++ MENU_LABEL_VALUE_FRAME_THROTTLE_SETTINGS, ++ ++ MENU_LABEL_FRAME_THROTTLE_ENABLE, ++ MENU_LABEL_VALUE_FRAME_THROTTLE_ENABLE, ++ ++ MENU_LABEL_VIDEO_FILTER_FLICKER, ++ MENU_LABEL_VALUE_VIDEO_FILTER_FLICKER, ++ ++ MENU_LABEL_VIDEO_SOFT_FILTER, ++ MENU_LABEL_VALUE_VIDEO_SOFT_FILTER, ++ ++ MENU_LABEL_CORE_ENABLE, ++ MENU_LABEL_VALUE_CORE_ENABLE, ++ ++ MENU_LABEL_MOUSE_ENABLE, ++ MENU_LABEL_VALUE_MOUSE_ENABLE, ++ ++ MENU_LABEL_SHOW_ADVANCED_SETTINGS, ++ MENU_LABEL_VALUE_SHOW_ADVANCED_SETTINGS, ++ ++ MENU_LABEL_POINTER_ENABLE, ++ MENU_LABEL_VALUE_POINTER_ENABLE, ++ ++ MENU_LABEL_COLLAPSE_SUBGROUPS_ENABLE, ++ MENU_LABEL_VALUE_COLLAPSE_SUBGROUPS_ENABLE, ++ ++ MENU_LABEL_RESET, ++ MENU_LABEL_SLOWMOTION, ++ MENU_LABEL_HOLD_FAST_FORWARD, ++ MENU_LABEL_CHEAT_TOGGLE, ++ MENU_LABEL_PAUSE_TOGGLE, ++ ++ MENU_LABEL_PAUSE_LIBRETRO, ++ MENU_LABEL_VALUE_PAUSE_LIBRETRO, ++ ++ MENU_LABEL_VALUE_DIRECTORY_NOT_FOUND, ++ MENU_LABEL_VALUE_NO_ITEMS, ++ ++ MENU_LABEL_UI_MENUBAR_ENABLE, ++ MENU_LABEL_VALUE_UI_MENUBAR_ENABLE, ++ ++ MENU_LABEL_UI_COMPANION_START_ON_BOOT, ++ MENU_LABEL_VALUE_UI_COMPANION_START_ON_BOOT, ++ ++ MENU_LABEL_ARCHIVE_MODE, ++ MENU_LABEL_VALUE_ARCHIVE_MODE, ++ MENU_LABEL_VALUE_SHADER_OPTIONS, ++ MENU_LABEL_VALUE_USE_THIS_DIRECTORY, ++ MENU_LABEL_USE_THIS_DIRECTORY, ++ MENU_LABEL_VALUE_CORE_OPTIONS, ++ MENU_LABEL_VALUE_NO_SHADER_PARAMETERS, ++ MENU_LABEL_VALUE_NO_CORE_INFORMATION_AVAILABLE, ++ MENU_LABEL_VALUE_NO_CORES_AVAILABLE, ++ MENU_LABEL_SAVE_STATE, ++ MENU_LABEL_VALUE_LOAD_STATE, ++ MENU_LABEL_VALUE_UNDO_LOAD_STATE, ++ MENU_LABEL_VALUE_UNDO_SAVE_STATE, ++ MENU_LABEL_VALUE_SAVE_STATE, ++ MENU_LABEL_LOAD_STATE, ++ MENU_LABEL_UNDO_LOAD_STATE, ++ MENU_LABEL_UNDO_SAVE_STATE, ++ MENU_LABEL_REWIND, ++ MENU_LABEL_NETPLAY_FLIP_PLAYERS, ++ MENU_LABEL_CHEAT_INDEX_MINUS, ++ MENU_LABEL_CHEAT_INDEX_PLUS, ++ MENU_LABEL_AUDIO_ENABLE, ++ MENU_LABEL_VALUE_AUDIO_ENABLE, ++ MENU_LABEL_SCREENSHOT_DIRECTORY, ++ MENU_LABEL_SHADER_NEXT, ++ MENU_LABEL_SHADER_PREV, ++ MENU_LABEL_FRAME_ADVANCE, ++ MENU_LABEL_FPS_SHOW, ++ MENU_LABEL_VALUE_FPS_SHOW, ++ MENU_LABEL_MOVIE_RECORD_TOGGLE, ++ MENU_LABEL_L_X_PLUS, ++ MENU_LABEL_L_X_MINUS, ++ MENU_LABEL_L_Y_PLUS, ++ MENU_LABEL_L_Y_MINUS, ++ MENU_LABEL_R_X_PLUS, ++ MENU_LABEL_R_X_MINUS, ++ MENU_LABEL_R_Y_MINUS, ++ MENU_LABEL_R_Y_PLUS, ++ MENU_LABEL_VIDEO_SWAP_INTERVAL, ++ MENU_LABEL_VALUE_VIDEO_SWAP_INTERVAL, ++ MENU_LABEL_VIDEO_GPU_SCREENSHOT, ++ MENU_LABEL_VALUE_VIDEO_GPU_SCREENSHOT, ++ MENU_LABEL_PAUSE_NONACTIVE, ++ MENU_LABEL_VALUE_PAUSE_NONACTIVE, ++ MENU_LABEL_BLOCK_SRAM_OVERWRITE, ++ MENU_LABEL_VALUE_BLOCK_SRAM_OVERWRITE, ++ MENU_LABEL_VIDEO_FULLSCREEN, ++ MENU_LABEL_VALUE_VIDEO_FULLSCREEN, ++ MENU_LABEL_CORE_SPECIFIC_CONFIG, ++ MENU_LABEL_VALUE_CORE_SPECIFIC_CONFIG, ++ MENU_LABEL_GAME_SPECIFIC_OPTIONS, ++ MENU_LABEL_VALUE_GAME_SPECIFIC_OPTIONS, ++ MENU_LABEL_VALUE_GAME_SPECIFIC_OPTIONS_CREATE, ++ MENU_LABEL_VALUE_GAME_SPECIFIC_OPTIONS_IN_USE, ++ MENU_LABEL_AUTO_OVERRIDES_ENABLE, ++ MENU_LABEL_VALUE_AUTO_OVERRIDES_ENABLE, ++ MENU_LABEL_AUTO_REMAPS_ENABLE, ++ MENU_LABEL_VALUE_AUTO_REMAPS_ENABLE, ++ MENU_LABEL_RGUI_SHOW_START_SCREEN, ++ MENU_LABEL_VALUE_RGUI_SHOW_START_SCREEN, ++ MENU_LABEL_VIDEO_BLACK_FRAME_INSERTION, ++ MENU_LABEL_VALUE_VIDEO_BLACK_FRAME_INSERTION, ++ MENU_LABEL_VIDEO_HARD_SYNC_FRAMES, ++ MENU_LABEL_VALUE_VIDEO_HARD_SYNC_FRAMES, ++ MENU_LABEL_VIDEO_FRAME_DELAY, ++ MENU_LABEL_VALUE_VIDEO_FRAME_DELAY, ++ MENU_LABEL_SCREENSHOT, ++ MENU_LABEL_REWIND_GRANULARITY, ++ MENU_LABEL_VALUE_REWIND_GRANULARITY, ++ MENU_LABEL_VALUE_VIDEO_ROTATION, ++ MENU_LABEL_THREADED_DATA_RUNLOOP_ENABLE, ++ MENU_LABEL_VALUE_THREADED_DATA_RUNLOOP_ENABLE, ++ MENU_LABEL_VIDEO_THREADED, ++ MENU_LABEL_VALUE_VIDEO_THREADED, ++ MENU_LABEL_VALUE_RUN, ++ MENU_LABEL_SCREEN_RESOLUTION, ++ MENU_LABEL_VALUE_SCREEN_RESOLUTION, ++ ++ MENU_LABEL_TITLE_COLOR, ++ MENU_LABEL_VALUE_TITLE_COLOR, ++ MENU_LABEL_TIMEDATE_ENABLE, ++ MENU_LABEL_VALUE_TIMEDATE_ENABLE, ++ MENU_LABEL_ENTRY_NORMAL_COLOR, ++ MENU_LABEL_VALUE_ENTRY_NORMAL_COLOR, ++ MENU_LABEL_ENTRY_HOVER_COLOR, ++ MENU_LABEL_VALUE_ENTRY_HOVER_COLOR, ++ MENU_LABEL_AUDIO_SYNC, ++ MENU_LABEL_VALUE_AUDIO_SYNC, ++ MENU_LABEL_VIDEO_VSYNC, ++ MENU_LABEL_VALUE_VIDEO_VSYNC, ++ MENU_LABEL_VIDEO_HARD_SYNC, ++ MENU_LABEL_VALUE_VIDEO_HARD_SYNC, ++ MENU_LABEL_SAVESTATE_AUTO_SAVE, ++ MENU_LABEL_SAVESTATE_AUTO_LOAD, ++ MENU_LABEL_SAVESTATE_AUTO_INDEX, ++ MENU_LABEL_VALUE_SAVESTATE_AUTO_INDEX, ++ MENU_LABEL_VALUE_SAVESTATE_AUTO_SAVE, ++ MENU_LABEL_VALUE_SAVESTATE_AUTO_LOAD, ++ MENU_LABEL_SYSTEM_DIRECTORY, ++ MENU_LABEL_VIDEO_DISABLE_COMPOSITION, ++ MENU_LABEL_VALUE_VIDEO_DISABLE_COMPOSITION, ++ MENU_LABEL_SUSPEND_SCREENSAVER_ENABLE, ++ MENU_LABEL_VALUE_SUSPEND_SCREENSAVER_ENABLE, ++ MENU_LABEL_DPI_OVERRIDE_ENABLE, ++ MENU_LABEL_VALUE_DPI_OVERRIDE_ENABLE, ++ MENU_LABEL_DPI_OVERRIDE_VALUE, ++ MENU_LABEL_VALUE_DPI_OVERRIDE_VALUE, ++ MENU_LABEL_XMB_SCALE_FACTOR, ++ MENU_LABEL_VALUE_XMB_SCALE_FACTOR, ++ MENU_LABEL_XMB_ALPHA_FACTOR, ++ MENU_LABEL_VALUE_XMB_ALPHA_FACTOR, ++ MENU_LABEL_XMB_FONT, ++ MENU_LABEL_VALUE_XMB_FONT, ++ MENU_LABEL_XMB_THEME, ++ MENU_LABEL_VALUE_XMB_THEME, ++ MENU_LABEL_XMB_GRADIENT, ++ MENU_LABEL_VALUE_XMB_GRADIENT, ++ MENU_LABEL_XMB_SHADOWS_ENABLE, ++ MENU_LABEL_VALUE_XMB_SHADOWS_ENABLE, ++ MENU_LABEL_XMB_RIBBON_ENABLE, ++ MENU_LABEL_VALUE_XMB_RIBBON_ENABLE, ++ MENU_LABEL_VOLUME_UP, ++ MENU_LABEL_VOLUME_DOWN, ++ MENU_LABEL_LOG_VERBOSITY, ++ MENU_LABEL_VALUE_LOG_VERBOSITY, ++ MENU_LABEL_OVERLAY_NEXT, ++ MENU_LABEL_AUDIO_VOLUME, ++ MENU_LABEL_VALUE_AUDIO_VOLUME, ++ MENU_LABEL_AUDIO_LATENCY, ++ MENU_LABEL_VALUE_AUDIO_LATENCY, ++ MENU_LABEL_NETPLAY_ENABLE, ++ MENU_LABEL_VALUE_NETPLAY_ENABLE, ++ MENU_LABEL_SSH_ENABLE, ++ MENU_LABEL_VALUE_SSH_ENABLE, ++ MENU_LABEL_SAMBA_ENABLE, ++ MENU_LABEL_VALUE_SAMBA_ENABLE, ++ MENU_LABEL_BLUETOOTH_ENABLE, ++ MENU_LABEL_VALUE_BLUETOOTH_ENABLE, ++ MENU_LABEL_NETPLAY_CLIENT_SWAP_INPUT, ++ MENU_LABEL_VALUE_NETPLAY_CLIENT_SWAP_INPUT, ++ MENU_LABEL_NETPLAY_DELAY_FRAMES, ++ MENU_LABEL_VALUE_NETPLAY_DELAY_FRAMES, ++ MENU_LABEL_NETPLAY_SPECTATOR_MODE_ENABLE, ++ MENU_LABEL_VALUE_NETPLAY_SPECTATOR_MODE_ENABLE, ++ MENU_LABEL_NETPLAY_TCP_UDP_PORT, ++ MENU_LABEL_VALUE_NETPLAY_TCP_UDP_PORT, ++ MENU_LABEL_SORT_SAVEFILES_ENABLE, ++ MENU_LABEL_VALUE_SORT_SAVEFILES_ENABLE, ++ MENU_LABEL_SORT_SAVESTATES_ENABLE, ++ MENU_LABEL_VALUE_SORT_SAVESTATES_ENABLE, ++ MENU_LABEL_NETPLAY_IP_ADDRESS, ++ MENU_LABEL_VALUE_NETPLAY_IP_ADDRESS, ++ MENU_LABEL_NETPLAY_MODE, ++ MENU_LABEL_VALUE_NETPLAY_MODE, ++ MENU_LABEL_PERFCNT_ENABLE, ++ MENU_LABEL_VALUE_PERFCNT_ENABLE, ++ MENU_LABEL_OVERLAY_SCALE, ++ MENU_LABEL_VALUE_OVERLAY_SCALE, ++ MENU_LABEL_KEYBOARD_OVERLAY_PRESET, ++ MENU_LABEL_VALUE_KEYBOARD_OVERLAY_PRESET, ++ MENU_LABEL_OVERLAY_PRESET, ++ MENU_LABEL_VALUE_OVERLAY_PRESET, ++ MENU_LABEL_OVERLAY_OPACITY, ++ MENU_LABEL_VALUE_OVERLAY_OPACITY, ++ ++ MENU_LABEL_MENU_WALLPAPER, ++ MENU_LABEL_VALUE_MENU_WALLPAPER, ++ MENU_LABEL_DYNAMIC_WALLPAPER, ++ MENU_LABEL_VALUE_DYNAMIC_WALLPAPER, ++ MENU_LABEL_THUMBNAILS, ++ MENU_LABEL_VALUE_THUMBNAILS, ++ ++ MENU_LABEL_FASTFORWARD_RATIO, ++ MENU_LABEL_VALUE_FASTFORWARD_RATIO, ++ MENU_LABEL_VIDEO_MONITOR_INDEX, ++ MENU_LABEL_VALUE_VIDEO_MONITOR_INDEX, ++ MENU_LABEL_INPUT_OVERLAY_ENABLE, ++ MENU_LABEL_VALUE_INPUT_OVERLAY_ENABLE, ++ MENU_LABEL_INPUT_OSK_OVERLAY_ENABLE, ++ MENU_LABEL_VALUE_INPUT_OSK_OVERLAY_ENABLE, ++ MENU_LABEL_VIDEO_REFRESH_RATE_AUTO, ++ MENU_LABEL_VALUE_VIDEO_REFRESH_RATE_AUTO, ++ MENU_LABEL_VIDEO_REFRESH_RATE, ++ MENU_LABEL_VALUE_VIDEO_REFRESH_RATE, ++ MENU_LABEL_VIDEO_WINDOWED_FULLSCREEN, ++ MENU_LABEL_VALUE_VIDEO_WINDOWED_FULLSCREEN, ++ MENU_LABEL_VIDEO_FORCE_SRGB_DISABLE, ++ MENU_LABEL_VALUE_VIDEO_FORCE_SRGB_DISABLE, ++ MENU_LABEL_VIDEO_ROTATION, ++ MENU_LABEL_VIDEO_SCALE, ++ MENU_LABEL_VALUE_VIDEO_SCALE, ++ MENU_LABEL_VIDEO_SMOOTH, ++ MENU_LABEL_VALUE_VIDEO_SMOOTH, ++ MENU_LABEL_VIDEO_CROP_OVERSCAN, ++ MENU_LABEL_VALUE_VIDEO_CROP_OVERSCAN, ++ MENU_LABEL_VIDEO_SCALE_INTEGER, ++ MENU_LABEL_VALUE_VIDEO_SCALE_INTEGER, ++ ++ MENU_LABEL_AUDIO_RATE_CONTROL_DELTA, ++ MENU_LABEL_VALUE_AUDIO_RATE_CONTROL_DELTA, ++ MENU_LABEL_AUDIO_MAX_TIMING_SKEW, ++ MENU_LABEL_VALUE_AUDIO_MAX_TIMING_SKEW, ++ ++ MENU_LABEL_INPUT_PLAYER1_JOYPAD_INDEX, ++ MENU_LABEL_INPUT_PLAYER2_JOYPAD_INDEX, ++ MENU_LABEL_INPUT_PLAYER3_JOYPAD_INDEX, ++ MENU_LABEL_INPUT_PLAYER4_JOYPAD_INDEX, ++ MENU_LABEL_INPUT_PLAYER5_JOYPAD_INDEX, ++ ++ MENU_LABEL_AUDIO_DEVICE, ++ MENU_LABEL_VALUE_AUDIO_DEVICE, ++ ++ MENU_LABEL_REWIND_ENABLE, ++ MENU_LABEL_VALUE_REWIND_ENABLE, ++ MENU_LABEL_ENABLE_HOTKEY, ++ MENU_LABEL_DISK_EJECT_TOGGLE, ++ MENU_LABEL_DISK_NEXT, ++ MENU_LABEL_GRAB_MOUSE_TOGGLE, ++ MENU_LABEL_MENU_TOGGLE, ++ MENU_LABEL_STATE_SLOT_DECREASE, ++ MENU_LABEL_STATE_SLOT_INCREASE, ++ ++ MENU_LABEL_LIBRETRO_LOG_LEVEL, ++ MENU_LABEL_VALUE_LIBRETRO_LOG_LEVEL, ++ ++ MENU_LABEL_INPUT_BIND_DEVICE_ID, ++ MENU_LABEL_INPUT_BIND_DEVICE_TYPE, ++ ++ MENU_LABEL_AUTOSAVE_INTERVAL, ++ MENU_LABEL_VALUE_AUTOSAVE_INTERVAL, ++ MENU_LABEL_CONFIG_SAVE_ON_EXIT, ++ MENU_LABEL_VALUE_CONFIG_SAVE_ON_EXIT, ++ ++ MENU_LABEL_AUDIO_DRIVER, ++ MENU_LABEL_VALUE_AUDIO_DRIVER, ++ ++ MENU_LABEL_JOYPAD_DRIVER, ++ MENU_LABEL_VALUE_JOYPAD_DRIVER, ++ ++ MENU_LABEL_INPUT_DRIVER, ++ MENU_LABEL_VALUE_INPUT_DRIVER, ++ MENU_LABEL_INPUT_DRIVER_LINUXRAW, ++ MENU_LABEL_INPUT_DRIVER_UDEV, ++ ++ MENU_LABEL_VIDEO_DRIVER, ++ MENU_LABEL_VALUE_VIDEO_DRIVER, ++ MENU_LABEL_VIDEO_DRIVER_GL, ++ MENU_LABEL_VIDEO_DRIVER_SDL2, ++ MENU_LABEL_VIDEO_DRIVER_SDL1, ++ MENU_LABEL_VIDEO_DRIVER_D3D, ++ MENU_LABEL_VIDEO_DRIVER_EXYNOS, ++ MENU_LABEL_VIDEO_DRIVER_SUNXI, ++ ++ MENU_LABEL_LOCATION_DRIVER, ++ MENU_LABEL_VALUE_LOCATION_DRIVER, ++ ++ MENU_LABEL_MENU_DRIVER, ++ MENU_LABEL_VALUE_MENU_DRIVER, ++ ++ MENU_LABEL_CAMERA_DRIVER, ++ MENU_LABEL_VALUE_CAMERA_DRIVER, ++ ++ MENU_LABEL_RECORD_DRIVER, ++ MENU_LABEL_VALUE_RECORD_DRIVER, ++ ++ MENU_LABEL_AUDIO_RESAMPLER_DRIVER, ++ MENU_LABEL_VALUE_AUDIO_RESAMPLER_DRIVER, ++ MENU_LABEL_AUDIO_RESAMPLER_DRIVER_SINC, ++ MENU_LABEL_AUDIO_RESAMPLER_DRIVER_CC, ++ ++ MENU_LABEL_SAVEFILE_DIRECTORY, ++ MENU_LABEL_VALUE_SAVEFILE_DIRECTORY, ++ MENU_LABEL_SAVESTATE_DIRECTORY, ++ MENU_LABEL_VALUE_SAVESTATE_DIRECTORY, ++ MENU_LABEL_DYNAMIC_WALLPAPERS_DIRECTORY, ++ MENU_LABEL_VALUE_DYNAMIC_WALLPAPERS_DIRECTORY, ++ MENU_LABEL_THUMBNAILS_DIRECTORY, ++ MENU_LABEL_VALUE_THUMBNAILS_DIRECTORY, ++ ++ MENU_LABEL_SLOWMOTION_RATIO, ++ MENU_LABEL_VALUE_SLOWMOTION_RATIO, ++ MENU_LABEL_INPUT_MAX_USERS, ++ MENU_LABEL_VALUE_INPUT_MAX_USERS, ++ MENU_LABEL_INPUT_REMAP_BINDS_ENABLE, ++ MENU_LABEL_VALUE_INPUT_REMAP_BINDS_ENABLE, ++ MENU_LABEL_INPUT_AXIS_THRESHOLD, ++ MENU_LABEL_VALUE_INPUT_AXIS_THRESHOLD, ++ MENU_LABEL_INPUT_TURBO_PERIOD, ++ MENU_LABEL_VALUE_INPUT_TURBO_PERIOD, ++ ++ MENU_LABEL_VIDEO_GAMMA, ++ MENU_LABEL_VALUE_VIDEO_GAMMA, ++ ++ MENU_LABEL_VIDEO_ALLOW_ROTATE, ++ MENU_LABEL_VALUE_VIDEO_ALLOW_ROTATE, ++ ++ MENU_LABEL_CAMERA_ALLOW, ++ MENU_LABEL_VALUE_CAMERA_ALLOW, ++ MENU_LABEL_LOCATION_ALLOW, ++ MENU_LABEL_VALUE_LOCATION_ALLOW, ++ ++ MENU_LABEL_TURBO, ++ ++ MENU_LABEL_NO_PLAYLIST_ENTRIES_AVAILABLE, ++ MENU_LABEL_VALUE_NO_PLAYLIST_ENTRIES_AVAILABLE, ++ MENU_LABEL_VALUE_RDB_ENTRY_START_CONTENT, ++ MENU_LABEL_RDB_ENTRY_ANALOG, ++ MENU_LABEL_RDB_ENTRY_RUMBLE, ++ MENU_LABEL_RDB_ENTRY_COOP, ++ MENU_LABEL_RDB_ENTRY_START_CONTENT, ++ MENU_LABEL_RDB_ENTRY_DESCRIPTION, ++ MENU_LABEL_RDB_ENTRY_GENRE, ++ MENU_LABEL_VALUE_RDB_ENTRY_DESCRIPTION, ++ MENU_LABEL_VALUE_RDB_ENTRY_GENRE, ++ MENU_LABEL_RDB_ENTRY_NAME, ++ MENU_LABEL_VALUE_RDB_ENTRY_NAME, ++ MENU_LABEL_RDB_ENTRY_PUBLISHER, ++ MENU_LABEL_VALUE_RDB_ENTRY_PUBLISHER, ++ MENU_LABEL_RDB_ENTRY_DEVELOPER, ++ MENU_LABEL_VALUE_RDB_ENTRY_DEVELOPER, ++ MENU_LABEL_RDB_ENTRY_ORIGIN, ++ MENU_LABEL_VALUE_RDB_ENTRY_ORIGIN, ++ MENU_LABEL_RDB_ENTRY_FRANCHISE, ++ MENU_LABEL_VALUE_RDB_ENTRY_FRANCHISE, ++ MENU_LABEL_RDB_ENTRY_ENHANCEMENT_HW, ++ MENU_LABEL_RDB_ENTRY_ESRB_RATING, ++ MENU_LABEL_RDB_ENTRY_BBFC_RATING, ++ MENU_LABEL_RDB_ENTRY_ELSPA_RATING, ++ MENU_LABEL_RDB_ENTRY_PEGI_RATING, ++ MENU_LABEL_RDB_ENTRY_CERO_RATING, ++ MENU_LABEL_RDB_ENTRY_EDGE_MAGAZINE_RATING, ++ MENU_LABEL_RDB_ENTRY_EDGE_MAGAZINE_ISSUE, ++ MENU_LABEL_RDB_ENTRY_EDGE_MAGAZINE_REVIEW, ++ MENU_LABEL_RDB_ENTRY_FAMITSU_MAGAZINE_RATING, ++ MENU_LABEL_RDB_ENTRY_TGDB_RATING, ++ MENU_LABEL_RDB_ENTRY_RELEASE_MONTH, ++ MENU_LABEL_VALUE_RDB_ENTRY_RELEASE_MONTH, ++ MENU_LABEL_RDB_ENTRY_RELEASE_YEAR, ++ MENU_LABEL_VALUE_RDB_ENTRY_RELEASE_YEAR, ++ MENU_LABEL_RDB_ENTRY_MAX_USERS, ++ MENU_LABEL_VALUE_RDB_ENTRY_MAX_USERS, ++ MENU_LABEL_RDB_ENTRY_SHA1, ++ MENU_LABEL_VALUE_RDB_ENTRY_SHA1, ++ MENU_LABEL_VALUE_RDB_ENTRY_MD5, ++ MENU_LABEL_RDB_ENTRY_MD5, ++ MENU_LABEL_RDB_ENTRY_CRC32, ++ MENU_LABEL_VALUE_RDB_ENTRY_CRC32, ++ ++ MENU_LABEL_VIDEO_SHADER_DEFAULT_FILTER, ++ MENU_LABEL_VIDEO_SHADER_FILTER_PASS, ++ MENU_LABEL_VIDEO_SHADER_SCALE_PASS, ++ MENU_LABEL_VALUE_VIDEO_SHADER_NUM_PASSES, ++ MENU_LABEL_VIDEO_SHADER_NUM_PASSES, ++ MENU_LABEL_VALUE_CHEAT_NUM_PASSES, ++ MENU_LABEL_CHEAT_NUM_PASSES, ++ ++ MENU_VALUE_NO_DISK, ++ ++ MENU_VALUE_MD5, ++ MENU_VALUE_SHA1, ++ MENU_VALUE_CRC, ++ MENU_VALUE_MORE, ++ MENU_VALUE_HORIZONTAL_MENU, ++ MENU_VALUE_SETTINGS_TAB, ++ MENU_VALUE_HISTORY_TAB, ++ MENU_VALUE_ADD_TAB, ++ MENU_VALUE_PLAYLISTS_TAB, ++ MENU_VALUE_MAIN_MENU, ++ MENU_LABEL_VALUE_SETTINGS, ++ MENU_VALUE_INPUT_SETTINGS, ++ MENU_VALUE_ON, ++ MENU_VALUE_OFF, ++ MENU_VALUE_TRUE, ++ MENU_VALUE_FALSE, ++ MENU_VALUE_COMP, ++ MENU_VALUE_MUSIC, ++ MENU_VALUE_IMAGE, ++ MENU_VALUE_MOVIE, ++ MENU_VALUE_CORE, ++ MENU_VALUE_CURSOR, ++ MENU_VALUE_FILE, ++ MENU_VALUE_MISSING, ++ MENU_VALUE_PRESENT, ++ MENU_VALUE_OPTIONAL, ++ MENU_VALUE_REQUIRED, ++ MENU_VALUE_RDB, ++ MENU_VALUE_DIR, ++ MENU_VALUE_NO_CORE, ++ MENU_VALUE_DETECT, ++ MENU_VALUE_GLSLP, ++ MENU_VALUE_CGP, ++ MENU_VALUE_GLSL, ++ MENU_VALUE_CG, ++ MENU_VALUE_SLANG, ++ MENU_VALUE_SLANGP, ++ ++ MENU_VALUE_RETROPAD, ++ MENU_VALUE_RETROKEYBOARD, ++ ++ MENU_LABEL_SYSTEM_BGM_ENABLE, ++ MENU_LABEL_VALUE_SYSTEM_BGM_ENABLE, ++ ++ MENU_LABEL_AUDIO_BLOCK_FRAMES, ++ MENU_LABEL_VALUE_AUDIO_BLOCK_FRAMES, ++ ++ MENU_LABEL_INPUT_DESCRIPTOR_LABEL_SHOW, ++ MENU_LABEL_VALUE_INPUT_DESCRIPTOR_LABEL_SHOW, ++ ++ MENU_LABEL_INPUT_DESCRIPTOR_HIDE_UNBOUND, ++ MENU_LABEL_VALUE_INPUT_DESCRIPTOR_HIDE_UNBOUND, ++ ++ MENU_LABEL_INPUT_BIND_MODE, ++ MENU_LABEL_VALUE_INPUT_BIND_MODE, ++ ++ MENU_LABEL_NETWORK_CMD_ENABLE, ++ MENU_LABEL_VALUE_NETWORK_CMD_ENABLE, ++ MENU_LABEL_NETWORK_CMD_PORT, ++ MENU_LABEL_VALUE_NETWORK_CMD_PORT, ++ MENU_LABEL_STDIN_CMD_ENABLE, ++ MENU_LABEL_NETWORK_REMOTE_ENABLE, ++ MENU_LABEL_NETWORK_REMOTE_PORT, ++ ++ MENU_LABEL_VALUE_STDIN_CMD_ENABLE, ++ MENU_LABEL_VALUE_NETWORK_REMOTE_ENABLE, ++ MENU_LABEL_HISTORY_LIST_ENABLE, ++ MENU_LABEL_VALUE_HISTORY_LIST_ENABLE, ++ MENU_LABEL_CONTENT_HISTORY_SIZE, ++ MENU_LABEL_VALUE_CONTENT_HISTORY_SIZE, ++ MENU_LABEL_CONTENT_ACTIONS, ++ MENU_LABEL_DETECT_CORE_LIST, ++ MENU_LABEL_VALUE_DETECT_CORE_LIST, ++ MENU_LABEL_DETECT_CORE_LIST_OK, ++ MENU_LABEL_START_CORE, ++ MENU_LABEL_VALUE_START_CORE, ++ MENU_LABEL_LOAD_CONTENT, ++ MENU_LABEL_VALUE_LOAD_CONTENT, ++ MENU_LABEL_VALUE_CORE_UPDATER_LIST, ++ MENU_LABEL_CORE_UPDATER_LIST, ++ MENU_LABEL_CORE_UPDATER_AUTO_EXTRACT_ARCHIVE, ++ MENU_LABEL_VALUE_CORE_UPDATER_AUTO_EXTRACT_ARCHIVE, ++ MENU_LABEL_CORE_UPDATER_BUILDBOT_URL, ++ MENU_LABEL_VALUE_CORE_UPDATER_BUILDBOT_URL, ++ MENU_LABEL_BUILDBOT_ASSETS_URL, ++ MENU_LABEL_VALUE_BUILDBOT_ASSETS_URL, ++ MENU_LABEL_VIDEO_SHARED_CONTEXT, ++ MENU_LABEL_VALUE_VIDEO_SHARED_CONTEXT, ++ MENU_LABEL_DUMMY_ON_CORE_SHUTDOWN, ++ MENU_LABEL_VALUE_DUMMY_ON_CORE_SHUTDOWN, ++ MENU_LABEL_NAVIGATION_WRAPAROUND, ++ MENU_LABEL_VALUE_NAVIGATION_WRAPAROUND, ++ MENU_LABEL_NAVIGATION_BROWSER_FILTER_SUPPORTED_EXTENSIONS_ENABLE, ++ MENU_LABEL_VALUE_NAVIGATION_BROWSER_FILTER_SUPPORTED_EXTENSIONS_ENABLE, ++ MENU_LABEL_CORE_SET_SUPPORTS_NO_CONTENT_ENABLE, ++ MENU_LABEL_VALUE_CORE_SET_SUPPORTS_NO_CONTENT_ENABLE, ++ MENU_LABEL_CLOSE_CONTENT, ++ MENU_LABEL_VALUE_CLOSE_CONTENT, ++ MENU_LABEL_QUIT_RETROARCH, ++ MENU_LABEL_VALUE_QUIT_RETROARCH, ++ MENU_LABEL_SHUTDOWN, ++ MENU_LABEL_VALUE_SHUTDOWN, ++ MENU_LABEL_REBOOT, ++ MENU_LABEL_VALUE_REBOOT, ++ MENU_LABEL_DEFERRED_VIDEO_FILTER, ++ MENU_LABEL_DEFERRED_CORE_LIST_SET, ++ MENU_LABEL_VALUE_STARTING_DOWNLOAD, ++ MENU_LABEL_DEFERRED_DATABASE_MANAGER_LIST, ++ MENU_LABEL_DEFERRED_CURSOR_MANAGER_LIST, ++ MENU_LABEL_DEFERRED_CURSOR_MANAGER_LIST_RDB_ENTRY_DEVELOPER, ++ MENU_LABEL_DEFERRED_CURSOR_MANAGER_LIST_RDB_ENTRY_PUBLISHER, ++ MENU_LABEL_DEFERRED_CURSOR_MANAGER_LIST_RDB_ENTRY_ORIGIN, ++ MENU_LABEL_DEFERRED_CURSOR_MANAGER_LIST_RDB_ENTRY_FRANCHISE, ++ MENU_LABEL_DEFERRED_CURSOR_MANAGER_LIST_RDB_ENTRY_EDGE_MAGAZINE_RATING, ++ MENU_LABEL_DEFERRED_CURSOR_MANAGER_LIST_RDB_ENTRY_EDGE_MAGAZINE_ISSUE, ++ MENU_LABEL_DEFERRED_CURSOR_MANAGER_LIST_RDB_ENTRY_FAMITSU_MAGAZINE_RATING, ++ MENU_LABEL_DEFERRED_CURSOR_MANAGER_LIST_RDB_ENTRY_ENHANCEMENT_HW, ++ MENU_LABEL_DEFERRED_CURSOR_MANAGER_LIST_RDB_ENTRY_RELEASEMONTH, ++ MENU_LABEL_DEFERRED_CURSOR_MANAGER_LIST_RDB_ENTRY_RELEASEYEAR, ++ MENU_LABEL_DEFERRED_CURSOR_MANAGER_LIST_RDB_ENTRY_ESRB_RATING, ++ MENU_LABEL_DEFERRED_CURSOR_MANAGER_LIST_RDB_ENTRY_ELSPA_RATING, ++ MENU_LABEL_DEFERRED_CURSOR_MANAGER_LIST_RDB_ENTRY_PEGI_RATING, ++ MENU_LABEL_DEFERRED_CURSOR_MANAGER_LIST_RDB_ENTRY_CERO_RATING, ++ MENU_LABEL_DEFERRED_CURSOR_MANAGER_LIST_RDB_ENTRY_BBFC_RATING, ++ MENU_LABEL_DEFERRED_CURSOR_MANAGER_LIST_RDB_ENTRY_MAX_USERS, ++ MENU_LABEL_DEFERRED_RDB_ENTRY_DETAIL, ++ MENU_LABEL_DEFERRED_RPL_ENTRY_ACTIONS, ++ MENU_LABEL_DEFERRED_CORE_LIST, ++ MENU_LABEL_DEFERRED_CORE_UPDATER_LIST, ++ MENU_LABEL_DISK_IMAGE_APPEND, ++ MENU_LABEL_CORE_LIST, ++ MENU_LABEL_VALUE_CORE_LIST, ++ MENU_LABEL_MANAGEMENT, ++ MENU_LABEL_VALUE_MANAGEMENT, ++ MENU_LABEL_ONLINE_UPDATER, ++ MENU_LABEL_VALUE_ONLINE_UPDATER, ++ MENU_LABEL_SETTINGS, ++ MENU_LABEL_FRONTEND_COUNTERS, ++ MENU_LABEL_VALUE_FRONTEND_COUNTERS, ++ MENU_LABEL_VALUE_CORE_COUNTERS, ++ MENU_LABEL_CORE_COUNTERS, ++ MENU_LABEL_LOAD_CONTENT_HISTORY, ++ MENU_LABEL_VALUE_LOAD_CONTENT_HISTORY, ++ MENU_LABEL_NETWORK_INFORMATION, ++ MENU_LABEL_VALUE_NETWORK_INFORMATION, ++ MENU_LABEL_SYSTEM_INFORMATION, ++ MENU_LABEL_DEBUG_INFORMATION, ++ MENU_LABEL_ACHIEVEMENT_LIST, ++ MENU_LABEL_VALUE_SYSTEM_INFORMATION, ++ MENU_LABEL_VALUE_DEBUG_INFORMATION, ++ MENU_LABEL_VALUE_ACHIEVEMENT_LIST, ++ MENU_LABEL_CORE_INFORMATION, ++ MENU_LABEL_VALUE_CORE_INFORMATION, ++ MENU_LABEL_VALUE_VIDEO_SHADER_PARAMETERS, ++ MENU_LABEL_VIDEO_SHADER_PARAMETERS, ++ MENU_LABEL_VIDEO_SHADER_PRESET_PARAMETERS, ++ MENU_LABEL_VALUE_VIDEO_SHADER_PRESET_PARAMETERS, ++ MENU_LABEL_DISK_OPTIONS, ++ MENU_LABEL_VALUE_DISK_OPTIONS, ++ MENU_LABEL_CORE_OPTIONS, ++ MENU_LABEL_DISK_CYCLE_TRAY_STATUS, ++ MENU_LABEL_INPUT_DUTY_CYCLE, ++ MENU_LABEL_VALUE_INPUT_DUTY_CYCLE, ++ MENU_LABEL_VALUE_DISK_CYCLE_TRAY_STATUS, ++ MENU_LABEL_VALUE_NO_CORE_OPTIONS_AVAILABLE, ++ MENU_LABEL_VALUE_DISK_INDEX, ++ MENU_LABEL_VALUE_DISK_IMAGE_APPEND, ++ MENU_LABEL_DISK_INDEX, ++ MENU_LABEL_SHADER_OPTIONS, ++ MENU_LABEL_VALUE_CORE_CHEAT_OPTIONS, ++ MENU_LABEL_CORE_CHEAT_OPTIONS, ++ MENU_LABEL_VALUE_CORE_INPUT_REMAPPING_OPTIONS, ++ MENU_LABEL_CORE_INPUT_REMAPPING_OPTIONS, ++ MENU_LABEL_VALUE_CURSOR_MANAGER, ++ MENU_LABEL_VALUE_DATABASE_MANAGER, ++ MENU_LABEL_DATABASE_MANAGER_LIST, ++ MENU_LABEL_CURSOR_MANAGER_LIST, ++ MENU_LABEL_VIDEO_SHADER_PASS, ++ MENU_LABEL_VALUE_VIDEO_SHADER_PRESET, ++ MENU_LABEL_VIDEO_SHADER_PRESET, ++ MENU_LABEL_CHEAT_FILE_LOAD, ++ MENU_LABEL_VALUE_CHEAT_FILE_LOAD, ++ MENU_LABEL_REMAP_FILE_LOAD, ++ MENU_LABEL_VALUE_REMAP_FILE_LOAD, ++ MENU_LABEL_MESSAGE, ++ MENU_LABEL_INFO_SCREEN, ++ MENU_LABEL_LOAD_OPEN_ZIP, ++ MENU_LABEL_CUSTOM_RATIO, ++ MENU_LABEL_VALUE_CUSTOM_RATIO, ++ MENU_LABEL_HELP, ++ MENU_LABEL_VALUE_HELP, ++ MENU_LABEL_INPUT_OVERLAY, ++ MENU_LABEL_INPUT_OSK_OVERLAY, ++ MENU_LABEL_CHEAT_DATABASE_PATH, ++ MENU_LABEL_VALUE_CHEAT_DATABASE_PATH, ++ MENU_LABEL_CURSOR_DIRECTORY, ++ MENU_LABEL_VALUE_CURSOR_DIRECTORY, ++ MENU_LABEL_AUDIO_OUTPUT_RATE, ++ MENU_LABEL_VALUE_AUDIO_OUTPUT_RATE, ++ MENU_LABEL_OSK_OVERLAY_DIRECTORY, ++ MENU_LABEL_VALUE_OSK_OVERLAY_DIRECTORY, ++ MENU_LABEL_RECORDING_OUTPUT_DIRECTORY, ++ MENU_LABEL_VALUE_RECORDING_OUTPUT_DIRECTORY, ++ MENU_LABEL_RECORDING_CONFIG_DIRECTORY, ++ MENU_LABEL_VALUE_RECORDING_CONFIG_DIRECTORY, ++ MENU_LABEL_VIDEO_FILTER, ++ MENU_LABEL_VALUE_VIDEO_FILTER, ++ MENU_LABEL_PAL60_ENABLE, ++ MENU_LABEL_VALUE_PAL60_ENABLE, ++ MENU_LABEL_CONTENT_HISTORY_PATH, ++ MENU_LABEL_AUDIO_DSP_PLUGIN, ++ MENU_LABEL_VALUE_AUDIO_DSP_PLUGIN, ++ MENU_LABEL_RGUI_BROWSER_DIRECTORY, ++ MENU_LABEL_VALUE_RGUI_BROWSER_DIRECTORY, ++ MENU_LABEL_CONTENT_DATABASE_DIRECTORY, ++ MENU_LABEL_VALUE_CONTENT_DATABASE_DIRECTORY, ++ MENU_LABEL_PLAYLIST_DIRECTORY, ++ MENU_LABEL_VALUE_PLAYLIST_DIRECTORY, ++ MENU_LABEL_CORE_ASSETS_DIRECTORY, ++ MENU_LABEL_VALUE_CORE_ASSETS_DIRECTORY, ++ MENU_LABEL_CONTENT_DIRECTORY, ++ MENU_LABEL_VALUE_SCREENSHOT_DIRECTORY, ++ MENU_LABEL_INPUT_REMAPPING_DIRECTORY, ++ MENU_LABEL_VALUE_INPUT_REMAPPING_DIRECTORY, ++ MENU_LABEL_VIDEO_SHADER_DIR, ++ MENU_LABEL_VALUE_VIDEO_SHADER_DIR, ++ MENU_LABEL_VIDEO_FILTER_DIR, ++ MENU_LABEL_VALUE_VIDEO_FILTER_DIR, ++ MENU_LABEL_AUDIO_FILTER_DIR, ++ MENU_LABEL_VALUE_AUDIO_FILTER_DIR, ++ MENU_LABEL_LIBRETRO_DIR_PATH, ++ MENU_LABEL_VALUE_LIBRETRO_DIR_PATH, ++ MENU_LABEL_LIBRETRO_INFO_PATH, ++ MENU_LABEL_VALUE_LIBRETRO_INFO_PATH, ++ MENU_LABEL_RGUI_CONFIG_DIRECTORY, ++ MENU_LABEL_VALUE_RGUI_CONFIG_DIRECTORY, ++ MENU_LABEL_OVERLAY_DIRECTORY, ++ MENU_LABEL_VALUE_OVERLAY_DIRECTORY, ++ MENU_LABEL_VALUE_SYSTEM_DIRECTORY, ++ MENU_LABEL_ASSETS_DIRECTORY, ++ MENU_LABEL_VALUE_ASSETS_DIRECTORY, ++ MENU_LABEL_CACHE_DIRECTORY, ++ MENU_LABEL_VALUE_CACHE_DIRECTORY, ++ MENU_LABEL_JOYPAD_AUTOCONFIG_DIR, ++ MENU_LABEL_VALUE_JOYPAD_AUTOCONFIG_DIR, ++ MENU_LABEL_INPUT_AUTODETECT_ENABLE, ++ MENU_LABEL_VALUE_INPUT_AUTODETECT_ENABLE, ++ MENU_LABEL_VALUE_DRIVER_SETTINGS, ++ MENU_LABEL_VALUE_CORE_SETTINGS, ++ MENU_LABEL_VALUE_CONFIGURATION_SETTINGS, ++ MENU_LABEL_VALUE_LOGGING_SETTINGS, ++ MENU_LABEL_VALUE_SAVING_SETTINGS, ++ MENU_LABEL_VALUE_REWIND_SETTINGS, ++ MENU_LABEL_VALUE_VIDEO_SETTINGS, ++ MENU_LABEL_RECORDING_SETTINGS, ++ MENU_LABEL_VALUE_RECORDING_SETTINGS, ++ MENU_LABEL_SHADER_SETTINGS, ++ MENU_LABEL_FONT_SETTINGS, ++ MENU_LABEL_AUDIO_SETTINGS, ++ MENU_LABEL_VALUE_AUDIO_SETTINGS, ++ MENU_LABEL_VALUE_INPUT_SETTINGS, ++ MENU_LABEL_INPUT_HOTKEY_SETTINGS, ++ MENU_LABEL_OVERLAY_SETTINGS, ++ MENU_LABEL_VALUE_OVERLAY_SETTINGS, ++ MENU_LABEL_ONSCREEN_KEYBOARD_OVERLAY_SETTINGS, ++ MENU_LABEL_VALUE_MULTIMEDIA_SETTINGS, ++ MENU_LABEL_VALUE_MENU_FILE_BROWSER_SETTINGS, ++ MENU_LABEL_MENU_SETTINGS, ++ MENU_LABEL_VALUE_MENU_SETTINGS, ++ MENU_LABEL_UI_SETTINGS, ++ MENU_LABEL_VALUE_UI_SETTINGS, ++ MENU_LABEL_PATCH_SETTINGS, ++ MENU_LABEL_PLAYLIST_SETTINGS, ++ MENU_LABEL_VALUE_PLAYLIST_SETTINGS, ++ MENU_LABEL_CORE_UPDATER_SETTINGS, ++ MENU_LABEL_VALUE_CORE_UPDATER_SETTINGS, ++ MENU_LABEL_NETWORK_SETTINGS, ++ MENU_LABEL_VALUE_NETWORK_SETTINGS, ++ MENU_LABEL_VALUE_LAKKA_SERVICES, ++ MENU_LABEL_ARCHIVE_SETTINGS, ++ MENU_LABEL_USER_SETTINGS, ++ MENU_LABEL_VALUE_USER_SETTINGS, ++ MENU_LABEL_INPUT_USER_1_BINDS, ++ MENU_LABEL_INPUT_USER_2_BINDS, ++ MENU_LABEL_INPUT_USER_3_BINDS, ++ MENU_LABEL_INPUT_USER_4_BINDS, ++ MENU_LABEL_INPUT_USER_5_BINDS, ++ MENU_LABEL_INPUT_USER_6_BINDS, ++ MENU_LABEL_INPUT_USER_7_BINDS, ++ MENU_LABEL_INPUT_USER_8_BINDS, ++ MENU_LABEL_INPUT_USER_9_BINDS, ++ MENU_LABEL_INPUT_USER_10_BINDS, ++ MENU_LABEL_INPUT_USER_11_BINDS, ++ MENU_LABEL_INPUT_USER_12_BINDS, ++ MENU_LABEL_INPUT_USER_13_BINDS, ++ MENU_LABEL_INPUT_USER_14_BINDS, ++ MENU_LABEL_INPUT_USER_15_BINDS, ++ MENU_LABEL_INPUT_USER_16_BINDS, ++ MENU_LABEL_DIRECTORY_SETTINGS, ++ MENU_LABEL_VALUE_DIRECTORY_SETTINGS, ++ MENU_LABEL_VALUE_PRIVACY_SETTINGS, ++ MENU_LABEL_SHADER_APPLY_CHANGES, ++ MENU_LABEL_VALUE_SHADER_APPLY_CHANGES, ++ MENU_LABEL_SAVE_NEW_CONFIG, ++ MENU_LABEL_VALUE_SAVE_NEW_CONFIG, ++ MENU_LABEL_ONSCREEN_DISPLAY_SETTINGS, ++ MENU_LABEL_VALUE_ONSCREEN_DISPLAY_SETTINGS, ++ MENU_LABEL_VALUE_CHEAT_APPLY_CHANGES, ++ MENU_LABEL_CHEAT_APPLY_CHANGES, ++ MENU_LABEL_CUSTOM_BIND, ++ MENU_LABEL_CUSTOM_BIND_ALL, ++ MENU_LABEL_CUSTOM_BIND_DEFAULTS, ++ MENU_LABEL_SAVESTATE, ++ MENU_LABEL_LOADSTATE, ++ MENU_LABEL_UNDOLOADSTATE, ++ MENU_LABEL_UNDOSAVESTATE, ++ MENU_LABEL_RESUME_CONTENT, ++ MENU_LABEL_VALUE_RESUME_CONTENT, ++ MENU_LABEL_VALUE_RESUME, ++ MENU_LABEL_RESTART_CONTENT, ++ MENU_LABEL_RESTART_RETROARCH, ++ MENU_LABEL_VALUE_RESTART_RETROARCH, ++ MENU_LABEL_VALUE_RESTART_CONTENT, ++ MENU_LABEL_TAKE_SCREENSHOT, ++ MENU_LABEL_VALUE_TAKE_SCREENSHOT, ++ MENU_LABEL_CONFIGURATIONS, ++ MENU_LABEL_VALUE_CONFIGURATIONS, ++ MENU_LABEL_VALUE_CHEAT_FILE_SAVE_AS, ++ MENU_LABEL_CHEAT_FILE_SAVE_AS, ++ MENU_LABEL_VIDEO_SHADER_PRESET_SAVE_AS, ++ MENU_LABEL_VALUE_VIDEO_SHADER_PRESET_SAVE_AS, ++ MENU_LABEL_VALUE_REMAP_FILE_SAVE_CORE, ++ MENU_LABEL_VALUE_REMAP_FILE_SAVE_GAME, ++ MENU_LABEL_REMAP_FILE_SAVE_CORE, ++ MENU_LABEL_REMAP_FILE_SAVE_GAME, ++ MENU_LABEL_CONTENT_COLLECTION_LIST, ++ MENU_LABEL_VALUE_CONTENT_COLLECTION_LIST, ++ MENU_LABEL_VALUE_UNABLE_TO_READ_COMPRESSED_FILE, ++ MENU_LABEL_OSK_ENABLE, ++ MENU_LABEL_AUDIO_MUTE, ++ MENU_LABEL_VALUE_AUDIO_MUTE, ++ MENU_LABEL_EXIT_EMULATOR, ++ MENU_LABEL_COLLECTION, ++ MENU_LABEL_USER_LANGUAGE, ++ MENU_LABEL_VALUE_USER_LANGUAGE, ++ MENU_LABEL_NETPLAY_NICKNAME, ++ MENU_LABEL_VALUE_NETPLAY_NICKNAME, ++ MENU_LABEL_VIDEO_VI_WIDTH, ++ MENU_LABEL_VALUE_VIDEO_VI_WIDTH, ++ ++ MENU_LABEL_VIDEO_FORCE_ASPECT, ++ MENU_LABEL_VALUE_VIDEO_FORCE_ASPECT, ++ ++ MENU_LABEL_VIDEO_ASPECT_RATIO_AUTO, ++ MENU_LABEL_VALUE_VIDEO_ASPECT_RATIO_AUTO, ++ ++ MENU_LABEL_VIDEO_ASPECT_RATIO_INDEX, ++ MENU_LABEL_VALUE_VIDEO_ASPECT_RATIO_INDEX, ++ ++ MENU_LABEL_VIDEO_VFILTER, ++ MENU_LABEL_VALUE_VIDEO_VFILTER, ++ ++ MENU_LABEL_VIDEO_GPU_RECORD, ++ MENU_LABEL_VALUE_VIDEO_GPU_RECORD, ++ ++ MENU_LABEL_RECORD_USE_OUTPUT_DIRECTORY, ++ MENU_LABEL_VALUE_RECORD_USE_OUTPUT_DIRECTORY, ++ ++ MENU_LABEL_RECORD_CONFIG, ++ MENU_LABEL_VALUE_RECORD_CONFIG, ++ ++ MENU_LABEL_RECORD_PATH, ++ MENU_LABEL_VALUE_RECORD_PATH, ++ ++ MENU_LABEL_VIDEO_POST_FILTER_RECORD, ++ MENU_LABEL_VALUE_VIDEO_POST_FILTER_RECORD, ++ ++ MENU_LABEL_RECORD_ENABLE, ++ MENU_LABEL_VALUE_RECORD_ENABLE, ++ ++ MENU_VALUE_SECONDS, ++ MENU_VALUE_STATUS, ++ ++ MENU_LABEL_VALUE_CORE_INFO_CORE_NAME, ++ MENU_LABEL_VALUE_CORE_INFO_CORE_LABEL, ++ MENU_LABEL_VALUE_CORE_INFO_SYSTEM_NAME, ++ MENU_LABEL_VALUE_CORE_INFO_SYSTEM_MANUFACTURER, ++ MENU_LABEL_VALUE_CORE_INFO_CATEGORIES, ++ MENU_LABEL_VALUE_CORE_INFO_AUTHORS, ++ MENU_LABEL_VALUE_CORE_INFO_PERMISSIONS, ++ MENU_LABEL_VALUE_CORE_INFO_LICENSES, ++ MENU_LABEL_VALUE_CORE_INFO_SUPPORTED_EXTENSIONS, ++ MENU_LABEL_VALUE_CORE_INFO_FIRMWARE, ++ MENU_LABEL_VALUE_CORE_INFO_CORE_NOTES, ++ ++ MENU_LABEL_VALUE_SYSTEM_INFO_BUILD_DATE, ++ MENU_LABEL_VALUE_SYSTEM_INFO_GIT_VERSION, ++ MENU_LABEL_VALUE_SYSTEM_INFO_CPU_FEATURES, ++ MENU_LABEL_VALUE_SYSTEM_INFO_FRONTEND_IDENTIFIER, ++ MENU_LABEL_VALUE_SYSTEM_INFO_FRONTEND_NAME, ++ MENU_LABEL_VALUE_SYSTEM_INFO_FRONTEND_OS, ++ MENU_LABEL_VALUE_SYSTEM_INFO_RETRORATING_LEVEL, ++ MENU_LABEL_VALUE_SYSTEM_INFO_POWER_SOURCE, ++ MENU_LABEL_VALUE_SYSTEM_INFO_POWER_SOURCE_NO_SOURCE, ++ MENU_LABEL_VALUE_SYSTEM_INFO_POWER_SOURCE_CHARGING, ++ MENU_LABEL_VALUE_SYSTEM_INFO_POWER_SOURCE_CHARGED, ++ MENU_LABEL_VALUE_SYSTEM_INFO_POWER_SOURCE_DISCHARGING, ++ MENU_LABEL_VALUE_SYSTEM_INFO_VIDEO_CONTEXT_DRIVER, ++ MENU_LABEL_VALUE_SYSTEM_INFO_DISPLAY_METRIC_MM_WIDTH, ++ MENU_LABEL_VALUE_SYSTEM_INFO_DISPLAY_METRIC_MM_HEIGHT, ++ MENU_LABEL_VALUE_SYSTEM_INFO_DISPLAY_METRIC_DPI, ++ MENU_LABEL_VALUE_SYSTEM_INFO_LIBRETRODB_SUPPORT, ++ MENU_LABEL_VALUE_SYSTEM_INFO_OVERLAY_SUPPORT, ++ MENU_LABEL_VALUE_SYSTEM_INFO_COMMAND_IFACE_SUPPORT, ++ MENU_LABEL_VALUE_SYSTEM_INFO_NETWORK_COMMAND_IFACE_SUPPORT, ++ MENU_LABEL_VALUE_SYSTEM_INFO_NETWORK_REMOTE_SUPPORT, ++ MENU_LABEL_VALUE_SYSTEM_INFO_COCOA_SUPPORT, ++ MENU_LABEL_VALUE_SYSTEM_INFO_RTGA_SUPPORT, ++ MENU_LABEL_VALUE_SYSTEM_INFO_RBMP_SUPPORT, ++ MENU_LABEL_VALUE_SYSTEM_INFO_RJPEG_SUPPORT, ++ MENU_LABEL_VALUE_SYSTEM_INFO_RPNG_SUPPORT, ++ MENU_LABEL_VALUE_SYSTEM_INFO_SDL_SUPPORT, ++ MENU_LABEL_VALUE_SYSTEM_INFO_SDL2_SUPPORT, ++ MENU_LABEL_VALUE_SYSTEM_INFO_VULKAN_SUPPORT, ++ MENU_LABEL_VALUE_SYSTEM_INFO_OPENGL_SUPPORT, ++ MENU_LABEL_VALUE_SYSTEM_INFO_OPENGLES_SUPPORT, ++ MENU_LABEL_VALUE_SYSTEM_INFO_THREADING_SUPPORT, ++ MENU_LABEL_VALUE_SYSTEM_INFO_KMS_SUPPORT, ++ MENU_LABEL_VALUE_SYSTEM_INFO_UDEV_SUPPORT, ++ MENU_LABEL_VALUE_SYSTEM_INFO_OPENVG_SUPPORT, ++ MENU_LABEL_VALUE_SYSTEM_INFO_EGL_SUPPORT, ++ MENU_LABEL_VALUE_SYSTEM_INFO_X11_SUPPORT, ++ MENU_LABEL_VALUE_SYSTEM_INFO_WAYLAND_SUPPORT, ++ MENU_LABEL_VALUE_SYSTEM_INFO_XVIDEO_SUPPORT, ++ MENU_LABEL_VALUE_SYSTEM_INFO_ALSA_SUPPORT, ++ MENU_LABEL_VALUE_SYSTEM_INFO_OSS_SUPPORT, ++ MENU_LABEL_VALUE_SYSTEM_INFO_OPENAL_SUPPORT, ++ MENU_LABEL_VALUE_SYSTEM_INFO_OPENSL_SUPPORT, ++ MENU_LABEL_VALUE_SYSTEM_INFO_RSOUND_SUPPORT, ++ MENU_LABEL_VALUE_SYSTEM_INFO_ROARAUDIO_SUPPORT, ++ MENU_LABEL_VALUE_SYSTEM_INFO_JACK_SUPPORT, ++ MENU_LABEL_VALUE_SYSTEM_INFO_PULSEAUDIO_SUPPORT, ++ MENU_LABEL_VALUE_SYSTEM_INFO_DSOUND_SUPPORT, ++ MENU_LABEL_VALUE_SYSTEM_INFO_XAUDIO2_SUPPORT, ++ MENU_LABEL_VALUE_SYSTEM_INFO_ZLIB_SUPPORT, ++ MENU_LABEL_VALUE_SYSTEM_INFO_7ZIP_SUPPORT, ++ MENU_LABEL_VALUE_SYSTEM_INFO_DYLIB_SUPPORT, ++ MENU_LABEL_VALUE_SYSTEM_INFO_CG_SUPPORT, ++ MENU_LABEL_VALUE_SYSTEM_INFO_GLSL_SUPPORT, ++ MENU_LABEL_VALUE_SYSTEM_INFO_HLSL_SUPPORT, ++ MENU_LABEL_VALUE_SYSTEM_INFO_LIBXML2_SUPPORT, ++ MENU_LABEL_VALUE_SYSTEM_INFO_SDL_IMAGE_SUPPORT, ++ MENU_LABEL_VALUE_SYSTEM_INFO_FBO_SUPPORT, ++ MENU_LABEL_VALUE_SYSTEM_INFO_FFMPEG_SUPPORT, ++ MENU_LABEL_VALUE_SYSTEM_INFO_CORETEXT_SUPPORT, ++ MENU_LABEL_VALUE_SYSTEM_INFO_FREETYPE_SUPPORT, ++ MENU_LABEL_VALUE_SYSTEM_INFO_NETPLAY_SUPPORT, ++ MENU_LABEL_VALUE_SYSTEM_INFO_PYTHON_SUPPORT, ++ MENU_LABEL_VALUE_SYSTEM_INFO_V4L2_SUPPORT, ++ MENU_LABEL_VALUE_SYSTEM_INFO_LIBUSB_SUPPORT, ++ ++ MENU_LABEL_VALUE_YES, ++ MENU_LABEL_VALUE_NO, ++ ++ MENU_VALUE_BACK, ++ MENU_VALUE_DISABLED, ++ MENU_VALUE_PORT, ++ ++ MENU_VALUE_LEFT_ANALOG, ++ MENU_VALUE_RIGHT_ANALOG, ++ ++ MENU_VALUE_LANG_ENGLISH, ++ MENU_VALUE_LANG_JAPANESE, ++ MENU_VALUE_LANG_FRENCH, ++ MENU_VALUE_LANG_SPANISH, ++ MENU_VALUE_LANG_GERMAN, ++ MENU_VALUE_LANG_ITALIAN, ++ MENU_VALUE_LANG_DUTCH, ++ MENU_VALUE_LANG_PORTUGUESE, ++ MENU_VALUE_LANG_RUSSIAN, ++ MENU_VALUE_LANG_KOREAN, ++ MENU_VALUE_LANG_CHINESE_TRADITIONAL, ++ MENU_VALUE_LANG_CHINESE_SIMPLIFIED, ++ MENU_VALUE_LANG_ESPERANTO, ++ MENU_VALUE_LANG_POLISH, ++ ++ MENU_VALUE_NONE, ++ ++ MENU_LABEL_VALUE_NO_INFORMATION_AVAILABLE, ++ ++ MENU_LABEL_VALUE_INPUT_USER_BINDS, ++ ++ MENU_LABEL_USE_BUILTIN_IMAGE_VIEWER, ++ MENU_LABEL_VALUE_USE_BUILTIN_IMAGE_VIEWER, ++ ++ MENU_LABEL_OVERLAY_AUTOLOAD_PREFERRED, ++ MENU_LABEL_VALUE_OVERLAY_AUTOLOAD_PREFERRED, ++ ++ MENU_LABEL_OPEN_ARCHIVE, ++ MENU_LABEL_OPEN_ARCHIVE_DETECT_CORE, ++ MENU_LABEL_LOAD_ARCHIVE_DETECT_CORE, ++ MENU_LABEL_LOAD_ARCHIVE, ++ ++ MENU_LABEL_VALUE_OPEN_ARCHIVE, ++ MENU_LABEL_VALUE_LOAD_ARCHIVE, ++ ++ MENU_LABEL_VALUE_WHAT_IS_A_CORE_DESC, ++ ++ MENU_LABEL_HELP_CHANGE_VIRTUAL_GAMEPAD, ++ MENU_LABEL_VALUE_HELP_CHANGE_VIRTUAL_GAMEPAD, ++ MENU_LABEL_VALUE_HELP_CHANGE_VIRTUAL_GAMEPAD_DESC, ++ ++ MENU_LABEL_HELP_AUDIO_VIDEO_TROUBLESHOOTING, ++ MENU_LABEL_VALUE_HELP_AUDIO_VIDEO_TROUBLESHOOTING, ++ MENU_LABEL_VALUE_HELP_AUDIO_VIDEO_TROUBLESHOOTING_DESC, ++ ++ MENU_LABEL_HELP_SCANNING_CONTENT, ++ MENU_LABEL_VALUE_HELP_SCANNING_CONTENT, ++ MENU_LABEL_VALUE_HELP_SCANNING_CONTENT_DESC, ++ ++ MENU_LABEL_SAVE_CURRENT_CONFIG, ++ MENU_LABEL_VALUE_SAVE_CURRENT_CONFIG, ++ ++ MENU_LABEL_INPUT_SMALL_KEYBOARD_ENABLE, ++ MENU_LABEL_VALUE_INPUT_SMALL_KEYBOARD_ENABLE, ++ ++ MENU_LABEL_INPUT_ICADE_ENABLE, ++ MENU_LABEL_VALUE_INPUT_ICADE_ENABLE, ++ ++ CB_CORE_THUMBNAILS_DOWNLOAD ++}; ++ ++const char *menu_hash_to_str_de(enum menu_hash_enums msg); ++int menu_hash_get_help_de(enum menu_hash_enums msg, char *s, size_t len); ++ ++const char *menu_hash_to_str_es(enum menu_hash_enums msg); ++int menu_hash_get_help_es(enum menu_hash_enums msg, char *s, size_t len); ++ ++const char *menu_hash_to_str_fr(enum menu_hash_enums msg); ++int menu_hash_get_help_fr(enum menu_hash_enums msg, char *s, size_t len); ++ ++const char *menu_hash_to_str_it(enum menu_hash_enums msg); ++int menu_hash_get_help_it(enum menu_hash_enums msg, char *s, size_t len); + +-#define MENU_LABEL_UPDATE_CG_SHADERS 0x9473991aU +-#define MENU_LABEL_VALUE_UPDATE_CG_SHADERS 0x22999e5cU ++const char *menu_hash_to_str_nl(enum menu_hash_enums msg); ++int menu_hash_get_help_nl(enum menu_hash_enums msg, char *s, size_t len); + +-#define MENU_LABEL_UPDATE_GLSL_SHADERS 0x2413b762U +-#define MENU_LABEL_VALUE_UPDATE_GLSL_SHADERS 0xe2060484U +- +-#define MENU_LABEL_INFORMATION_LIST 0x225e7606U +-#define MENU_LABEL_VALUE_INFORMATION_LIST 0xd652344bU +- +-#define MENU_LABEL_USE_BUILTIN_PLAYER 0x9927ca74U +-#define MENU_LABEL_VALUE_USE_BUILTIN_PLAYER 0x038e4816U +- +-#define MENU_LABEL_CONTENT_SETTINGS 0xe789f7f6U +-#define MENU_LABEL_VALUE_CONTENT_SETTINGS 0x61b23ff7U +- +-#define MENU_LABEL_LOAD_CONTENT_LIST 0x5745de1fU +-#define MENU_LABEL_VALUE_LOAD_CONTENT_LIST 0x55ff08eaU +- +-#define MENU_LABEL_NO_SETTINGS_FOUND 0xabf77040U +-#define MENU_LABEL_VALUE_NO_SETTINGS_FOUND 0xffcc5b5dU +-#define MENU_LABEL_VALUE_NO_PERFORMANCE_COUNTERS 0xb4b52b95U +- +-#define MENU_LABEL_VIDEO_FONT_ENABLE 0x697d9b58U +-#define MENU_LABEL_VALUE_VIDEO_FONT_ENABLE 0x272a12a6U +-#define MENU_LABEL_VIDEO_FONT_PATH 0xd0de729eU +-#define MENU_LABEL_VALUE_VIDEO_FONT_PATH 0x025c4de7U +-#define MENU_LABEL_VIDEO_FONT_SIZE 0xd0e03a8cU +-#define MENU_LABEL_VALUE_VIDEO_FONT_SIZE 0x026356cbU +-#define MENU_LABEL_VIDEO_MESSAGE_POS_X 0xa133c368U +-#define MENU_LABEL_VALUE_VIDEO_MESSAGE_POS_X 0x4b1ac89dU +-#define MENU_LABEL_VIDEO_MESSAGE_POS_Y 0xa133c369U +-#define MENU_LABEL_VALUE_VIDEO_MESSAGE_POS_Y 0x4f2559beU +- +-#define MENU_LABEL_DEFERRED_INPUT_HOTKEY_BINDS_LIST 0x10b41d97U +-#define MENU_LABEL_INPUT_HOTKEY_BINDS 0x1b7ef2d7U +-#define MENU_LABEL_VALUE_INPUT_HOTKEY_BINDS 0x1cb39c19U +- +-#define MENU_LABEL_VALUE_FRAME_THROTTLE_SETTINGS 0x573b8837U +- +-#define MENU_LABEL_FRAME_THROTTLE_ENABLE 0xbe52e701U +-#define MENU_LABEL_VALUE_FRAME_THROTTLE_ENABLE 0x936f04a8U +- +-#define MENU_LABEL_VIDEO_FILTER_FLICKER 0x2e21eba0U +-#define MENU_LABEL_VALUE_VIDEO_FILTER_FLICKER 0x87c7226bU +- +-#define MENU_LABEL_VIDEO_SOFT_FILTER 0x92819a46U +-#define MENU_LABEL_VALUE_VIDEO_SOFT_FILTER 0xd035df8eU +- +-#define MENU_LABEL_CORE_ENABLE 0x2f37fe48U +-#define MENU_LABEL_VALUE_CORE_ENABLE 0x751e2065U +- +-#define MENU_LABEL_MOUSE_ENABLE 0x1240fa88U +-#define MENU_LABEL_VALUE_MOUSE_ENABLE 0xd5bf366bU +- +-#define MENU_LABEL_SHOW_ADVANCED_SETTINGS 0xbc6ac8dfU +-#define MENU_LABEL_VALUE_SHOW_ADVANCED_SETTINGS 0x851ee46dU +- +-#define MENU_LABEL_POINTER_ENABLE 0xf051a7a0U +-#define MENU_LABEL_VALUE_POINTER_ENABLE 0x1e24b9e5U +- +-#define MENU_LABEL_COLLAPSE_SUBGROUPS_ENABLE 0x585ad75bU +-#define MENU_LABEL_VALUE_COLLAPSE_SUBGROUPS_ENABLE 0xdb677262U +- +-#define MENU_LABEL_RESET 0x10474288U +-#define MENU_LABEL_SLOWMOTION 0x6a269ea0U +-#define MENU_LABEL_HOLD_FAST_FORWARD 0xebe2e4cdU +-#define MENU_LABEL_CHEAT_TOGGLE 0xe515e0cbU +-#define MENU_LABEL_PAUSE_TOGGLE 0x557634e4U +- +-#define MENU_LABEL_PAUSE_LIBRETRO 0xf954afb9U +-#define MENU_LABEL_VALUE_PAUSE_LIBRETRO 0x632ea57fU +- +-#define MENU_LABEL_VALUE_DIRECTORY_NOT_FOUND 0xcdf3c0d5U +-#define MENU_LABEL_VALUE_NO_ITEMS 0x7d33e412U +- +-#define MENU_LABEL_UI_MENUBAR_ENABLE 0x1ddc5492U +-#define MENU_LABEL_VALUE_UI_MENUBAR_ENABLE 0x11927e13U +- +-#define MENU_LABEL_UI_COMPANION_START_ON_BOOT 0x36b23782U +-#define MENU_LABEL_VALUE_UI_COMPANION_START_ON_BOOT 0x94796ba6U +- +-#define MENU_LABEL_ARCHIVE_MODE 0x7fac00cbU +-#define MENU_LABEL_VALUE_ARCHIVE_MODE 0xe4c4b559U +-#define MENU_LABEL_VALUE_SHADER_OPTIONS 0xf3fb0028U +-#define MENU_LABEL_VALUE_USE_THIS_DIRECTORY 0xc5fc9ed9U +-#define MENU_LABEL_USE_THIS_DIRECTORY 0xc51d351dU +-#define MENU_LABEL_VALUE_CORE_OPTIONS 0x1477b95aU +-#define MENU_LABEL_VALUE_NO_SHADER_PARAMETERS 0x8ccc809bU +-#define MENU_LABEL_VALUE_NO_CORE_INFORMATION_AVAILABLE 0x2a11fe80U +-#define MENU_LABEL_VALUE_NO_CORES_AVAILABLE 0xe16bfd0dU +-#define MENU_LABEL_SAVE_STATE 0x3a4849b5U +-#define MENU_LABEL_VALUE_LOAD_STATE 0xd23ba706U +-#define MENU_LABEL_VALUE_UNDO_LOAD_STATE 0xc83f09fcU +-#define MENU_LABEL_VALUE_UNDO_SAVE_STATE 0x341b870bU +-#define MENU_LABEL_VALUE_SAVE_STATE 0x3e182415U +-#define MENU_LABEL_LOAD_STATE 0xa39eb286U +-#define MENU_LABEL_UNDO_LOAD_STATE 0x464aaf5cU +-#define MENU_LABEL_UNDO_SAVE_STATE 0xdcf4468bU +-#define MENU_LABEL_REWIND 0x1931d5aeU +-#define MENU_LABEL_NETPLAY_FLIP_PLAYERS 0x801425abU +-#define MENU_LABEL_CHEAT_INDEX_MINUS 0x57f58b6cU +-#define MENU_LABEL_CHEAT_INDEX_PLUS 0x678542a4U +-#define MENU_LABEL_AUDIO_ENABLE 0x28614f5dU +-#define MENU_LABEL_VALUE_AUDIO_ENABLE 0xcdbb9b9eU +-#define MENU_LABEL_SCREENSHOT_DIRECTORY 0x552612d7U +-#define MENU_LABEL_SHADER_NEXT 0x54d359baU +-#define MENU_LABEL_SHADER_PREV 0x54d4a758U +-#define MENU_LABEL_FRAME_ADVANCE 0xd80302a1U +-#define MENU_LABEL_FPS_SHOW 0x5ea1e10eU +-#define MENU_LABEL_VALUE_FPS_SHOW 0x92588792U +-#define MENU_LABEL_MOVIE_RECORD_TOGGLE 0xa2d2ff04U +-#define MENU_LABEL_L_X_PLUS 0xd7370d4bU +-#define MENU_LABEL_L_X_MINUS 0xbde0aaf3U +-#define MENU_LABEL_L_Y_PLUS 0xd98c35ecU +-#define MENU_LABEL_L_Y_MINUS 0x0adae7b4U +-#define MENU_LABEL_R_X_PLUS 0x60c20a91U +-#define MENU_LABEL_R_X_MINUS 0x78cb50f9U +-#define MENU_LABEL_R_Y_MINUS 0xc5c58dbaU +-#define MENU_LABEL_R_Y_PLUS 0x63173332U +-#define MENU_LABEL_VIDEO_SWAP_INTERVAL 0x5673ff9aU +-#define MENU_LABEL_VALUE_VIDEO_SWAP_INTERVAL 0xe41b3878U +-#define MENU_LABEL_VIDEO_GPU_SCREENSHOT 0xee2fcb44U +-#define MENU_LABEL_VALUE_VIDEO_GPU_SCREENSHOT 0x4af80c36U +-#define MENU_LABEL_PAUSE_NONACTIVE 0x580bf549U +-#define MENU_LABEL_VALUE_PAUSE_NONACTIVE 0xe985d38dU +-#define MENU_LABEL_BLOCK_SRAM_OVERWRITE 0xc4e88d08U +-#define MENU_LABEL_VALUE_BLOCK_SRAM_OVERWRITE 0x9b38260aU +-#define MENU_LABEL_VIDEO_FULLSCREEN 0x9506dd4eU +-#define MENU_LABEL_VALUE_VIDEO_FULLSCREEN 0x232743caU +-#define MENU_LABEL_CORE_SPECIFIC_CONFIG 0x3c9a55e8U +-#define MENU_LABEL_VALUE_CORE_SPECIFIC_CONFIG 0x8b8bec5aU +-#define MENU_LABEL_GAME_SPECIFIC_OPTIONS 0x142ec90fU +-#define MENU_LABEL_VALUE_GAME_SPECIFIC_OPTIONS 0x6aed8a05U +-#define MENU_LABEL_VALUE_GAME_SPECIFIC_OPTIONS_CREATE 0xf8d2456cU +-#define MENU_LABEL_VALUE_GAME_SPECIFIC_OPTIONS_IN_USE 0x06BF9E5F8 +-#define MENU_LABEL_AUTO_OVERRIDES_ENABLE 0x35ff91b6U +-#define MENU_LABEL_VALUE_AUTO_OVERRIDES_ENABLE 0xc21c3a11U +-#define MENU_LABEL_AUTO_REMAPS_ENABLE 0x98c8f98bU +-#define MENU_LABEL_VALUE_AUTO_REMAPS_ENABLE 0x390f9666U +-#define MENU_LABEL_RGUI_SHOW_START_SCREEN 0x6b38f0e8U +-#define MENU_LABEL_VALUE_RGUI_SHOW_START_SCREEN 0x76784454U +-#define MENU_LABEL_VIDEO_BLACK_FRAME_INSERTION 0x53477f5cU +-#define MENU_LABEL_VALUE_VIDEO_BLACK_FRAME_INSERTION 0xb823faa8U +-#define MENU_LABEL_VIDEO_HARD_SYNC_FRAMES 0xce0ece13U +-#define MENU_LABEL_VALUE_VIDEO_HARD_SYNC_FRAMES 0x1edcab0bU +-#define MENU_LABEL_VIDEO_FRAME_DELAY 0xd4aa9df4U +-#define MENU_LABEL_VALUE_VIDEO_FRAME_DELAY 0x990d36bfU +-#define MENU_LABEL_SCREENSHOT 0x9a37f083U +-#define MENU_LABEL_REWIND_GRANULARITY 0xe859cbdfU +-#define MENU_LABEL_VALUE_REWIND_GRANULARITY 0x6e1ae4c0U +-#define MENU_LABEL_VALUE_VIDEO_ROTATION 0x9efcecf5U +-#define MENU_LABEL_THREADED_DATA_RUNLOOP_ENABLE 0xdf5c6d33U +-#define MENU_LABEL_VALUE_THREADED_DATA_RUNLOOP_ENABLE 0x04d8c10fU +-#define MENU_LABEL_VIDEO_THREADED 0x0626179cU +-#define MENU_LABEL_VALUE_VIDEO_THREADED 0xc7524afdU +-#define MENU_LABEL_VALUE_RUN 0x0b881f3aU +-#define MENU_LABEL_SCREEN_RESOLUTION 0x5c9b3a58U +-#define MENU_LABEL_VALUE_SCREEN_RESOLUTION 0xae3c3b19U +- +-#define MENU_LABEL_TITLE_COLOR 0x10059879U +-#define MENU_LABEL_VALUE_TITLE_COLOR 0xea87e1dbU +-#define MENU_LABEL_TIMEDATE_ENABLE 0xd3adcbecU +-#define MENU_LABEL_VALUE_TIMEDATE_ENABLE 0x104bcdf7U +-#define MENU_LABEL_ENTRY_NORMAL_COLOR 0x5154ffd1U +-#define MENU_LABEL_VALUE_ENTRY_NORMAL_COLOR 0xa989a754U +-#define MENU_LABEL_ENTRY_HOVER_COLOR 0x4143cfccU +-#define MENU_LABEL_VALUE_ENTRY_HOVER_COLOR 0xb56f1b0fU +-#define MENU_LABEL_AUDIO_SYNC 0xe0cd6bd3U +-#define MENU_LABEL_VALUE_AUDIO_SYNC 0xcbeb903bU +-#define MENU_LABEL_VIDEO_VSYNC 0x09c2d34eU +-#define MENU_LABEL_VALUE_VIDEO_VSYNC 0xd69cd742U +-#define MENU_LABEL_VIDEO_HARD_SYNC 0xdcd623b6U +-#define MENU_LABEL_VALUE_VIDEO_HARD_SYNC 0x3012142dU +-#define MENU_LABEL_SAVESTATE_AUTO_SAVE 0xf6f4a05bU +-#define MENU_LABEL_SAVESTATE_AUTO_LOAD 0xf6f1028cU +-#define MENU_LABEL_SAVESTATE_AUTO_INDEX 0xd4da8b84U +-#define MENU_LABEL_VALUE_SAVESTATE_AUTO_INDEX 0x29b65b06U +-#define MENU_LABEL_VALUE_SAVESTATE_AUTO_SAVE 0x07391f6eU +-#define MENU_LABEL_VALUE_SAVESTATE_AUTO_LOAD 0x9b5ca25fU +-#define MENU_LABEL_SYSTEM_DIRECTORY 0x35a6fb9eU +-#define MENU_LABEL_VIDEO_DISABLE_COMPOSITION 0x5cbb6222U +-#define MENU_LABEL_VALUE_VIDEO_DISABLE_COMPOSITION 0xa6200347U +-#define MENU_LABEL_SUSPEND_SCREENSAVER_ENABLE 0x459fcb0dU +-#define MENU_LABEL_VALUE_SUSPEND_SCREENSAVER_ENABLE 0xf423ff48U +-#define MENU_LABEL_DPI_OVERRIDE_ENABLE 0xb4bf52c7U +-#define MENU_LABEL_VALUE_DPI_OVERRIDE_ENABLE 0xd535f449U +-#define MENU_LABEL_DPI_OVERRIDE_VALUE 0x543a3efdU +-#define MENU_LABEL_VALUE_DPI_OVERRIDE_VALUE 0x1462aba2U +-#define MENU_LABEL_XMB_SCALE_FACTOR 0x0177E8DF1 +-#define MENU_LABEL_VALUE_XMB_SCALE_FACTOR 0x0DCDBDB13 +-#define MENU_LABEL_XMB_ALPHA_FACTOR 0x01049C5CF +-#define MENU_LABEL_VALUE_XMB_ALPHA_FACTOR 0x0D5A712F1 +-#define MENU_LABEL_XMB_FONT 0x0ECA56CA2 +-#define MENU_LABEL_VALUE_XMB_FONT 0x0020337E7 +-#define MENU_LABEL_XMB_THEME 0x824c5a7eU +-#define MENU_LABEL_VALUE_XMB_THEME 0x3603f65fU +-#define MENU_LABEL_XMB_GRADIENT 0x18e63099U +-#define MENU_LABEL_VALUE_XMB_GRADIENT 0x8a520681U +-#define MENU_LABEL_XMB_SHADOWS_ENABLE 0xd0fcc82aU +-#define MENU_LABEL_VALUE_XMB_SHADOWS_ENABLE 0x5982498cU +-#define MENU_LABEL_XMB_RIBBON_ENABLE 0x8e89c3edU +-#define MENU_LABEL_VALUE_XMB_RIBBON_ENABLE 0xd53e09c8U +-#define MENU_LABEL_VOLUME_UP 0xa66e9681U +-#define MENU_LABEL_VOLUME_DOWN 0xfc64f3d4U +-#define MENU_LABEL_LOG_VERBOSITY 0x6648c96dU +-#define MENU_LABEL_VALUE_LOG_VERBOSITY 0x2f9f6013U +-#define MENU_LABEL_OVERLAY_NEXT 0x7a459145U +-#define MENU_LABEL_AUDIO_VOLUME 0x502173aeU +-#define MENU_LABEL_VALUE_AUDIO_VOLUME 0x0fa6ccfeU +-#define MENU_LABEL_AUDIO_LATENCY 0x32695386U +-#define MENU_LABEL_VALUE_AUDIO_LATENCY 0x89900e38U +-#define MENU_LABEL_NETPLAY_ENABLE 0x607fbd68U +-#define MENU_LABEL_VALUE_NETPLAY_ENABLE 0xbc3e81a9U +-#define MENU_LABEL_SSH_ENABLE 0xd9854a79U +-#define MENU_LABEL_VALUE_SSH_ENABLE 0x0430627aU +-#define MENU_LABEL_SAMBA_ENABLE 0x379e15efU +-#define MENU_LABEL_VALUE_SAMBA_ENABLE 0x9846d9b0U +-#define MENU_LABEL_BLUETOOTH_ENABLE 0xbac1e1e1U +-#define MENU_LABEL_VALUE_BLUETOOTH_ENABLE 0xf7e31e22U +-#define MENU_LABEL_NETPLAY_CLIENT_SWAP_INPUT 0xd87bbba9U +-#define MENU_LABEL_VALUE_NETPLAY_CLIENT_SWAP_INPUT 0x57e5be2dU +-#define MENU_LABEL_NETPLAY_DELAY_FRAMES 0x86b2c48dU +-#define MENU_LABEL_VALUE_NETPLAY_DELAY_FRAMES 0x1ec3edefU +-#define MENU_LABEL_NETPLAY_SPECTATOR_MODE_ENABLE 0x6f9a9440U +-#define MENU_LABEL_VALUE_NETPLAY_SPECTATOR_MODE_ENABLE 0xd78ede3eU +-#define MENU_LABEL_NETPLAY_TCP_UDP_PORT 0x98407774U +-#define MENU_LABEL_VALUE_NETPLAY_TCP_UDP_PORT 0xf1a0cfc6U +-#define MENU_LABEL_SORT_SAVEFILES_ENABLE 0xed0d0df4U +-#define MENU_LABEL_VALUE_SORT_SAVEFILES_ENABLE 0x1a6db795U +-#define MENU_LABEL_SORT_SAVESTATES_ENABLE 0x66ff2495U +-#define MENU_LABEL_VALUE_SORT_SAVESTATES_ENABLE 0x82c5e076U +-#define MENU_LABEL_NETPLAY_IP_ADDRESS 0xac9a53ffU +-#define MENU_LABEL_VALUE_NETPLAY_IP_ADDRESS 0xc7ee4c84U +-#define MENU_LABEL_NETPLAY_MODE 0xc1cf6506U +-#define MENU_LABEL_VALUE_NETPLAY_MODE 0x2da6c748U +-#define MENU_LABEL_PERFCNT_ENABLE 0x6823dbddU +-#define MENU_LABEL_VALUE_PERFCNT_ENABLE 0x20eb18caU +-#define MENU_LABEL_OVERLAY_SCALE 0x2dce2a3dU +-#define MENU_LABEL_VALUE_OVERLAY_SCALE 0x4237794fU +-#define MENU_LABEL_KEYBOARD_OVERLAY_PRESET 0x11f1c582U +-#define MENU_LABEL_VALUE_KEYBOARD_OVERLAY_PRESET 0x7bc03f8bU +-#define MENU_LABEL_OVERLAY_PRESET 0x24e24796U +-#define MENU_LABEL_VALUE_OVERLAY_PRESET 0x8338e89aU +-#define MENU_LABEL_OVERLAY_OPACITY 0xc466fbaeU +-#define MENU_LABEL_VALUE_OVERLAY_OPACITY 0x98605740U +- +-#define MENU_LABEL_MENU_WALLPAPER 0x3b84de01U +-#define MENU_LABEL_VALUE_MENU_WALLPAPER 0x4555d2a2U +-#define MENU_LABEL_DYNAMIC_WALLPAPER 0xf011ccabU +-#define MENU_LABEL_VALUE_DYNAMIC_WALLPAPER 0x66928c32U +-#define MENU_LABEL_THUMBNAILS 0x0a3ec67cU +-#define MENU_LABEL_VALUE_THUMBNAILS 0x88eca25cU +- +-#define MENU_LABEL_FASTFORWARD_RATIO 0x3a0c2706U +-#define MENU_LABEL_VALUE_FASTFORWARD_RATIO 0x3c719749U +-#define MENU_LABEL_VIDEO_MONITOR_INDEX 0xb6fcdc9aU +-#define MENU_LABEL_VALUE_VIDEO_MONITOR_INDEX 0x4cabbfe5U +-#define MENU_LABEL_INPUT_OVERLAY_ENABLE 0xc7b21d5cU +-#define MENU_LABEL_VALUE_INPUT_OVERLAY_ENABLE 0x95a716ddU +-#define MENU_LABEL_INPUT_OSK_OVERLAY_ENABLE 0x7f8339c8U +-#define MENU_LABEL_VALUE_INPUT_OSK_OVERLAY_ENABLE 0x44e487aeU +-#define MENU_LABEL_VIDEO_REFRESH_RATE_AUTO 0x9addb6cdU +-#define MENU_LABEL_VALUE_VIDEO_REFRESH_RATE_AUTO 0xaf24a804U +-#define MENU_LABEL_VIDEO_REFRESH_RATE 0x56ccabf5U +-#define MENU_LABEL_VALUE_VIDEO_REFRESH_RATE 0xdf36d1e0U +-#define MENU_LABEL_VIDEO_WINDOWED_FULLSCREEN 0x6436d6f8U +-#define MENU_LABEL_VALUE_VIDEO_WINDOWED_FULLSCREEN 0x133c7afeU +-#define MENU_LABEL_VIDEO_FORCE_SRGB_DISABLE 0x0a7b68aaU +-#define MENU_LABEL_VALUE_VIDEO_FORCE_SRGB_DISABLE 0xe5bfa9baU +-#define MENU_LABEL_VIDEO_ROTATION 0x4ce6882bU +-#define MENU_LABEL_VIDEO_SCALE 0x09835d63U +-#define MENU_LABEL_VALUE_VIDEO_SCALE 0x5cde89ceU +-#define MENU_LABEL_VIDEO_SMOOTH 0x3aabbb35U +-#define MENU_LABEL_VALUE_VIDEO_SMOOTH 0xeb0723aeU +-#define MENU_LABEL_VIDEO_CROP_OVERSCAN 0x861f7a2fU +-#define MENU_LABEL_VALUE_VIDEO_CROP_OVERSCAN 0xc0b575e2U +-#define MENU_LABEL_VIDEO_SCALE_INTEGER 0x65c4b090U +-#define MENU_LABEL_VALUE_VIDEO_SCALE_INTEGER 0xca090a9bU +- +-#define MENU_LABEL_AUDIO_RATE_CONTROL_DELTA 0xc8bde3cbU +-#define MENU_LABEL_VALUE_AUDIO_RATE_CONTROL_DELTA 0x8d242b0eU +-#define MENU_LABEL_AUDIO_MAX_TIMING_SKEW 0x4c96f75cU +-#define MENU_LABEL_VALUE_AUDIO_MAX_TIMING_SKEW 0x8e873f6eU +- +-#define MENU_LABEL_INPUT_PLAYER1_JOYPAD_INDEX 0xfad6ab2fU +-#define MENU_LABEL_INPUT_PLAYER2_JOYPAD_INDEX 0x3616e4d0U +-#define MENU_LABEL_INPUT_PLAYER3_JOYPAD_INDEX 0x71571e71U +-#define MENU_LABEL_INPUT_PLAYER4_JOYPAD_INDEX 0xac975812U +-#define MENU_LABEL_INPUT_PLAYER5_JOYPAD_INDEX 0xe7d791b3U +- +-#define MENU_LABEL_AUDIO_DEVICE 0x2574eac6U +-#define MENU_LABEL_VALUE_AUDIO_DEVICE 0xcacf3707U +- +-#define MENU_LABEL_REWIND_ENABLE 0x9761e074U +-#define MENU_LABEL_VALUE_REWIND_ENABLE 0xce8cc18eU +-#define MENU_LABEL_ENABLE_HOTKEY 0xc04037bfU +-#define MENU_LABEL_DISK_EJECT_TOGGLE 0x49633fbbU +-#define MENU_LABEL_DISK_NEXT 0xeeaf6c6eU +-#define MENU_LABEL_GRAB_MOUSE_TOGGLE 0xb2869aaaU +-#define MENU_LABEL_MENU_TOGGLE 0xfb22e3dbU +-#define MENU_LABEL_STATE_SLOT_DECREASE 0xe48b8082U +-#define MENU_LABEL_STATE_SLOT_INCREASE 0x36a0cbb0U +- +-#define MENU_LABEL_LIBRETRO_LOG_LEVEL 0x57971ac0U +-#define MENU_LABEL_VALUE_LIBRETRO_LOG_LEVEL 0x4455456dU +- +-#define MENU_LABEL_INPUT_BIND_DEVICE_ID 0xd1ea94ecU +-#define MENU_LABEL_INPUT_BIND_DEVICE_TYPE 0xf6e9f041U +- +-#define MENU_LABEL_AUTOSAVE_INTERVAL 0xecc87351U +-#define MENU_LABEL_VALUE_AUTOSAVE_INTERVAL 0x256f3981U +-#define MENU_LABEL_CONFIG_SAVE_ON_EXIT 0x79b590feU +-#define MENU_LABEL_VALUE_CONFIG_SAVE_ON_EXIT 0x4be88ae3U +- +-#define MENU_LABEL_AUDIO_DRIVER 0x26594002U +-#define MENU_LABEL_VALUE_AUDIO_DRIVER 0xcbb38c43U +- +-#define MENU_LABEL_JOYPAD_DRIVER 0xab124146U +-#define MENU_LABEL_VALUE_JOYPAD_DRIVER 0x18799878U +- +-#define MENU_LABEL_INPUT_DRIVER 0x4c087840U +-#define MENU_LABEL_VALUE_INPUT_DRIVER 0xf162c481U +-#define MENU_LABEL_INPUT_DRIVER_LINUXRAW 0xc33c6b9fU +-#define MENU_LABEL_INPUT_DRIVER_UDEV 0x7c9eeeb9U +- +-#define MENU_LABEL_VIDEO_DRIVER 0x1805a5e7U +-#define MENU_LABEL_VALUE_VIDEO_DRIVER 0xbd5ff228U +-#define MENU_LABEL_VIDEO_DRIVER_GL 0x005977f8U +-#define MENU_LABEL_VIDEO_DRIVER_SDL2 0x7c9dd69aU +-#define MENU_LABEL_VIDEO_DRIVER_SDL1 0x0b88a968U +-#define MENU_LABEL_VIDEO_DRIVER_D3D 0x0b886340U +-#define MENU_LABEL_VIDEO_DRIVER_EXYNOS 0xfc37c54bU +-#define MENU_LABEL_VIDEO_DRIVER_SUNXI 0x10620e3cU +- +-#define MENU_LABEL_LOCATION_DRIVER 0x09189689U +-#define MENU_LABEL_VALUE_LOCATION_DRIVER 0x63f0d6caU +- +-#define MENU_LABEL_MENU_DRIVER 0xd607fb05U +-#define MENU_LABEL_VALUE_MENU_DRIVER 0xee374b46U +- +-#define MENU_LABEL_CAMERA_DRIVER 0xf25db959U +-#define MENU_LABEL_VALUE_CAMERA_DRIVER 0xca42819aU +- +-#define MENU_LABEL_RECORD_DRIVER 0x144cd2cfU +-#define MENU_LABEL_VALUE_RECORD_DRIVER 0xec319b10U +- +-#define MENU_LABEL_AUDIO_RESAMPLER_DRIVER 0xedcba9ecU +-#define MENU_LABEL_VALUE_AUDIO_RESAMPLER_DRIVER 0xb1c4f3ceU +-#define MENU_LABEL_AUDIO_RESAMPLER_DRIVER_SINC 0x7c9dec52U +-#define MENU_LABEL_AUDIO_RESAMPLER_DRIVER_CC 0x0059732bU +- +-#define MENU_LABEL_SAVEFILE_DIRECTORY 0x92773488U +-#define MENU_LABEL_VALUE_SAVEFILE_DIRECTORY 0x418b1929U +-#define MENU_LABEL_SAVESTATE_DIRECTORY 0x90551289U +-#define MENU_LABEL_VALUE_SAVESTATE_DIRECTORY 0xe6e0732aU +-#define MENU_LABEL_DYNAMIC_WALLPAPERS_DIRECTORY 0x62f975b8U +-#define MENU_LABEL_VALUE_DYNAMIC_WALLPAPERS_DIRECTORY 0x0a3a407aU +-#define MENU_LABEL_THUMBNAILS_DIRECTORY 0xdea77410U +-#define MENU_LABEL_VALUE_THUMBNAILS_DIRECTORY 0xcb99d0b1U +- +-#define MENU_LABEL_SLOWMOTION_RATIO 0x626b3ffeU +-#define MENU_LABEL_VALUE_SLOWMOTION_RATIO 0x81c6f8ecU +-#define MENU_LABEL_INPUT_MAX_USERS 0x2720206bU +-#define MENU_LABEL_VALUE_INPUT_MAX_USERS 0xe6b0aefdU +-#define MENU_LABEL_INPUT_REMAP_BINDS_ENABLE 0x536dcafeU +-#define MENU_LABEL_VALUE_INPUT_REMAP_BINDS_ENABLE 0x731709f1U +-#define MENU_LABEL_INPUT_AXIS_THRESHOLD 0xe95c2095U +-#define MENU_LABEL_VALUE_INPUT_AXIS_THRESHOLD 0x3fb34697U +-#define MENU_LABEL_INPUT_TURBO_PERIOD 0xf7a97482U +-#define MENU_LABEL_VALUE_INPUT_TURBO_PERIOD 0x9207b594U +- +-#define MENU_LABEL_VIDEO_GAMMA 0x08a951beU +-#define MENU_LABEL_VALUE_VIDEO_GAMMA 0xc7da99dfU +- +-#define MENU_LABEL_VIDEO_ALLOW_ROTATE 0x2880f0e8U +-#define MENU_LABEL_VALUE_VIDEO_ALLOW_ROTATE 0x29a66fb4U +- +-#define MENU_LABEL_CAMERA_ALLOW 0xc14d302cU +-#define MENU_LABEL_VALUE_CAMERA_ALLOW 0x553824adU +-#define MENU_LABEL_LOCATION_ALLOW 0xf089275cU +-#define MENU_LABEL_VALUE_LOCATION_ALLOW 0xf039239dU +- +-#define MENU_LABEL_TURBO 0x107434f1U +- +-#define MENU_LABEL_NO_PLAYLIST_ENTRIES_AVAILABLE 0x8888c5acU +-#define MENU_LABEL_VALUE_NO_PLAYLIST_ENTRIES_AVAILABLE 0xea82695dU +-#define MENU_LABEL_VALUE_RDB_ENTRY_START_CONTENT 0x2cf73cceU +-#define MENU_LABEL_RDB_ENTRY_ANALOG 0x9081c2ffU +-#define MENU_LABEL_RDB_ENTRY_RUMBLE 0xb8ae8ad4U +-#define MENU_LABEL_RDB_ENTRY_COOP 0x7c953ff6U +-#define MENU_LABEL_RDB_ENTRY_START_CONTENT 0x95025a55U +-#define MENU_LABEL_RDB_ENTRY_DESCRIPTION 0x26aa1f71U +-#define MENU_LABEL_RDB_ENTRY_GENRE 0x9fefab3eU +-#define MENU_LABEL_VALUE_RDB_ENTRY_DESCRIPTION 0xe61a1f69U +-#define MENU_LABEL_VALUE_RDB_ENTRY_GENRE 0x0d3d1136U +-#define MENU_LABEL_RDB_ENTRY_NAME 0xc6ccf92eU +-#define MENU_LABEL_VALUE_RDB_ENTRY_NAME 0x7c898026U +-#define MENU_LABEL_RDB_ENTRY_PUBLISHER 0x4d7bcdfbU +-#define MENU_LABEL_VALUE_RDB_ENTRY_PUBLISHER 0xce7b6ff3U +-#define MENU_LABEL_RDB_ENTRY_DEVELOPER 0x06f61093U +-#define MENU_LABEL_VALUE_RDB_ENTRY_DEVELOPER 0x87f5b28bU +-#define MENU_LABEL_RDB_ENTRY_ORIGIN 0xb176aad5U +-#define MENU_LABEL_VALUE_RDB_ENTRY_ORIGIN 0xc870cfcdU +-#define MENU_LABEL_RDB_ENTRY_FRANCHISE 0xb31764a0U +-#define MENU_LABEL_VALUE_RDB_ENTRY_FRANCHISE 0x34170698U +-#define MENU_LABEL_RDB_ENTRY_ENHANCEMENT_HW 0x79ee4f11U +-#define MENU_LABEL_RDB_ENTRY_ESRB_RATING 0xe138fa3dU +-#define MENU_LABEL_RDB_ENTRY_BBFC_RATING 0x82dbc01eU +-#define MENU_LABEL_RDB_ENTRY_ELSPA_RATING 0x0def0906U +-#define MENU_LABEL_RDB_ENTRY_PEGI_RATING 0xd814cb56U +-#define MENU_LABEL_RDB_ENTRY_CERO_RATING 0x9d436f5aU +-#define MENU_LABEL_RDB_ENTRY_EDGE_MAGAZINE_RATING 0x9735f631U +-#define MENU_LABEL_RDB_ENTRY_EDGE_MAGAZINE_ISSUE 0xd5706415U +-#define MENU_LABEL_RDB_ENTRY_EDGE_MAGAZINE_REVIEW 0x977f6fdeU +-#define MENU_LABEL_RDB_ENTRY_FAMITSU_MAGAZINE_RATING 0x01a50315U +-#define MENU_LABEL_RDB_ENTRY_TGDB_RATING 0x225a9d72U +-#define MENU_LABEL_RDB_ENTRY_RELEASE_MONTH 0xad2f2c54U +-#define MENU_LABEL_VALUE_RDB_ENTRY_RELEASE_MONTH 0xb68af36aU +-#define MENU_LABEL_RDB_ENTRY_RELEASE_YEAR 0x14c9c6bfU +-#define MENU_LABEL_VALUE_RDB_ENTRY_RELEASE_YEAR 0x439e0315U +-#define MENU_LABEL_RDB_ENTRY_MAX_USERS 0xfae91cc4U +-#define MENU_LABEL_VALUE_RDB_ENTRY_MAX_USERS 0xe6b0aefdU +-#define MENU_LABEL_RDB_ENTRY_SHA1 0xc6cfd31aU +-#define MENU_LABEL_VALUE_RDB_ENTRY_SHA1 0x2d142625U +-#define MENU_LABEL_VALUE_RDB_ENTRY_MD5 0xf1ecb7deU +-#define MENU_LABEL_RDB_ENTRY_MD5 0xdf3c7f93U +-#define MENU_LABEL_RDB_ENTRY_CRC32 0x9fae330aU +-#define MENU_LABEL_VALUE_RDB_ENTRY_CRC32 0xc326ab15U +- +-#define MENU_LABEL_VIDEO_SHADER_DEFAULT_FILTER 0x4468cb1bU +-#define MENU_LABEL_VIDEO_SHADER_FILTER_PASS 0x1906c38dU +-#define MENU_LABEL_VIDEO_SHADER_SCALE_PASS 0x18f7b82fU +-#define MENU_LABEL_VALUE_VIDEO_SHADER_NUM_PASSES 0xb354b30bU +-#define MENU_LABEL_VIDEO_SHADER_NUM_PASSES 0x79b2992fU +-#define MENU_LABEL_VALUE_CHEAT_NUM_PASSES 0x8024fa39U +-#define MENU_LABEL_CHEAT_NUM_PASSES 0x1910eb87U +- +-#define MENU_VALUE_NO_DISK 0x7d54e5cdU +- +-#define MENU_VALUE_MD5 0x0b888fabU +-#define MENU_VALUE_SHA1 0x7c9de632U +-#define MENU_VALUE_CRC 0x0b88671dU +-#define MENU_VALUE_MORE 0x0b877cafU +-#define MENU_VALUE_HORIZONTAL_MENU 0x35761704U +-#define MENU_VALUE_SETTINGS_TAB 0x6548d16dU +-#define MENU_VALUE_HISTORY_TAB 0xea9b0ceeU +-#define MENU_VALUE_ADD_TAB 0x7fb20225U +-#define MENU_VALUE_PLAYLISTS_TAB 0x092d3161U +-#define MENU_VALUE_MAIN_MENU 0x1625971fU +-#define MENU_LABEL_VALUE_SETTINGS 0x8aca3ff6U +-#define MENU_VALUE_INPUT_SETTINGS 0xddd30846U +-#define MENU_VALUE_ON 0x005974c2U +-#define MENU_VALUE_OFF 0x0b880c40U +-#define MENU_VALUE_TRUE 0x7c9e9fe5U +-#define MENU_VALUE_FALSE 0x0f6bcef0U +-#define MENU_VALUE_COMP 0x6a166ba5U +-#define MENU_VALUE_MUSIC 0xc4a73997U +-#define MENU_VALUE_IMAGE 0xbab7ebf9U +-#define MENU_VALUE_MOVIE 0xc43c4bf6U +-#define MENU_VALUE_CORE 0x6a167f7fU +-#define MENU_VALUE_CURSOR 0x57bba8b4U +-#define MENU_VALUE_FILE 0x6a496536U +-#define MENU_VALUE_MISSING 0x28536c3fU +-#define MENU_VALUE_PRESENT 0x23432826U +-#define MENU_VALUE_OPTIONAL 0x27bfc4abU +-#define MENU_VALUE_REQUIRED 0x979b1a66U +-#define MENU_VALUE_RDB 0x0b00f54eU +-#define MENU_VALUE_DIR 0x0af95f55U +-#define MENU_VALUE_NO_CORE 0x7d5472cbU +-#define MENU_VALUE_DETECT 0xab8da89eU +-#define MENU_VALUE_GLSLP 0x0f840c87U +-#define MENU_VALUE_CGP 0x0b8865bfU +-#define MENU_VALUE_GLSL 0x7c976537U +-#define MENU_VALUE_CG 0x0059776fU +-#define MENU_VALUE_SLANG 0x105ce63aU +-#define MENU_VALUE_SLANGP 0x1bf9adeaU +- +-#define MENU_VALUE_RETROPAD 0x9e6703e6U +-#define MENU_VALUE_RETROKEYBOARD 0x9d8b6ea2U +- +-#define MENU_LABEL_SYSTEM_BGM_ENABLE 0x9287a1c5U +-#define MENU_LABEL_VALUE_SYSTEM_BGM_ENABLE 0x9025dea7U +- +-#define MENU_LABEL_AUDIO_BLOCK_FRAMES 0xa85a655eU +-#define MENU_LABEL_VALUE_AUDIO_BLOCK_FRAMES 0x118c952eU +- +-#define MENU_LABEL_INPUT_DESCRIPTOR_LABEL_SHOW 0x7eefdf52U +-#define MENU_LABEL_VALUE_INPUT_DESCRIPTOR_LABEL_SHOW 0x78d0ea06U +- +-#define MENU_LABEL_INPUT_DESCRIPTOR_HIDE_UNBOUND 0x7051d870U +-#define MENU_LABEL_VALUE_INPUT_DESCRIPTOR_HIDE_UNBOUND 0xc26ddec5U +- +-#define MENU_LABEL_INPUT_BIND_MODE 0x90281b55U +-#define MENU_LABEL_VALUE_INPUT_BIND_MODE 0xe06b25c7U +- +-#define MENU_LABEL_NETWORK_CMD_ENABLE 0xfdf03a08U +-#define MENU_LABEL_VALUE_NETWORK_CMD_ENABLE 0xb822b7a1U +-#define MENU_LABEL_NETWORK_CMD_PORT 0xc1b9e0a6U +-#define MENU_LABEL_VALUE_NETWORK_CMD_PORT 0xee5773f3U +-#define MENU_LABEL_STDIN_CMD_ENABLE 0x665069c0U +-#define MENU_LABEL_NETWORK_REMOTE_ENABLE 0x99cd4420U +-#define MENU_LABEL_NETWORK_REMOTE_PORT 0x9aef9e18U +- +-#define MENU_LABEL_VALUE_STDIN_CMD_ENABLE 0xc98ecc46U +-#define MENU_LABEL_VALUE_NETWORK_REMOTE_ENABLE 0x32f1f6f1U +-#define MENU_LABEL_HISTORY_LIST_ENABLE 0xe1c2ae78U +-#define MENU_LABEL_VALUE_HISTORY_LIST_ENABLE 0xd2c13bbaU +-#define MENU_LABEL_CONTENT_HISTORY_SIZE 0x6f24c38bU +-#define MENU_LABEL_VALUE_CONTENT_HISTORY_SIZE 0xda9c5a6eU +-#define MENU_LABEL_CONTENT_ACTIONS 0xa0d76970U +-#define MENU_LABEL_DETECT_CORE_LIST 0xaa07c341U +-#define MENU_LABEL_VALUE_DETECT_CORE_LIST 0x2a2ebd1aU +-#define MENU_LABEL_DETECT_CORE_LIST_OK 0xabba2a7aU +-#define MENU_LABEL_START_CORE 0xb0b6ae5bU +-#define MENU_LABEL_VALUE_START_CORE 0x2adef65cU +-#define MENU_LABEL_LOAD_CONTENT 0x828943c3U +-#define MENU_LABEL_VALUE_LOAD_CONTENT 0xf0e39e65U +-#define MENU_LABEL_VALUE_CORE_UPDATER_LIST 0x0372767dU +-#define MENU_LABEL_CORE_UPDATER_LIST 0xe12f4ee3U +-#define MENU_LABEL_CORE_UPDATER_AUTO_EXTRACT_ARCHIVE 0xa3d605f5U +-#define MENU_LABEL_VALUE_CORE_UPDATER_AUTO_EXTRACT_ARCHIVE 0x5248591cU +-#define MENU_LABEL_CORE_UPDATER_BUILDBOT_URL 0xe9ad8448U +-#define MENU_LABEL_VALUE_CORE_UPDATER_BUILDBOT_URL 0x1bc80956U +-#define MENU_LABEL_BUILDBOT_ASSETS_URL 0x1895c71eU +-#define MENU_LABEL_VALUE_BUILDBOT_ASSETS_URL 0xaa0327a0U +-#define MENU_LABEL_VIDEO_SHARED_CONTEXT 0x7d7dad16U +-#define MENU_LABEL_VALUE_VIDEO_SHARED_CONTEXT 0x353d3287U +-#define MENU_LABEL_DUMMY_ON_CORE_SHUTDOWN 0x78579f70U +-#define MENU_LABEL_VALUE_DUMMY_ON_CORE_SHUTDOWN 0xc50126d3U +-#define MENU_LABEL_NAVIGATION_WRAPAROUND 0xe76ad251U +-#define MENU_LABEL_VALUE_NAVIGATION_WRAPAROUND 0x2609b62fU +-#define MENU_LABEL_NAVIGATION_BROWSER_FILTER_SUPPORTED_EXTENSIONS_ENABLE 0xea48426bU +-#define MENU_LABEL_VALUE_NAVIGATION_BROWSER_FILTER_SUPPORTED_EXTENSIONS_ENABLE 0x94af8500U +-#define MENU_LABEL_CORE_SET_SUPPORTS_NO_CONTENT_ENABLE 0x593d2623U +-#define MENU_LABEL_VALUE_CORE_SET_SUPPORTS_NO_CONTENT_ENABLE 0x9614c0b2U +-#define MENU_LABEL_CLOSE_CONTENT 0x4b622170U +-#define MENU_LABEL_VALUE_CLOSE_CONTENT 0x2b3d9556U +-#define MENU_LABEL_QUIT_RETROARCH 0x84b0bc71U +-#define MENU_LABEL_VALUE_QUIT_RETROARCH 0x8e7024f2U +-#define MENU_LABEL_SHUTDOWN 0xfc460361U +-#define MENU_LABEL_VALUE_SHUTDOWN 0x740b6741U +-#define MENU_LABEL_REBOOT 0x19266b70U +-#define MENU_LABEL_VALUE_REBOOT 0xce815750U +-#define MENU_LABEL_DEFERRED_VIDEO_FILTER 0x966ad201U +-#define MENU_LABEL_DEFERRED_CORE_LIST_SET 0xa6d5fdb4U +-#define MENU_LABEL_VALUE_STARTING_DOWNLOAD 0x42e10f03U +-#define MENU_LABEL_DEFERRED_DATABASE_MANAGER_LIST 0x7c0b704fU +-#define MENU_LABEL_DEFERRED_CURSOR_MANAGER_LIST 0x45446638U +-#define MENU_LABEL_DEFERRED_CURSOR_MANAGER_LIST_RDB_ENTRY_DEVELOPER 0xcbd89be5U +-#define MENU_LABEL_DEFERRED_CURSOR_MANAGER_LIST_RDB_ENTRY_PUBLISHER 0x125e594dU +-#define MENU_LABEL_DEFERRED_CURSOR_MANAGER_LIST_RDB_ENTRY_ORIGIN 0x4ebaa767U +-#define MENU_LABEL_DEFERRED_CURSOR_MANAGER_LIST_RDB_ENTRY_FRANCHISE 0x77f9eff2U +-#define MENU_LABEL_DEFERRED_CURSOR_MANAGER_LIST_RDB_ENTRY_EDGE_MAGAZINE_RATING 0x1c7f8a43U +-#define MENU_LABEL_DEFERRED_CURSOR_MANAGER_LIST_RDB_ENTRY_EDGE_MAGAZINE_ISSUE 0xaaeebde7U +-#define MENU_LABEL_DEFERRED_CURSOR_MANAGER_LIST_RDB_ENTRY_FAMITSU_MAGAZINE_RATING 0xbf7ff5e7U +-#define MENU_LABEL_DEFERRED_CURSOR_MANAGER_LIST_RDB_ENTRY_ENHANCEMENT_HW 0x9866bda3U +-#define MENU_LABEL_DEFERRED_CURSOR_MANAGER_LIST_RDB_ENTRY_RELEASEMONTH 0x2b36ce66U +-#define MENU_LABEL_DEFERRED_CURSOR_MANAGER_LIST_RDB_ENTRY_RELEASEYEAR 0x9c7c6e91U +-#define MENU_LABEL_DEFERRED_CURSOR_MANAGER_LIST_RDB_ENTRY_ESRB_RATING 0x68eba20fU +-#define MENU_LABEL_DEFERRED_CURSOR_MANAGER_LIST_RDB_ENTRY_ELSPA_RATING 0x8bf6ab18U +-#define MENU_LABEL_DEFERRED_CURSOR_MANAGER_LIST_RDB_ENTRY_PEGI_RATING 0x5fc77328U +-#define MENU_LABEL_DEFERRED_CURSOR_MANAGER_LIST_RDB_ENTRY_CERO_RATING 0x24f6172cU +-#define MENU_LABEL_DEFERRED_CURSOR_MANAGER_LIST_RDB_ENTRY_BBFC_RATING 0x0a8e67f0U +-#define MENU_LABEL_DEFERRED_CURSOR_MANAGER_LIST_RDB_ENTRY_MAX_USERS 0xbfcba816U +-#define MENU_LABEL_DEFERRED_RDB_ENTRY_DETAIL 0xc35416c0U +-#define MENU_LABEL_DEFERRED_RPL_ENTRY_ACTIONS 0x358a7494U +-#define MENU_LABEL_DEFERRED_CORE_LIST 0xf157d289U +-#define MENU_LABEL_DEFERRED_CORE_UPDATER_LIST 0xc315f682U +-#define MENU_LABEL_DISK_IMAGE_APPEND 0x5af7d709U +-#define MENU_LABEL_CORE_LIST 0xa22bb14dU +-#define MENU_LABEL_VALUE_CORE_LIST 0x0e17fd4eU +-#define MENU_LABEL_MANAGEMENT 0x2516c88aU +-#define MENU_LABEL_VALUE_MANAGEMENT 0x97001d0bU +-#define MENU_LABEL_ONLINE_UPDATER 0xcac0025eU +-#define MENU_LABEL_VALUE_ONLINE_UPDATER 0x9f3dd2bfU +-#define MENU_LABEL_SETTINGS 0x1304dc16U +-#define MENU_LABEL_FRONTEND_COUNTERS 0xe5696877U +-#define MENU_LABEL_VALUE_FRONTEND_COUNTERS 0x5752bcf8U +-#define MENU_LABEL_VALUE_CORE_COUNTERS 0x4610e861U +-#define MENU_LABEL_CORE_COUNTERS 0x64cc83e0U +-#define MENU_LABEL_LOAD_CONTENT_HISTORY 0xfe1d79e5U +-#define MENU_LABEL_VALUE_LOAD_CONTENT_HISTORY 0x5b362286U +-#define MENU_LABEL_NETWORK_INFORMATION 0x73ae3cb4U +-#define MENU_LABEL_VALUE_NETWORK_INFORMATION 0xa0e6d195U +-#define MENU_LABEL_SYSTEM_INFORMATION 0x206ebf0fU +-#define MENU_LABEL_DEBUG_INFORMATION 0xeb0d82b1U +-#define MENU_LABEL_ACHIEVEMENT_LIST 0x7b90fc49U +-#define MENU_LABEL_VALUE_SYSTEM_INFORMATION 0xa62fd7f0U +-#define MENU_LABEL_VALUE_DEBUG_INFORMATION 0xd8569f92U +-#define MENU_LABEL_VALUE_ACHIEVEMENT_LIST 0xf066ac4aU +-#define MENU_LABEL_CORE_INFORMATION 0xb638e0d3U +-#define MENU_LABEL_VALUE_CORE_INFORMATION 0x781981b4U +-#define MENU_LABEL_VALUE_VIDEO_SHADER_PARAMETERS 0x5ace99b3U +-#define MENU_LABEL_VIDEO_SHADER_PARAMETERS 0x9895c3e5U +-#define MENU_LABEL_VIDEO_SHADER_PRESET_PARAMETERS 0xd18158d7U +-#define MENU_LABEL_VALUE_VIDEO_SHADER_PRESET_PARAMETERS 0x57f696abU +-#define MENU_LABEL_DISK_OPTIONS 0xc61ab5fbU +-#define MENU_LABEL_VALUE_DISK_OPTIONS 0xbee508e5U +-#define MENU_LABEL_CORE_OPTIONS 0xf65e60f9U +-#define MENU_LABEL_DISK_CYCLE_TRAY_STATUS 0x3035cdc1U +-#define MENU_LABEL_INPUT_DUTY_CYCLE 0xec787129U +-#define MENU_LABEL_VALUE_INPUT_DUTY_CYCLE 0x451cc9dbU +-#define MENU_LABEL_VALUE_DISK_CYCLE_TRAY_STATUS 0xf44928c4U +-#define MENU_LABEL_VALUE_NO_CORE_OPTIONS_AVAILABLE 0xd064cbe6U +-#define MENU_LABEL_VALUE_DISK_INDEX 0xadbce4a8U +-#define MENU_LABEL_VALUE_DISK_IMAGE_APPEND 0x1cb28c6bU +-#define MENU_LABEL_DISK_INDEX 0x6c14bf54U +-#define MENU_LABEL_SHADER_OPTIONS 0x1f7d2fc7U +-#define MENU_LABEL_VALUE_CORE_CHEAT_OPTIONS 0x8ba478bfU +-#define MENU_LABEL_CORE_CHEAT_OPTIONS 0x9293171dU +-#define MENU_LABEL_VALUE_CORE_INPUT_REMAPPING_OPTIONS 0x7c65016dU +-#define MENU_LABEL_CORE_INPUT_REMAPPING_OPTIONS 0x7836a8caU +-#define MENU_LABEL_VALUE_CURSOR_MANAGER 0xc3696afeU +-#define MENU_LABEL_VALUE_DATABASE_MANAGER 0x6af9d2b5U +-#define MENU_LABEL_DATABASE_MANAGER_LIST 0x7f853d8fU +-#define MENU_LABEL_CURSOR_MANAGER_LIST 0xa969e378U +-#define MENU_LABEL_VIDEO_SHADER_PASS 0x4fa31028U +-#define MENU_LABEL_VALUE_VIDEO_SHADER_PRESET 0xd149336fU +-#define MENU_LABEL_VIDEO_SHADER_PRESET 0xc5d3bae4U +-#define MENU_LABEL_CHEAT_FILE_LOAD 0x57336148U +-#define MENU_LABEL_VALUE_CHEAT_FILE_LOAD 0x5b983e0aU +-#define MENU_LABEL_REMAP_FILE_LOAD 0x9c2799b8U +-#define MENU_LABEL_VALUE_REMAP_FILE_LOAD 0xabdd415aU +-#define MENU_LABEL_MESSAGE 0xbe463eeaU +-#define MENU_LABEL_INFO_SCREEN 0xd97853d0U +-#define MENU_LABEL_LOAD_OPEN_ZIP 0x8aa3c068U +-#define MENU_LABEL_CUSTOM_RATIO 0xf038731eU +-#define MENU_LABEL_VALUE_CUSTOM_RATIO 0x3c94b73fU +-#define MENU_LABEL_HELP 0x7c97d2eeU +-#define MENU_LABEL_VALUE_HELP 0x7c8646ceU +-#define MENU_LABEL_INPUT_OVERLAY 0x24e24796U +-#define MENU_LABEL_INPUT_OSK_OVERLAY 0x11f1c582U +-#define MENU_LABEL_CHEAT_DATABASE_PATH 0x01388b8aU +-#define MENU_LABEL_VALUE_CHEAT_DATABASE_PATH 0x0a883d9fU +-#define MENU_LABEL_CURSOR_DIRECTORY 0xdee8d377U +-#define MENU_LABEL_VALUE_CURSOR_DIRECTORY 0xca1c4018U +-#define MENU_LABEL_AUDIO_OUTPUT_RATE 0x477b97b9U +-#define MENU_LABEL_VALUE_AUDIO_OUTPUT_RATE 0x5d4b0372U +-#define MENU_LABEL_OSK_OVERLAY_DIRECTORY 0xcce86287U +-#define MENU_LABEL_VALUE_OSK_OVERLAY_DIRECTORY 0x8a4000a9U +-#define MENU_LABEL_RECORDING_OUTPUT_DIRECTORY 0x30bece06U +-#define MENU_LABEL_VALUE_RECORDING_OUTPUT_DIRECTORY 0x93a44152U +-#define MENU_LABEL_RECORDING_CONFIG_DIRECTORY 0x3c3f274bU +-#define MENU_LABEL_VALUE_RECORDING_CONFIG_DIRECTORY 0x1f7d918dU +-#define MENU_LABEL_VIDEO_FILTER 0x1c0eb741U +-#define MENU_LABEL_VALUE_VIDEO_FILTER 0xc1690382U +-#define MENU_LABEL_PAL60_ENABLE 0x62bc416eU +-#define MENU_LABEL_VALUE_PAL60_ENABLE 0x05a5bc9aU +-#define MENU_LABEL_CONTENT_HISTORY_PATH 0x6f22fb9dU +-#define MENU_LABEL_AUDIO_DSP_PLUGIN 0x4a69572bU +-#define MENU_LABEL_VALUE_AUDIO_DSP_PLUGIN 0x1c9f180dU +-#define MENU_LABEL_RGUI_BROWSER_DIRECTORY 0xa86cba73U +-#define MENU_LABEL_VALUE_RGUI_BROWSER_DIRECTORY 0x088d411eU +-#define MENU_LABEL_CONTENT_DATABASE_DIRECTORY 0x6b443f80U +-#define MENU_LABEL_VALUE_CONTENT_DATABASE_DIRECTORY 0xccdcaacaU +-#define MENU_LABEL_PLAYLIST_DIRECTORY 0x6361820bU +-#define MENU_LABEL_VALUE_PLAYLIST_DIRECTORY 0x61223c36U +-#define MENU_LABEL_CORE_ASSETS_DIRECTORY 0x8ba5ee54U +-#define MENU_LABEL_VALUE_CORE_ASSETS_DIRECTORY 0x319b6c96U +-#define MENU_LABEL_CONTENT_DIRECTORY 0x7738dc14U +-#define MENU_LABEL_VALUE_SCREENSHOT_DIRECTORY 0x42186f78U +-#define MENU_LABEL_INPUT_REMAPPING_DIRECTORY 0x5233c20bU +-#define MENU_LABEL_VALUE_INPUT_REMAPPING_DIRECTORY 0xe81058adU +-#define MENU_LABEL_VIDEO_SHADER_DIR 0x30f53b10U +-#define MENU_LABEL_VALUE_VIDEO_SHADER_DIR 0xc3770351U +-#define MENU_LABEL_VIDEO_FILTER_DIR 0x67603f1fU +-#define MENU_LABEL_VALUE_VIDEO_FILTER_DIR 0xbb865957U +-#define MENU_LABEL_AUDIO_FILTER_DIR 0x4bd96ebaU +-#define MENU_LABEL_VALUE_AUDIO_FILTER_DIR 0x509bb77cU +-#define MENU_LABEL_LIBRETRO_DIR_PATH 0x1af1eb72U +-#define MENU_LABEL_VALUE_LIBRETRO_DIR_PATH 0xf606d103U +-#define MENU_LABEL_LIBRETRO_INFO_PATH 0xe552b25fU +-#define MENU_LABEL_VALUE_LIBRETRO_INFO_PATH 0x3f39960fU +-#define MENU_LABEL_RGUI_CONFIG_DIRECTORY 0x0cb3e005U +-#define MENU_LABEL_VALUE_RGUI_CONFIG_DIRECTORY 0x20eb5170U +-#define MENU_LABEL_OVERLAY_DIRECTORY 0xc4ed3d1bU +-#define MENU_LABEL_VALUE_OVERLAY_DIRECTORY 0xdb8925bcU +-#define MENU_LABEL_VALUE_SYSTEM_DIRECTORY 0x20da683fU +-#define MENU_LABEL_ASSETS_DIRECTORY 0xde1ae8ecU +-#define MENU_LABEL_VALUE_ASSETS_DIRECTORY 0xc94e558dU +-#define MENU_LABEL_CACHE_DIRECTORY 0x851dfb8dU +-#define MENU_LABEL_VALUE_CACHE_DIRECTORY 0x20a7bc9bU +-#define MENU_LABEL_JOYPAD_AUTOCONFIG_DIR 0x2f4822d8U +-#define MENU_LABEL_VALUE_JOYPAD_AUTOCONFIG_DIR 0x8bb1c2c9U +-#define MENU_LABEL_INPUT_AUTODETECT_ENABLE 0xb1e07facU +-#define MENU_LABEL_VALUE_INPUT_AUTODETECT_ENABLE 0xf5209bdbU +-#define MENU_LABEL_VALUE_DRIVER_SETTINGS 0x81cd2d62U +-#define MENU_LABEL_VALUE_CORE_SETTINGS 0xcddea047U +-#define MENU_LABEL_VALUE_CONFIGURATION_SETTINGS 0x5a1558ceU +-#define MENU_LABEL_VALUE_LOGGING_SETTINGS 0x902c003dU +-#define MENU_LABEL_VALUE_SAVING_SETTINGS 0x32fea87eU +-#define MENU_LABEL_VALUE_REWIND_SETTINGS 0xbff7775fU +-#define MENU_LABEL_VALUE_VIDEO_SETTINGS 0x9dd23badU +-#define MENU_LABEL_RECORDING_SETTINGS 0x1a80b313U +-#define MENU_LABEL_VALUE_RECORDING_SETTINGS 0x1a80b313U +-#define MENU_LABEL_SHADER_SETTINGS 0xd6657e8dU +-#define MENU_LABEL_FONT_SETTINGS 0x67571029U +-#define MENU_LABEL_AUDIO_SETTINGS 0x8f74c888U +-#define MENU_LABEL_VALUE_AUDIO_SETTINGS 0x8f74c888U +-#define MENU_LABEL_VALUE_INPUT_SETTINGS 0xddd30846U +-#define MENU_LABEL_INPUT_HOTKEY_SETTINGS 0x1cb39c19U +-#define MENU_LABEL_OVERLAY_SETTINGS 0x997b2fd5U +-#define MENU_LABEL_VALUE_OVERLAY_SETTINGS 0x997b2fd5U +-#define MENU_LABEL_ONSCREEN_KEYBOARD_OVERLAY_SETTINGS 0xa6de9ba6U +-#define MENU_LABEL_VALUE_MULTIMEDIA_SETTINGS 0x77d23103U +-#define MENU_LABEL_VALUE_MENU_FILE_BROWSER_SETTINGS 0x652cf7efU +-#define MENU_LABEL_MENU_SETTINGS 0x61e4544bU +-#define MENU_LABEL_VALUE_MENU_SETTINGS 0x61e4544bU +-#define MENU_LABEL_UI_SETTINGS 0xf8da6ef4U +-#define MENU_LABEL_VALUE_UI_SETTINGS 0x76ebdc06U +-#define MENU_LABEL_PATCH_SETTINGS 0xa78b0986U +-#define MENU_LABEL_PLAYLIST_SETTINGS 0xdb3e0e07U +-#define MENU_LABEL_VALUE_PLAYLIST_SETTINGS 0x4d276288U +-#define MENU_LABEL_CORE_UPDATER_SETTINGS 0x124ad454U +-#define MENU_LABEL_VALUE_CORE_UPDATER_SETTINGS 0x124ad454U +-#define MENU_LABEL_NETWORK_SETTINGS 0x8b50d180U +-#define MENU_LABEL_VALUE_NETWORK_SETTINGS 0x8b50d180U +-#define MENU_LABEL_VALUE_LAKKA_SERVICES 0x0c113d6dU +-#define MENU_LABEL_ARCHIVE_SETTINGS 0x78e85398U +-#define MENU_LABEL_USER_SETTINGS 0xcdc9a8f5U +-#define MENU_LABEL_VALUE_USER_SETTINGS 0xcdc9a8f5U +-#define MENU_LABEL_INPUT_USER_1_BINDS 0x4d2b4e35U +-#define MENU_LABEL_INPUT_USER_2_BINDS 0x9a258af6U +-#define MENU_LABEL_INPUT_USER_3_BINDS 0xe71fc7b7U +-#define MENU_LABEL_INPUT_USER_4_BINDS 0x341a0478U +-#define MENU_LABEL_INPUT_USER_5_BINDS 0x81144139U +-#define MENU_LABEL_INPUT_USER_6_BINDS 0xce0e7dfaU +-#define MENU_LABEL_INPUT_USER_7_BINDS 0x1b08babbU +-#define MENU_LABEL_INPUT_USER_8_BINDS 0x6802f77cU +-#define MENU_LABEL_INPUT_USER_9_BINDS 0xb4fd343dU +-#define MENU_LABEL_INPUT_USER_10_BINDS 0x70252b05U +-#define MENU_LABEL_INPUT_USER_11_BINDS 0xbd1f67c6U +-#define MENU_LABEL_INPUT_USER_12_BINDS 0x0a19a487U +-#define MENU_LABEL_INPUT_USER_13_BINDS 0x5713e148U +-#define MENU_LABEL_INPUT_USER_14_BINDS 0xa40e1e09U +-#define MENU_LABEL_INPUT_USER_15_BINDS 0xf1085acaU +-#define MENU_LABEL_INPUT_USER_16_BINDS 0x3e02978bU +-#define MENU_LABEL_DIRECTORY_SETTINGS 0xb817bd2bU +-#define MENU_LABEL_VALUE_DIRECTORY_SETTINGS 0xb817bd2bU +-#define MENU_LABEL_VALUE_PRIVACY_SETTINGS 0xce106254U +-#define MENU_LABEL_SHADER_APPLY_CHANGES 0x4f7306b9U +-#define MENU_LABEL_VALUE_SHADER_APPLY_CHANGES 0x5ecf945bU +-#define MENU_LABEL_SAVE_NEW_CONFIG 0xcce9ab72U +-#define MENU_LABEL_VALUE_SAVE_NEW_CONFIG 0xd49f2c94U +-#define MENU_LABEL_ONSCREEN_DISPLAY_SETTINGS 0x67571029U +-#define MENU_LABEL_VALUE_ONSCREEN_DISPLAY_SETTINGS 0x67571029U +-#define MENU_LABEL_VALUE_CHEAT_APPLY_CHANGES 0x7d5d3489U +-#define MENU_LABEL_CHEAT_APPLY_CHANGES 0xde88aa27U +-#define MENU_LABEL_CUSTOM_BIND 0x1e84b3fcU +-#define MENU_LABEL_CUSTOM_BIND_ALL 0x79ac14f4U +-#define MENU_LABEL_CUSTOM_BIND_DEFAULTS 0xe88f7b13U +-#define MENU_LABEL_SAVESTATE 0x3a4849b5U +-#define MENU_LABEL_LOADSTATE 0xa39eb286U +-#define MENU_LABEL_UNDOLOADSTATE 0x464aaf5cU +-#define MENU_LABEL_UNDOSAVESTATE 0xdcf4468bU +-#define MENU_LABEL_RESUME_CONTENT 0xd9f088b0U +-#define MENU_LABEL_VALUE_RESUME_CONTENT 0xae6e5911U +-#define MENU_LABEL_VALUE_RESUME 0xce8ac2f6U +-#define MENU_LABEL_RESTART_CONTENT 0x1ea2e224U +-#define MENU_LABEL_RESTART_RETROARCH 0xb57d3d73U +-#define MENU_LABEL_VALUE_RESTART_RETROARCH 0xcc0799f4U +-#define MENU_LABEL_VALUE_RESTART_CONTENT 0xf23a2e85U +-#define MENU_LABEL_TAKE_SCREENSHOT 0x6786e867U +-#define MENU_LABEL_VALUE_TAKE_SCREENSHOT 0xab767128U +-#define MENU_LABEL_CONFIGURATIONS 0x3e930a50U +-#define MENU_LABEL_VALUE_CONFIGURATIONS 0xce036cfdU +-#define MENU_LABEL_VALUE_CHEAT_FILE_SAVE_AS 0xf2498a2dU +-#define MENU_LABEL_CHEAT_FILE_SAVE_AS 0x1f58dccaU +-#define MENU_LABEL_VIDEO_SHADER_PRESET_SAVE_AS 0x3d6e5ce5U +-#define MENU_LABEL_VALUE_VIDEO_SHADER_PRESET_SAVE_AS 0x405d77b2U +-#define MENU_LABEL_VALUE_REMAP_FILE_SAVE_CORE 0xd9891572U +-#define MENU_LABEL_VALUE_REMAP_FILE_SAVE_GAME 0x9c487623U +-#define MENU_LABEL_REMAP_FILE_SAVE_CORE 0x7c9d4c8fU +-#define MENU_LABEL_REMAP_FILE_SAVE_GAME 0x7c9f41e0U +-#define MENU_LABEL_CONTENT_COLLECTION_LIST 0x32d1df83U +-#define MENU_LABEL_VALUE_CONTENT_COLLECTION_LIST 0xdb177ea0U +-#define MENU_LABEL_VALUE_UNABLE_TO_READ_COMPRESSED_FILE 0xbae7be3eU +-#define MENU_LABEL_OSK_ENABLE 0x8e208498U +-#define MENU_LABEL_AUDIO_MUTE 0xe0ca1151U +-#define MENU_LABEL_VALUE_AUDIO_MUTE 0x5af25952U +-#define MENU_LABEL_EXIT_EMULATOR 0x86d5d467U +-#define MENU_LABEL_COLLECTION 0x5fea5991U +-#define MENU_LABEL_USER_LANGUAGE 0x33ebaa27U +-#define MENU_LABEL_VALUE_USER_LANGUAGE 0xd230a5a9U +-#define MENU_LABEL_NETPLAY_NICKNAME 0x52204787U +-#define MENU_LABEL_VALUE_NETPLAY_NICKNAME 0x75de3125U +-#define MENU_LABEL_VIDEO_VI_WIDTH 0x6e4a6d3aU +-#define MENU_LABEL_VALUE_VIDEO_VI_WIDTH 0x03c07e50U +- +-#define MENU_LABEL_VIDEO_FORCE_ASPECT 0x8bbf9329U +-#define MENU_LABEL_VALUE_VIDEO_FORCE_ASPECT 0xa5590df3U +- +-#define MENU_LABEL_VIDEO_ASPECT_RATIO_AUTO 0xa7c31991U +-#define MENU_LABEL_VALUE_VIDEO_ASPECT_RATIO_AUTO 0x40bd9f87U +- +-#define MENU_LABEL_VIDEO_ASPECT_RATIO_INDEX 0x3b01a19aU +-#define MENU_LABEL_VALUE_VIDEO_ASPECT_RATIO_INDEX 0x9ce00246U +- +-#define MENU_LABEL_VIDEO_VFILTER 0x664f8397U +-#define MENU_LABEL_VALUE_VIDEO_VFILTER 0xd58b0158U +- +-#define MENU_LABEL_VIDEO_GPU_RECORD 0xb6059a65U +-#define MENU_LABEL_VALUE_VIDEO_GPU_RECORD 0x2241deb7U +- +-#define MENU_LABEL_RECORD_USE_OUTPUT_DIRECTORY 0x8343eff4U +-#define MENU_LABEL_VALUE_RECORD_USE_OUTPUT_DIRECTORY 0x8282ff38U +- +-#define MENU_LABEL_RECORD_CONFIG 0x11c3daf9U +-#define MENU_LABEL_VALUE_RECORD_CONFIG 0xe9a8a33aU +- +-#define MENU_LABEL_RECORD_PATH 0x016d7afaU +-#define MENU_LABEL_VALUE_RECORD_PATH 0xeb15a0f1U +- +-#define MENU_LABEL_VIDEO_POST_FILTER_RECORD 0xa7b6e724U +-#define MENU_LABEL_VALUE_VIDEO_POST_FILTER_RECORD 0x1362eaf7U +- +-#define MENU_LABEL_RECORD_ENABLE 0x1654e22aU +-#define MENU_LABEL_VALUE_RECORD_ENABLE 0xee39aa6bU +- +-#define MENU_VALUE_SECONDS 0x8b0028d4U +-#define MENU_VALUE_STATUS 0xd1e57929U +- +-#define MENU_LABEL_VALUE_CORE_INFO_CORE_NAME 0x2a031110U +-#define MENU_LABEL_VALUE_CORE_INFO_CORE_LABEL 0x6a40d38fU +-#define MENU_LABEL_VALUE_CORE_INFO_SYSTEM_NAME 0xaff88f0cU +-#define MENU_LABEL_VALUE_CORE_INFO_SYSTEM_MANUFACTURER 0x03be7018U +-#define MENU_LABEL_VALUE_CORE_INFO_CATEGORIES 0xac3a39edU +-#define MENU_LABEL_VALUE_CORE_INFO_AUTHORS 0x7167c44dU +-#define MENU_LABEL_VALUE_CORE_INFO_PERMISSIONS 0x25d21423U +-#define MENU_LABEL_VALUE_CORE_INFO_LICENSES 0x019b14bdU +-#define MENU_LABEL_VALUE_CORE_INFO_SUPPORTED_EXTENSIONS 0xb8ff231cU +-#define MENU_LABEL_VALUE_CORE_INFO_FIRMWARE 0x9ba2e164U +-#define MENU_LABEL_VALUE_CORE_INFO_CORE_NOTES 0x6a6cfe78U +- +-#define MENU_LABEL_VALUE_SYSTEM_INFO_BUILD_DATE 0xbab040f0U +-#define MENU_LABEL_VALUE_SYSTEM_INFO_GIT_VERSION 0x333df14cU +-#define MENU_LABEL_VALUE_SYSTEM_INFO_CPU_FEATURES 0x9515e369U +-#define MENU_LABEL_VALUE_SYSTEM_INFO_FRONTEND_IDENTIFIER 0x35817c25U +-#define MENU_LABEL_VALUE_SYSTEM_INFO_FRONTEND_NAME 0x45d9b0e3U +-#define MENU_LABEL_VALUE_SYSTEM_INFO_FRONTEND_OS 0x412e46a4U +-#define MENU_LABEL_VALUE_SYSTEM_INFO_RETRORATING_LEVEL 0xcc6a17ebU +-#define MENU_LABEL_VALUE_SYSTEM_INFO_POWER_SOURCE 0xcda91ae0U +-#define MENU_LABEL_VALUE_SYSTEM_INFO_POWER_SOURCE_NO_SOURCE 0x0ed5776cU +-#define MENU_LABEL_VALUE_SYSTEM_INFO_POWER_SOURCE_CHARGING 0x2b226d62U +-#define MENU_LABEL_VALUE_SYSTEM_INFO_POWER_SOURCE_CHARGED 0x75abb52dU +-#define MENU_LABEL_VALUE_SYSTEM_INFO_POWER_SOURCE_DISCHARGING 0x48c36402U +-#define MENU_LABEL_VALUE_SYSTEM_INFO_VIDEO_CONTEXT_DRIVER 0x32f901e9U +-#define MENU_LABEL_VALUE_SYSTEM_INFO_DISPLAY_METRIC_MM_WIDTH 0x86a53f14U +-#define MENU_LABEL_VALUE_SYSTEM_INFO_DISPLAY_METRIC_MM_HEIGHT 0x3809e50dU +-#define MENU_LABEL_VALUE_SYSTEM_INFO_DISPLAY_METRIC_DPI 0xaf2540b8U +-#define MENU_LABEL_VALUE_SYSTEM_INFO_LIBRETRODB_SUPPORT 0x3e91f988U +-#define MENU_LABEL_VALUE_SYSTEM_INFO_OVERLAY_SUPPORT 0x9e893c21U +-#define MENU_LABEL_VALUE_SYSTEM_INFO_COMMAND_IFACE_SUPPORT 0x91a47d95U +-#define MENU_LABEL_VALUE_SYSTEM_INFO_NETWORK_COMMAND_IFACE_SUPPORT 0x9c9c8e3eU +-#define MENU_LABEL_VALUE_SYSTEM_INFO_NETWORK_REMOTE_SUPPORT 0x1a817f5bU +-#define MENU_LABEL_VALUE_SYSTEM_INFO_COCOA_SUPPORT 0x89849204U +-#define MENU_LABEL_VALUE_SYSTEM_INFO_RTGA_SUPPORT 0x9615b53eU +-#define MENU_LABEL_VALUE_SYSTEM_INFO_RBMP_SUPPORT 0x211afc81U +-#define MENU_LABEL_VALUE_SYSTEM_INFO_RJPEG_SUPPORT 0xc70a5ea8U +-#define MENU_LABEL_VALUE_SYSTEM_INFO_RPNG_SUPPORT 0xe1dcea36U +-#define MENU_LABEL_VALUE_SYSTEM_INFO_SDL_SUPPORT 0xf9bc2a42U +-#define MENU_LABEL_VALUE_SYSTEM_INFO_SDL2_SUPPORT 0x3c2d6134U +-#define MENU_LABEL_VALUE_SYSTEM_INFO_VULKAN_SUPPORT 0x6a06e373U +-#define MENU_LABEL_VALUE_SYSTEM_INFO_OPENGL_SUPPORT 0xa4d164a4U +-#define MENU_LABEL_VALUE_SYSTEM_INFO_OPENGLES_SUPPORT 0xe2e627dcU +-#define MENU_LABEL_VALUE_SYSTEM_INFO_THREADING_SUPPORT 0x282bf995U +-#define MENU_LABEL_VALUE_SYSTEM_INFO_KMS_SUPPORT 0x229cb16aU +-#define MENU_LABEL_VALUE_SYSTEM_INFO_UDEV_SUPPORT 0xe34a0833U +-#define MENU_LABEL_VALUE_SYSTEM_INFO_OPENVG_SUPPORT 0x9b01b08eU +-#define MENU_LABEL_VALUE_SYSTEM_INFO_EGL_SUPPORT 0xbac9f417U +-#define MENU_LABEL_VALUE_SYSTEM_INFO_X11_SUPPORT 0xfea303f9U +-#define MENU_LABEL_VALUE_SYSTEM_INFO_WAYLAND_SUPPORT 0xd590cd8fU +-#define MENU_LABEL_VALUE_SYSTEM_INFO_XVIDEO_SUPPORT 0x79dc360eU +-#define MENU_LABEL_VALUE_SYSTEM_INFO_ALSA_SUPPORT 0xe58b1160U +-#define MENU_LABEL_VALUE_SYSTEM_INFO_OSS_SUPPORT 0x504eed34U +-#define MENU_LABEL_VALUE_SYSTEM_INFO_OPENAL_SUPPORT 0x8c91fddeU +-#define MENU_LABEL_VALUE_SYSTEM_INFO_OPENSL_SUPPORT 0xd5503230U +-#define MENU_LABEL_VALUE_SYSTEM_INFO_RSOUND_SUPPORT 0x4c20387aU +-#define MENU_LABEL_VALUE_SYSTEM_INFO_ROARAUDIO_SUPPORT 0xb7793da5U +-#define MENU_LABEL_VALUE_SYSTEM_INFO_JACK_SUPPORT 0x2f50e7f8U +-#define MENU_LABEL_VALUE_SYSTEM_INFO_PULSEAUDIO_SUPPORT 0xe8d32f1aU +-#define MENU_LABEL_VALUE_SYSTEM_INFO_DSOUND_SUPPORT 0x0e9d11acU +-#define MENU_LABEL_VALUE_SYSTEM_INFO_XAUDIO2_SUPPORT 0xb1f1735bU +-#define MENU_LABEL_VALUE_SYSTEM_INFO_ZLIB_SUPPORT 0xf961f590U +-#define MENU_LABEL_VALUE_SYSTEM_INFO_7ZIP_SUPPORT 0xf1fc48e9U +-#define MENU_LABEL_VALUE_SYSTEM_INFO_DYLIB_SUPPORT 0xcee4aad3U +-#define MENU_LABEL_VALUE_SYSTEM_INFO_CG_SUPPORT 0xef0baba9U +-#define MENU_LABEL_VALUE_SYSTEM_INFO_GLSL_SUPPORT 0x0c981cb1U +-#define MENU_LABEL_VALUE_SYSTEM_INFO_HLSL_SUPPORT 0x3d8b7a12U +-#define MENU_LABEL_VALUE_SYSTEM_INFO_LIBXML2_SUPPORT 0xdce2d3f9U +-#define MENU_LABEL_VALUE_SYSTEM_INFO_SDL_IMAGE_SUPPORT 0x98b4d864U +-#define MENU_LABEL_VALUE_SYSTEM_INFO_FBO_SUPPORT 0x896726b6U +-#define MENU_LABEL_VALUE_SYSTEM_INFO_FFMPEG_SUPPORT 0xb9a9fd34U +-#define MENU_LABEL_VALUE_SYSTEM_INFO_CORETEXT_SUPPORT 0x7d248acdU +-#define MENU_LABEL_VALUE_SYSTEM_INFO_FREETYPE_SUPPORT 0x00f65983U +-#define MENU_LABEL_VALUE_SYSTEM_INFO_NETPLAY_SUPPORT 0x50a8ce7cU +-#define MENU_LABEL_VALUE_SYSTEM_INFO_PYTHON_SUPPORT 0x71cc9801U +-#define MENU_LABEL_VALUE_SYSTEM_INFO_V4L2_SUPPORT 0x793c2547U +-#define MENU_LABEL_VALUE_SYSTEM_INFO_LIBUSB_SUPPORT 0x7dc8b560U +- +-#define MENU_LABEL_VALUE_YES 0x957cbc05U +-#define MENU_LABEL_VALUE_NO 0x521b0c11U +- +-#define MENU_VALUE_BACK 0x7c825df6U +-#define MENU_VALUE_DISABLED 0xe326e01dU +-#define MENU_VALUE_PORT 0x7c8ad52aU +- +-#define MENU_VALUE_LEFT_ANALOG 0xd168d0e2U +-#define MENU_VALUE_RIGHT_ANALOG 0xf9244335U +- +-#define MENU_VALUE_LANG_ENGLISH 0xcb4e554fU +-#define MENU_VALUE_LANG_JAPANESE 0xfde6f60cU +-#define MENU_VALUE_LANG_FRENCH 0xb3704d9bU +-#define MENU_VALUE_LANG_SPANISH 0x053c7edbU +-#define MENU_VALUE_LANG_GERMAN 0xb4e1541fU +-#define MENU_VALUE_LANG_ITALIAN 0x0cc9a6c7U +-#define MENU_VALUE_LANG_DUTCH 0x0d0fa55dU +-#define MENU_VALUE_LANG_PORTUGUESE 0x2a19df58U +-#define MENU_VALUE_LANG_RUSSIAN 0xc53481eaU +-#define MENU_VALUE_LANG_KOREAN 0xbeeac9a5U +-#define MENU_VALUE_LANG_CHINESE_TRADITIONAL 0x43f172d0U +-#define MENU_VALUE_LANG_CHINESE_SIMPLIFIED 0x1ae5ee5bU +-#define MENU_VALUE_LANG_ESPERANTO 0x1a933a76U +-#define MENU_VALUE_LANG_POLISH 0xca915dd4U +- +-#define MENU_VALUE_NONE 0x7c89bbd5U +- +-#define MENU_LABEL_VALUE_NO_INFORMATION_AVAILABLE 0xbae2c7f6U +- +-#define MENU_LABEL_VALUE_INPUT_USER_BINDS 0x75fda711U +- +-#define MENU_LABEL_USE_BUILTIN_IMAGE_VIEWER 0x5203b5bbU +-#define MENU_LABEL_VALUE_USE_BUILTIN_IMAGE_VIEWER 0x1ab45d3eU +- +-#define MENU_LABEL_OVERLAY_AUTOLOAD_PREFERRED 0xc9298cbdU +-#define MENU_LABEL_VALUE_OVERLAY_AUTOLOAD_PREFERRED 0x0e27e33fU +- +-#define MENU_LABEL_OPEN_ARCHIVE 0x78c0ca58U +-#define MENU_LABEL_OPEN_ARCHIVE_DETECT_CORE 0x92442638U +-#define MENU_LABEL_LOAD_ARCHIVE_DETECT_CORE 0x681f2f46U +-#define MENU_LABEL_LOAD_ARCHIVE 0xc3834e66U +- +-#define MENU_LABEL_VALUE_OPEN_ARCHIVE 0x96da22b9U +-#define MENU_LABEL_VALUE_LOAD_ARCHIVE 0xe19ca6c7U +- +-#define MENU_LABEL_VALUE_WHAT_IS_A_CORE_DESC 0xc832957eU +- +-#define MENU_LABEL_HELP_CHANGE_VIRTUAL_GAMEPAD 0x6e66ef07U +-#define MENU_LABEL_VALUE_HELP_CHANGE_VIRTUAL_GAMEPAD 0x27ed0204U +-#define MENU_LABEL_VALUE_HELP_CHANGE_VIRTUAL_GAMEPAD_DESC 0x9d0e79dbU +- +-#define MENU_LABEL_HELP_AUDIO_VIDEO_TROUBLESHOOTING 0xd44d395cU +-#define MENU_LABEL_VALUE_HELP_AUDIO_VIDEO_TROUBLESHOOTING 0xd0e5c3ffU +-#define MENU_LABEL_VALUE_HELP_AUDIO_VIDEO_TROUBLESHOOTING_DESC 0x60031d7aU +- +-#define MENU_LABEL_HELP_SCANNING_CONTENT 0x1dec52b8U +-#define MENU_LABEL_VALUE_HELP_SCANNING_CONTENT 0x74b36f11U +-#define MENU_LABEL_VALUE_HELP_SCANNING_CONTENT_DESC 0xac947056U +- +-#define MENU_LABEL_SAVE_CURRENT_CONFIG 0x8840ba8bU +-#define MENU_LABEL_VALUE_SAVE_CURRENT_CONFIG 0x9a1eb42dU +- +-#define MENU_LABEL_INPUT_SMALL_KEYBOARD_ENABLE 0xe6736fc3U +-#define MENU_LABEL_VALUE_INPUT_SMALL_KEYBOARD_ENABLE 0xc5eefd76U +- +-#define MENU_LABEL_INPUT_ICADE_ENABLE 0xcd534dd0U +-#define MENU_LABEL_VALUE_INPUT_ICADE_ENABLE 0x67b18ee2U +- +-#define CB_CORE_THUMBNAILS_DOWNLOAD 0xc9d6519fU +- +-const char *menu_hash_to_str_de(uint32_t hash); +-int menu_hash_get_help_de(uint32_t hash, char *s, size_t len); +- +-const char *menu_hash_to_str_es(uint32_t hash); +-int menu_hash_get_help_es(uint32_t hash, char *s, size_t len); +- +-const char *menu_hash_to_str_fr(uint32_t hash); +-int menu_hash_get_help_fr(uint32_t hash, char *s, size_t len); +- +-const char *menu_hash_to_str_it(uint32_t hash); +-int menu_hash_get_help_it(uint32_t hash, char *s, size_t len); ++const char *menu_hash_to_str_pl(enum menu_hash_enums msg); ++int menu_hash_get_help_pl(enum menu_hash_enums msg, char *s, size_t len); + +-const char *menu_hash_to_str_nl(uint32_t hash); +-int menu_hash_get_help_nl(uint32_t hash, char *s, size_t len); ++const char *menu_hash_to_str_pt(enum menu_hash_enums msg); ++int menu_hash_get_help_pt(enum menu_hash_enums msg, char *s, size_t len); + +-const char *menu_hash_to_str_pl(uint32_t hash); +-int menu_hash_get_help_pl(uint32_t hash, char *s, size_t len); ++const char *menu_hash_to_str_eo(enum menu_hash_enums msg); ++int menu_hash_get_help_eo(enum menu_hash_enums msg, char *s, size_t len); + +-const char *menu_hash_to_str_pt(uint32_t hash); +-int menu_hash_get_help_pt(uint32_t hash, char *s, size_t len); ++const char *menu_hash_to_str_us(enum menu_hash_enums msg); ++int menu_hash_get_help_us(enum menu_hash_enums msg, char *s, size_t len); + +-const char *menu_hash_to_str_eo(uint32_t hash); +-int menu_hash_get_help_eo(uint32_t hash, char *s, size_t len); +- +-const char *menu_hash_to_str_us(uint32_t hash); +-int menu_hash_get_help_us(uint32_t hash, char *s, size_t len); +- +-const char *menu_hash_to_str(uint32_t hash); +-int menu_hash_get_help(uint32_t hash, char *s, size_t len); ++const char *menu_hash_to_str(enum menu_hash_enums msg); ++int menu_hash_get_help(enum menu_hash_enums msg, char *s, size_t len); + + uint32_t menu_hash_calculate(const char *s); + +diff --git a/menu/menu_setting.c b/menu/menu_setting.c +index a3e3dd5..9c2de91 100644 +--- a/menu/menu_setting.c ++++ b/menu/menu_setting.c +@@ -82,6 +82,7 @@ struct rarch_setting_group_info + + struct rarch_setting + { ++ enum menu_hash_enums idx; + enum setting_type type; + + uint32_t size; From 244b147b0cdf5df67080f25fcf580507918c26a6 Mon Sep 17 00:00:00 2001 From: twinaphex Date: Tue, 14 Jun 2016 18:51:16 +0200 Subject: [PATCH 47/50] Start breaking up menu_displaylist_push_internal into separate functions --- menu/cbs/menu_cbs_refresh.c | 14 +++++ menu/menu_displaylist.c | 109 ++++++++++++++++++++++++++---------- menu/menu_displaylist.h | 1 + 3 files changed, 93 insertions(+), 31 deletions(-) diff --git a/menu/cbs/menu_cbs_refresh.c b/menu/cbs/menu_cbs_refresh.c index 793f754c0d..36f7f9153e 100644 --- a/menu/cbs/menu_cbs_refresh.c +++ b/menu/cbs/menu_cbs_refresh.c @@ -37,6 +37,20 @@ int action_refresh_default(file_list_t *list, file_list_t *menu_list) return 0; } +int action_refresh_playlist(file_list_t *list, file_list_t *menu_list) +{ + menu_displaylist_ctx_entry_t entry; + if (!menu_list) + return -1; + + entry.list = list; + entry.stack = menu_list; + + if (!menu_displaylist_ctl(DISPLAYLIST_PUSH_PLAYLIST_ONTO_STACK, &entry)) + return -1; + return 0; +} + int menu_cbs_init_bind_refresh(menu_file_list_cbs_t *cbs, const char *path, const char *label, unsigned type, size_t idx, const char *elem0, const char *elem1, diff --git a/menu/menu_displaylist.c b/menu/menu_displaylist.c index f35b233eba..c9c098cb1b 100644 --- a/menu/menu_displaylist.c +++ b/menu/menu_displaylist.c @@ -3195,37 +3195,6 @@ static bool menu_displaylist_push_internal( if (!menu_displaylist_ctl(DISPLAYLIST_SCAN_DIRECTORY_LIST, info)) break; return true; - case MENU_VALUE_PLAYLISTS_TAB: - info->type = 42; - strlcpy(info->exts, "lpl", sizeof(info->exts)); - strlcpy(info->label, - menu_hash_to_str(MENU_LABEL_CONTENT_COLLECTION_LIST), - sizeof(info->label)); - - if (string_is_empty(settings->directory.playlist)) - { - menu_entries_ctl(MENU_ENTRIES_CTL_CLEAR, info->list); - menu_entries_add(info->list, - menu_hash_to_str( - MENU_LABEL_VALUE_NO_PLAYLIST_ENTRIES_AVAILABLE), - menu_hash_to_str( - MENU_LABEL_NO_PLAYLIST_ENTRIES_AVAILABLE), - MENU_INFO_MESSAGE, 0, 0); - info->need_refresh = true; - info->need_push = true; - } - else - { - strlcpy( - info->path, - settings->directory.playlist, - sizeof(info->path)); - - if (!menu_displaylist_ctl( - DISPLAYLIST_DATABASE_PLAYLISTS_HORIZONTAL, info)) - break; - } - return true; case MENU_VALUE_HORIZONTAL_MENU: if (!menu_displaylist_ctl(DISPLAYLIST_HORIZONTAL, info)) break; @@ -3235,6 +3204,82 @@ static bool menu_displaylist_push_internal( return false; } +static bool menu_displaylist_push_internal_playlist( + const char *label, + menu_displaylist_ctx_entry_t *entry, + menu_displaylist_info_t *info) +{ + settings_t *settings = config_get_ptr(); + + info->type = 42; + strlcpy(info->exts, "lpl", sizeof(info->exts)); + strlcpy(info->label, + menu_hash_to_str(MENU_LABEL_CONTENT_COLLECTION_LIST), + sizeof(info->label)); + + if (string_is_empty(settings->directory.playlist)) + { + menu_entries_ctl(MENU_ENTRIES_CTL_CLEAR, info->list); + menu_entries_add(info->list, + menu_hash_to_str( + MENU_LABEL_VALUE_NO_PLAYLIST_ENTRIES_AVAILABLE), + menu_hash_to_str( + MENU_LABEL_NO_PLAYLIST_ENTRIES_AVAILABLE), + MENU_INFO_MESSAGE, 0, 0); + info->need_refresh = true; + info->need_push = true; + } + else + { + strlcpy( + info->path, + settings->directory.playlist, + sizeof(info->path)); + + if (!menu_displaylist_ctl( + DISPLAYLIST_DATABASE_PLAYLISTS_HORIZONTAL, info)) + return false; + } + + return true; +} + +static bool menu_displaylist_push_playlist(menu_displaylist_ctx_entry_t *entry) +{ + menu_file_list_cbs_t *cbs = NULL; + const char *path = NULL; + const char *label = NULL; + unsigned type = 0; + menu_displaylist_info_t info = {0}; + + if (!entry) + return false; + + menu_entries_get_last_stack(&path, &label, &type, NULL); + + info.list = entry->list; + info.menu_list = entry->stack; + info.type = type; + strlcpy(info.path, path, sizeof(info.path)); + strlcpy(info.label, label, sizeof(info.label)); + + if (!info.list) + return false; + + if (menu_displaylist_push_internal_playlist(label, entry, &info)) + return menu_displaylist_push_list_process(&info); + + cbs = menu_entries_get_last_stack_actiondata(); + + if (cbs && cbs->action_deferred_push) + { + if (cbs->action_deferred_push(&info) != 0) + return -1; + } + + return true; +} + static bool menu_displaylist_push(menu_displaylist_ctx_entry_t *entry) { menu_file_list_cbs_t *cbs = NULL; @@ -3288,6 +3333,8 @@ bool menu_displaylist_ctl(enum menu_displaylist_ctl_state type, void *data) { case DISPLAYLIST_PROCESS: return menu_displaylist_push_list_process(info); + case DISPLAYLIST_PUSH_PLAYLIST_ONTO_STACK: + return menu_displaylist_push_playlist((menu_displaylist_ctx_entry_t*)data); case DISPLAYLIST_PUSH_ONTO_STACK: return menu_displaylist_push((menu_displaylist_ctx_entry_t*)data); default: diff --git a/menu/menu_displaylist.h b/menu/menu_displaylist.h index 4fac743eae..95ac124eac 100644 --- a/menu/menu_displaylist.h +++ b/menu/menu_displaylist.h @@ -115,6 +115,7 @@ enum menu_displaylist_ctl_state DISPLAYLIST_CORE_CONTENT, DISPLAYLIST_PROCESS, DISPLAYLIST_PUSH_ONTO_STACK, + DISPLAYLIST_PUSH_PLAYLIST_ONTO_STACK, DISPLAYLIST_PENDING_CLEAR }; From cb915e2998172a4ea916976862973b95e496017e Mon Sep 17 00:00:00 2001 From: twinaphex Date: Tue, 14 Jun 2016 18:55:24 +0200 Subject: [PATCH 48/50] Set callback for action_refresh_playlist --- menu/cbs/menu_cbs_refresh.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/menu/cbs/menu_cbs_refresh.c b/menu/cbs/menu_cbs_refresh.c index 36f7f9153e..97f305f03a 100644 --- a/menu/cbs/menu_cbs_refresh.c +++ b/menu/cbs/menu_cbs_refresh.c @@ -64,6 +64,9 @@ int menu_cbs_init_bind_refresh(menu_file_list_cbs_t *cbs, case MENU_VALUE_MAIN_MENU: BIND_ACTION_REFRESH(cbs, NULL); break; + case MENU_VALUE_PLAYLISTS_TAB: + BIND_ACTION_REFRESH(cbs, action_refresh_playlist); + break; default: BIND_ACTION_REFRESH(cbs, action_refresh_default); break; From ca4f719811b83ad95d224fb0eacc81f998134968 Mon Sep 17 00:00:00 2001 From: twinaphex Date: Tue, 14 Jun 2016 19:09:37 +0200 Subject: [PATCH 49/50] Revert "Set callback for action_refresh_playlist" This reverts commit cb915e2998172a4ea916976862973b95e496017e. --- menu/cbs/menu_cbs_refresh.c | 3 --- 1 file changed, 3 deletions(-) diff --git a/menu/cbs/menu_cbs_refresh.c b/menu/cbs/menu_cbs_refresh.c index 97f305f03a..36f7f9153e 100644 --- a/menu/cbs/menu_cbs_refresh.c +++ b/menu/cbs/menu_cbs_refresh.c @@ -64,9 +64,6 @@ int menu_cbs_init_bind_refresh(menu_file_list_cbs_t *cbs, case MENU_VALUE_MAIN_MENU: BIND_ACTION_REFRESH(cbs, NULL); break; - case MENU_VALUE_PLAYLISTS_TAB: - BIND_ACTION_REFRESH(cbs, action_refresh_playlist); - break; default: BIND_ACTION_REFRESH(cbs, action_refresh_default); break; From fcda911a1004d263a6d422ab4a4908bbd8f67075 Mon Sep 17 00:00:00 2001 From: twinaphex Date: Tue, 14 Jun 2016 19:09:47 +0200 Subject: [PATCH 50/50] Revert "Start breaking up menu_displaylist_push_internal into separate" This reverts commit 244b147b0cdf5df67080f25fcf580507918c26a6. --- menu/cbs/menu_cbs_refresh.c | 14 ----- menu/menu_displaylist.c | 109 ++++++++++-------------------------- menu/menu_displaylist.h | 1 - 3 files changed, 31 insertions(+), 93 deletions(-) diff --git a/menu/cbs/menu_cbs_refresh.c b/menu/cbs/menu_cbs_refresh.c index 36f7f9153e..793f754c0d 100644 --- a/menu/cbs/menu_cbs_refresh.c +++ b/menu/cbs/menu_cbs_refresh.c @@ -37,20 +37,6 @@ int action_refresh_default(file_list_t *list, file_list_t *menu_list) return 0; } -int action_refresh_playlist(file_list_t *list, file_list_t *menu_list) -{ - menu_displaylist_ctx_entry_t entry; - if (!menu_list) - return -1; - - entry.list = list; - entry.stack = menu_list; - - if (!menu_displaylist_ctl(DISPLAYLIST_PUSH_PLAYLIST_ONTO_STACK, &entry)) - return -1; - return 0; -} - int menu_cbs_init_bind_refresh(menu_file_list_cbs_t *cbs, const char *path, const char *label, unsigned type, size_t idx, const char *elem0, const char *elem1, diff --git a/menu/menu_displaylist.c b/menu/menu_displaylist.c index c9c098cb1b..f35b233eba 100644 --- a/menu/menu_displaylist.c +++ b/menu/menu_displaylist.c @@ -3195,6 +3195,37 @@ static bool menu_displaylist_push_internal( if (!menu_displaylist_ctl(DISPLAYLIST_SCAN_DIRECTORY_LIST, info)) break; return true; + case MENU_VALUE_PLAYLISTS_TAB: + info->type = 42; + strlcpy(info->exts, "lpl", sizeof(info->exts)); + strlcpy(info->label, + menu_hash_to_str(MENU_LABEL_CONTENT_COLLECTION_LIST), + sizeof(info->label)); + + if (string_is_empty(settings->directory.playlist)) + { + menu_entries_ctl(MENU_ENTRIES_CTL_CLEAR, info->list); + menu_entries_add(info->list, + menu_hash_to_str( + MENU_LABEL_VALUE_NO_PLAYLIST_ENTRIES_AVAILABLE), + menu_hash_to_str( + MENU_LABEL_NO_PLAYLIST_ENTRIES_AVAILABLE), + MENU_INFO_MESSAGE, 0, 0); + info->need_refresh = true; + info->need_push = true; + } + else + { + strlcpy( + info->path, + settings->directory.playlist, + sizeof(info->path)); + + if (!menu_displaylist_ctl( + DISPLAYLIST_DATABASE_PLAYLISTS_HORIZONTAL, info)) + break; + } + return true; case MENU_VALUE_HORIZONTAL_MENU: if (!menu_displaylist_ctl(DISPLAYLIST_HORIZONTAL, info)) break; @@ -3204,82 +3235,6 @@ static bool menu_displaylist_push_internal( return false; } -static bool menu_displaylist_push_internal_playlist( - const char *label, - menu_displaylist_ctx_entry_t *entry, - menu_displaylist_info_t *info) -{ - settings_t *settings = config_get_ptr(); - - info->type = 42; - strlcpy(info->exts, "lpl", sizeof(info->exts)); - strlcpy(info->label, - menu_hash_to_str(MENU_LABEL_CONTENT_COLLECTION_LIST), - sizeof(info->label)); - - if (string_is_empty(settings->directory.playlist)) - { - menu_entries_ctl(MENU_ENTRIES_CTL_CLEAR, info->list); - menu_entries_add(info->list, - menu_hash_to_str( - MENU_LABEL_VALUE_NO_PLAYLIST_ENTRIES_AVAILABLE), - menu_hash_to_str( - MENU_LABEL_NO_PLAYLIST_ENTRIES_AVAILABLE), - MENU_INFO_MESSAGE, 0, 0); - info->need_refresh = true; - info->need_push = true; - } - else - { - strlcpy( - info->path, - settings->directory.playlist, - sizeof(info->path)); - - if (!menu_displaylist_ctl( - DISPLAYLIST_DATABASE_PLAYLISTS_HORIZONTAL, info)) - return false; - } - - return true; -} - -static bool menu_displaylist_push_playlist(menu_displaylist_ctx_entry_t *entry) -{ - menu_file_list_cbs_t *cbs = NULL; - const char *path = NULL; - const char *label = NULL; - unsigned type = 0; - menu_displaylist_info_t info = {0}; - - if (!entry) - return false; - - menu_entries_get_last_stack(&path, &label, &type, NULL); - - info.list = entry->list; - info.menu_list = entry->stack; - info.type = type; - strlcpy(info.path, path, sizeof(info.path)); - strlcpy(info.label, label, sizeof(info.label)); - - if (!info.list) - return false; - - if (menu_displaylist_push_internal_playlist(label, entry, &info)) - return menu_displaylist_push_list_process(&info); - - cbs = menu_entries_get_last_stack_actiondata(); - - if (cbs && cbs->action_deferred_push) - { - if (cbs->action_deferred_push(&info) != 0) - return -1; - } - - return true; -} - static bool menu_displaylist_push(menu_displaylist_ctx_entry_t *entry) { menu_file_list_cbs_t *cbs = NULL; @@ -3333,8 +3288,6 @@ bool menu_displaylist_ctl(enum menu_displaylist_ctl_state type, void *data) { case DISPLAYLIST_PROCESS: return menu_displaylist_push_list_process(info); - case DISPLAYLIST_PUSH_PLAYLIST_ONTO_STACK: - return menu_displaylist_push_playlist((menu_displaylist_ctx_entry_t*)data); case DISPLAYLIST_PUSH_ONTO_STACK: return menu_displaylist_push((menu_displaylist_ctx_entry_t*)data); default: diff --git a/menu/menu_displaylist.h b/menu/menu_displaylist.h index 95ac124eac..4fac743eae 100644 --- a/menu/menu_displaylist.h +++ b/menu/menu_displaylist.h @@ -115,7 +115,6 @@ enum menu_displaylist_ctl_state DISPLAYLIST_CORE_CONTENT, DISPLAYLIST_PROCESS, DISPLAYLIST_PUSH_ONTO_STACK, - DISPLAYLIST_PUSH_PLAYLIST_ONTO_STACK, DISPLAYLIST_PENDING_CLEAR };