From 9dfa48395e4bcf001197d1a82fc3e5a9c020d698 Mon Sep 17 00:00:00 2001 From: Alfrix Date: Thu, 27 Sep 2018 17:38:33 -0300 Subject: [PATCH 01/26] Update Spanish --- intl/msg_hash_es.h | 59 ++++++++++++++++++++++++++++++++++------------ 1 file changed, 44 insertions(+), 15 deletions(-) diff --git a/intl/msg_hash_es.h b/intl/msg_hash_es.h index d9382293dc..f0309a2b23 100644 --- a/intl/msg_hash_es.h +++ b/intl/msg_hash_es.h @@ -2153,6 +2153,10 @@ MSG_HASH( MENU_ENUM_LABEL_VALUE_RECORD_CONFIG, "Cargar configuración de grabación..." ) +MSG_HASH( + MENU_ENUM_LABEL_VALUE_STREAM_CONFIG, + "Cargar configuración de Streaming..." + ) MSG_HASH( MENU_ENUM_LABEL_VALUE_RECORD_DRIVER, "Controlador de grabación" @@ -4531,7 +4535,8 @@ MSG_HASH( ) MSG_HASH( MENU_ENUM_SUBLABEL_VIDEO_REFRESH_RATE, - "Frecuencia de actualización/tasa de refresco vertical, usada para calcular la velocidad de audio.\nNota: Se ignorará si 'Video por hilos' esta activado" + "Frecuencia de actualización/tasa de refresco vertical, usada para calcular la velocidad de audio.\n" + "Nota: Se ignorará si 'Video por hilos' esta activado" ) MSG_HASH( MENU_ENUM_SUBLABEL_AUDIO_ENABLE, @@ -6913,6 +6918,14 @@ MSG_HASH( MENU_ENUM_LABEL_RUMBLE_TYPE_GT_VALUE, "Mayor al valor de vibración" ) +MSG_HASH( + MENU_ENUM_LABEL_RUMBLE_TYPE_INCREASE_BY_VALUE, + "Incremeta por el valor de vibración" + ) +MSG_HASH( + MENU_ENUM_LABEL_RUMBLE_TYPE_DECREASE_BY_VALUE, + "Disminuye por el valor de vibración" + ) MSG_HASH( MENU_ENUM_LABEL_CHEAT_MEMORY_SIZE_1, "1-bit, valor máx. = 0x01" @@ -7229,6 +7242,10 @@ MSG_HASH( MENU_ENUM_LABEL_VALUE_QT_DELETE_PLAYLIST, "Borrar Playlist" ) +MSG_HASH( + MENU_ENUM_LABEL_VALUE_QT_RENAME_PLAYLIST, + "Renombrar Playlist" + ) MSG_HASH( MENU_ENUM_LABEL_VALUE_QT_CONFIRM_DELETE_PLAYLIST, "¿Está seguro que desea borrar la playlist \"%1\"?" @@ -7523,27 +7540,31 @@ MSG_HASH( ) MSG_HASH( MENU_ENUM_LABEL_VALUE_INPUT_META_RECORDING_TOGGLE, - "Recording toggle" + "Comenzar/Detener Grabación" ) MSG_HASH( MENU_ENUM_LABEL_VALUE_INPUT_META_STREAMING_TOGGLE, - "Streaming toggle" + "Comenzar/Detener Streaming" + ) +MSG_HASH( + MSG_CHEEVOS_HARDCORE_MODE_DISABLED, + "Detectado un guardado rápido, Los logros hardcore se desactivaron para está sesión. Reinicia para habilitarlos" ) MSG_HASH( MENU_ENUM_LABEL_VALUE_VIDEO_RECORD_QUALITY, - "Record Quality" + "Calidad de grabación" ) MSG_HASH( MENU_ENUM_LABEL_VALUE_VIDEO_STREAM_QUALITY, - "Stream Quality" + "Calidad del Stream" ) MSG_HASH( MENU_ENUM_LABEL_VALUE_STREAMING_URL, - "Streaming URL" + "URL del Stream" ) MSG_HASH( MENU_ENUM_LABEL_VALUE_UDP_STREAM_PORT, - "UDP Stream Port" + "Puerto del Stream UDP" ) MSG_HASH( MENU_ENUM_LABEL_VALUE_ACCOUNTS_TWITCH, @@ -7553,11 +7574,19 @@ MSG_HASH( MENU_ENUM_LABEL_VALUE_ACCOUNTS_YOUTUBE, "YouTube" ) -MSG_HASH(MENU_ENUM_LABEL_VALUE_TWITCH_STREAM_KEY, - "Twitch Stream Key") -MSG_HASH(MENU_ENUM_LABEL_VALUE_YOUTUBE_STREAM_KEY, - "YouTube Stream Key") -MSG_HASH(MENU_ENUM_LABEL_VALUE_STREAMING_MODE, - "Streaming Mode") -MSG_HASH(MENU_ENUM_LABEL_VALUE_STREAMING_TITLE, - "Title of Stream") +MSG_HASH( + MENU_ENUM_LABEL_VALUE_TWITCH_STREAM_KEY, + "Twitch Stream Key" + ) +MSG_HASH( + MENU_ENUM_LABEL_VALUE_YOUTUBE_STREAM_KEY, + "YouTube Stream Key" + ) +MSG_HASH( + MENU_ENUM_LABEL_VALUE_STREAMING_MODE, + "Modo de Streaming" + ) +MSG_HASH( + MENU_ENUM_LABEL_VALUE_STREAMING_TITLE, + "Título del Stream" + ) From 307630722c1b439fbd354e5ed9fdf181c953ec27 Mon Sep 17 00:00:00 2001 From: Alfrix Date: Thu, 27 Sep 2018 17:40:08 -0300 Subject: [PATCH 02/26] Correct styling in msg_hash_us --- intl/msg_hash_us.h | 24 ++++++++++++++++-------- 1 file changed, 16 insertions(+), 8 deletions(-) diff --git a/intl/msg_hash_us.h b/intl/msg_hash_us.h index e45e0e8ddc..9ed88725b2 100644 --- a/intl/msg_hash_us.h +++ b/intl/msg_hash_us.h @@ -7574,11 +7574,19 @@ MSG_HASH( MENU_ENUM_LABEL_VALUE_ACCOUNTS_YOUTUBE, "YouTube" ) -MSG_HASH(MENU_ENUM_LABEL_VALUE_TWITCH_STREAM_KEY, - "Twitch Stream Key") -MSG_HASH(MENU_ENUM_LABEL_VALUE_YOUTUBE_STREAM_KEY, - "YouTube Stream Key") -MSG_HASH(MENU_ENUM_LABEL_VALUE_STREAMING_MODE, - "Streaming Mode") -MSG_HASH(MENU_ENUM_LABEL_VALUE_STREAMING_TITLE, - "Title of Stream") +MSG_HASH( + MENU_ENUM_LABEL_VALUE_TWITCH_STREAM_KEY, + "Twitch Stream Key" + ) +MSG_HASH( + MENU_ENUM_LABEL_VALUE_YOUTUBE_STREAM_KEY, + "YouTube Stream Key" + ) +MSG_HASH( + MENU_ENUM_LABEL_VALUE_STREAMING_MODE, + "Streaming Mode" + ) +MSG_HASH( + MENU_ENUM_LABEL_VALUE_STREAMING_TITLE, + "Title of Stream" + ) \ No newline at end of file From 520f2420515a255097d0e5329e9cd6c487907bb7 Mon Sep 17 00:00:00 2001 From: M4xw Date: Fri, 28 Sep 2018 01:05:46 +0200 Subject: [PATCH 03/26] [LIBNX] Change static lib name to libretro_libnx.a --- Makefile.libnx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Makefile.libnx b/Makefile.libnx index b8a6ba87a3..45abc193b5 100644 --- a/Makefile.libnx +++ b/Makefile.libnx @@ -169,7 +169,7 @@ else endif #--------------------------------------------------------------------------------- -export OFILES := $(OBJ) libretro_switch.a +export OFILES := $(OBJ) libretro_libnx.a export HFILES_BIN := $(addsuffix .h,$(subst .,_,$(BINFILES))) export INCLUDE := $(foreach dir,$(INCLUDES),-I$(CURDIR)/$(dir)) \ From 6195f6360a0939caf313d4d5f6073a6150123411 Mon Sep 17 00:00:00 2001 From: M4xw Date: Fri, 28 Sep 2018 01:10:25 +0200 Subject: [PATCH 04/26] Add libnx dist-cores target --- dist-scripts/dist-cores.sh | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/dist-scripts/dist-cores.sh b/dist-scripts/dist-cores.sh index 190c52731e..04b2c2b2d2 100755 --- a/dist-scripts/dist-cores.sh +++ b/dist-scripts/dist-cores.sh @@ -35,6 +35,13 @@ platform=vita SALAMANDER=yes EXT=a mkdir -p ../pkg/vita/vpk + +# Nintendo Switch (libnx) +elif [ $PLATFORM = "libnx" ] ; then +platform=libnx +EXT=a +mkdir -p ../pkg/${platform}/build/romfs + # CTR/3DS elif [ $PLATFORM = "ctr" ] ; then platform=ctr @@ -207,6 +214,8 @@ for f in `ls -v *_${platform}.${EXT}`; do make -C ../ -f Makefile LINK=g++ $whole_archive $big_stack -j3 || exit 1 elif [ $PLATFORM = "ctr" ]; then make -C ../ -f Makefile.${platform} $OPTS LIBRETRO=$name $whole_archive $big_stack -j3 || exit 1 + elif [ $PLATFORM = "libnx" ]; then + make -C ../ -f Makefile.${platform} $OPTS APP_TITLE="$name" LIBRETRO=$name $whole_archive $big_stack -j3 || exit 1 else make -C ../ -f Makefile.${platform} $OPTS $whole_archive $big_stack -j3 || exit 1 fi @@ -249,6 +258,9 @@ for f in `ls -v *_${platform}.${EXT}`; do mv -f ../retroarch_3ds.cia ../pkg/${platform}/build/cia/${name}_libretro.cia mv -f ../retroarch_3ds.3dsx ../pkg/${platform}/build/3dsx/${name}_libretro.3dsx mv -f ../retroarch_3ds.3ds ../pkg/${platform}/build/rom/${name}_libretro.3ds + elif [ $PLATFORM = "libnx" ] ; then + mkdir -p ../pkg/${platform}/build/libnx/ + mv -f ../retroarch_switch.nro ../pkg/${platform}/build/libnx/${name}.nro elif [ $PLATFORM = "unix" ] ; then mv -f ../retroarch ../pkg/${platform}/${name}_libretro.elf elif [ $PLATFORM = "ngc" ] ; then @@ -275,6 +287,10 @@ for f in `ls -v *_${platform}.${EXT}`; do rm -f ../retroarch_3ds.elf rm -f ../retroarch_3ds.bnr rm -f ../retroarch_3ds.icn + elif [ $PLATFORM = "libnx" ] ; then + rm -f ../retroarch_switch.elf + rm -f ../retroarch_switch.nacp + rm -f ../retroarch_switch.nso elif [ $PLATFORM = "unix" ] ; then rm -f ../retroarch elif [ $PLATFORM = "ngc" ] ; then From 2b564781b6b7ceeb07ed2bddc9cf3a7aa61b8b22 Mon Sep 17 00:00:00 2001 From: M4xw Date: Fri, 28 Sep 2018 02:35:40 +0200 Subject: [PATCH 05/26] [LIBNX] Enable default OpenGL Build, enable XMB --- Makefile.libnx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Makefile.libnx b/Makefile.libnx index 45abc193b5..f2d53a206f 100644 --- a/Makefile.libnx +++ b/Makefile.libnx @@ -43,7 +43,7 @@ HAVE_PTHREADS = 1 HAVE_FREETYPE = 0 HAVE_SWITCH = 1 HAVE_LIBNX = 1 -HAVE_OPENGL = 0 +HAVE_OPENGL = 1 ifeq ($(HAVE_OPENGL), 1) HAVE_EGL = 1 @@ -53,7 +53,7 @@ ifeq ($(HAVE_OPENGL), 1) HAVE_MATERIALUI = 1 HAVE_ZARCH = 0 - HAVE_XMB = 0 + HAVE_XMB = 1 HAVE_STRIPES = 0 else HAVE_RGUI = 1 From 26eca6bbd6c135175f6ff794eee11a0300502755 Mon Sep 17 00:00:00 2001 From: M4xw Date: Fri, 28 Sep 2018 02:38:58 +0200 Subject: [PATCH 06/26] [LIBNX] Don't enable custom rgui bg colors for OpenGL build and change ifdef to libnx only --- menu/drivers/rgui.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/menu/drivers/rgui.c b/menu/drivers/rgui.c index 44ba76e40f..e7d4d982de 100644 --- a/menu/drivers/rgui.c +++ b/menu/drivers/rgui.c @@ -95,7 +95,7 @@ static uint16_t rgui_gray_filler(rgui_t *rgui, unsigned x, unsigned y) unsigned col = (((x >> shft) + (y >> shft)) & 1) + 1; #if defined(GEKKO) || defined(PSP) return (6 << 12) | (col << 8) | (col << 4) | (col << 0); -#elif defined(SWITCH) +#elif defined(HAVE_LIBNX) && !defined(HAVE_OPENGL) return (((31 * (54)) / 255) << 11) | (((63 * (54)) / 255) << 5) | ((31 * (54)) / 255); @@ -110,7 +110,7 @@ static uint16_t rgui_green_filler(rgui_t *rgui, unsigned x, unsigned y) unsigned col = (((x >> shft) + (y >> shft)) & 1) + 1; #if defined(GEKKO) || defined(PSP) return (6 << 12) | (col << 8) | (col << 5) | (col << 0); -#elif defined(SWITCH) +#elif defined(HAVE_LIBNX) && !defined(HAVE_OPENGL) return (((31 * (54)) / 255) << 11) | (((63 * (109)) / 255) << 5) | ((31 * (54)) / 255); From 9be2321c02d3c0ae03fd4e668f3f1c24969fc467 Mon Sep 17 00:00:00 2001 From: lifajucejo Date: Thu, 27 Sep 2018 21:23:01 -0400 Subject: [PATCH 07/26] Add networking support to libnx --- Makefile.libnx | 8 ++++---- libretro-common/file/file_path.c | 2 +- libretro-common/net/net_natt.c | 2 +- menu/menu_displaylist.c | 4 ++-- 4 files changed, 8 insertions(+), 8 deletions(-) diff --git a/Makefile.libnx b/Makefile.libnx index 45abc193b5..c9ab49ff2f 100644 --- a/Makefile.libnx +++ b/Makefile.libnx @@ -35,9 +35,9 @@ HAVE_STATIC_VIDEO_FILTERS = 1 HAVE_STATIC_AUDIO_FILTERS = 1 HAVE_MENU = 1 HAVE_RUNAHEAD = 1 +HAVE_NETWORKING = 1 # RetroArch libnx useful flags -HAVE_OVERLAY = 0 HAVE_THREADS = 1 HAVE_PTHREADS = 1 HAVE_FREETYPE = 0 @@ -55,6 +55,8 @@ ifeq ($(HAVE_OPENGL), 1) HAVE_ZARCH = 0 HAVE_XMB = 0 HAVE_STRIPES = 0 + + HAVE_OVERLAY = 1 else HAVE_RGUI = 1 @@ -65,9 +67,7 @@ else endif include Makefile.common -BLACKLIST := -#BLACKLIST += input/input_overlay.o -#BLACKLIST += tasks/task_overlay.o +BLACKLIST := $(LIBRETRO_COMM_DIR)/net/net_ifinfo.o OBJ := $(filter-out $(BLACKLIST),$(OBJ)) diff --git a/libretro-common/file/file_path.c b/libretro-common/file/file_path.c index b87b5fba04..2e90537210 100644 --- a/libretro-common/file/file_path.c +++ b/libretro-common/file/file_path.c @@ -230,7 +230,7 @@ static bool path_mkdir_error(int ret) { #if defined(VITA) return (ret == SCE_ERROR_ERRNO_EEXIST); -#elif defined(PSP) || defined(_3DS) || defined(WIIU) +#elif defined(PSP) || defined(_3DS) || defined(WIIU) || defined(SWITCH) return (ret == -1); #else return (ret < 0 && errno == EEXIST); diff --git a/libretro-common/net/net_natt.c b/libretro-common/net/net_natt.c index 33d0865208..14dbdeeb8b 100644 --- a/libretro-common/net/net_natt.c +++ b/libretro-common/net/net_natt.c @@ -184,7 +184,7 @@ static bool natt_open_port(struct natt_status *status, bool natt_open_port_any(struct natt_status *status, uint16_t port, enum socket_protocol proto) { -#if !defined(HAVE_SOCKET_LEGACY) && !defined(WIIU) +#if !defined(HAVE_SOCKET_LEGACY) && !defined(WIIU) && !defined(SWITCH) size_t i; char port_str[6]; struct net_ifinfo list; diff --git a/menu/menu_displaylist.c b/menu/menu_displaylist.c index 78c493a066..3d5dbdbb34 100644 --- a/menu/menu_displaylist.c +++ b/menu/menu_displaylist.c @@ -93,7 +93,7 @@ static enum msg_hash_enums new_type = MSG_UNKNOWN; * function pointer callback functions that don't necessarily * call each other. */ -#if !defined(HAVE_SOCKET_LEGACY) && !defined(WIIU) +#if !defined(HAVE_SOCKET_LEGACY) && !defined(WIIU) && !defined(SWITCH) #include static int menu_displaylist_parse_network_info(menu_displaylist_info_t *info) @@ -4694,7 +4694,7 @@ bool menu_displaylist_ctl(enum menu_displaylist_ctl_state type, void *data) break; case DISPLAYLIST_NETWORK_INFO: menu_entries_ctl(MENU_ENTRIES_CTL_CLEAR, info->list); -#if defined(HAVE_NETWORKING) && !defined(HAVE_SOCKET_LEGACY) && !defined(WIIU) +#if defined(HAVE_NETWORKING) && !defined(HAVE_SOCKET_LEGACY) && !defined(WIIU) && !defined(SWITCH) menu_displaylist_parse_network_info(info); #endif info->need_push = true; From ef736d02c2a70f2d2a1630d3922dea8a5388ee32 Mon Sep 17 00:00:00 2001 From: M4xw Date: Fri, 28 Sep 2018 03:24:12 +0200 Subject: [PATCH 08/26] [LIBNX] Improve Threading, Fix Video Threaded. Scan content no longer crashes. --- libretro-common/rthreads/switch_pthread.h | 16 ++-------------- 1 file changed, 2 insertions(+), 14 deletions(-) diff --git a/libretro-common/rthreads/switch_pthread.h b/libretro-common/rthreads/switch_pthread.h index 8e6374dc5f..53491d91fc 100644 --- a/libretro-common/rthreads/switch_pthread.h +++ b/libretro-common/rthreads/switch_pthread.h @@ -57,36 +57,24 @@ static INLINE ThreadVars *getThreadVars(void) return (ThreadVars *)((u8 *)armGetTls() + 0x1E0); } -#define STACKSIZE (8 * 1024) - -/* libnx threads return void but pthreads return void pointer */ - +#define STACKSIZE (128 * 1024) static uint32_t threadCounter = 1; - int pthread_create(pthread_t *thread, const pthread_attr_t *attr, void *(*start_routine)(void *), void *arg) { u32 prio = 0; - u64 core_mask = 0; Thread new_switch_thread; svcGetThreadPriority(&prio, CUR_THREAD_HANDLE); - svcGetInfo(&core_mask, 0, CUR_PROCESS_HANDLE, 0); // Launch threads on Core 1 - int rc = threadCreate(&new_switch_thread, (void (*)(void *))start_routine, arg, STACKSIZE, prio - 1, -2); + int rc = threadCreate(&new_switch_thread, (void (*)(void *))start_routine, arg, STACKSIZE, prio - 1, 1); if (R_FAILED(rc)) { return EAGAIN; } - rc = svcSetThreadCoreMask(new_switch_thread.handle, -1, core_mask); - if (R_FAILED(rc)) - { - return -1; - } - printf("[Threading]: Starting Thread(#%i)\n", threadCounter); if (R_FAILED(threadStart(&new_switch_thread))) { From a1aec9a8705af5e6b4810bbf0add0ce412c14e33 Mon Sep 17 00:00:00 2001 From: lifajucejo Date: Thu, 27 Sep 2018 23:46:40 -0400 Subject: [PATCH 09/26] Add battery percentage (psm) to switch --- frontend/drivers/platform_switch.c | 46 ++++++++++++++++++++++++++++-- 1 file changed, 44 insertions(+), 2 deletions(-) diff --git a/frontend/drivers/platform_switch.c b/frontend/drivers/platform_switch.c index 1ad014c407..9157f71366 100644 --- a/frontend/drivers/platform_switch.c +++ b/frontend/drivers/platform_switch.c @@ -59,6 +59,8 @@ static uint64_t frontend_switch_get_mem_used(void); // Splash static uint32_t *splashData = NULL; +static bool psmInitialized = false; + #endif // HAVE_LIBNX static void get_first_valid_core(char *path_return) @@ -163,6 +165,9 @@ static void frontend_switch_deinit(void *data) splashData = NULL; } + if (psmInitialized) + psmExit(); + #ifndef HAVE_OPENGL gfxExit(); #endif @@ -582,6 +587,17 @@ static void frontend_switch_init(void *data) #endif // IS_SALAMANDER #endif // NXLINK + Result rc; + rc = psmInitialize(); + if (R_SUCCEEDED(rc)) + { + psmInitialized = true; + } + else + { + RARCH_WARN("Error initializing psm\n"); + } + rarch_system_info_t *sys_info = runloop_get_system_info(); retro_get_system_info(sys_info); @@ -681,8 +697,34 @@ static uint64_t frontend_switch_get_mem_used(void) static enum frontend_powerstate frontend_switch_get_powerstate(int *seconds, int *percent) { - // This is fine monkaS - return FRONTEND_POWERSTATE_CHARGED; + if (!psmInitialized) + return FRONTEND_POWERSTATE_NONE; + + uint32_t pct; + ChargerType ct; + Result rc; + + rc = psmGetBatteryChargePercentage(&pct); + if (!R_SUCCEEDED(rc)) + return FRONTEND_POWERSTATE_NONE; + + rc = psmGetChargerType(&ct); + if (!R_SUCCEEDED(rc)) + return FRONTEND_POWERSTATE_NONE; + + *percent = (int)pct; + + if (*percent >= 100) + return FRONTEND_POWERSTATE_CHARGED; + + switch (ct) + { + case ChargerType_Charger: + case ChargerType_Usb: + return FRONTEND_POWERSTATE_CHARGING; + } + + return FRONTEND_POWERSTATE_NO_SOURCE; } static void frontend_switch_get_os(char *s, size_t len, int *major, int *minor) From e904fa851e39ec8d44463be2bec5136246c998ec Mon Sep 17 00:00:00 2001 From: Matthew Wang Date: Fri, 28 Sep 2018 15:46:31 +0800 Subject: [PATCH 10/26] update traditional chinese translation --- intl/msg_hash_cht.c | 12 +- intl/msg_hash_cht.h | 288 ++++++++++++++++++++++---------------------- 2 files changed, 150 insertions(+), 150 deletions(-) diff --git a/intl/msg_hash_cht.c b/intl/msg_hash_cht.c index f37b400068..b273803849 100644 --- a/intl/msg_hash_cht.c +++ b/intl/msg_hash_cht.c @@ -255,7 +255,7 @@ int menu_hash_get_help_cht_enum(enum msg_hash_enums msg, char *s, size_t len) "to the content."); break; case MENU_ENUM_LABEL_RESTART_CONTENT: - snprintf(s, len, "Restarts the content from the beginning."); + snprintf(s, len, "重新開始遊戲."); break; case MENU_ENUM_LABEL_CLOSE_CONTENT: snprintf(s, len, "關閉內容並從內存中卸載。"); @@ -519,11 +519,11 @@ int menu_hash_get_help_cht_enum(enum msg_hash_enums msg, char *s, size_t len) break; case MENU_ENUM_LABEL_VIDEO_FONT_SIZE: snprintf(s, len, - "屏顯訊息的字體大小."); + "營幕訊息的字體大小."); break; case MENU_ENUM_LABEL_SAVESTATE_AUTO_INDEX: snprintf(s, len, - "Automatically increment slot index on each save, \n" + "存檔時自動增加 slot index , \n" "generating multiple savestate files. \n" "When the content is loaded, state slot will be \n" "set to the highest existing value (last savestate)."); @@ -1680,7 +1680,7 @@ int menu_hash_get_help_cht_enum(enum msg_hash_enums msg, char *s, size_t len) break; case MENU_ENUM_LABEL_LOCATION_ALLOW: snprintf(s, len, - "Allow or disallow location services \n" + "開啟或關閉定位服務 \n" "access by cores."); break; case MENU_ENUM_LABEL_TURBO: @@ -1731,11 +1731,11 @@ int menu_hash_get_help_cht_enum(enum msg_hash_enums msg, char *s, size_t len) break; case MENU_ENUM_LABEL_CHEAT_INDEX_PLUS: snprintf(s, len, - "Increment cheat index.\n"); + "增加 cheat index.\n"); break; case MENU_ENUM_LABEL_CHEAT_INDEX_MINUS: snprintf(s, len, - "Decrement cheat index.\n"); + "減少 cheat index.\n"); break; case MENU_ENUM_LABEL_SHADER_PREV: snprintf(s, len, diff --git a/intl/msg_hash_cht.h b/intl/msg_hash_cht.h index 38c91a467e..c12e8f5562 100644 --- a/intl/msg_hash_cht.h +++ b/intl/msg_hash_cht.h @@ -55,7 +55,7 @@ MSG_HASH( ) MSG_HASH( MSG_NETPLAY_ENDIAN_DEPENDENT, - "This core does not support inter-architecture netplay between these systems" + "這個核心模擬器不支援不同系統的網路連線對打" ) MSG_HASH( MSG_NETPLAY_PLATFORM_DEPENDENT, @@ -1865,7 +1865,7 @@ MSG_HASH(MENU_ENUM_SUBLABEL_WIFI_SETTINGS, MSG_HASH(MENU_ENUM_SUBLABEL_HELP_LIST, "學習更多關於其是如何工作的。") MSG_HASH(MSG_APPENDED_DISK, - "Appended disk") + "磁碟已加入") MSG_HASH(MSG_APPLICATION_DIR, "應用程序目錄") MSG_HASH(MSG_APPLYING_SHADER, @@ -1947,17 +1947,17 @@ MSG_HASH(MSG_DOWNLOAD_FAILED, MSG_HASH(MSG_ERROR, "錯誤") MSG_HASH(MSG_ERROR_LIBRETRO_CORE_REQUIRES_CONTENT, - "Libretro core requires content, but nothing was provided.") + "Libretro core 需載入相關遊戲內容, 但程式未找到可載入內容.") MSG_HASH(MSG_ERROR_LIBRETRO_CORE_REQUIRES_SPECIAL_CONTENT, - "Libretro core requires special content, but none were provided.") + "Libretro core 需載入相關特定遊戲內容, 但程式未找到可載入內容.") MSG_HASH(MSG_ERROR_PARSING_ARGUMENTS, - "Error parsing arguments.") + "處理參數時發生錯誤.") MSG_HASH(MSG_ERROR_SAVING_CORE_OPTIONS_FILE, - "Error saving core options file.") + "無法儲存 core options 檔案.") MSG_HASH(MSG_ERROR_SAVING_REMAP_FILE, - "Error saving remap file.") + "無法儲存 remap 檔案.") MSG_HASH(MSG_ERROR_SAVING_SHADER_PRESET, - "Error saving shader preset.") + "無法儲存預置 shader.") MSG_HASH(MSG_EXTERNAL_APPLICATION_DIR, "外部應用程序目錄") MSG_HASH(MSG_EXTRACTING, @@ -1967,7 +1967,7 @@ MSG_HASH(MSG_EXTRACTING_FILE, MSG_HASH(MSG_FAILED_SAVING_CONFIG_TO, "無法儲存設定到") MSG_HASH(MSG_FAILED_TO, - "Failed to") + "執行失敗") MSG_HASH(MSG_FAILED_TO_ACCEPT_INCOMING_SPECTATOR, "無法讓觀眾加入.") MSG_HASH(MSG_FAILED_TO_ALLOCATE_MEMORY_FOR_PATCHED_CONTENT, @@ -2033,41 +2033,41 @@ MSG_HASH(MSG_FAILED_TO_START_RECORDING, MSG_HASH(MSG_FAILED_TO_TAKE_SCREENSHOT, "營幕快照失敗.") MSG_HASH(MSG_FAILED_TO_UNDO_LOAD_STATE, - "Failed to undo load state.") + "還原載入即時存檔失敗") MSG_HASH(MSG_FAILED_TO_UNDO_SAVE_STATE, - "Failed to undo save state.") + "還原即時存檔失敗") MSG_HASH(MSG_FAILED_TO_UNMUTE_AUDIO, - "Failed to unmute audio.") + "還原取消靜音失敗") MSG_HASH(MSG_FATAL_ERROR_RECEIVED_IN, - "Fatal error received in") + "接收資料時發生錯誤") MSG_HASH(MSG_FILE_NOT_FOUND, "未找到文件") MSG_HASH(MSG_FOUND_AUTO_SAVESTATE_IN, - "Found auto savestate in") + "找到自動存檔") MSG_HASH(MSG_FOUND_DISK_LABEL, - "Found disk label") + "找到磁碟標籤") MSG_HASH(MSG_FOUND_FIRST_DATA_TRACK_ON_FILE, - "Found first data track on file") + "在文件中找到第一個資料軌道") MSG_HASH(MSG_FOUND_LAST_STATE_SLOT, - "Found last state slot") + "找到最後一個狀態槽") MSG_HASH(MSG_FOUND_SHADER, - "Found shader") + "找到 shader") MSG_HASH(MSG_FRAMES, "幀") MSG_HASH(MSG_GAME_SPECIFIC_CORE_OPTIONS_FOUND_AT, - "Per-Game Options: game-specific core options found at") + "Per-Game Options: 找到特定遊戲的設定檔案") MSG_HASH(MSG_GOT_INVALID_DISK_INDEX, - "Got invalid disk index.") + "錯誤的磁碟索引") MSG_HASH(MSG_GRAB_MOUSE_STATE, "抓取鼠標狀態") MSG_HASH(MSG_GAME_FOCUS_ON, - "Game focus on") + "打開遊戲焦點") MSG_HASH(MSG_GAME_FOCUS_OFF, - "Game focus off") + "取消遊戲焦點") MSG_HASH(MSG_HW_RENDERED_MUST_USE_POSTSHADED_RECORDING, "Libretro core is hardware rendered. Must use post-shaded recording as well.") MSG_HASH(MSG_INFLATED_CHECKSUM_DID_NOT_MATCH_CRC32, - "Inflated checksum did not match CRC32.") + "比較檔案 CRC32 錯誤.") MSG_HASH(MSG_INPUT_CHEAT, "輸入金手指") MSG_HASH(MSG_INPUT_CHEAT_FILENAME, @@ -2075,7 +2075,7 @@ MSG_HASH(MSG_INPUT_CHEAT_FILENAME, MSG_HASH(MSG_INPUT_PRESET_FILENAME, "目前檔案") MSG_HASH(MSG_INPUT_RENAME_ENTRY, - "Rename Title") + "變更 Title 名稱") MSG_HASH(MSG_INTERFACE, "接口") MSG_HASH(MSG_INTERNAL_STORAGE, @@ -2091,7 +2091,7 @@ MSG_HASH(MSG_IN_GIGABYTES, MSG_HASH(MSG_IN_MEGABYTES, "(兆字節)") MSG_HASH(MSG_LIBRETRO_ABI_BREAK, - "is compiled against a different version of libretro than this libretro implementation.") + "libretro 版本錯誤.") MSG_HASH(MSG_LIBRETRO_FRONTEND, "為libretro而設計的前端") MSG_HASH(MSG_LOADED_STATE_FROM_SLOT, @@ -2145,13 +2145,13 @@ MSG_HASH(MSG_RECORDING_TO, MSG_HASH(MSG_REDIRECTING_CHEATFILE_TO, "重定向金手指文件至") MSG_HASH(MSG_REDIRECTING_SAVEFILE_TO, - "Redirecting save file to") + "重新轉向 save file to") MSG_HASH(MSG_REDIRECTING_SAVESTATE_TO, - "Redirecting savestate to") + "重新轉向 savestate to") MSG_HASH(MSG_REMAP_FILE_SAVED_SUCCESSFULLY, - "Remap file saved successfully.") + "Remap file 儲存成功.") MSG_HASH(MSG_REMOVED_DISK_FROM_TRAY, - "Removed disk from tray.") + "從托盤中取出光磁.") MSG_HASH(MSG_REMOVING_TEMPORARY_CONTENT_FILE, "移除臨時內容文件") MSG_HASH(MSG_RESET, @@ -2161,7 +2161,7 @@ MSG_HASH(MSG_RESTARTING_RECORDING_DUE_TO_DRIVER_REINIT, MSG_HASH(MSG_RESTORED_OLD_SAVE_STATE, "重載舊的存檔。") MSG_HASH(MSG_RESTORING_DEFAULT_SHADER_PRESET_TO, - "Shaders: restoring default shader preset to") + "Shaders: 重設預設 shader ") MSG_HASH(MSG_REVERTING_SAVEFILE_DIRECTORY_TO, "Reverting savefile directory to") MSG_HASH(MSG_REVERTING_SAVESTATE_DIRECTORY_TO, @@ -2169,11 +2169,11 @@ MSG_HASH(MSG_REVERTING_SAVESTATE_DIRECTORY_TO, MSG_HASH(MSG_REWINDING, "正在回溯。") MSG_HASH(MSG_REWIND_INIT, - "Initializing rewind buffer with size") + "初始化 rewind 緩衝") MSG_HASH(MSG_REWIND_INIT_FAILED, "初始化回放緩存失敗. 回放功能關閉.") MSG_HASH(MSG_REWIND_INIT_FAILED_THREADED_AUDIO, - "Implementation uses threaded audio. Cannot use rewind.") + "無法使用 rewind 功能。因為當前正使用 threaded audio.") MSG_HASH(MSG_REWIND_REACHED_END, "到達回放緩存末端.") MSG_HASH(MSG_SAVED_NEW_CONFIG_TO, @@ -2233,7 +2233,7 @@ MSG_HASH(MSG_UNPAUSED, MSG_HASH(MSG_UNRECOGNIZED_COMMAND, "無法識別的指令") MSG_HASH(MSG_USING_CORE_NAME_FOR_NEW_CONFIG, - "Using core name for new config.") + "使用核心模擬器名稱當新的設定檔名稱") MSG_HASH(MSG_USING_LIBRETRO_DUMMY_CORE_RECORDING_SKIPPED, "使用libretro虛擬核心。跳過錄製。") MSG_HASH(MSG_VALUE_CONNECT_DEVICE_FROM_A_VALID_PORT, @@ -2245,13 +2245,13 @@ MSG_HASH(MSG_VALUE_REBOOTING, MSG_HASH(MSG_VALUE_SHUTTING_DOWN, "正在關機……") MSG_HASH(MSG_VERSION_OF_LIBRETRO_API, - "libretro API版本") + "libretro API 版本") MSG_HASH(MSG_VIEWPORT_SIZE_CALCULATION_FAILED, "Viewport size calculation failed! Will continue using raw data. This will probably not work right ...") MSG_HASH(MSG_VIRTUAL_DISK_TRAY, "virtual disk tray.") MSG_HASH(MENU_ENUM_SUBLABEL_AUDIO_LATENCY, - "Desired audio latency in milliseconds. Might not be honored if the audio driver can't provide given latency.") + "設定您想要的聲音延遲(毫秒). 假設預設的裝置無法支援設定值時該值可能無法成功套用.") MSG_HASH(MENU_ENUM_SUBLABEL_AUDIO_MUTE, "禁音/取消禁音。") MSG_HASH( @@ -2264,7 +2264,7 @@ MSG_HASH( ) MSG_HASH( MENU_ENUM_SUBLABEL_LOCATION_ALLOW, - "Allow or disallow location services access by cores." + "開啟或取消定位服務" ) MSG_HASH( MENU_ENUM_SUBLABEL_INPUT_MAX_USERS, @@ -3001,14 +3001,14 @@ MSG_HASH( "Increase or decrease the amount of cheats." ) MSG_HASH(MENU_ENUM_SUBLABEL_CHEAT_APPLY_CHANGES, - "Cheat changes will take effect immediately.") + "金手指一但變更會立該生效.") MSG_HASH( MENU_ENUM_SUBLABEL_CHEAT_FILE_LOAD, - "Load a cheat file." + "載入一個金手指檔案." ) MSG_HASH( MENU_ENUM_SUBLABEL_CHEAT_FILE_SAVE_AS, - "Save current cheats as a save file." + "儲存目前的金手指." ) MSG_HASH(MENU_ENUM_SUBLABEL_CONTENT_SETTINGS, "Quickly access all relevant in-game settings.") @@ -3040,194 +3040,194 @@ MSG_HASH(MENU_ENUM_LABEL_VALUE_FILTER_BY_CURRENT_CORE, "Filter by current core") MSG_HASH( MSG_AUDIO_MIXER_VOLUME, - "Global audio mixer volume" + "全區域混音器聲音大小" ) MSG_HASH( MENU_ENUM_SUBLABEL_AUDIO_MIXER_VOLUME, - "Global audio mixer volume (in dB). 0 dB is normal volume, and no gain is applied." + "全區域混音器聲音大小 (dB). 0 dB 為原始聲音大小。未經過調整." ) MSG_HASH( MENU_ENUM_LABEL_VALUE_AUDIO_MIXER_VOLUME, - "Audio Mixer Volume Level (dB)" + "混音器聲音大小(dB)" ) MSG_HASH( MENU_ENUM_LABEL_VALUE_AUDIO_MIXER_MUTE, - "Audio Mixer Mute" + "混音器 靜音" ) MSG_HASH(MENU_ENUM_SUBLABEL_AUDIO_MIXER_MUTE, - "Mute/unmute mixer audio.") + "靜音/取消靜音 混音器.") MSG_HASH(MENU_ENUM_LABEL_MENU_SHOW_ONLINE_UPDATER, - "Show Online Updater") + "顯示 Online Updater") MSG_HASH(MENU_ENUM_SUBLABEL_MENU_SHOW_ONLINE_UPDATER, - "Show/hide the 'Online Updater' option.") + "顯示/隱藏 the 'Online Updater' option.") MSG_HASH(MENU_ENUM_LABEL_VALUE_MENU_SHOW_CORE_UPDATER, - "Show Core Updater") + "顯示 Core Updater") MSG_HASH(MENU_ENUM_SUBLABEL_MENU_SHOW_CORE_UPDATER, - "Show/hide the ability to update cores (and core info files).") + "顯示/隱藏 the ability to update cores (and core info files).") MSG_HASH(MSG_PREPARING_FOR_CONTENT_SCAN, - "Preparing for content scan...") + "正準備掃描內容...") MSG_HASH(MENU_ENUM_LABEL_VALUE_CORE_DELETE, - "Delete core") + "刪除模擬程式(core)") MSG_HASH(MENU_ENUM_SUBLABEL_CORE_DELETE, - "Remove this core from disk.") + "從磁碟搬移模擬程式(core).") MSG_HASH(MENU_ENUM_LABEL_VALUE_RENAME_ENTRY, - "Rename the title of the entry.") + "變更此筆資料的名稱.") MSG_HASH(MENU_ENUM_LABEL_RENAME_ENTRY, - "Rename") + "更名") MSG_HASH(MENU_ENUM_LABEL_VALUE_MENU_FRAMEBUFFER_OPACITY, - "Framebuffer Opacity") + "Framebuffer 透明度") MSG_HASH(MENU_ENUM_SUBLABEL_MENU_FRAMEBUFFER_OPACITY, - "Modify the opacity of the framebuffer.") + "修改framebuffer 透明度.") MSG_HASH(MENU_ENUM_LABEL_VALUE_GOTO_FAVORITES, - "Favorites") + "我的最愛") MSG_HASH(MENU_ENUM_SUBLABEL_GOTO_FAVORITES, - "Content which you have added to 'Favorites' will appear here.") + "先前加入至『我的最愛』的遊戲內容將會出現在這裡.") MSG_HASH(MENU_ENUM_LABEL_VALUE_GOTO_MUSIC, - "Music") + "音樂") MSG_HASH(MENU_ENUM_SUBLABEL_GOTO_MUSIC, - "Music which has been previously played will appear here.") + "先前播放的音樂將會出現在這裡.") MSG_HASH(MENU_ENUM_LABEL_VALUE_GOTO_IMAGES, - "Image") + "圖片") MSG_HASH(MENU_ENUM_SUBLABEL_GOTO_IMAGES, - "Images which have been previously viewed will appear here.") + "先前觀看的圖片將會出現在這裡.") MSG_HASH(MENU_ENUM_LABEL_VALUE_GOTO_VIDEO, - "Video") + "視訊") MSG_HASH(MENU_ENUM_SUBLABEL_GOTO_VIDEO, - "Videos which have been previously played will appear here.") + "先前遊玩的影像將會出現在這裡.") MSG_HASH(MENU_ENUM_LABEL_VALUE_MATERIALUI_ICONS_ENABLE, "Menu Icons") MSG_HASH(MENU_ENUM_SUBLABEL_MATERIALUI_ICONS_ENABLE, - "Enable/disable the menu icons shown at the lefthand side of the menu entries.") + "開啟/取消 the menu icons shown at the lefthand side of the menu entries.") MSG_HASH(MENU_ENUM_LABEL_VALUE_XMB_MAIN_MENU_ENABLE_SETTINGS, - "Enable Settings Tab") + "開啟 Settings Tab") MSG_HASH(MENU_ENUM_LABEL_VALUE_CONTENT_SHOW_SETTINGS_PASSWORD, - "Set Password For Enabling Settings Tab") + "設定開啟 Settings Tab 的密碼") MSG_HASH(MSG_INPUT_ENABLE_SETTINGS_PASSWORD, - "Enter Password") + "請輸入密碼") MSG_HASH(MSG_INPUT_ENABLE_SETTINGS_PASSWORD_OK, - "Password correct.") + "密碼正確") MSG_HASH(MSG_INPUT_ENABLE_SETTINGS_PASSWORD_NOK, - "Password incorrect.") + "密碼錯誤") MSG_HASH(MENU_ENUM_SUBLABEL_XMB_MAIN_MENU_ENABLE_SETTINGS, - "Enables the Settings tab. A restart is required for the tab to appear.") + "開啟 Settings tab. 必需重開機") MSG_HASH(MENU_ENUM_SUBLABEL_CONTENT_SHOW_SETTINGS_PASSWORD, - "Supplying a password when hiding the settings tab makes it possible to later restore it from the menu, by going to the Main Menu tab, selecting Enable Settings Tab and entering the password.") + "請輸入隱藏 settings tab 的密碼。事後可在選項中取消") MSG_HASH(MENU_ENUM_SUBLABEL_PLAYLIST_ENTRY_RENAME, "Allow the user to rename entries in collections.") MSG_HASH(MENU_ENUM_LABEL_VALUE_PLAYLIST_ENTRY_RENAME, "Allow to rename entries") MSG_HASH(MENU_ENUM_LABEL_VALUE_MENU_SHOW_LOAD_CORE, - "Show Load Core") + "顯示 Load Core") MSG_HASH(MENU_ENUM_SUBLABEL_MENU_SHOW_LOAD_CORE, - "Show/hide the 'Load Core' option.") + "顯示/隱藏 the 'Load Core' option.") MSG_HASH(MENU_ENUM_LABEL_VALUE_MENU_SHOW_LOAD_CONTENT, - "Show Load Content") + "顯示 Load Content") MSG_HASH(MENU_ENUM_SUBLABEL_MENU_SHOW_LOAD_CONTENT, - "Show/hide the 'Load Content' option.") + "顯示/隱藏 the 'Load Content' option.") MSG_HASH(MENU_ENUM_LABEL_VALUE_MENU_SHOW_INFORMATION, - "Show Information") + "顯示 Information") MSG_HASH(MENU_ENUM_SUBLABEL_MENU_SHOW_INFORMATION, - "Show/hide the 'Information' option.") + "顯示/隱藏 the 'Information' option.") MSG_HASH(MENU_ENUM_LABEL_VALUE_MENU_SHOW_CONFIGURATIONS, - "Show Configurations") + "顯示 Configurations") MSG_HASH(MENU_ENUM_SUBLABEL_MENU_SHOW_CONFIGURATIONS, - "Show/hide the 'Configurations' option.") + "顯示/隱藏 the 'Configurations' option.") MSG_HASH(MENU_ENUM_LABEL_VALUE_MENU_SHOW_HELP, - "Show Help") + "顯示 Help") MSG_HASH(MENU_ENUM_SUBLABEL_MENU_SHOW_HELP, - "Show/hide the 'Help' option.") + "顯示/隱藏 the 'Help' option.") MSG_HASH(MENU_ENUM_LABEL_VALUE_MENU_SHOW_QUIT_RETROARCH, - "Show Quit RetroArch") + "顯示 Quit RetroArch") MSG_HASH(MENU_ENUM_SUBLABEL_MENU_SHOW_QUIT_RETROARCH, - "Show/hide the 'Quit RetroArch' option.") + "顯示/隱藏 the 'Quit RetroArch' option.") MSG_HASH(MENU_ENUM_LABEL_VALUE_MENU_SHOW_REBOOT, - "Show Reboot") + "顯示 Reboot") MSG_HASH(MENU_ENUM_SUBLABEL_MENU_SHOW_REBOOT, - "Show/hide the 'Reboot' option.") + "顯示/隱藏 the 'Reboot' option.") MSG_HASH(MENU_ENUM_LABEL_VALUE_MENU_SHOW_SHUTDOWN, - "Show Shutdown") + "顯示 Shutdown") MSG_HASH(MENU_ENUM_SUBLABEL_MENU_SHOW_SHUTDOWN, - "Show/hide the 'Shutdown' option.") + "顯示/隱藏 the 'Shutdown' option.") MSG_HASH(MENU_ENUM_LABEL_VALUE_QUICK_MENU_VIEWS_SETTINGS, "Quick Menu") MSG_HASH(MENU_ENUM_SUBLABEL_QUICK_MENU_VIEWS_SETTINGS, - "Show or hide elements on the Quick Menu screen.") + "顯示 or 隱藏 elements on the Quick Menu screen.") MSG_HASH(MENU_ENUM_LABEL_VALUE_QUICK_MENU_SHOW_TAKE_SCREENSHOT, - "Show Take Screenshot") + "顯示 Take Screenshot") MSG_HASH(MENU_ENUM_SUBLABEL_QUICK_MENU_SHOW_TAKE_SCREENSHOT, - "Show/hide the 'Take Screenshot' option.") + "顯示/隱藏 the 'Take Screenshot' option.") MSG_HASH(MENU_ENUM_LABEL_VALUE_QUICK_MENU_SHOW_SAVE_LOAD_STATE, - "Show Save/Load State") + "顯示 Save/Load State") MSG_HASH(MENU_ENUM_SUBLABEL_QUICK_MENU_SHOW_SAVE_LOAD_STATE, - "Show/hide the options for saving/loading state.") + "顯示/隱藏 the options for saving/loading state.") MSG_HASH(MENU_ENUM_LABEL_VALUE_QUICK_MENU_SHOW_UNDO_SAVE_LOAD_STATE, - "Show Undo Save/Load State") + "顯示 Undo Save/Load State") MSG_HASH(MENU_ENUM_SUBLABEL_QUICK_MENU_SHOW_UNDO_SAVE_LOAD_STATE, - "Show/hide the options for undoing save/load state.") + "顯示/隱藏 the options for undoing save/load state.") MSG_HASH(MENU_ENUM_LABEL_VALUE_QUICK_MENU_SHOW_ADD_TO_FAVORITES, - "Show Add to Favorites") + "顯示 Add to Favorites") MSG_HASH(MENU_ENUM_SUBLABEL_QUICK_MENU_SHOW_ADD_TO_FAVORITES, - "Show/hide the 'Add to Favorites' option.") + "顯示/隱藏 the 'Add to Favorites' option.") MSG_HASH(MENU_ENUM_LABEL_VALUE_QUICK_MENU_SHOW_OPTIONS, - "Show Options") + "顯示 Options") MSG_HASH(MENU_ENUM_SUBLABEL_QUICK_MENU_SHOW_OPTIONS, - "Show/hide the 'Options' option.") + "顯示/隱藏 the 'Options' option.") MSG_HASH(MENU_ENUM_LABEL_VALUE_QUICK_MENU_SHOW_CONTROLS, - "Show Controls") + "顯示 Controls") MSG_HASH(MENU_ENUM_SUBLABEL_QUICK_MENU_SHOW_CONTROLS, - "Show/hide the 'Controls' option.") + "顯示/隱藏 the 'Controls' option.") MSG_HASH(MENU_ENUM_LABEL_VALUE_QUICK_MENU_SHOW_CHEATS, - "Show Cheats") + "顯示 Cheats") MSG_HASH(MENU_ENUM_SUBLABEL_QUICK_MENU_SHOW_CHEATS, - "Show/hide the 'Cheats' option.") + "顯示/隱藏 the 'Cheats' option.") MSG_HASH(MENU_ENUM_LABEL_VALUE_QUICK_MENU_SHOW_SHADERS, - "Show Shaders") + "顯示 Shaders") MSG_HASH(MENU_ENUM_SUBLABEL_QUICK_MENU_SHOW_SHADERS, - "Show/hide the 'Shaders' option.") + "顯示/隱藏 the 'Shaders' option.") MSG_HASH(MENU_ENUM_LABEL_VALUE_QUICK_MENU_SHOW_SAVE_CORE_OVERRIDES, - "Show Save Core Overrides") + "顯示 Save Core Overrides") MSG_HASH(MENU_ENUM_SUBLABEL_QUICK_MENU_SHOW_SAVE_CORE_OVERRIDES, - "Show/hide the 'Save Core Overrides' option.") + "顯示/隱藏 the 'Save Core Overrides' option.") MSG_HASH(MENU_ENUM_LABEL_VALUE_QUICK_MENU_SHOW_SAVE_GAME_OVERRIDES, - "Show Save Game Overrides") + "顯示 Save Game Overrides") MSG_HASH(MENU_ENUM_SUBLABEL_QUICK_MENU_SHOW_SAVE_GAME_OVERRIDES, - "Show/hide the 'Save Game Overrides' option.") + "顯示/隱藏 the 'Save Game Overrides' option.") MSG_HASH(MENU_ENUM_LABEL_VALUE_QUICK_MENU_SHOW_INFORMATION, - "Show Information") + "顯示 Information") MSG_HASH(MENU_ENUM_SUBLABEL_QUICK_MENU_SHOW_INFORMATION, - "Show/hide the 'Information' option.") + "顯示/隱藏 the 'Information' option.") MSG_HASH(MENU_ENUM_LABEL_VALUE_MENU_DISABLE_KIOSK_MODE, - "Disable Kiosk Mode") + "取消 Kiosk 模式") MSG_HASH(MENU_ENUM_SUBLABEL_MENU_DISABLE_KIOSK_MODE, - "Disables kiosk mode. A restart is required for the change to take full effect.") + "取消 kiosk 模式. 需重機器.") MSG_HASH(MENU_ENUM_LABEL_VALUE_MENU_ENABLE_KIOSK_MODE, - "Enable Kiosk Mode") + "開啟 Kiosk 模式") MSG_HASH(MENU_ENUM_SUBLABEL_MENU_ENABLE_KIOSK_MODE, - "Protects the setup by hiding all configuration related settings.") + "隱藏相關設定") MSG_HASH(MENU_ENUM_LABEL_VALUE_MENU_KIOSK_MODE_PASSWORD, - "Set Password For Disabling Kiosk Mode") + "設定取消 Kiosk 模式的密碼") MSG_HASH(MENU_ENUM_SUBLABEL_MENU_KIOSK_MODE_PASSWORD, - "Supplying a password when enabling kiosk mode makes it possible to later disable it from the menu, by going to the Main Menu, selecting Disable Kiosk Mode and entering the password.") + "設定開啟 Kiosk 模式的密碼.事後可在選項中取消.") MSG_HASH(MSG_INPUT_KIOSK_MODE_PASSWORD, "Enter Password") MSG_HASH(MSG_INPUT_KIOSK_MODE_PASSWORD_OK, - "Password correct.") + "密碼正確") MSG_HASH(MSG_INPUT_KIOSK_MODE_PASSWORD_NOK, - "Password incorrect.") + "密碼錯誤") MSG_HASH(MENU_ENUM_LABEL_VALUE_AUTOMATICALLY_ADD_CONTENT_TO_PLAYLIST, - "Automatically add content to playlist") + "自動增加遊戲內容至 playlist") MSG_HASH(MENU_ENUM_SUBLABEL_AUTOMATICALLY_ADD_CONTENT_TO_PLAYLIST, "Automatically scans loaded content so they appear inside playlists.") MSG_HASH(MSG_SCANNING_OF_FILE_FINISHED, - "Scanning of file finished") + "掃瞄檔案結束") MSG_HASH(MENU_ENUM_LABEL_VALUE_AUDIO_RESAMPLER_QUALITY, - "Audio Resampler Quality") + "聲音重採樣器品質") MSG_HASH(MENU_ENUM_SUBLABEL_AUDIO_RESAMPLER_QUALITY, "Lower this value to favor performance/lower latency over audio quality, increase if you want better audio quality at the expense of performance/lower latency.") MSG_HASH(MENU_ENUM_LABEL_VALUE_STATISTICS_SHOW, - "Display Statistics") + "顯示統計數字") MSG_HASH(MENU_ENUM_SUBLABEL_STATISTICS_SHOW, - "Show onscreen technical statistics.") + "在畫面中顯示技術資訊.") MSG_HASH(MENU_ENUM_LABEL_VALUE_MENU_RGUI_BORDER_FILLER_ENABLE, "Enable border filler") MSG_HASH(MENU_ENUM_LABEL_VALUE_MENU_RGUI_BORDER_FILLER_THICKNESS_ENABLE, @@ -3345,14 +3345,14 @@ MSG_HASH( ) MSG_HASH( MENU_ENUM_LABEL_VALUE_CRT_SWITCH_X_AXIS_CENTERING, - "X-Axis Centering" + "X-Axis 校正中" ) MSG_HASH( MENU_ENUM_SUBLABEL_CRT_SWITCH_RESOLUTION_USE_CUSTOM_REFRESH_RATE, - "Use a custom refresh rate specified in the config file if needed.") + "必要時使用設定檔中的自定更新頻率") MSG_HASH( MENU_ENUM_LABEL_VALUE_CRT_SWITCH_RESOLUTION_USE_CUSTOM_REFRESH_RATE, - "Use Custom Refresh Rate") + "使用自定更新頻率") MSG_HASH( MENU_ENUM_SUBLABEL_CRT_SWITCH_RESOLUTION_OUTPUT_DISPLAY_ID, "Select the output port connected to the CRT display.") @@ -3361,59 +3361,59 @@ MSG_HASH( "Output Display ID") MSG_HASH( MENU_ENUM_LABEL_VALUE_QUICK_MENU_START_RECORDING, - "Start Recording" + "開始錄製" ) MSG_HASH( MENU_ENUM_SUBLABEL_QUICK_MENU_START_RECORDING, - "Starts recording." + "開始錄製" ) MSG_HASH( MENU_ENUM_LABEL_VALUE_QUICK_MENU_STOP_RECORDING, - "Stop Recording" + "停止錄製" ) MSG_HASH( MENU_ENUM_SUBLABEL_QUICK_MENU_STOP_RECORDING, - "Stops recording." + "停止錄製" ) MSG_HASH( MENU_ENUM_LABEL_VALUE_QUICK_MENU_START_STREAMING, - "Start Streaming" + "開始串流" ) MSG_HASH( MENU_ENUM_SUBLABEL_QUICK_MENU_START_STREAMING, - "Starts streaming." + "開始串流" ) MSG_HASH( MENU_ENUM_LABEL_VALUE_QUICK_MENU_STOP_STREAMING, - "Stop Streaming" + "停止串流" ) MSG_HASH( MENU_ENUM_SUBLABEL_QUICK_MENU_STOP_STREAMING, - "Stops streaming." + "停止串流" ) MSG_HASH( MENU_ENUM_LABEL_VALUE_INPUT_META_RECORDING_TOGGLE, - "Recording toggle" + "錄製開關" ) MSG_HASH( MENU_ENUM_LABEL_VALUE_INPUT_META_STREAMING_TOGGLE, - "Streaming toggle" + "串流開關" ) MSG_HASH( MENU_ENUM_LABEL_VALUE_VIDEO_RECORD_QUALITY, - "Record Quality" + "錄製品質" ) MSG_HASH( MENU_ENUM_LABEL_VALUE_VIDEO_STREAM_QUALITY, - "Stream Quality" + "串流品質" ) MSG_HASH( MENU_ENUM_LABEL_VALUE_STREAMING_URL, - "Streaming URL" + "串流 URL" ) MSG_HASH( MENU_ENUM_LABEL_VALUE_UDP_STREAM_PORT, - "UDP Stream Port" + "UDP 串流 Port" ) MSG_HASH( MENU_ENUM_LABEL_VALUE_ACCOUNTS_TWITCH, @@ -3424,10 +3424,10 @@ MSG_HASH( "YouTube" ) MSG_HASH(MENU_ENUM_LABEL_VALUE_TWITCH_STREAM_KEY, - "Twitch Stream Key") + "Twitch 串流 Key") MSG_HASH(MENU_ENUM_LABEL_VALUE_YOUTUBE_STREAM_KEY, - "YouTube Stream Key") + "YouTube 串流 Key") MSG_HASH(MENU_ENUM_LABEL_VALUE_STREAMING_MODE, - "Streaming Mode") + "串流模式") MSG_HASH(MENU_ENUM_LABEL_VALUE_STREAMING_TITLE, - "Title of Stream") + "串流名稱") From ababce64615bb7bab66ef6dbefc4dd3b4bf2f9ec Mon Sep 17 00:00:00 2001 From: twinaphex Date: Fri, 28 Sep 2018 11:04:46 +0200 Subject: [PATCH 11/26] Hide Resampler Quality setting --- menu/menu_displaylist.c | 13 ++++++++++--- menu/menu_setting.c | 2 -- 2 files changed, 10 insertions(+), 5 deletions(-) diff --git a/menu/menu_displaylist.c b/menu/menu_displaylist.c index 3d5dbdbb34..3b47914c46 100644 --- a/menu/menu_displaylist.c +++ b/menu/menu_displaylist.c @@ -6555,9 +6555,16 @@ bool menu_displaylist_ctl(enum menu_displaylist_ctl_state type, void *data) MENU_ENUM_LABEL_AUDIO_LATENCY, PARSE_ONLY_UINT, false) == 0) count++; - menu_displaylist_parse_settings_enum(menu, info, - MENU_ENUM_LABEL_AUDIO_RESAMPLER_QUALITY, - PARSE_ONLY_UINT, false); + { + settings_t *settings = config_get_ptr(); + if (string_is_not_equal(settings->arrays.audio_resampler, "null")) + { + menu_displaylist_parse_settings_enum(menu, info, + MENU_ENUM_LABEL_AUDIO_RESAMPLER_QUALITY, + PARSE_ONLY_UINT, false); + count++; + } + } menu_displaylist_parse_settings_enum(menu, info, MENU_ENUM_LABEL_AUDIO_RATE_CONTROL_DELTA, PARSE_ONLY_FLOAT, false); diff --git a/menu/menu_setting.c b/menu/menu_setting.c index e9d3f94e5d..37af836936 100644 --- a/menu/menu_setting.c +++ b/menu/menu_setting.c @@ -32,8 +32,6 @@ #include -#include