From d08f0f1234db8f27e1ca82effefe526dd89b91a2 Mon Sep 17 00:00:00 2001 From: twinaphex <libretro@gmail.com> Date: Sat, 28 Jul 2018 23:18:44 +0200 Subject: [PATCH 01/10] CXX_BUILD cleanups --- input/drivers_joypad/dinput_joypad.c | 100 ++++++++++++++++----------- setting_list.c | 4 +- 2 files changed, 61 insertions(+), 43 deletions(-) diff --git a/input/drivers_joypad/dinput_joypad.c b/input/drivers_joypad/dinput_joypad.c index de6f8f1d4c..b5e3d31d22 100644 --- a/input/drivers_joypad/dinput_joypad.c +++ b/input/drivers_joypad/dinput_joypad.c @@ -132,59 +132,60 @@ static void dinput_joypad_destroy(void) static void dinput_create_rumble_effects(struct dinput_joypad *pad) { - LONG direction = 0; - DWORD axis = DIJOFS_X; - DICONSTANTFORCE dicf; DIENVELOPE dienv; - HRESULT hr; + DICONSTANTFORCE dicf; + LONG direction = 0; + DWORD axis = DIJOFS_X; - dicf.lMagnitude = 0; + dicf.lMagnitude = 0; - dienv.dwSize = sizeof(DIENVELOPE); - dienv.dwAttackLevel = 5000; - dienv.dwAttackTime = 250000; - dienv.dwFadeLevel = 0; - dienv.dwFadeTime = 250000; + dienv.dwSize = sizeof(DIENVELOPE); + dienv.dwAttackLevel = 5000; + dienv.dwAttackTime = 250000; + dienv.dwFadeLevel = 0; + dienv.dwFadeTime = 250000; - pad->rumble_props.cAxes = 1; - pad->rumble_props.dwTriggerButton = DIEB_NOTRIGGER; + pad->rumble_props.cAxes = 1; + pad->rumble_props.dwTriggerButton = DIEB_NOTRIGGER; pad->rumble_props.dwTriggerRepeatInterval = 0; - pad->rumble_props.cbTypeSpecificParams = sizeof(DICONSTANTFORCE); - pad->rumble_props.dwDuration = INFINITE; - pad->rumble_props.dwFlags = DIEFF_CARTESIAN | DIEFF_OBJECTOFFSETS; - pad->rumble_props.dwGain = 0; - pad->rumble_props.dwSize = sizeof(DIEFFECT); - pad->rumble_props.dwStartDelay = 0; - pad->rumble_props.lpEnvelope = &dienv; - pad->rumble_props.lpvTypeSpecificParams = &dicf; - pad->rumble_props.rgdwAxes = &axis; - pad->rumble_props.rglDirection = &direction; + pad->rumble_props.cbTypeSpecificParams = sizeof(DICONSTANTFORCE); + pad->rumble_props.dwDuration = INFINITE; + pad->rumble_props.dwFlags = DIEFF_CARTESIAN | + DIEFF_OBJECTOFFSETS; + pad->rumble_props.dwGain = 0; + pad->rumble_props.dwSize = sizeof(DIEFFECT); + pad->rumble_props.dwStartDelay = 0; + pad->rumble_props.lpEnvelope = &dienv; + pad->rumble_props.lpvTypeSpecificParams = &dicf; + pad->rumble_props.rgdwAxes = &axis; + pad->rumble_props.rglDirection = &direction; - hr = IDirectInputDevice8_CreateEffect(pad->joypad, &GUID_ConstantForce, - &pad->rumble_props, &pad->rumble_iface[0], NULL); - if (hr != DI_OK) + if (IDirectInputDevice8_CreateEffect(pad->joypad, &GUID_ConstantForce, + &pad->rumble_props, &pad->rumble_iface[0], NULL) != DI_OK) RARCH_WARN("[DINPUT]: Strong rumble unavailable.\n"); axis = DIJOFS_Y; - hr = IDirectInputDevice8_CreateEffect(pad->joypad, &GUID_ConstantForce, - &pad->rumble_props, &pad->rumble_iface[1], NULL); - if (hr != DI_OK) + if (IDirectInputDevice8_CreateEffect(pad->joypad, &GUID_ConstantForce, + &pad->rumble_props, &pad->rumble_iface[1], NULL) != DI_OK) RARCH_WARN("[DINPUT]: Weak rumble unavailable.\n"); } -static BOOL CALLBACK enum_axes_cb(const DIDEVICEOBJECTINSTANCE *inst, void *p) +static BOOL CALLBACK enum_axes_cb( + const DIDEVICEOBJECTINSTANCE *inst, void *p) { DIPROPRANGE range; LPDIRECTINPUTDEVICE8 joypad = (LPDIRECTINPUTDEVICE8)p; memset(&range, 0, sizeof(range)); - range.diph.dwSize = sizeof(DIPROPRANGE); + + range.diph.dwSize = sizeof(DIPROPRANGE); range.diph.dwHeaderSize = sizeof(DIPROPHEADER); - range.diph.dwHow = DIPH_BYID; - range.diph.dwObj = inst->dwType; - range.lMin = -0x7fff; - range.lMax = 0x7fff; + range.diph.dwHow = DIPH_BYID; + range.diph.dwObj = inst->dwType; + range.lMin = -0x7fff; + range.lMax = 0x7fff; + IDirectInputDevice8_SetProperty(joypad, DIPROP_RANGE, &range.diph); return DIENUM_CONTINUE; @@ -206,7 +207,8 @@ static bool guid_is_xinput_device(const GUID* product_guid) for (i = 0; i < ARRAY_SIZE(common_xinput_guids); ++i) { - if (string_is_equal_fast(product_guid, &common_xinput_guids[i], sizeof(GUID))) + if (string_is_equal_fast(product_guid, + &common_xinput_guids[i], sizeof(GUID))) return true; } @@ -241,8 +243,10 @@ static bool guid_is_xinput_device(const GUID* product_guid) rdi.cbSize = sizeof (rdi); if ((raw_devs[i].dwType == RIM_TYPEHID) && - (GetRawInputDeviceInfoA(raw_devs[i].hDevice, RIDI_DEVICEINFO, &rdi, &rdiSize) != ((UINT)-1)) && - (MAKELONG(rdi.hid.dwVendorId, rdi.hid.dwProductId) == ((LONG)product_guid->Data1)) && + (GetRawInputDeviceInfoA(raw_devs[i].hDevice, + RIDI_DEVICEINFO, &rdi, &rdiSize) != ((UINT)-1)) && + (MAKELONG(rdi.hid.dwVendorId, rdi.hid.dwProductId) + == ((LONG)product_guid->Data1)) && (GetRawInputDeviceInfoA(raw_devs[i].hDevice, RIDI_DEVICENAME, devName, &nameSize) != ((UINT)-1)) && (strstr(devName, "IG_") != NULL) ) { @@ -313,15 +317,26 @@ static BOOL CALLBACK enum_joypad_cb(const DIDEVICEINSTANCE *inst, void *p) /* there may be more useful info in the GUID so leave this here for a while */ #if 0 printf("Guid = {%08lX-%04hX-%04hX-%02hhX%02hhX-%02hhX%02hhX%02hhX%02hhX%02hhX%02hhX}\n", - inst->guidProduct.Data1, inst->guidProduct.Data2, inst->guidProduct.Data3, - inst->guidProduct.Data4[0], inst->guidProduct.Data4[1], inst->guidProduct.Data4[2], inst->guidProduct.Data4[3], - inst->guidProduct.Data4[4], inst->guidProduct.Data4[5], inst->guidProduct.Data4[6], inst->guidProduct.Data4[7]); + inst->guidProduct.Data1, + inst->guidProduct.Data2, + inst->guidProduct.Data3, + inst->guidProduct.Data4[0], + inst->guidProduct.Data4[1], + inst->guidProduct.Data4[2], + inst->guidProduct.Data4[3], + inst->guidProduct.Data4[4], + inst->guidProduct.Data4[5], + inst->guidProduct.Data4[6], + inst->guidProduct.Data4[7]); #endif g_pads[g_joypad_cnt].vid = inst->guidProduct.Data1 % 0x10000; g_pads[g_joypad_cnt].pid = inst->guidProduct.Data1 / 0x10000; - RARCH_LOG("[DINPUT]: Device #%u PID: {%04lX} VID:{%04lX}\n", g_joypad_cnt, g_pads[g_joypad_cnt].pid, g_pads[g_joypad_cnt].vid); + RARCH_LOG("[DINPUT]: Device #%u PID: {%04lX} VID:{%04lX}\n", + g_joypad_cnt, + g_pads[g_joypad_cnt].pid, + g_pads[g_joypad_cnt].vid); #ifdef HAVE_XINPUT is_xinput_pad = g_xinput_block_pads @@ -336,7 +351,8 @@ static BOOL CALLBACK enum_joypad_cb(const DIDEVICEINSTANCE *inst, void *p) #endif IDirectInputDevice8_SetDataFormat(*pad, &c_dfDIJoystick2); - IDirectInputDevice8_SetCooperativeLevel(*pad, (HWND)video_driver_window_get(), + IDirectInputDevice8_SetCooperativeLevel(*pad, + (HWND)video_driver_window_get(), DISCL_EXCLUSIVE | DISCL_BACKGROUND); IDirectInputDevice8_EnumObjects(*pad, enum_axes_cb, diff --git a/setting_list.c b/setting_list.c index 8448c53f9d..115d9af857 100644 --- a/setting_list.c +++ b/setting_list.c @@ -189,7 +189,9 @@ void setting_get_string_representation_uint_as_enum(void *data, rarch_setting_t *setting = (rarch_setting_t*)data; if (setting) snprintf(s, len, "%s", - msg_hash_to_str(setting->index_offset+(*setting->value.target.unsigned_integer))); + msg_hash_to_str((enum msg_hash_enums)( + setting->index_offset+( + *setting->value.target.unsigned_integer)))); } static float recalc_step_based_on_length_of_action(rarch_setting_t *setting) From 978edc7acfb9f66fa225e698360f70eb4034152c Mon Sep 17 00:00:00 2001 From: Brad Parker <cbparker@gmail.com> Date: Sat, 28 Jul 2018 18:46:51 -0400 Subject: [PATCH 02/10] Qt: always set the current tab on startup --- ui/drivers/ui_qt.cpp | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) diff --git a/ui/drivers/ui_qt.cpp b/ui/drivers/ui_qt.cpp index e3fde1f24b..150ad432ec 100644 --- a/ui/drivers/ui_qt.cpp +++ b/ui/drivers/ui_qt.cpp @@ -535,15 +535,12 @@ static void* ui_companion_qt_init(void) /* setting the last tab must come after setting the view type */ if (qsettings->contains("save_last_tab")) { - if (qsettings->contains("last_tab")) - { - int lastTabIndex = qsettings->value("last_tab", 0).toInt(); + int lastTabIndex = qsettings->value("last_tab", 0).toInt(); - if (lastTabIndex >= 0 && browserAndPlaylistTabWidget->count() > lastTabIndex) - { - browserAndPlaylistTabWidget->setCurrentIndex(lastTabIndex); - mainwindow->onTabWidgetIndexChanged(lastTabIndex); - } + if (lastTabIndex >= 0 && browserAndPlaylistTabWidget->count() > lastTabIndex) + { + browserAndPlaylistTabWidget->setCurrentIndex(lastTabIndex); + mainwindow->onTabWidgetIndexChanged(lastTabIndex); } } else From fea09f73821b4244c74e0018c68f285f8edd9dfc Mon Sep 17 00:00:00 2001 From: Brad Parker <cbparker@gmail.com> Date: Sat, 28 Jul 2018 22:34:00 -0400 Subject: [PATCH 03/10] Qt: add right-click menu to delete playlist items --- intl/msg_hash_ja.h | 2 + intl/msg_hash_us.h | 2 + msg_hash.h | 1 + ui/drivers/qt/ui_qt_window.cpp | 74 ++++++++++++++++++++++++++-------- ui/drivers/ui_qt.cpp | 2 + ui/drivers/ui_qt.h | 3 ++ 6 files changed, 67 insertions(+), 17 deletions(-) diff --git a/intl/msg_hash_ja.h b/intl/msg_hash_ja.h index 258976db24..db13fada11 100644 --- a/intl/msg_hash_ja.h +++ b/intl/msg_hash_ja.h @@ -3666,3 +3666,5 @@ MSG_HASH(MENU_ENUM_LABEL_VALUE_QT_CONFIRM_DELETE_PLAYLIST_ITEM, "「%1」というアイテムを削除しますか?") MSG_HASH(MENU_ENUM_LABEL_VALUE_QT_CANNOT_ADD_TO_ALL_PLAYLISTS, "まずひとつのプレイリストを選択してください。") +MSG_HASH(MENU_ENUM_LABEL_VALUE_QT_DELETE, + "削除") diff --git a/intl/msg_hash_us.h b/intl/msg_hash_us.h index 09d0cb4ebe..0cb7e9c4e6 100644 --- a/intl/msg_hash_us.h +++ b/intl/msg_hash_us.h @@ -4176,3 +4176,5 @@ MSG_HASH(MENU_ENUM_LABEL_VALUE_QT_CONFIRM_DELETE_PLAYLIST_ITEM, "Are you sure you want to delete the item \"%1\"?") MSG_HASH(MENU_ENUM_LABEL_VALUE_QT_CANNOT_ADD_TO_ALL_PLAYLISTS, "Please choose a single playlist first.") +MSG_HASH(MENU_ENUM_LABEL_VALUE_QT_DELETE, + "Delete") diff --git a/msg_hash.h b/msg_hash.h index d0ba76205e..e947239b99 100644 --- a/msg_hash.h +++ b/msg_hash.h @@ -1949,6 +1949,7 @@ enum msg_hash_enums MENU_ENUM_LABEL_VALUE_QT_PLAYLIST_ENTRY_DATABASE, MENU_ENUM_LABEL_VALUE_QT_FOR_THUMBNAILS, MENU_ENUM_LABEL_VALUE_QT_CANNOT_ADD_TO_ALL_PLAYLISTS, + MENU_ENUM_LABEL_VALUE_QT_DELETE, MENU_LABEL(MIDI_INPUT), MENU_LABEL(MIDI_OUTPUT), diff --git a/ui/drivers/qt/ui_qt_window.cpp b/ui/drivers/qt/ui_qt_window.cpp index af33cb03aa..c35ef80bbf 100644 --- a/ui/drivers/qt/ui_qt_window.cpp +++ b/ui/drivers/qt/ui_qt_window.cpp @@ -991,6 +991,7 @@ MainWindow::MainWindow(QWidget *parent) : m_dirTree->setContextMenuPolicy(Qt::CustomContextMenu); m_listWidget->setContextMenuPolicy(Qt::CustomContextMenu); + m_gridLayoutWidget->setContextMenuPolicy(Qt::CustomContextMenu); connect(m_searchLineEdit, SIGNAL(returnPressed()), this, SLOT(onSearchEnterPressed())); connect(m_searchLineEdit, SIGNAL(textEdited(const QString&)), this, SLOT(onSearchLineEditEdited(const QString&))); @@ -1014,6 +1015,7 @@ MainWindow::MainWindow(QWidget *parent) : connect(viewTypeIconsAction, SIGNAL(triggered()), this, SLOT(onIconViewClicked())); connect(viewTypeListAction, SIGNAL(triggered()), this, SLOT(onListViewClicked())); connect(m_gridLayoutWidget, SIGNAL(filesDropped(QStringList)), this, SLOT(onPlaylistFilesDropped(QStringList))); + connect(m_gridLayoutWidget, SIGNAL(customContextMenuRequested(const QPoint&)), this, SLOT(onFileDropWidgetContextMenuRequested(const QPoint&))); /* make sure these use an auto connection so it will be queued if called from a different thread (some facilities in RA log messages from other threads) */ connect(this, SIGNAL(gotLogMessage(const QString&)), this, SLOT(onGotLogMessage(const QString&)), Qt::AutoConnection); @@ -1444,6 +1446,30 @@ bool MainWindow::showMessageBox(QString msg, MessageBoxType msgType, Qt::WindowM return true; } +void MainWindow::onFileDropWidgetContextMenuRequested(const QPoint &pos) +{ + QScopedPointer<QMenu> menu; + QScopedPointer<QAction> deleteAction; + QPointer<QAction> selectedAction; + QPoint cursorPos = QCursor::pos(); + + menu.reset(new QMenu(this)); + + deleteAction.reset(new QAction(QString(msg_hash_to_str(MENU_ENUM_LABEL_VALUE_QT_DELETE)), this)); + + menu->addAction(deleteAction.data()); + + selectedAction = menu->exec(cursorPos); + + if (!selectedAction) + return; + + if (selectedAction == deleteAction.data()) + { + deleteCurrentPlaylistItem(); + } +} + void MainWindow::onPlaylistWidgetContextMenuRequested(const QPoint&) { settings_t *settings = config_get_ptr(); @@ -2408,37 +2434,51 @@ void MainWindow::onTableWidgetDeletePressed() deleteCurrentPlaylistItem(); } -void MainWindow::deleteCurrentPlaylistItem() +QString MainWindow::getCurrentPlaylistPath() +{ + QListWidgetItem *playlistItem = m_listWidget->currentItem(); + QHash<QString, QString> contentHash; + QString playlistPath; + + if (!playlistItem) + return playlistPath; + + playlistPath = playlistItem->data(Qt::UserRole).toString(); + + return playlistPath; +} + +QHash<QString, QString> MainWindow::getCurrentContentHash() { QTableWidgetItem *contentItem = m_tableWidget->currentItem(); QListWidgetItem *playlistItem = m_listWidget->currentItem(); QHash<QString, QString> contentHash; - QString playlistPath; - QByteArray playlistArray; ViewType viewType = getCurrentViewType(); - playlist_t *playlist = NULL; - const char *playlistData = NULL; - unsigned index = 0; - bool ok = false; - - if (!playlistItem) - return; - - playlistPath = playlistItem->data(Qt::UserRole).toString(); - - if (playlistPath.isEmpty()) - return; if (viewType == VIEW_TYPE_LIST) { if (!contentItem) - return; + return contentHash; contentHash = contentItem->data(Qt::UserRole).value<QHash<QString, QString> >(); } else if (viewType == VIEW_TYPE_ICONS) contentHash = m_currentGridHash; - else + + return contentHash; +} + +void MainWindow::deleteCurrentPlaylistItem() +{ + QString playlistPath = getCurrentPlaylistPath(); + QByteArray playlistArray; + QHash<QString, QString> contentHash = getCurrentContentHash(); + playlist_t *playlist = NULL; + const char *playlistData = NULL; + unsigned index = 0; + bool ok = false; + + if (playlistPath.isEmpty()) return; if (contentHash.isEmpty()) diff --git a/ui/drivers/ui_qt.cpp b/ui/drivers/ui_qt.cpp index 150ad432ec..415e056fca 100644 --- a/ui/drivers/ui_qt.cpp +++ b/ui/drivers/ui_qt.cpp @@ -277,9 +277,11 @@ static void* ui_companion_qt_init(void) widget = new FileDropWidget(mainwindow); widget->setObjectName("tableWidget"); + widget->setContextMenuPolicy(Qt::CustomContextMenu); QObject::connect(widget, SIGNAL(filesDropped(QStringList)), mainwindow, SLOT(onPlaylistFilesDropped(QStringList))); QObject::connect(widget, SIGNAL(deletePressed()), mainwindow, SLOT(deleteCurrentPlaylistItem())); + QObject::connect(widget, SIGNAL(customContextMenuRequested(const QPoint&)), mainwindow, SLOT(onFileDropWidgetContextMenuRequested(const QPoint&))); layout = new QVBoxLayout(); layout->addWidget(mainwindow->contentTableWidget()); diff --git a/ui/drivers/ui_qt.h b/ui/drivers/ui_qt.h index 3fcbb8a979..056066ce03 100644 --- a/ui/drivers/ui_qt.h +++ b/ui/drivers/ui_qt.h @@ -339,6 +339,8 @@ public: void setAllPlaylistsGridMaxCount(int count); PlaylistEntryDialog* playlistEntryDialog(); void addFilesToPlaylist(QStringList files); + QString getCurrentPlaylistPath(); + QHash<QString, QString> getCurrentContentHash(); signals: void thumbnailChanged(const QPixmap &pixmap); @@ -378,6 +380,7 @@ public slots: void onListViewClicked(); void onTabWidgetIndexChanged(int index); void deleteCurrentPlaylistItem(); + void onFileDropWidgetContextMenuRequested(const QPoint &pos); private slots: void onLoadCoreClicked(const QStringList &extensionFilters = QStringList()); From 2faa25017489db67b0ef022f2c609a305c881bd4 Mon Sep 17 00:00:00 2001 From: Brad Parker <cbparker@gmail.com> Date: Sat, 28 Jul 2018 23:15:00 -0400 Subject: [PATCH 04/10] Qt: throttle status bar messages --- ui/drivers/qt/ui_qt_window.cpp | 13 ++++++++++++- ui/drivers/ui_qt.h | 2 ++ 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/ui/drivers/qt/ui_qt_window.cpp b/ui/drivers/qt/ui_qt_window.cpp index c35ef80bbf..27e5b38d81 100644 --- a/ui/drivers/qt/ui_qt_window.cpp +++ b/ui/drivers/qt/ui_qt_window.cpp @@ -63,6 +63,7 @@ extern "C" { } #define TIMER_MSEC 1000 /* periodic timer for gathering statistics */ +#define STATUS_MSG_THROTTLE_MSEC 250 #ifndef COLLECTION_SIZE #define COLLECTION_SIZE 99999 @@ -805,6 +806,7 @@ MainWindow::MainWindow(QWidget *parent) : ,m_allPlaylistsListMaxCount(0) ,m_allPlaylistsGridMaxCount(0) ,m_playlistEntryDialog(NULL) + ,m_statusMessageElapsedTimer() { settings_t *settings = config_get_ptr(); QDir playlistDir(settings->paths.directory_playlist); @@ -1036,6 +1038,8 @@ MainWindow::MainWindow(QWidget *parent) : m_searchLineEdit->setFocus(); m_loadCoreWindow->setWindowModality(Qt::ApplicationModal); + m_statusMessageElapsedTimer.start(); + #if (QT_VERSION >= QT_VERSION_CHECK(5, 6, 0)) resizeDocks(QList<QDockWidget*>() << m_searchDock, QList<int>() << 1, Qt::Vertical); #endif @@ -1784,7 +1788,14 @@ void MainWindow::onGotStatusMessage(QString msg, unsigned priority, unsigned dur msecDuration = 1000; if (status->currentMessage().isEmpty() || flush) - status->showMessage(msg, msecDuration); + { + if (m_statusMessageElapsedTimer.elapsed() >= STATUS_MSG_THROTTLE_MSEC) + { + qint64 msgDuration = qMax(msecDuration, STATUS_MSG_THROTTLE_MSEC); + m_statusMessageElapsedTimer.restart(); + status->showMessage(msg, msgDuration); + } + } } void MainWindow::deferReloadPlaylists() diff --git a/ui/drivers/ui_qt.h b/ui/drivers/ui_qt.h index 056066ce03..9f1ab5c1c9 100644 --- a/ui/drivers/ui_qt.h +++ b/ui/drivers/ui_qt.h @@ -34,6 +34,7 @@ #include <QImage> #include <QPointer> #include <QProgressBar> +#include <QElapsedTimer> extern "C" { #include <retro_assert.h> @@ -480,6 +481,7 @@ private: int m_allPlaylistsListMaxCount; int m_allPlaylistsGridMaxCount; PlaylistEntryDialog *m_playlistEntryDialog; + QElapsedTimer m_statusMessageElapsedTimer; protected: void closeEvent(QCloseEvent *event); From ef43e171cee0a52a041b1fa8c7b5a41e0c9a9167 Mon Sep 17 00:00:00 2001 From: Sylvain Colinet <scolinet@gmail.com> Date: Sun, 29 Jul 2018 14:49:31 +0200 Subject: [PATCH 05/10] Network command interface : Fix the READ_CORE_RAM command to not crash when asking for size over 78 --- command.c | 23 ++++++++++++++--------- 1 file changed, 14 insertions(+), 9 deletions(-) diff --git a/command.c b/command.c index 62cc725441..f4cca97af7 100644 --- a/command.c +++ b/command.c @@ -246,28 +246,31 @@ bool command_set_shader(const char *arg) } #if defined(HAVE_COMMAND) && defined(HAVE_CHEEVOS) +#define SMY_CMD_STR "READ_CORE_RAM" static bool command_read_ram(const char *arg) { cheevos_var_t var; unsigned i; - char reply[256] = {0}; + char *reply = NULL; const uint8_t * data = NULL; char *reply_at = NULL; + unsigned int nbytes = 0; + unsigned int alloc_size = 0; + int addr = -1; - reply[0] = '\0'; + if (sscanf(arg, "%x %d", &addr, &nbytes) != 2) + return true; + alloc_size = 40 + nbytes * 3; //We alloc more than needed, saving 20 bytes is not really relevant + reply = (char*) malloc(alloc_size); + reply[0] = '\0'; + reply_at = reply + sprintf(reply, SMY_CMD_STR " %x", addr); - strlcpy(reply, "READ_CORE_RAM ", sizeof(reply)); - reply_at = reply + strlen("READ_CORE_RAM "); - strlcpy(reply_at, arg, sizeof(reply)-strlen(reply)); - - var.value = strtoul(reply_at, (char**)&reply_at, 16); + var.value = addr; cheevos_var_patch_addr(&var, cheevos_get_console()); data = cheevos_var_get_memory(&var); if (data) { - unsigned nbytes = strtol(reply_at, NULL, 10); - for (i=0;i<nbytes;i++) sprintf(reply_at+3*i, " %.2X", data[i]); reply_at[3*nbytes] = '\n'; @@ -278,9 +281,11 @@ static bool command_read_ram(const char *arg) strlcpy(reply_at, " -1\n", sizeof(reply)-strlen(reply)); command_reply(reply, reply_at+strlen(" -1\n") - reply); } + free(reply); return true; } +#undef SMY_CMD_STR static bool command_write_ram(const char *arg) { From 011cb61782011df7036348aa9a417bf2bb52920a Mon Sep 17 00:00:00 2001 From: Sylvain Colinet <scolinet@gmail.com> Date: Sun, 29 Jul 2018 15:15:29 +0200 Subject: [PATCH 06/10] Added a version command --- command.c | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/command.c b/command.c index f4cca97af7..105e7d761e 100644 --- a/command.c +++ b/command.c @@ -93,6 +93,7 @@ #include "retroarch.h" #include "configuration.h" #include "input/input_remapping.h" +#include "version.h" #define DEFAULT_NETWORK_CMD_PORT 55355 #define STDIN_BUF_SIZE 4096 @@ -130,6 +131,8 @@ struct command #endif }; +static bool command_version(const char *arg); + #if defined(HAVE_COMMAND) && defined(HAVE_CHEEVOS) static bool command_read_ram(const char *arg); static bool command_write_ram(const char *arg); @@ -137,6 +140,7 @@ static bool command_write_ram(const char *arg); static const struct cmd_action_map action_map[] = { { "SET_SHADER", command_set_shader, "<shader path>" }, + { "VERSION", command_version, "No argument"}, #if defined(HAVE_COMMAND) && defined(HAVE_CHEEVOS) { "READ_CORE_RAM", command_read_ram, "<address> <number of bytes>" }, { "WRITE_CORE_RAM", command_write_ram, "<address> <byte1> <byte2> ..." }, @@ -245,6 +249,15 @@ bool command_set_shader(const char *arg) return menu_shader_manager_set_preset(shader, type, arg); } +static bool command_version(const char* arg) +{ + char reply[256] = {0}; + + sprintf(reply, "%s\n", PACKAGE_VERSION); + command_reply(reply, strlen(reply)); + return true; +} + #if defined(HAVE_COMMAND) && defined(HAVE_CHEEVOS) #define SMY_CMD_STR "READ_CORE_RAM" static bool command_read_ram(const char *arg) @@ -337,7 +350,7 @@ static bool command_get_arg(const char *tok, if (str == tok) { const char *argument = str + strlen(action_map[i].str); - if (*argument != ' ') + if (*argument != ' ' && *argument != '\0') return false; if (arg) From 18646e3af0297434d57440c4276d66bb16e101ec Mon Sep 17 00:00:00 2001 From: Alfredo Monclus <alfredomonclus@gmail.com> Date: Sun, 29 Jul 2018 10:54:08 -0300 Subject: [PATCH 07/10] Update Spanish --- intl/msg_hash_es.h | 922 ++++++++++++++++++++++++++++++++++++++++----- 1 file changed, 838 insertions(+), 84 deletions(-) diff --git a/intl/msg_hash_es.h b/intl/msg_hash_es.h index 42832cd482..02d44e9259 100644 --- a/intl/msg_hash_es.h +++ b/intl/msg_hash_es.h @@ -1,11 +1,3 @@ -MSG_HASH( - MSG_DEVICE_CONFIGURED_IN_PORT, - "configurado en puerto" - ) -MSG_HASH( - MSG_FAILED_TO_SET_DISK, - "Fallo al establecer disco" - ) MSG_HASH( MSG_COMPILER, "Compilador" @@ -40,7 +32,7 @@ MSG_HASH( ) MSG_HASH( MSG_NO_ARGUMENTS_SUPPLIED_AND_NO_MENU_BUILTIN, - "No se pasaron argumentos y no hay menú integrado, Mostrando ayuda.." + "No se pasaron argumentos y no hay menú integrado, Mostrando ayuda..." ) MSG_HASH( MSG_SETTING_DISK_IN_TRAY, @@ -48,7 +40,7 @@ MSG_HASH( ) MSG_HASH( MSG_WAITING_FOR_CLIENT, - "Esperando al cliente .." + "Esperando al cliente..." ) MSG_HASH( MSG_NETPLAY_YOU_HAVE_LEFT_THE_GAME, @@ -268,7 +260,7 @@ MSG_HASH( ) MSG_HASH( MENU_ENUM_LABEL_VALUE_AUDIO_DRIVER, - "Audio driver" + "Controlador de Audio" ) MSG_HASH( MENU_ENUM_LABEL_VALUE_AUDIO_DSP_PLUGIN, @@ -450,6 +442,14 @@ MSG_HASH( MENU_ENUM_LABEL_VALUE_CHEAT_APPLY_CHANGES, "Aplicar trucos" ) +MSG_HASH( + MENU_ENUM_LABEL_VALUE_CHEAT_START_SEARCH, + "Iniciar búsqueda de trucos" + ) +MSG_HASH( + MENU_ENUM_LABEL_VALUE_CHEAT_CONTINUE_SEARCH, + "Continuar búsqueda" + ) MSG_HASH( MENU_ENUM_LABEL_VALUE_CHEAT_DATABASE_PATH, "Archivo de trucos" @@ -460,7 +460,11 @@ MSG_HASH( ) MSG_HASH( MENU_ENUM_LABEL_VALUE_CHEAT_FILE_LOAD, - "Cargar archivo de trucos" + "Cargar archivo de trucos (Reemplazar)" + ) +MSG_HASH( + MENU_ENUM_LABEL_VALUE_CHEAT_FILE_LOAD_APPEND, + "Cargar archivo de trucos (Agregar)" ) MSG_HASH( MENU_ENUM_LABEL_VALUE_CHEAT_FILE_SAVE_AS, @@ -748,7 +752,7 @@ MSG_HASH( ) MSG_HASH( MENU_ENUM_LABEL_VALUE_DOWNLOAD_CORE, - "Descargar núcleo.." + "Descargar núcleo" ) MSG_HASH( MENU_ENUM_LABEL_VALUE_DOWNLOAD_CORE_CONTENT, @@ -1014,6 +1018,10 @@ MSG_HASH( MENU_ENUM_LABEL_VALUE_INPUT_BIND_TIMEOUT, "Tiempo limite para asignar" ) +MSG_HASH( + MENU_ENUM_LABEL_VALUE_INPUT_BIND_HOLD, + "Asignar (mantener)" + ) MSG_HASH( MENU_ENUM_LABEL_VALUE_INPUT_DESCRIPTOR_HIDE_UNBOUND, "Ocultar descripciones de entrada sin asignar de los núcleo" @@ -1604,7 +1612,7 @@ MSG_HASH( ) MSG_HASH( MENU_ENUM_LABEL_VALUE_MORE, - ".." + "..." ) MSG_HASH( MENU_ENUM_LABEL_VALUE_MOUSE_ENABLE, @@ -1982,6 +1990,10 @@ MSG_HASH( MENU_ENUM_LABEL_VALUE_PRIVACY_SETTINGS, "Privacidad" ) +MSG_HASH( + MENU_ENUM_LABEL_VALUE_MIDI_SETTINGS, + "MIDI" + ) MSG_HASH( MENU_ENUM_LABEL_VALUE_QUIT_RETROARCH, "Cerrar RetroArch" @@ -2016,15 +2028,15 @@ MSG_HASH( ) MSG_HASH( MENU_ENUM_LABEL_VALUE_RDB_ENTRY_EDGE_MAGAZINE_ISSUE, - "Edge Magazine Issue" + "Edición de la revista Edge" ) MSG_HASH( MENU_ENUM_LABEL_VALUE_RDB_ENTRY_EDGE_MAGAZINE_RATING, - "Edge Magazine Rating" + "Calificación de la revista Edge" ) MSG_HASH( MENU_ENUM_LABEL_VALUE_RDB_ENTRY_EDGE_MAGAZINE_REVIEW, - "Edge Magazine Review" + "Analisis de la revista Edge" ) MSG_HASH( MENU_ENUM_LABEL_VALUE_RDB_ENTRY_ELSPA_RATING, @@ -2040,7 +2052,7 @@ MSG_HASH( ) MSG_HASH( MENU_ENUM_LABEL_VALUE_RDB_ENTRY_FAMITSU_MAGAZINE_RATING, - "Famitsu Magazine Rating" + "Calificación de la revista Famitsu" ) MSG_HASH( MENU_ENUM_LABEL_VALUE_RDB_ENTRY_FRANCHISE, @@ -2122,13 +2134,17 @@ MSG_HASH( MENU_ENUM_LABEL_VALUE_RECORD_DRIVER, "Controlador de grabación" ) +MSG_HASH( + MENU_ENUM_LABEL_VALUE_MIDI_DRIVER, + "Controlador MIDI" + ) MSG_HASH( MENU_ENUM_LABEL_VALUE_RECORD_ENABLE, "Activar grabación" ) MSG_HASH( MENU_ENUM_LABEL_VALUE_RECORD_PATH, - "Guardar grabación en..." + "Guardar grabación como..." ) MSG_HASH( MENU_ENUM_LABEL_VALUE_RECORD_USE_OUTPUT_DIRECTORY, @@ -2165,7 +2181,7 @@ MSG_HASH( MSG_HASH( MENU_ENUM_LABEL_VALUE_REMAP_FILE_REMOVE_CONTENT_DIR, "Borrar directorio de controles personalizados" - ) + ) MSG_HASH( MENU_ENUM_LABEL_VALUE_REQUIRED, "Necesario" @@ -2210,10 +2226,26 @@ MSG_HASH( MENU_ENUM_LABEL_VALUE_REWIND_GRANULARITY, "Nivel de detalle del rebobinado" ) +MSG_HASH( + MENU_ENUM_LABEL_VALUE_REWIND_BUFFER_SIZE, + "Tamaño del Búfer de rebobinado (MB)" + ) +MSG_HASH( + MENU_ENUM_LABEL_VALUE_REWIND_BUFFER_SIZE_STEP, + "Tamaño del intervalo de ajuste del Búfer (MB)" + ) MSG_HASH( MENU_ENUM_LABEL_VALUE_REWIND_SETTINGS, "Rebobinado" ) +MSG_HASH( + MENU_ENUM_LABEL_VALUE_CHEAT_DETAILS_SETTINGS, + "Detalles del truco" + ) +MSG_HASH( + MENU_ENUM_LABEL_VALUE_CHEAT_SEARCH_SETTINGS, + "Iniciar o continuar búsqueda de trucos" + ) MSG_HASH( MENU_ENUM_LABEL_VALUE_RGUI_BROWSER_DIRECTORY, "Explorador de archivos" @@ -2241,7 +2273,7 @@ MSG_HASH( MSG_HASH( MENU_ENUM_LABEL_VALUE_RESET_CORE_ASSOCIATION, "Restablecer asociación de núcleo" - ) + ) MSG_HASH( MENU_ENUM_LABEL_VALUE_RUN, "Iniciar" @@ -2389,7 +2421,7 @@ MSG_HASH( MSG_HASH( MENU_ENUM_LABEL_VALUE_RUN_AHEAD_ENABLED, "Reducir latencia emulando anticipadamente (Run-Ahead)" - ) + ) MSG_HASH( MENU_ENUM_LABEL_VALUE_RUN_AHEAD_FRAMES, "Número de Frames para adelantarse (to run ahead)" @@ -2728,7 +2760,11 @@ MSG_HASH( ) MSG_HASH( MENU_ENUM_LABEL_VALUE_SYSTEM_INFO_VULKAN_SUPPORT, - "Soporte Vulkan" + "Soporte de Vulkan" + ) +MSG_HASH( + MENU_ENUM_LABEL_VALUE_SYSTEM_INFO_METAL_SUPPORT, + "Soporte de Metal" ) MSG_HASH( MENU_ENUM_LABEL_VALUE_SYSTEM_INFO_WAYLAND_SUPPORT, @@ -2765,7 +2801,7 @@ MSG_HASH( MSG_HASH( MENU_ENUM_LABEL_VALUE_LEFT_THUMBNAILS, "Miniaturas Izquierdas" - ) + ) MSG_HASH( MENU_ENUM_LABEL_VALUE_XMB_VERTICAL_THUMBNAILS, "Miniaturas Disposición Vertical" @@ -2817,7 +2853,7 @@ MSG_HASH( MSG_HASH( MENU_ENUM_LABEL_VALUE_DESKTOP_MENU_ENABLE, "Activar menú de escritorio (reiniciar)" - ) + ) MSG_HASH( MENU_ENUM_LABEL_VALUE_UI_MENUBAR_ENABLE, "Barra de menús" @@ -3072,7 +3108,7 @@ MSG_HASH( ) MSG_HASH( MENU_ENUM_LABEL_VALUE_VIDEO_SHADER_PRESET_SAVE_AS, - "Guardar preset de shaders como.." + "Guardar preset de shaders como..." ) MSG_HASH( MENU_ENUM_LABEL_VALUE_VIDEO_SHADER_PRESET_SAVE_CORE, @@ -3301,7 +3337,7 @@ MSG_HASH( MSG_HASH( MENU_ENUM_LABEL_VALUE_CONTENT_SHOW_PLAYLISTS, "Mostrar pestañas de Playlists" - ) + ) MSG_HASH( MENU_ENUM_LABEL_VALUE_CONTENT_SHOW_FAVORITES, "Mostrar pestaña favoritos" @@ -3414,6 +3450,10 @@ MSG_HASH( MENU_ENUM_SUBLABEL_PRIVACY_SETTINGS, "Opciones de privacidad" ) +MSG_HASH( + MENU_ENUM_SUBLABEL_MIDI_SETTINGS, + "Cambiar opciones MIDI" + ) MSG_HASH( MENU_ENUM_SUBLABEL_DIRECTORY_SETTINGS, "Cambia las carpetas por defecto donde se encuentran los archivos" @@ -3476,8 +3516,8 @@ MSG_HASH( ) MSG_HASH( MENU_ENUM_SUBLABEL_LATENCY_SETTINGS, - "Cambiar las opciones relacionados con el video, audio y lantencia de entrada." - ) + "Cambiar las opciones relacionados con el video, audio y lantencia de entrada" + ) MSG_HASH( MENU_ENUM_SUBLABEL_LOG_VERBOSITY, "Activar o desactivar registros a la terminal" @@ -3552,7 +3592,7 @@ MSG_HASH( ) MSG_HASH( MENU_ENUM_SUBLABEL_VIDEO_REFRESH_RATE_POLLED, - "The refresh rate as reported by the display driver." + "La tasa de refresco indicada por el controlador de pantalla" ) MSG_HASH( MENU_ENUM_SUBLABEL_VIDEO_SETTINGS, @@ -3636,7 +3676,7 @@ MSG_HASH( ) MSG_HASH( MSG_COMPARING_WITH_KNOWN_MAGIC_NUMBERS, - "Comparando con números mágicos conocidos.." + "Comparando con números mágicos conocidos..." ) MSG_HASH( MSG_COMPILED_AGAINST_API, @@ -3748,11 +3788,11 @@ MSG_HASH( ) MSG_HASH( MSG_ERROR_LIBRETRO_CORE_REQUIRES_CONTENT, - "El núcleo Libretro necesita contenido, pero no se le propicio." + "El núcleo Libretro necesita contenido, pero no fue provisto" ) MSG_HASH( MSG_ERROR_LIBRETRO_CORE_REQUIRES_SPECIAL_CONTENT, - "El núcleo Libretro necesita contenido especial, pero no se le propicio." + "El núcleo Libretro necesita contenido especial, pero no fue provisto" ) MSG_HASH( MSG_ERROR_PARSING_ARGUMENTS, @@ -4240,7 +4280,7 @@ MSG_HASH( ) MSG_HASH( MSG_SCANNING, - "Escaneando" + "Escaneando..." ) MSG_HASH( MSG_SCANNING_OF_DIRECTORY_FINISHED, @@ -4344,11 +4384,11 @@ MSG_HASH( ) MSG_HASH( MSG_VALUE_REBOOTING, - "Reiniciando.." + "Reiniciando..." ) MSG_HASH( MSG_VALUE_SHUTTING_DOWN, - "Apagando.." + "Apagando..." ) MSG_HASH( MSG_VERSION_OF_LIBRETRO_API, @@ -4356,7 +4396,7 @@ MSG_HASH( ) MSG_HASH( MSG_VIEWPORT_SIZE_CALCULATION_FAILED, - "Fallo el calculo de la ventana! Se continuará usando datos en bruto. Probablemente no funcionará bien .." + "Fallo al calcular de la ventana! Se continuará usando datos en bruto. Probablemente no funcionará bien" ) MSG_HASH( MSG_VIRTUAL_DISK_TRAY, @@ -4422,6 +4462,10 @@ MSG_HASH( MENU_ENUM_SUBLABEL_INPUT_BIND_TIMEOUT, "Cantidad de segundos a esperar hasta la siguiente asignación" ) +MSG_HASH( + MENU_ENUM_SUBLABEL_INPUT_BIND_HOLD, + "Cantidad de segundos a mantener una entrada para asignarla" + ) MSG_HASH( MENU_ENUM_SUBLABEL_INPUT_TURBO_PERIOD, "Periodo entre pulsación de los botones turbo (en frames)" @@ -4540,7 +4584,7 @@ MSG_HASH( ) MSG_HASH( MENU_ENUM_LABEL_VALUE_DATABASE_CURSOR_LIST_ENTRY_EDGE_MAGAZINE_ISSUE, - "Base de datos - Filtro : Numero de la revista Edge" + "Base de datos - Filtro : número de la revista Edge" ) MSG_HASH( MENU_ENUM_LABEL_VALUE_DATABASE_CURSOR_LIST_ENTRY_EDGE_MAGAZINE_RATING, @@ -4556,7 +4600,7 @@ MSG_HASH( ) MSG_HASH( MSG_SCANNING_WIRELESS_NETWORKS, - "Escaneando redes inalambricas.." + "Escaneando redes inalambricas..." ) MSG_HASH( MSG_NETPLAY_LAN_SCAN_COMPLETE, @@ -4804,11 +4848,11 @@ MSG_HASH( ) MSG_HASH( MENU_ENUM_SUBLABEL_RUN_AHEAD_FRAMES, - "El numero de frames para ir adelantado, si excedes el numero de frames de lag internos del juego, puede causar intermitencia (jitter)" - ) + "El número de frames para ir adelantado, si excedes el número de frames de lag internos del juego, puede causar tirones (jitter)" + ) MSG_HASH( MENU_ENUM_SUBLABEL_RUN_AHEAD_SECONDARY_INSTANCE, - "Usar una segunda instancia del núcleo para adelantarse (RunAhead). Previene problemas de audio causados por las cargas de estado." + "Usar una segunda instancia del núcleo para adelantarse (RunAhead). Previene problemas de audio causados por las cargas de estado" ) MSG_HASH( MENU_ENUM_SUBLABEL_RUN_AHEAD_HIDE_WARNINGS, @@ -4820,7 +4864,103 @@ MSG_HASH( ) MSG_HASH( MENU_ENUM_SUBLABEL_REWIND_GRANULARITY, - "Rebobinar un determinado numero de frames, al hacerlo varios a la vez, aumentas la velocidad del rebobinado" + "Rebobinar un determinado número de frames a la vez, para aumentar la velocidad del rebobinado" + ) +MSG_HASH( + MENU_ENUM_SUBLABEL_REWIND_BUFFER_SIZE, + "La cantidad de memoria (en MB) a reservar para el búfer de rebobinado. Aumentar esto aumentará el largo del historial de rebobinado" + ) +MSG_HASH( + MENU_ENUM_SUBLABEL_REWIND_BUFFER_SIZE_STEP, + "Cada vez que aumentes o disminuyas el tamaño del búfer por medio de está interfaz, cambiará esta cantidad" + ) +MSG_HASH( + MENU_ENUM_SUBLABEL_CHEAT_IDX, + "Posición en el indice de la lista" + ) +MSG_HASH( + MENU_ENUM_SUBLABEL_CHEAT_ADDRESS_BIT_POSITION, + "Bitmask de la dirección cuando el tamaño de la búsqueda de memoria es menor a 8 bits" + ) +MSG_HASH( + MENU_ENUM_SUBLABEL_CHEAT_MATCH_IDX, + "Seleccionar la coincidencia a ver" + ) +MSG_HASH( + MENU_ENUM_SUBLABEL_CHEAT_START_OR_CONT, + "" + ) +MSG_HASH( + MENU_ENUM_SUBLABEL_CHEAT_START_OR_RESTART, + "Izquierda/Derecha para cambiar el bit-size" + ) +MSG_HASH( + MENU_ENUM_SUBLABEL_CHEAT_SEARCH_EXACT, + "Izquierda/Derecha para cambiar el valor" + ) +MSG_HASH( + MENU_ENUM_SUBLABEL_CHEAT_SEARCH_LT, + "" + ) +MSG_HASH( + MENU_ENUM_SUBLABEL_CHEAT_SEARCH_GT, + "" + ) +MSG_HASH( + MENU_ENUM_SUBLABEL_CHEAT_SEARCH_LTE, + "" + ) +MSG_HASH( + MENU_ENUM_SUBLABEL_CHEAT_SEARCH_GTE, + "" + ) +MSG_HASH( + MENU_ENUM_SUBLABEL_CHEAT_SEARCH_EQ, + "" + ) +MSG_HASH( + MENU_ENUM_SUBLABEL_CHEAT_SEARCH_NEQ, + "" + ) +MSG_HASH( + MENU_ENUM_SUBLABEL_CHEAT_SEARCH_EQPLUS, + "Izquierda/Derecha para cambiar el valor" + ) +MSG_HASH( + MENU_ENUM_SUBLABEL_CHEAT_SEARCH_EQMINUS, + "Izquierda/Derecha para cambiar el valor" + ) +MSG_HASH( + MENU_ENUM_SUBLABEL_CHEAT_ADD_MATCHES, + "" + ) +MSG_HASH( + MENU_ENUM_SUBLABEL_CHEAT_VIEW_MATCHES, + "" + ) +MSG_HASH( + MENU_ENUM_SUBLABEL_CHEAT_CREATE_OPTION, + "" + ) +MSG_HASH( + MENU_ENUM_SUBLABEL_CHEAT_DELETE_OPTION, + "" + ) +MSG_HASH( + MENU_ENUM_SUBLABEL_CHEAT_ADD_NEW_TOP, + "" + ) +MSG_HASH( + MENU_ENUM_SUBLABEL_CHEAT_ADD_NEW_BOTTOM, + "" + ) +MSG_HASH( + MENU_ENUM_SUBLABEL_CHEAT_DELETE_ALL, + "" + ) +MSG_HASH( + MENU_ENUM_SUBLABEL_CHEAT_BIG_ENDIAN, + "Big endian : 258 = 0x0102,\nLittle endian : 258 = 0x0201" ) MSG_HASH( MENU_ENUM_SUBLABEL_LIBRETRO_LOG_LEVEL, @@ -4898,6 +5038,10 @@ MSG_HASH( MENU_ENUM_SUBLABEL_RECORD_DRIVER, "Controlador de grabación a usar" ) +MSG_HASH( + MENU_ENUM_SUBLABEL_MIDI_DRIVER, + "Controlador MIDI a usar" + ) MSG_HASH( MENU_ENUM_SUBLABEL_WIFI_DRIVER, "Controlador WiFi a usar" @@ -4984,7 +5128,7 @@ MSG_HASH( ) MSG_HASH( MENU_ENUM_SUBLABEL_NETPLAY_NAT_TRAVERSAL, - "Cuando se es servidor, intentar escuchar conexiones desde Internet, usando UPnP o tecnologías similares." + "Cuando se es servidor, intentar escuchar conexiones desde Internet, usando UPnP o tecnologías similares" ) MSG_HASH( MENU_ENUM_SUBLABEL_STDIN_CMD_ENABLE, @@ -5005,7 +5149,7 @@ MSG_HASH( MSG_HASH( MENU_ENUM_SUBLABEL_LEFT_THUMBNAILS, "Tipo de miniaturas a mostrar a la izquierda" - ) + ) MSG_HASH( MENU_ENUM_SUBLABEL_XMB_VERTICAL_THUMBNAILS, "Muestra la miniatura izquierda debajo de la derecha, a la derecha de la pantalla" @@ -5170,6 +5314,14 @@ MSG_HASH( MENU_ENUM_SUBLABEL_INPUT_META_REWIND, "Administra las opciones de rebobinado" ) +MSG_HASH( + MENU_ENUM_SUBLABEL_INPUT_META_CHEAT_DETAILS, + "Administra los detalles de los trucos" + ) +MSG_HASH( + MENU_ENUM_SUBLABEL_INPUT_META_CHEAT_SEARCH, + "Iniciar o continuar una búsqueda de trucos" + ) MSG_HASH( MENU_ENUM_SUBLABEL_RESTART_CONTENT, "Reinicia el contenido desde el principio" @@ -5268,7 +5420,7 @@ MSG_HASH( ) MSG_HASH( MENU_ENUM_SUBLABEL_XMB_LAYOUT, - "Seleccionar una disposición diferente para la interfaz XMB." + "Seleccionar una disposición diferente para la interfaz XMB" ) MSG_HASH( MENU_ENUM_SUBLABEL_XMB_THEME, @@ -5460,7 +5612,7 @@ MSG_HASH( ) MSG_HASH( MENU_ENUM_SUBLABEL_VIDEO_SHADER_PRESET_SAVE_PARENT, - "Guardar la configuración actual de shaders para todos los archivos en el directorio de contenido actual." + "Guardar la configuración actual de shaders para todos los archivos en el directorio de contenido actual" ) MSG_HASH( MENU_ENUM_SUBLABEL_VIDEO_SHADER_PRESET_SAVE_GAME, @@ -5482,9 +5634,21 @@ MSG_HASH( MENU_ENUM_SUBLABEL_CHEAT_APPLY_CHANGES, "Los cambios en los trucos tendrán efecto inmediatamente" ) +MSG_HASH( + MENU_ENUM_SUBLABEL_CHEAT_START_SEARCH, + "Inciar búsqueda de un truco nuevo. El número de bits se puede cambiar" + ) +MSG_HASH( + MENU_ENUM_SUBLABEL_CHEAT_CONTINUE_SEARCH, + "Continuar búsqueda de un truco nuevo" + ) MSG_HASH( MENU_ENUM_SUBLABEL_CHEAT_FILE_LOAD, - "Cargar archivo de trucos" + "Cargar archivo de trucos reemplazando los existentes" + ) +MSG_HASH( + MENU_ENUM_SUBLABEL_CHEAT_FILE_LOAD_APPEND, + "Cargar archivo de trucos agregandolos a los existentes" ) MSG_HASH( MENU_ENUM_SUBLABEL_CHEAT_FILE_SAVE_AS, @@ -5764,7 +5928,7 @@ MSG_HASH( ) MSG_HASH( MENU_ENUM_SUBLABEL_MENU_SHOW_SHUTDOWN, - "Show/hide the 'Shutdown' option." + "Mostrar/ocultar la opción de 'Apagado'" ) MSG_HASH( MENU_ENUM_LABEL_VALUE_QUICK_MENU_VIEWS_SETTINGS, @@ -5953,7 +6117,7 @@ MSG_HASH( MSG_HASH( MSG_RUNAHEAD_FAILED_TO_SAVE_STATE, "Fallo al guardar el estado. RunAhead se ha desactivado" - ) + ) MSG_HASH( MSG_RUNAHEAD_FAILED_TO_LOAD_STATE, "Fallo al cargar el estado. RunAhead se ha desactivado" @@ -6004,7 +6168,7 @@ MSG_HASH( ) MSG_HASH( MENU_ENUM_SUBLABEL_STATISTICS_SHOW, - "Mostrar estadísticas técnicas en pantalla." + "Mostrar estadísticas técnicas en pantalla" ) MSG_HASH( MENU_ENUM_LABEL_VALUE_MENU_RGUI_BORDER_FILLER_ENABLE, @@ -6020,7 +6184,7 @@ MSG_HASH( ) MSG_HASH( MENU_ENUM_SUBLABEL_CRT_SWITCH_RESOLUTION, - "Para pantallas CRT de 15 kHz. Intenta usar la resolución y refresco exactos del núcleo/juego." + "Para pantallas CRT de 15 kHz. Intenta usar la resolución y refresco exactos del núcleo/juego" ) MSG_HASH( MENU_ENUM_LABEL_VALUE_CRT_SWITCH_RESOLUTION, @@ -6040,11 +6204,11 @@ MSG_HASH( ) MSG_HASH( MENU_ENUM_SUBLABEL_CONTENT_SHOW_REWIND, - "Muestra/oculta las opciones de rebobinado." + "Muestra/oculta las opciones de rebobinado" ) MSG_HASH( MENU_ENUM_SUBLABEL_CONTENT_SHOW_LATENCY, - "Muestra/oculta las opciones de latencia." + "Muestra/oculta las opciones de latencia" ) MSG_HASH( MENU_ENUM_LABEL_VALUE_CONTENT_SHOW_LATENCY, @@ -6052,7 +6216,7 @@ MSG_HASH( ) MSG_HASH( MENU_ENUM_SUBLABEL_CONTENT_SHOW_OVERLAYS, - "Muestra/oculta las opciones de overlays." + "Muestra/oculta las opciones de overlays" ) MSG_HASH( MENU_ENUM_LABEL_VALUE_CONTENT_SHOW_OVERLAYS, @@ -6064,7 +6228,7 @@ MSG_HASH( ) MSG_HASH( MENU_ENUM_SUBLABEL_AUDIO_ENABLE_MENU, - "Activa o desactiva el menu de sonido." + "Activa o desactiva el menu de sonido" ) MSG_HASH( MENU_ENUM_LABEL_VALUE_AUDIO_MIXER_SETTINGS, @@ -6072,7 +6236,7 @@ MSG_HASH( ) MSG_HASH( MENU_ENUM_SUBLABEL_AUDIO_MIXER_SETTINGS, - "Ver o modificar las opciones del mezclador de audio." + "Ver o modificar las opciones del mezclador de audio" ) MSG_HASH( MENU_ENUM_LABEL_VALUE_QT_INFO, @@ -6201,7 +6365,7 @@ MSG_HASH( MSG_HASH( MENU_ENUM_LABEL_VALUE_QT_ALL_PLAYLISTS, "Todas las Playlists" - ) + ) MSG_HASH( MENU_ENUM_LABEL_VALUE_QT_CORE, "Núcleo" @@ -6242,7 +6406,7 @@ MSG_HASH( "<li>tener los \"Archivos de información de núcleos\" actualizados</li>\n" "<li>tener las \"Bases de datos\" actualizadas</li>\n" "<li>reiniciar RetroArch si actualizaste algo con el \"Actualizador en línea\"</li></ul>\n" - "Por último, el contenido debe coincidir las bases de datos existente de <a href=\"https://docs.libretro.com/guides/roms-playlists-thumbnails/#sources\">aquí</a>. Si aún no funciona, considere <a href=\"https://www.github.com/libretro/RetroArch/issues\">enviar un reporte de error.</a>." + "Por último, el contenido debe coincidir las bases de datos existente de <a href=\"https://docs.libretro.com/guides/roms-playlists-thumbnails/#sources\">aquí</a>. Si aún no funciona, considere <a href=\"https://www.github.com/libretro/RetroArch/issues\">enviar un reporte de error.</a>" ) MSG_HASH( MENU_ENUM_LABEL_VALUE_QT_DONT_SHOW_AGAIN, @@ -6304,45 +6468,61 @@ MSG_HASH( MENU_ENUM_LABEL_VALUE_QT_MENU_VIEW_OPTIONS_SUGGEST_LOADED_CORE_FIRST, "Sugerir el núcleo cargado primero" ) +MSG_HASH( + MENU_ENUM_LABEL_VALUE_QT_ZOOM, + "Zoom" + ) +MSG_HASH( + MENU_ENUM_LABEL_VALUE_QT_VIEW, + "Vista" + ) +MSG_HASH( + MENU_ENUM_LABEL_VALUE_QT_VIEW_TYPE_ICONS, + "Iconos" + ) +MSG_HASH( + MENU_ENUM_LABEL_VALUE_QT_VIEW_TYPE_LIST, + "Lista" + ) MSG_HASH( MENU_ENUM_LABEL_VALUE_QUICK_MENU_OVERRIDE_OPTIONS, "Anulaciones" ) MSG_HASH( MENU_ENUM_SUBLABEL_QUICK_MENU_OVERRIDE_OPTIONS, - "Opciones para anular las configuraciones globales." + "Opciones para anular las configuraciones globales" ) MSG_HASH( MENU_ENUM_SUBLABEL_MIXER_ACTION_PLAY, - "Comenzara la reproducción de audio. Al finalizar, será quitado de la memoria." + "Comenzara la reproducción de audio. Al finalizar, será quitado de la memoria" ) MSG_HASH( MENU_ENUM_SUBLABEL_MIXER_ACTION_PLAY_LOOPED, - "Comenzara la reproducción de audio. Al finalizar, será reproducido nuevamente." + "Comenzara la reproducción de audio. Al finalizar, será reproducido nuevamente" ) MSG_HASH( MENU_ENUM_SUBLABEL_MIXER_ACTION_PLAY_SEQUENTIAL, - "Comenzara la reproducción de audio. Al finalizar, continuará con el siguiente, útil para albums." + "Comenzara la reproducción de audio. Al finalizar, continuará con el siguiente, útil para albums" ) MSG_HASH( MENU_ENUM_SUBLABEL_MIXER_ACTION_STOP, - "Detener la reproducción, no lo quitará de la memoria. Puedes continuar la reproducción." + "Detener la reproducción, no lo quitará de la memoria. Puedes continuar la reproducción" ) MSG_HASH( MENU_ENUM_SUBLABEL_MIXER_ACTION_REMOVE, - "Detener la reproducción y quitarlo de la memoria." + "Detener la reproducción y quitarlo de la memoria" ) MSG_HASH( MENU_ENUM_SUBLABEL_MIXER_ACTION_VOLUME, - "Ajusta el volumen del audio." + "Ajusta el volumen del audio" ) MSG_HASH( MENU_ENUM_SUBLABEL_ADD_TO_MIXER, - "Agrega esta pista de audio a una casilla, si no hay disponibles, se ignorará." + "Agrega esta pista de audio a una casilla, si no hay disponibles, se ignorará" ) MSG_HASH( MENU_ENUM_SUBLABEL_ADD_TO_MIXER_AND_PLAY, - "Agrega esta pista de audio a una casilla, y la reproduce, si no hay disponibles, se ignorará." + "Agrega esta pista de audio a una casilla, y la reproduce, si no hay disponibles, se ignorará" ) MSG_HASH( MENU_ENUM_LABEL_VALUE_MIXER_ACTION_PLAY, @@ -6384,21 +6564,595 @@ MSG_HASH( MENU_ENUM_SUBLABEL_ACHIEVEMENT_RESUME, "Continuar los logros para esta sesión (Esto desactivará los archivos de guardado, cámara lenta, trucos, rebobinado y pausa)" ) -MSG_HASH(MENU_ENUM_LABEL_VALUE_DISCORD_IN_MENU, - "In-Menu") MSG_HASH( - MENU_ENUM_LABEL_VALUE_DISCORD_ALLOW, - "Enable Discord" - ) + MENU_ENUM_LABEL_VALUE_DISCORD_IN_MENU, + "En-Menú" + ) MSG_HASH( - MENU_ENUM_SUBLABEL_DISCORD_ALLOW, - "Enable or disable Discord support. Will not work with the browser version, only native desktop client." - ) -MSG_HASH(MENU_ENUM_LABEL_VALUE_POWER_MANAGEMENT_SETTINGS, - "Power Management") -MSG_HASH(MENU_ENUM_SUBLABEL_POWER_MANAGEMENT_SETTINGS, - "Change power management settings.") -MSG_HASH(MENU_ENUM_LABEL_VALUE_SUSTAINED_PERFORMANCE_MODE, - "Sustained Performance Mode") -MSG_HASH(MENU_ENUM_LABEL_VALUE_SYSTEM_INFO_MPV_SUPPORT, - "mpv support") + MENU_ENUM_LABEL_VALUE_DISCORD_ALLOW, + "Activar Discord" + ) +MSG_HASH( + MENU_ENUM_SUBLABEL_DISCORD_ALLOW, + "Activar o desactivar soporte de Discord. No funcionará en la versión web de RetroArch, solo en el cliente de escritorio" + ) +MSG_HASH( + MENU_ENUM_LABEL_VALUE_MIDI_INPUT, + "Entrada" + ) +MSG_HASH( + MENU_ENUM_SUBLABEL_MIDI_INPUT, + "Seleccionar dispositivo de entrada" + ) +MSG_HASH( + MENU_ENUM_LABEL_VALUE_MIDI_OUTPUT, + "Salida" + ) +MSG_HASH( + MENU_ENUM_SUBLABEL_MIDI_OUTPUT, + "Seleccionar dispositivo de salida" + ) +MSG_HASH( + MENU_ENUM_LABEL_VALUE_MIDI_VOLUME, + "Volumen" + ) +MSG_HASH( + MENU_ENUM_SUBLABEL_MIDI_VOLUME, + "Establecer volumen de salida (%)" + ) +MSG_HASH( + MENU_ENUM_LABEL_VALUE_POWER_MANAGEMENT_SETTINGS, + "Energía" + ) +MSG_HASH( + MENU_ENUM_SUBLABEL_POWER_MANAGEMENT_SETTINGS, + "Cambiar opciones de energía" + ) +MSG_HASH( + MENU_ENUM_LABEL_VALUE_SUSTAINED_PERFORMANCE_MODE, + "Modo de rendimiento sostenido" + ) +MSG_HASH( + MENU_ENUM_LABEL_VALUE_SYSTEM_INFO_MPV_SUPPORT, + "Soporte de mpv" + ) +MSG_HASH( + MENU_ENUM_LABEL_VALUE_CHEAT_IDX, + "Indice" + ) +MSG_HASH( + MENU_ENUM_LABEL_VALUE_CHEAT_MATCH_IDX, + "Ver coincidencia #" + ) +MSG_HASH( + MENU_ENUM_LABEL_VALUE_CHEAT_MATCH, + "Coindidir dirección: %08X Máscara: %02X" + ) +MSG_HASH( + MENU_ENUM_LABEL_VALUE_CHEAT_COPY_MATCH, + "Crear truco de coincidencia #" + ) +MSG_HASH( + MENU_ENUM_LABEL_VALUE_CHEAT_DELETE_MATCH, + "Borrar coincidencia #" + ) +MSG_HASH( + MENU_ENUM_LABEL_VALUE_CHEAT_DESC, + "Descripción" + ) +MSG_HASH( + MENU_ENUM_LABEL_VALUE_CHEAT_STATE, + "Activado" + ) +MSG_HASH( + MENU_ENUM_LABEL_VALUE_CHEAT_CODE, + "Truco" + ) +MSG_HASH( + MENU_ENUM_LABEL_VALUE_CHEAT_HANDLER, + "Manipulador" + ) +MSG_HASH( + MENU_ENUM_LABEL_VALUE_CHEAT_MEMORY_SEARCH_SIZE, + "Tamaño de la memoria de búsqueda" + ) +MSG_HASH( + MENU_ENUM_LABEL_VALUE_CHEAT_TYPE, + "Tipo" + ) +MSG_HASH( + MENU_ENUM_LABEL_VALUE_CHEAT_VALUE, + "Valor" + ) +MSG_HASH( + MENU_ENUM_LABEL_VALUE_CHEAT_ADDRESS, + "Dirección de memoria" + ) +MSG_HASH( + MENU_ENUM_LABEL_VALUE_CHEAT_ADDRESS_BIT_POSITION, + "Máscara de la dirección de memoria" + ) +MSG_HASH( + MENU_ENUM_LABEL_VALUE_CHEAT_RUMBLE_TYPE, + "Vibrar cuando memoria" + ) +MSG_HASH( + MENU_ENUM_LABEL_VALUE_CHEAT_RUMBLE_VALUE, + "Valor de vibración" + ) +MSG_HASH( + MENU_ENUM_LABEL_VALUE_CHEAT_RUMBLE_PORT, + "Puerto de vibración" + ) +MSG_HASH( + MENU_ENUM_LABEL_VALUE_CHEAT_RUMBLE_PRIMARY_STRENGTH, + "Fuerza primaria de vibración" + ) +MSG_HASH( + MENU_ENUM_LABEL_VALUE_CHEAT_RUMBLE_PRIMARY_DURATION, + "Duración (ms) de la vibración primaria" + ) +MSG_HASH( + MENU_ENUM_LABEL_VALUE_CHEAT_RUMBLE_SECONDARY_STRENGTH, + "Fuerza secundaria de vibración" + ) +MSG_HASH( + MENU_ENUM_LABEL_VALUE_CHEAT_RUMBLE_SECONDARY_DURATION, + "Duración (ms) de la vibración secundaria" + ) +MSG_HASH( + MENU_ENUM_LABEL_VALUE_CHEAT_ADD_NEW_AFTER, + "Agregar nuevo truco después de este" + ) +MSG_HASH( + MENU_ENUM_LABEL_VALUE_CHEAT_ADD_NEW_BEFORE, + "Agregar nuevo truco antes de este" + ) +MSG_HASH( + MENU_ENUM_LABEL_VALUE_CHEAT_COPY_AFTER, + "Copiar este truco después" + ) +MSG_HASH( + MENU_ENUM_LABEL_VALUE_CHEAT_COPY_BEFORE, + "Copiar este truco antes" + ) +MSG_HASH( + MENU_ENUM_LABEL_VALUE_CHEAT_DELETE, + "Borrar este truco" + ) +MSG_HASH( + MENU_ENUM_LABEL_CHEAT_HANDLER_TYPE_EMU, + "Emulador" + ) +MSG_HASH( + MENU_ENUM_LABEL_CHEAT_HANDLER_TYPE_RETRO, + "RetroArch" + ) +MSG_HASH( + MENU_ENUM_LABEL_CHEAT_TYPE_DISABLED, + "<Desactivado>" + ) +MSG_HASH( + MENU_ENUM_LABEL_CHEAT_TYPE_SET_TO_VALUE, + "Establecer valor" + ) +MSG_HASH( + MENU_ENUM_LABEL_CHEAT_TYPE_INCREASE_VALUE, + "Aumentar por valor" + ) +MSG_HASH( + MENU_ENUM_LABEL_CHEAT_TYPE_DECREASE_VALUE, + "Disminuir por valor" + ) +MSG_HASH( + MENU_ENUM_LABEL_CHEAT_TYPE_RUN_NEXT_IF_EQ, + "Ejecutar siguiente truco si el valor es igual a la memoria" + ) +MSG_HASH( + MENU_ENUM_LABEL_CHEAT_TYPE_RUN_NEXT_IF_NEQ, + "Ejecutar siguiente truco si el valor es distinto a la memoria" + ) +MSG_HASH( + MENU_ENUM_LABEL_CHEAT_TYPE_RUN_NEXT_IF_LT, + "Ejecutar el siguiente truco si el valor es menor a la memoria" + ) +MSG_HASH( + MENU_ENUM_LABEL_CHEAT_TYPE_RUN_NEXT_IF_GT, + "Ejecutar el siguiente truco si el valor es mayor a la memoria" + ) +MSG_HASH( + MENU_ENUM_LABEL_RUMBLE_TYPE_DISABLED, + "<Desactivado>" + ) +MSG_HASH( + MENU_ENUM_LABEL_RUMBLE_TYPE_CHANGES, + "Cambios" + ) +MSG_HASH( + MENU_ENUM_LABEL_RUMBLE_TYPE_DOES_NOT_CHANGE, + "No cambia" + ) +MSG_HASH( + MENU_ENUM_LABEL_RUMBLE_TYPE_INCREASE, + "Aumenta" + ) +MSG_HASH( + MENU_ENUM_LABEL_RUMBLE_TYPE_DECREASE, + "Disminuye" + ) +MSG_HASH( + MENU_ENUM_LABEL_RUMBLE_TYPE_EQ_VALUE, + "Igual al valor de vibración" + ) +MSG_HASH( + MENU_ENUM_LABEL_RUMBLE_TYPE_NEQ_VALUE, + "Distinto al valor de vibración" + ) +MSG_HASH( + MENU_ENUM_LABEL_RUMBLE_TYPE_LT_VALUE, + "Menor al valor de vibración" + ) +MSG_HASH( + MENU_ENUM_LABEL_RUMBLE_TYPE_GT_VALUE, + "Mayor al valor de vibración" + ) +MSG_HASH( + MENU_ENUM_LABEL_CHEAT_MEMORY_SIZE_1, + "1-bit, valor máx. = 0x01" + ) +MSG_HASH( + MENU_ENUM_LABEL_CHEAT_MEMORY_SIZE_2, + "2-bit, valor máx. = 0x03" + ) +MSG_HASH( + MENU_ENUM_LABEL_CHEAT_MEMORY_SIZE_4, + "4-bit, valor máx. = 0x0F" + ) +MSG_HASH( + MENU_ENUM_LABEL_CHEAT_MEMORY_SIZE_8, + "8-bit, valor máx. = 0xFF" + ) +MSG_HASH( + MENU_ENUM_LABEL_CHEAT_MEMORY_SIZE_16, + "16-bit, valor máx. = 0xFFFF" + ) +MSG_HASH( + MENU_ENUM_LABEL_CHEAT_MEMORY_SIZE_32, + "32-bit, valor máx. = 0xFFFFFFFF" + ) +MSG_HASH( + MENU_ENUM_LABEL_RUMBLE_PORT_0, + "1" + ) +MSG_HASH( + MENU_ENUM_LABEL_RUMBLE_PORT_1, + "2" + ) +MSG_HASH( + MENU_ENUM_LABEL_RUMBLE_PORT_2, + "3" + ) +MSG_HASH( + MENU_ENUM_LABEL_RUMBLE_PORT_3, + "4" + ) +MSG_HASH( + MENU_ENUM_LABEL_RUMBLE_PORT_4, + "5" + ) +MSG_HASH( + MENU_ENUM_LABEL_RUMBLE_PORT_5, + "6" + ) +MSG_HASH( + MENU_ENUM_LABEL_RUMBLE_PORT_6, + "7" + ) +MSG_HASH( + MENU_ENUM_LABEL_RUMBLE_PORT_7, + "8" + ) +MSG_HASH( + MENU_ENUM_LABEL_RUMBLE_PORT_8, + "9" + ) +MSG_HASH( + MENU_ENUM_LABEL_RUMBLE_PORT_9, + "10" + ) +MSG_HASH( + MENU_ENUM_LABEL_RUMBLE_PORT_10, + "11" + ) +MSG_HASH( + MENU_ENUM_LABEL_RUMBLE_PORT_11, + "12" + ) +MSG_HASH( + MENU_ENUM_LABEL_RUMBLE_PORT_12, + "13" + ) +MSG_HASH( + MENU_ENUM_LABEL_RUMBLE_PORT_13, + "14" + ) +MSG_HASH( + MENU_ENUM_LABEL_RUMBLE_PORT_14, + "15" + ) +MSG_HASH( + MENU_ENUM_LABEL_RUMBLE_PORT_15, + "16" + ) +MSG_HASH( + MENU_ENUM_LABEL_RUMBLE_PORT_16, + "All" + ) +MSG_HASH( + MENU_ENUM_LABEL_VALUE_CHEAT_START_OR_CONT, + "Inciar o continuar búsqueda de trucos" + ) +MSG_HASH( + MENU_ENUM_LABEL_VALUE_CHEAT_START_OR_RESTART, + "Inciar o reiniciar búsqueda de trucos" + ) +MSG_HASH( + MENU_ENUM_LABEL_VALUE_CHEAT_SEARCH_EXACT, + "Buscar valores de memoria" + ) +MSG_HASH( + MENU_ENUM_LABEL_VALUE_CHEAT_SEARCH_LT, + "Buscar valores de memoria" + ) +MSG_HASH( + MENU_ENUM_LABEL_VALUE_CHEAT_SEARCH_GT, + "Buscar valores de memoria" + ) +MSG_HASH( + MENU_ENUM_LABEL_VALUE_CHEAT_SEARCH_EQ, + "Buscar valores de memoria" + ) +MSG_HASH( + MENU_ENUM_LABEL_VALUE_CHEAT_SEARCH_GTE, + "Buscar valores de memoria" + ) +MSG_HASH( + MENU_ENUM_LABEL_VALUE_CHEAT_SEARCH_LTE, + "Buscar valores de memoria" + ) +MSG_HASH( + MENU_ENUM_LABEL_VALUE_CHEAT_SEARCH_NEQ, + "Buscar valores de memoria" + ) +MSG_HASH( + MENU_ENUM_LABEL_VALUE_CHEAT_SEARCH_EQPLUS, + "Buscar valores de memoria" + ) +MSG_HASH( + MENU_ENUM_LABEL_VALUE_CHEAT_SEARCH_EQMINUS, + "Buscar valores de memoria" + ) +MSG_HASH( + MENU_ENUM_LABEL_VALUE_CHEAT_ADD_MATCHES, + "Agregar las %u coincidencias a tu lista" + ) +MSG_HASH( + MENU_ENUM_LABEL_VALUE_CHEAT_VIEW_MATCHES, + "Ver lista de %u coincidencias" + ) +MSG_HASH( + MENU_ENUM_LABEL_VALUE_CHEAT_CREATE_OPTION, + "Crear truco de esta coincidencia" + ) +MSG_HASH( + MENU_ENUM_LABEL_VALUE_CHEAT_DELETE_OPTION, + "Borrar esta coincidencia" + ) +MSG_HASH( + MENU_ENUM_LABEL_VALUE_CHEAT_ADD_NEW_TOP, + "Agregar nuevo truco al principio" + ) +MSG_HASH( + MENU_ENUM_LABEL_VALUE_CHEAT_ADD_NEW_BOTTOM, + "Agregar nuevo truco al final" + ) +MSG_HASH( + MENU_ENUM_LABEL_VALUE_CHEAT_DELETE_ALL, + "Borrar todos los trucos" + ) +MSG_HASH( + MENU_ENUM_LABEL_CHEAT_SEARCH_EXACT_VAL, + "Igual a %u (%X)" + ) +MSG_HASH( + MENU_ENUM_LABEL_CHEAT_SEARCH_LT_VAL, + "Menos que antes" + ) +MSG_HASH( + MENU_ENUM_LABEL_CHEAT_SEARCH_GT_VAL, + "Más que antes" + ) +MSG_HASH( + MENU_ENUM_LABEL_CHEAT_SEARCH_LTE_VAL, + "Menos o igual que antes" + ) +MSG_HASH( + MENU_ENUM_LABEL_CHEAT_SEARCH_GTE_VAL, + "Más o igual que antes" + ) +MSG_HASH( + MENU_ENUM_LABEL_CHEAT_SEARCH_EQ_VAL, + "Igual que antes" + ) +MSG_HASH( + MENU_ENUM_LABEL_CHEAT_SEARCH_NEQ_VAL, + "Distinto que antes" + ) +MSG_HASH( + MENU_ENUM_LABEL_CHEAT_SEARCH_EQPLUS_VAL, + "Igual que antes+%u (%X)" + ) +MSG_HASH( + MENU_ENUM_LABEL_CHEAT_SEARCH_EQMINUS_VAL, + "Igual que antes-%u (%X)" + ) +MSG_HASH( + MENU_ENUM_LABEL_CHEAT_SEARCH_SETTINGS, + "Iniciar o continuar búsqueda de trucos" + ) +MSG_HASH( + MSG_CHEAT_INIT_SUCCESS, + "Búsqueda de trucos iniciada correctamente" + ) +MSG_HASH( + MSG_CHEAT_INIT_FAIL, + "Fallo al iniciar búsqueda de trucos" + ) +MSG_HASH( + MSG_CHEAT_SEARCH_NOT_INITIALIZED, + "La búsqueda no ha sido iniciada" + ) +MSG_HASH( + MSG_CHEAT_SEARCH_FOUND_MATCHES, + "Número de coincidencias = %u" + ) +MSG_HASH( + MENU_ENUM_LABEL_VALUE_CHEAT_BIG_ENDIAN, + "Big Endian" + ) +MSG_HASH( + MSG_CHEAT_SEARCH_ADDED_MATCHES_SUCCESS, + "Agregadas %u coincidencias" + ) +MSG_HASH( + MSG_CHEAT_SEARCH_ADDED_MATCHES_FAIL, + "Fallo al agregar coincidencias" + ) +MSG_HASH( + MSG_CHEAT_SEARCH_ADD_MATCH_SUCCESS, + "Truco creado desde coincidencia" + ) +MSG_HASH( + MSG_CHEAT_SEARCH_ADD_MATCH_FAIL, + "Fallo al crear truco" + ) +MSG_HASH( + MSG_CHEAT_SEARCH_DELETE_MATCH_SUCCESS, + "Borrar coincidencia" + ) +MSG_HASH( + MSG_CHEAT_SEARCH_ADDED_MATCHES_TOO_MANY, + "No hay suficiente espacio. El máximo es 100 trucos" + ) +MSG_HASH( + MSG_CHEAT_ADD_TOP_SUCCESS, + "Nuevo truco agregado al inicio de la lista" + ) +MSG_HASH( + MSG_CHEAT_ADD_BOTTOM_SUCCESS, + "Nuevo truco agregado al final de la lista" + ) +MSG_HASH( + MSG_CHEAT_DELETE_ALL_INSTRUCTIONS, + "Presiona derecha cinco veces para borrar todos los trucos" + ) +MSG_HASH( + MSG_CHEAT_DELETE_ALL_SUCCESS, + "Todos los trucos fueron borrados" + ) +MSG_HASH( + MSG_CHEAT_ADD_BEFORE_SUCCESS, + "Nuevo truco agregado antes de este" + ) +MSG_HASH( + MSG_CHEAT_ADD_AFTER_SUCCESS, + "Nuevo truco agregado después de este" + ) +MSG_HASH( + MSG_CHEAT_COPY_BEFORE_SUCCESS, + "Truco copiado antes de este" + ) +MSG_HASH( + MSG_CHEAT_COPY_AFTER_SUCCESS, + "Truco copiado después de este" + ) +MSG_HASH( + MSG_CHEAT_DELETE_SUCCESS, + "Truco borrado" + ) +MSG_HASH( + MENU_ENUM_LABEL_VALUE_QT_PROGRESS, + "Progreso:" + ) +MSG_HASH( + MENU_ENUM_LABEL_VALUE_QT_MENU_VIEW_OPTIONS_ALL_PLAYLISTS_LIST_MAX_COUNT, + "\"Todas la Playlists\" máximo de entradas en lista:" + ) +MSG_HASH( + MENU_ENUM_LABEL_VALUE_QT_MENU_VIEW_OPTIONS_ALL_PLAYLISTS_GRID_MAX_COUNT, + "\"Todas la Playlists\" máximo de entradas en grilla:" + ) +MSG_HASH( + MENU_ENUM_LABEL_VALUE_QT_MENU_VIEW_OPTIONS_SHOW_HIDDEN_FILES, + "Mostrar elementos ocultos" + ) +MSG_HASH( + MENU_ENUM_LABEL_VALUE_QT_NEW_PLAYLIST, + "Nueva Playlist" + ) +MSG_HASH( + MENU_ENUM_LABEL_VALUE_QT_ENTER_NEW_PLAYLIST_NAME, + "Por favor ingrese el nombre de la nueva Playlist:" + ) +MSG_HASH( + MENU_ENUM_LABEL_VALUE_QT_DELETE_PLAYLIST, + "Borrar Playlist" + ) +MSG_HASH( + MENU_ENUM_LABEL_VALUE_QT_CONFIRM_DELETE_PLAYLIST, + "¿Está seguro que desea borrar la playlist \"%1\"?" + ) +MSG_HASH( + MENU_ENUM_LABEL_VALUE_QT_QUESTION, + "Pregunta" + ) +MSG_HASH( + MENU_ENUM_LABEL_VALUE_QT_COULD_NOT_DELETE_FILE, + "No se pudo borrar el archivo" + ) +MSG_HASH( + MENU_ENUM_LABEL_VALUE_QT_GATHERING_LIST_OF_FILES, + "Cargando lista de archivos..." + ) +MSG_HASH( + MENU_ENUM_LABEL_VALUE_QT_ADDING_FILES_TO_PLAYLIST, + "Agregando archivos a la Playlist..." + ) +MSG_HASH( + MENU_ENUM_LABEL_VALUE_QT_PLAYLIST_ENTRY, + "Entrada de la Playlist" + ) +MSG_HASH( + MENU_ENUM_LABEL_VALUE_QT_PLAYLIST_ENTRY_CORE, + "Núcleo:" + ) +MSG_HASH( + MENU_ENUM_LABEL_VALUE_QT_PLAYLIST_ENTRY_DATABASE, + "Base de datos:" + ) +MSG_HASH( + MENU_ENUM_LABEL_VALUE_QT_FOR_THUMBNAILS, + "(usado pata buscar miniaturas)" + ) +MSG_HASH( + MENU_ENUM_LABEL_VALUE_QT_CONFIRM_DELETE_PLAYLIST_ITEM, + "¿Está seguro que desea borrar \"%1\"?" + ) +MSG_HASH( + MENU_ENUM_LABEL_VALUE_QT_CANNOT_ADD_TO_ALL_PLAYLISTS, + "Por favor primero elija solo una Playlist" + ) +MSG_HASH( + MENU_ENUM_LABEL_VALUE_QT_DELETE, + "Borrar" + ) \ No newline at end of file From 7131b969d887fc61d510b28eeb273486cdedf210 Mon Sep 17 00:00:00 2001 From: twinaphex <libretro@gmail.com> Date: Sun, 29 Jul 2018 19:04:53 +0200 Subject: [PATCH 08/10] (Android) Buildfixes --- command.c | 6 +++--- managers/cheat_manager.c | 4 ++-- menu/cbs/menu_cbs_ok.c | 31 ++++++++++++++++++------------- menu/cbs/menu_cbs_right.c | 6 ++++-- menu/menu_setting.c | 30 ++++++------------------------ 5 files changed, 33 insertions(+), 44 deletions(-) diff --git a/command.c b/command.c index 105e7d761e..46a3e51a9c 100644 --- a/command.c +++ b/command.c @@ -198,8 +198,7 @@ static struct sockaddr_storage lastcmd_net_source; static socklen_t lastcmd_net_source_len; #endif -#ifdef HAVE_CHEEVOS -#if defined(HAVE_STDIN_CMD) || defined(HAVE_NETWORK_CMD) && defined(HAVE_NETWORKING) +#if defined(HAVE_CHEEVOS) && (defined(HAVE_STDIN_CMD) || defined(HAVE_NETWORK_CMD) && defined(HAVE_NETWORKING)) static bool command_reply(const char * data, size_t len) { switch (lastcmd_source) @@ -226,7 +225,6 @@ static bool command_reply(const char * data, size_t len) return false; } #endif -#endif bool command_set_shader(const char *arg) { @@ -254,7 +252,9 @@ static bool command_version(const char* arg) char reply[256] = {0}; sprintf(reply, "%s\n", PACKAGE_VERSION); +#if defined(HAVE_CHEEVOS) && (defined(HAVE_STDIN_CMD) || defined(HAVE_NETWORK_CMD) && defined(HAVE_NETWORKING)) command_reply(reply, strlen(reply)); +#endif return true; } diff --git a/managers/cheat_manager.c b/managers/cheat_manager.c index bfe544e5dc..fb4d0de824 100644 --- a/managers/cheat_manager.c +++ b/managers/cheat_manager.c @@ -1317,8 +1317,8 @@ void cheat_manager_match_action(enum cheat_match_action_type match_action, unsig unsigned char *prev = cheat_manager_state.prev_memory_buf ; unsigned int curr_match_idx = 0; - if ( target_match_idx < 0 || target_match_idx > cheat_manager_state.num_matches-1) - return ; + if ( target_match_idx > cheat_manager_state.num_matches-1) + return; cheat_manager_setup_search_meta(cheat_manager_state.search_bit_size, &bytes_per_item, &mask, &bits); diff --git a/menu/cbs/menu_cbs_ok.c b/menu/cbs/menu_cbs_ok.c index ad7957c2d0..6cce7b8028 100644 --- a/menu/cbs/menu_cbs_ok.c +++ b/menu/cbs/menu_cbs_ok.c @@ -2674,13 +2674,14 @@ static int action_ok_cheat_add_top(const char *path, for (i = cheat_manager_state.size-2 ; i >=0 ; i--) { - memcpy(&cheat_manager_state.cheats[i+1], &cheat_manager_state.cheats[i], sizeof(struct item_cheat )) ; + memcpy(&cheat_manager_state.cheats[i+1], + &cheat_manager_state.cheats[i], sizeof(struct item_cheat )) ; cheat_manager_state.cheats[i+1].idx++ ; } memcpy(&cheat_manager_state.cheats[0], &tmp, sizeof(struct item_cheat )) ; - snprintf(msg, sizeof(msg), msg_hash_to_str(MSG_CHEAT_ADD_TOP_SUCCESS)) ; + strlcpy(msg, msg_hash_to_str(MSG_CHEAT_ADD_TOP_SUCCESS), sizeof(msg)); msg[sizeof(msg) - 1] = 0; runloop_msg_queue_push(msg, 1, 180, true); @@ -2691,15 +2692,17 @@ static int action_ok_cheat_add_top(const char *path, static int action_ok_cheat_add_bottom(const char *path, const char *label, unsigned type, size_t idx, size_t entry_idx) { - char msg[256] ; + char msg[256]; bool refresh = false ; - unsigned int new_size = cheat_manager_get_size() + 1; + menu_entries_ctl(MENU_ENTRIES_CTL_SET_REFRESH, &refresh); menu_driver_ctl(RARCH_MENU_CTL_SET_PREVENT_POPULATE, NULL); cheat_manager_realloc(new_size, CHEAT_HANDLER_TYPE_RETRO); - snprintf(msg, sizeof(msg), msg_hash_to_str(MSG_CHEAT_ADD_BOTTOM_SUCCESS)) ; + msg[0] = '\0'; + strlcpy(msg, + msg_hash_to_str(MSG_CHEAT_ADD_BOTTOM_SUCCESS), sizeof(msg)); msg[sizeof(msg) - 1] = 0; runloop_msg_queue_push(msg, 1, 180, true); @@ -2711,7 +2714,7 @@ static int action_ok_cheat_delete_all(const char *path, const char *label, unsigned type, size_t idx, size_t entry_idx) { char msg[256] ; - snprintf(msg, sizeof(msg), msg_hash_to_str(MSG_CHEAT_DELETE_ALL_INSTRUCTIONS)) ; + strlcpy(msg, msg_hash_to_str(MSG_CHEAT_DELETE_ALL_INSTRUCTIONS), sizeof(msg)); msg[sizeof(msg) - 1] = 0; runloop_msg_queue_push(msg, 1, 240, true); @@ -2743,7 +2746,7 @@ static int action_ok_cheat_add_new_after(const char *path, menu_entries_ctl(MENU_ENTRIES_CTL_SET_REFRESH, &refresh); menu_driver_ctl(RARCH_MENU_CTL_SET_PREVENT_POPULATE, NULL); - snprintf(msg, sizeof(msg), msg_hash_to_str(MSG_CHEAT_ADD_AFTER_SUCCESS)) ; + strlcpy(msg, msg_hash_to_str(MSG_CHEAT_ADD_AFTER_SUCCESS), sizeof(msg)); msg[sizeof(msg) - 1] = 0; runloop_msg_queue_push(msg, 1, 180, true); @@ -2771,13 +2774,15 @@ static int action_ok_cheat_add_new_before(const char *path, cheat_manager_state.cheats[i+1].idx++ ; } - memcpy(&cheat_manager_state.cheats[tmp.idx], &tmp, sizeof(struct item_cheat )) ; - memcpy(&cheat_manager_state.working_cheat, &tmp, sizeof(struct item_cheat )) ; + memcpy(&cheat_manager_state.cheats[tmp.idx], + &tmp, sizeof(struct item_cheat )) ; + memcpy(&cheat_manager_state.working_cheat, + &tmp, sizeof(struct item_cheat )) ; menu_entries_ctl(MENU_ENTRIES_CTL_SET_REFRESH, &refresh); menu_driver_ctl(RARCH_MENU_CTL_SET_PREVENT_POPULATE, NULL); - snprintf(msg, sizeof(msg), msg_hash_to_str(MSG_CHEAT_ADD_BEFORE_SUCCESS)) ; + strlcpy(msg, msg_hash_to_str(MSG_CHEAT_ADD_BEFORE_SUCCESS), sizeof(msg)); msg[sizeof(msg) - 1] = 0; runloop_msg_queue_push(msg, 1, 180, true); @@ -2810,7 +2815,7 @@ static int action_ok_cheat_copy_before(const char *path, menu_entries_ctl(MENU_ENTRIES_CTL_SET_REFRESH, &refresh); menu_driver_ctl(RARCH_MENU_CTL_SET_PREVENT_POPULATE, NULL); - snprintf(msg, sizeof(msg), msg_hash_to_str(MSG_CHEAT_COPY_BEFORE_SUCCESS)) ; + strlcpy(msg, msg_hash_to_str(MSG_CHEAT_COPY_BEFORE_SUCCESS), sizeof(msg)); msg[sizeof(msg) - 1] = 0; runloop_msg_queue_push(msg, 1, 180, true); @@ -2844,7 +2849,7 @@ static int action_ok_cheat_copy_after(const char *path, menu_entries_ctl(MENU_ENTRIES_CTL_SET_REFRESH, &refresh); menu_driver_ctl(RARCH_MENU_CTL_SET_PREVENT_POPULATE, NULL); - snprintf(msg, sizeof(msg), msg_hash_to_str(MSG_CHEAT_COPY_AFTER_SUCCESS)) ; + strlcpy(msg, msg_hash_to_str(MSG_CHEAT_COPY_AFTER_SUCCESS), sizeof(msg)); msg[sizeof(msg) - 1] = 0; runloop_msg_queue_push(msg, 1, 180, true); @@ -2872,7 +2877,7 @@ static int action_ok_cheat_delete(const char *path, cheat_manager_realloc(new_size, CHEAT_HANDLER_TYPE_RETRO); - snprintf(msg, sizeof(msg), msg_hash_to_str(MSG_CHEAT_DELETE_SUCCESS)) ; + strlcpy(msg, msg_hash_to_str(MSG_CHEAT_DELETE_SUCCESS), sizeof(msg)); msg[sizeof(msg) - 1] = 0; runloop_msg_queue_push(msg, 1, 180, true); diff --git a/menu/cbs/menu_cbs_right.c b/menu/cbs/menu_cbs_right.c index 2bf06e79b3..47c168775e 100644 --- a/menu/cbs/menu_cbs_right.c +++ b/menu/cbs/menu_cbs_right.c @@ -276,16 +276,18 @@ static int action_right_cheat_delete_all(unsigned type, const char *label, bool wraparound) { bool refresh = false ; - char msg[256] ; + char msg[256]; if ( ++cheat_manager_state.delete_state >= 5 ) { + msg[0] = '\0'; cheat_manager_state.delete_state = 0 ; cheat_manager_realloc(0, CHEAT_HANDLER_TYPE_EMU) ; menu_entries_ctl(MENU_ENTRIES_CTL_SET_REFRESH, &refresh); menu_driver_ctl(RARCH_MENU_CTL_SET_PREVENT_POPULATE, NULL); - snprintf(msg, sizeof(msg), msg_hash_to_str(MSG_CHEAT_DELETE_ALL_SUCCESS)) ; + strlcpy(msg, + msg_hash_to_str(MSG_CHEAT_DELETE_ALL_SUCCESS), sizeof(msg)); msg[sizeof(msg) - 1] = 0; runloop_msg_queue_push(msg, 1, 180, true); diff --git a/menu/menu_setting.c b/menu/menu_setting.c index 73560174f2..20730ce7ba 100644 --- a/menu/menu_setting.c +++ b/menu/menu_setting.c @@ -443,10 +443,8 @@ static void setting_get_string_representation_uint_cheat_exact(void *data, { rarch_setting_t *setting = (rarch_setting_t*)data; if (setting) - { snprintf(s, len, msg_hash_to_str(MENU_ENUM_LABEL_CHEAT_SEARCH_EXACT_VAL), *setting->value.target.unsigned_integer, *setting->value.target.unsigned_integer); - } } static void setting_get_string_representation_uint_cheat_lt(void *data, @@ -454,9 +452,7 @@ static void setting_get_string_representation_uint_cheat_lt(void *data, { rarch_setting_t *setting = (rarch_setting_t*)data; if (setting) - { - snprintf(s, len, msg_hash_to_str(MENU_ENUM_LABEL_CHEAT_SEARCH_LT_VAL)); - } + strlcpy(s, msg_hash_to_str(MENU_ENUM_LABEL_CHEAT_SEARCH_LT_VAL), len); } static void setting_get_string_representation_uint_cheat_gt(void *data, @@ -464,9 +460,7 @@ static void setting_get_string_representation_uint_cheat_gt(void *data, { rarch_setting_t *setting = (rarch_setting_t*)data; if (setting) - { - snprintf(s, len, msg_hash_to_str(MENU_ENUM_LABEL_CHEAT_SEARCH_GT_VAL)); - } + strlcpy(s, msg_hash_to_str(MENU_ENUM_LABEL_CHEAT_SEARCH_GT_VAL), len); } static void setting_get_string_representation_uint_cheat_lte(void *data, @@ -474,9 +468,7 @@ static void setting_get_string_representation_uint_cheat_lte(void *data, { rarch_setting_t *setting = (rarch_setting_t*)data; if (setting) - { - snprintf(s, len, msg_hash_to_str(MENU_ENUM_LABEL_CHEAT_SEARCH_LTE_VAL)); - } + strlcpy(s, msg_hash_to_str(MENU_ENUM_LABEL_CHEAT_SEARCH_LTE_VAL), len); } static void setting_get_string_representation_uint_cheat_gte(void *data, @@ -484,9 +476,7 @@ static void setting_get_string_representation_uint_cheat_gte(void *data, { rarch_setting_t *setting = (rarch_setting_t*)data; if (setting) - { - snprintf(s, len, msg_hash_to_str(MENU_ENUM_LABEL_CHEAT_SEARCH_GTE_VAL)); - } + strlcpy(s, msg_hash_to_str(MENU_ENUM_LABEL_CHEAT_SEARCH_GTE_VAL), len); } static void setting_get_string_representation_uint_cheat_eq(void *data, @@ -494,9 +484,7 @@ static void setting_get_string_representation_uint_cheat_eq(void *data, { rarch_setting_t *setting = (rarch_setting_t*)data; if (setting) - { - snprintf(s, len, msg_hash_to_str(MENU_ENUM_LABEL_CHEAT_SEARCH_EQ_VAL)); - } + strlcpy(s, msg_hash_to_str(MENU_ENUM_LABEL_CHEAT_SEARCH_EQ_VAL), len); } static void setting_get_string_representation_uint_cheat_neq(void *data, @@ -504,9 +492,7 @@ static void setting_get_string_representation_uint_cheat_neq(void *data, { rarch_setting_t *setting = (rarch_setting_t*)data; if (setting) - { - snprintf(s, len, msg_hash_to_str(MENU_ENUM_LABEL_CHEAT_SEARCH_NEQ_VAL)); - } + strlcpy(s, msg_hash_to_str(MENU_ENUM_LABEL_CHEAT_SEARCH_NEQ_VAL), len); } static void setting_get_string_representation_uint_cheat_eqplus(void *data, @@ -514,10 +500,8 @@ static void setting_get_string_representation_uint_cheat_eqplus(void *data, { rarch_setting_t *setting = (rarch_setting_t*)data; if (setting) - { snprintf(s, len, msg_hash_to_str(MENU_ENUM_LABEL_CHEAT_SEARCH_EQPLUS_VAL), *setting->value.target.unsigned_integer, *setting->value.target.unsigned_integer); - } } static void setting_get_string_representation_uint_cheat_eqminus(void *data, @@ -525,10 +509,8 @@ static void setting_get_string_representation_uint_cheat_eqminus(void *data, { rarch_setting_t *setting = (rarch_setting_t*)data; if (setting) - { snprintf(s, len, msg_hash_to_str(MENU_ENUM_LABEL_CHEAT_SEARCH_EQMINUS_VAL), *setting->value.target.unsigned_integer, *setting->value.target.unsigned_integer); - } } static void setting_get_string_representation_uint_video_rotation(void *data, From 2516b7ad1e8c03e19932624da32dacd4a7505690 Mon Sep 17 00:00:00 2001 From: Alfredo Monclus <alfredomonclus@gmail.com> Date: Sun, 29 Jul 2018 14:06:08 -0300 Subject: [PATCH 09/10] =?UTF-8?q?Ranura=20a=20Posici=C3=B3n?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- intl/msg_hash_es.h | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/intl/msg_hash_es.h b/intl/msg_hash_es.h index 02d44e9259..3fdf3a71b8 100644 --- a/intl/msg_hash_es.h +++ b/intl/msg_hash_es.h @@ -1300,11 +1300,11 @@ MSG_HASH( ) MSG_HASH( MENU_ENUM_LABEL_VALUE_INPUT_META_STATE_SLOT_MINUS, - "Ranura de guardado -" + "Posición de guardado -" ) MSG_HASH( MENU_ENUM_LABEL_VALUE_INPUT_META_STATE_SLOT_PLUS, - "Ranura de guardado +" + "Posición de guardado +" ) MSG_HASH( MENU_ENUM_LABEL_VALUE_INPUT_META_VOLUME_DOWN, @@ -2476,7 +2476,7 @@ MSG_HASH( ) MSG_HASH( MENU_ENUM_LABEL_VALUE_STATE_SLOT, - "Ranura de guardado" + "Posición de guardado" ) MSG_HASH( MENU_ENUM_LABEL_VALUE_STATUS, @@ -3996,7 +3996,7 @@ MSG_HASH( ) MSG_HASH( MSG_FOUND_LAST_STATE_SLOT, - "Encontrada la ultima ranura de guardado" + "Encontrada la ultima posición de guardado" ) MSG_HASH( MSG_FOUND_SHADER, @@ -4088,11 +4088,11 @@ MSG_HASH( ) MSG_HASH( MSG_LOADED_STATE_FROM_SLOT, - "Cargado guardado de la ranura #%d" + "Cargado guardado de la posición #%d" ) MSG_HASH( MSG_LOADED_STATE_FROM_SLOT_AUTO, - "Cargado guardado de la ranura #-1 (auto)" + "Cargado guardado de la posición #-1 (auto)" ) MSG_HASH( MSG_LOADING, @@ -4260,7 +4260,7 @@ MSG_HASH( ) MSG_HASH( MSG_SAVED_STATE_TO_SLOT, - "Guardado a la ranura #%d" + "Guardado a la posición #%d" ) MSG_HASH( MSG_SAVED_STATE_TO_SLOT_AUTO, @@ -4336,7 +4336,7 @@ MSG_HASH( ) MSG_HASH( MSG_STATE_SLOT, - "Ranura de guardado" + "Posición de guardado" ) MSG_HASH( MSG_TAKING_SCREENSHOT, @@ -5276,11 +5276,11 @@ MSG_HASH( ) MSG_HASH( MENU_ENUM_SUBLABEL_LOAD_STATE, - "Carga un guardado rápido desde la ranura seleccionada" + "Carga un guardado rápido desde la posición seleccionada" ) MSG_HASH( MENU_ENUM_SUBLABEL_SAVE_STATE, - "Guarda en la ranura seleccionada" + "Guarda en la posición seleccionada" ) MSG_HASH( MENU_ENUM_SUBLABEL_RESUME, @@ -5292,7 +5292,7 @@ MSG_HASH( ) MSG_HASH( MENU_ENUM_SUBLABEL_STATE_SLOT, - "Cambia la ranura de guardado actual" + "Cambia la posición de guardado actual" ) MSG_HASH( MENU_ENUM_SUBLABEL_UNDO_LOAD_STATE, From 7426701b2fae139cc1623275e4dbb26e0d86ab8a Mon Sep 17 00:00:00 2001 From: Alfredo Monclus <alfredomonclus@gmail.com> Date: Sun, 29 Jul 2018 15:06:01 -0300 Subject: [PATCH 10/10] Anulaciones a Personalizaciones --- intl/msg_hash_es.h | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/intl/msg_hash_es.h b/intl/msg_hash_es.h index 3fdf3a71b8..337c4f2058 100644 --- a/intl/msg_hash_es.h +++ b/intl/msg_hash_es.h @@ -332,7 +332,7 @@ MSG_HASH( ) MSG_HASH( MENU_ENUM_LABEL_VALUE_AUTO_OVERRIDES_ENABLE, - "Cargar autom. archivos de anulación" + "Cargar autom. archivos de personalización" ) MSG_HASH( MENU_ENUM_LABEL_VALUE_AUTO_REMAPS_ENABLE, @@ -2316,15 +2316,15 @@ MSG_HASH( ) MSG_HASH( MENU_ENUM_LABEL_VALUE_SAVE_CURRENT_CONFIG_OVERRIDE_CORE, - "Guardar anulaciones del núcleo" + "Guardar personalizaciones del núcleo" ) MSG_HASH( MENU_ENUM_LABEL_VALUE_SAVE_CURRENT_CONFIG_OVERRIDE_CONTENT_DIR, - "Lugar donde guardar anulaciones del juego" + "Lugar donde guardar personalizaciones del juego" ) MSG_HASH( MENU_ENUM_LABEL_VALUE_SAVE_CURRENT_CONFIG_OVERRIDE_GAME, - "Guardar anulaciones del juego" + "Guardar personalizaciones del juego" ) MSG_HASH( MENU_ENUM_LABEL_VALUE_SAVE_NEW_CONFIG, @@ -4152,11 +4152,11 @@ MSG_HASH( ) MSG_HASH( MSG_OVERRIDES_ERROR_SAVING, - "Error guardando anulaciones" + "Error guardando personalizaciones" ) MSG_HASH( MSG_OVERRIDES_SAVED_SUCCESSFULLY, - "Anulaciones guardadas exitosamente" + "Personalizaciones guardadas exitosamente" ) MSG_HASH( MSG_PAUSED, @@ -5328,7 +5328,7 @@ MSG_HASH( ) MSG_HASH( MENU_ENUM_SUBLABEL_SAVE_CURRENT_CONFIG_OVERRIDE_CORE, - "Guarda un archivo de anulación que se aplicará a todo el contenido cargado con este núcleo. Tomará precedencia sobre la configuración principal" + "Guarda un archivo de personalización que se aplicará a todo el contenido cargado con este núcleo. Tomará precedencia sobre la configuración principal" ) MSG_HASH( MENU_ENUM_SUBLABEL_SAVE_CURRENT_CONFIG_OVERRIDE_CONTENT_DIR, @@ -5336,7 +5336,7 @@ MSG_HASH( ) MSG_HASH( MENU_ENUM_SUBLABEL_SAVE_CURRENT_CONFIG_OVERRIDE_GAME, - "Guarda un archivo de anulación que se aplicará solo a este contenido cargado. Tomará precedencia sobre la configuración principal" + "Guarda un archivo de personalización que se aplicará solo a este contenido cargado. Tomará precedencia sobre la configuración principal" ) MSG_HASH( MENU_ENUM_SUBLABEL_CORE_CHEAT_OPTIONS, @@ -6004,19 +6004,19 @@ MSG_HASH( ) MSG_HASH( MENU_ENUM_LABEL_VALUE_QUICK_MENU_SHOW_SAVE_CORE_OVERRIDES, - "Mostrar anulaciones de núcleo" + "Mostrar personalizaciones de núcleo" ) MSG_HASH( MENU_ENUM_SUBLABEL_QUICK_MENU_SHOW_SAVE_CORE_OVERRIDES, - "Mostrar/ocultar la opción de 'Guardar anulaciones de núcleo'" + "Mostrar/ocultar la opción de 'Guardar personalizaciones de núcleo'" ) MSG_HASH( MENU_ENUM_LABEL_VALUE_QUICK_MENU_SHOW_SAVE_GAME_OVERRIDES, - "Mostrar anulaciones de juego" + "Mostrar personalizaciones de juego" ) MSG_HASH( MENU_ENUM_SUBLABEL_QUICK_MENU_SHOW_SAVE_GAME_OVERRIDES, - "Mostrar/ocultar la opción de 'Guardar anulaciones de juego'" + "Mostrar/ocultar la opción de 'Guardar personalizaciones de juego'" ) MSG_HASH( MENU_ENUM_LABEL_VALUE_QUICK_MENU_SHOW_INFORMATION, @@ -6100,7 +6100,7 @@ MSG_HASH( ) MSG_HASH( MSG_CONFIG_OVERRIDE_LOADED, - "Anulaciones de configuraciones cargadas" + "Personalizar configuraciones cargadas" ) MSG_HASH( MSG_GAME_REMAP_FILE_LOADED, @@ -6486,7 +6486,7 @@ MSG_HASH( ) MSG_HASH( MENU_ENUM_LABEL_VALUE_QUICK_MENU_OVERRIDE_OPTIONS, - "Anulaciones" + "Personalizaciones" ) MSG_HASH( MENU_ENUM_SUBLABEL_QUICK_MENU_OVERRIDE_OPTIONS,