" + tr("Update Channel") + ": " + updateChannel +
" "
@@ -273,7 +273,7 @@ void CheckUpdate::setupUI(const QString& downloadUrl, const QString& latestDate,
}
});
- if (Config::alwaysShowChangelog()) {
+ if (m_gui_settings->GetValue(gui::gen_showChangeLog).toBool()) {
requestChangelog(currentRev, latestRev, downloadUrl, latestDate, currentDate);
textField->setVisible(true);
toggleButton->setText(tr("Hide Changelog"));
@@ -290,14 +290,14 @@ void CheckUpdate::setupUI(const QString& downloadUrl, const QString& latestDate,
connect(noButton, &QPushButton::clicked, this, [this]() { close(); });
- autoUpdateCheckBox->setChecked(Config::autoUpdate());
+ autoUpdateCheckBox->setChecked(m_gui_settings->GetValue(gui::gen_checkForUpdates).toBool());
#if (QT_VERSION < QT_VERSION_CHECK(6, 7, 0))
- connect(autoUpdateCheckBox, &QCheckBox::stateChanged, this, [](int state) {
+ connect(autoUpdateCheckBox, &QCheckBox::stateChanged, this, [this](int state) {
#else
- connect(autoUpdateCheckBox, &QCheckBox::checkStateChanged, this, [](Qt::CheckState state) {
+ connect(autoUpdateCheckBox, &QCheckBox::checkStateChanged, this, [this](Qt::CheckState state) {
#endif
const auto user_dir = Common::FS::GetUserPath(Common::FS::PathType::UserDir);
- Config::setAutoUpdate(state == Qt::Checked);
+ m_gui_settings->SetValue(gui::gen_checkForUpdates, (state == Qt::Checked));
Config::save(user_dir / "config.toml");
});
diff --git a/src/qt_gui/check_update.h b/src/qt_gui/check_update.h
index dfeb95e73..139059c41 100644
--- a/src/qt_gui/check_update.h
+++ b/src/qt_gui/check_update.h
@@ -8,12 +8,14 @@
#include
#include
#include
+#include "gui_settings.h"
class CheckUpdate : public QDialog {
Q_OBJECT
public:
- explicit CheckUpdate(const bool showMessage, QWidget* parent = nullptr);
+ explicit CheckUpdate(std::shared_ptr gui_settings, const bool showMessage,
+ QWidget* parent = nullptr);
~CheckUpdate();
private slots:
@@ -35,6 +37,7 @@ private:
QString updateDownloadUrl;
QNetworkAccessManager* networkManager;
+ std::shared_ptr m_gui_settings;
};
#endif // CHECKUPDATE_H
diff --git a/src/qt_gui/game_grid_frame.cpp b/src/qt_gui/game_grid_frame.cpp
index e06fea090..66679dc71 100644
--- a/src/qt_gui/game_grid_frame.cpp
+++ b/src/qt_gui/game_grid_frame.cpp
@@ -5,11 +5,13 @@
#include "game_grid_frame.h"
#include "qt_gui/compatibility_info.h"
-GameGridFrame::GameGridFrame(std::shared_ptr game_info_get,
+GameGridFrame::GameGridFrame(std::shared_ptr gui_settings,
+ std::shared_ptr game_info_get,
std::shared_ptr compat_info_get,
QWidget* parent)
- : QTableWidget(parent), m_game_info(game_info_get), m_compat_info(compat_info_get) {
- icon_size = Config::getIconSizeGrid();
+ : QTableWidget(parent), m_gui_settings(std::move(gui_settings)), m_game_info(game_info_get),
+ m_compat_info(compat_info_get) {
+ icon_size = m_gui_settings->GetValue(gui::gg_icon_size).toInt();
windowWidth = parent->width();
this->setShowGrid(false);
this->setEditTriggers(QAbstractItemView::NoEditTriggers);
@@ -74,7 +76,7 @@ void GameGridFrame::onCurrentCellChanged(int currentRow, int currentColumn, int
}
void GameGridFrame::PlayBackgroundMusic(QString path) {
- if (path.isEmpty() || !Config::getPlayBGM()) {
+ if (path.isEmpty() || !m_gui_settings->GetValue(gui::gl_playBackgroundMusic).toBool()) {
BackgroundMusicPlayer::getInstance().stopMusic();
return;
}
@@ -91,7 +93,8 @@ void GameGridFrame::PopulateGameGrid(QVector m_games_search, bool from
else
m_games_ = m_game_info->m_games;
m_games_shared = std::make_shared>(m_games_);
- icon_size = Config::getIconSizeGrid(); // update icon size for resize event.
+ icon_size =
+ m_gui_settings->GetValue(gui::gg_icon_size).toInt(); // update icon size for resize event.
int gamesPerRow = windowWidth / (icon_size + 20); // 2 x cell widget border size.
int row = 0;
@@ -118,7 +121,7 @@ void GameGridFrame::PopulateGameGrid(QVector m_games_search, bool from
layout->addWidget(name_label);
// Resizing of font-size.
- float fontSize = (Config::getIconSizeGrid() / 5.5f);
+ float fontSize = (m_gui_settings->GetValue(gui::gg_icon_size).toInt() / 5.5f);
QString styleSheet =
QString("color: white; font-weight: bold; font-size: %1px;").arg(fontSize);
name_label->setStyleSheet(styleSheet);
@@ -168,7 +171,7 @@ void GameGridFrame::SetGridBackgroundImage(int row, int column) {
}
// If background images are hidden, clear the background image
- if (!Config::getShowBackgroundImage()) {
+ if (!m_gui_settings->GetValue(gui::gl_showBackgroundImage).toBool()) {
backgroundImage = QImage();
m_last_opacity = -1; // Reset opacity tracking when disabled
m_current_game_path.clear(); // Reset current game path
@@ -177,7 +180,7 @@ void GameGridFrame::SetGridBackgroundImage(int row, int column) {
}
const auto& game = (*m_games_shared)[itemID];
- const int opacity = Config::getBackgroundImageOpacity();
+ const int opacity = m_gui_settings->GetValue(gui::gl_backgroundImageOpacity).toInt();
// Recompute if opacity changed or we switched to a different game
if (opacity != m_last_opacity || game.pic_path != m_current_game_path) {
@@ -195,7 +198,8 @@ void GameGridFrame::SetGridBackgroundImage(int row, int column) {
void GameGridFrame::RefreshGridBackgroundImage() {
QPalette palette;
- if (!backgroundImage.isNull() && Config::getShowBackgroundImage()) {
+ if (!backgroundImage.isNull() &&
+ m_gui_settings->GetValue(gui::gl_showBackgroundImage).toBool()) {
QSize widgetSize = size();
QPixmap scaledPixmap =
QPixmap::fromImage(backgroundImage)
diff --git a/src/qt_gui/game_grid_frame.h b/src/qt_gui/game_grid_frame.h
index 14596f8e1..22d278a21 100644
--- a/src/qt_gui/game_grid_frame.h
+++ b/src/qt_gui/game_grid_frame.h
@@ -11,6 +11,7 @@
#include "game_info.h"
#include "game_list_utils.h"
#include "gui_context_menus.h"
+#include "gui_settings.h"
#include "qt_gui/compatibility_info.h"
class GameGridFrame : public QTableWidget {
@@ -37,9 +38,11 @@ private:
bool validCellSelected = false;
int m_last_opacity = -1; // Track last opacity to avoid unnecessary recomputation
std::filesystem::path m_current_game_path; // Track current game path to detect changes
+ std::shared_ptr m_gui_settings;
public:
- explicit GameGridFrame(std::shared_ptr game_info_get,
+ explicit GameGridFrame(std::shared_ptr gui_settings,
+ std::shared_ptr game_info_get,
std::shared_ptr compat_info_get,
QWidget* parent = nullptr);
void PopulateGameGrid(QVector m_games, bool fromSearch);
diff --git a/src/qt_gui/game_list_frame.cpp b/src/qt_gui/game_list_frame.cpp
index 170215f3d..dd10e0f8b 100644
--- a/src/qt_gui/game_list_frame.cpp
+++ b/src/qt_gui/game_list_frame.cpp
@@ -9,11 +9,13 @@
#include "game_list_frame.h"
#include "game_list_utils.h"
-GameListFrame::GameListFrame(std::shared_ptr game_info_get,
+GameListFrame::GameListFrame(std::shared_ptr gui_settings,
+ std::shared_ptr game_info_get,
std::shared_ptr compat_info_get,
QWidget* parent)
- : QTableWidget(parent), m_game_info(game_info_get), m_compat_info(compat_info_get) {
- icon_size = Config::getIconSize();
+ : QTableWidget(parent), m_gui_settings(std::move(gui_settings)), m_game_info(game_info_get),
+ m_compat_info(compat_info_get) {
+ icon_size = m_gui_settings->GetValue(gui::gl_icon_size).toInt();
this->setShowGrid(false);
this->setEditTriggers(QAbstractItemView::NoEditTriggers);
this->setSelectionBehavior(QAbstractItemView::SelectRows);
@@ -97,7 +99,7 @@ void GameListFrame::onCurrentCellChanged(int currentRow, int currentColumn, int
}
void GameListFrame::PlayBackgroundMusic(QTableWidgetItem* item) {
- if (!item || !Config::getPlayBGM()) {
+ if (!item || !m_gui_settings->GetValue(gui::gl_playBackgroundMusic).toBool()) {
BackgroundMusicPlayer::getInstance().stopMusic();
return;
}
@@ -172,7 +174,7 @@ void GameListFrame::SetListBackgroundImage(QTableWidgetItem* item) {
}
// If background images are hidden, clear the background image
- if (!Config::getShowBackgroundImage()) {
+ if (!m_gui_settings->GetValue(gui::gl_showBackgroundImage).toBool()) {
backgroundImage = QImage();
m_last_opacity = -1; // Reset opacity tracking when disabled
m_current_game_path.clear(); // Reset current game path
@@ -181,7 +183,7 @@ void GameListFrame::SetListBackgroundImage(QTableWidgetItem* item) {
}
const auto& game = m_game_info->m_games[item->row()];
- const int opacity = Config::getBackgroundImageOpacity();
+ const int opacity = m_gui_settings->GetValue(gui::gl_backgroundImageOpacity).toInt();
// Recompute if opacity changed or we switched to a different game
if (opacity != m_last_opacity || game.pic_path != m_current_game_path) {
@@ -200,7 +202,8 @@ void GameListFrame::SetListBackgroundImage(QTableWidgetItem* item) {
void GameListFrame::RefreshListBackgroundImage() {
QPalette palette;
- if (!backgroundImage.isNull() && Config::getShowBackgroundImage()) {
+ if (!backgroundImage.isNull() &&
+ m_gui_settings->GetValue(gui::gl_showBackgroundImage).toBool()) {
QSize widgetSize = size();
QPixmap scaledPixmap =
QPixmap::fromImage(backgroundImage)
diff --git a/src/qt_gui/game_list_frame.h b/src/qt_gui/game_list_frame.h
index 782db6bae..f70d73054 100644
--- a/src/qt_gui/game_list_frame.h
+++ b/src/qt_gui/game_list_frame.h
@@ -17,11 +17,13 @@
#include "game_info.h"
#include "game_list_utils.h"
#include "gui_context_menus.h"
+#include "gui_settings.h"
class GameListFrame : public QTableWidget {
Q_OBJECT
public:
- explicit GameListFrame(std::shared_ptr game_info_get,
+ explicit GameListFrame(std::shared_ptr gui_settings,
+ std::shared_ptr game_info_get,
std::shared_ptr compat_info_get,
QWidget* parent = nullptr);
Q_SIGNALS:
@@ -48,6 +50,7 @@ private:
QTableWidgetItem* m_current_item = nullptr;
int m_last_opacity = -1; // Track last opacity to avoid unnecessary recomputation
std::filesystem::path m_current_game_path; // Track current game path to detect changes
+ std::shared_ptr m_gui_settings;
public:
void PopulateGameList(bool isInitialPopulation = true);
diff --git a/src/qt_gui/gui_settings.cpp b/src/qt_gui/gui_settings.cpp
new file mode 100644
index 000000000..4de6b7f19
--- /dev/null
+++ b/src/qt_gui/gui_settings.cpp
@@ -0,0 +1,9 @@
+// SPDX-FileCopyrightText: Copyright 2025 shadPS4 Emulator Project
+// SPDX-License-Identifier: GPL-2.0-or-later
+
+#include "gui_settings.h"
+
+gui_settings::gui_settings(QObject* parent) : settings(parent) {
+ m_settings = std::make_unique(ComputeSettingsDir() + "qt_ui.ini",
+ QSettings::Format::IniFormat, parent);
+}
diff --git a/src/qt_gui/gui_settings.h b/src/qt_gui/gui_settings.h
new file mode 100644
index 000000000..da5542956
--- /dev/null
+++ b/src/qt_gui/gui_settings.h
@@ -0,0 +1,46 @@
+// SPDX-FileCopyrightText: Copyright 2025 shadPS4 Emulator Project
+// SPDX-License-Identifier: GPL-2.0-or-later
+
+#pragma once
+
+#include
+#include "settings.h"
+
+namespace gui {
+// categories
+const QString general_settings = "general_settings";
+const QString main_window = "main_window";
+const QString game_list = "game_list";
+const QString game_grid = "game_grid";
+
+// general
+const gui_value gen_checkForUpdates = gui_value(general_settings, "checkForUpdates", false);
+const gui_value gen_showChangeLog = gui_value(general_settings, "showChangeLog", false);
+const gui_value gen_updateChannel = gui_value(general_settings, "updateChannel", "Release");
+
+// main window settings
+const gui_value mw_geometry = gui_value(main_window, "geometry", QByteArray());
+const gui_value mw_showLabelsUnderIcons = gui_value(main_window, "showLabelsUnderIcons", true);
+
+// game list settings
+const gui_value gl_mode = gui_value(game_list, "tableMode", 0);
+const gui_value gl_icon_size = gui_value(game_list, "icon_size", 36);
+const gui_value gl_slider_pos = gui_value(game_list, "slider_pos", 0);
+const gui_value gl_showBackgroundImage = gui_value(game_list, "showBackgroundImage", true);
+const gui_value gl_backgroundImageOpacity = gui_value(game_list, "backgroundImageOpacity", 50);
+const gui_value gl_playBackgroundMusic = gui_value(game_list, "playBackgroundMusic", true);
+const gui_value gl_backgroundMusicVolume = gui_value(game_list, "backgroundMusicVolume", 50);
+
+// game grid settings
+const gui_value gg_icon_size = gui_value(game_grid, "icon_size", 69);
+const gui_value gg_slider_pos = gui_value(game_grid, "slider_pos", 0);
+
+} // namespace gui
+
+class gui_settings : public settings {
+ Q_OBJECT
+
+public:
+ explicit gui_settings(QObject* parent = nullptr);
+ ~gui_settings() override = default;
+};
diff --git a/src/qt_gui/main_window.cpp b/src/qt_gui/main_window.cpp
index 906a3066e..c6da49182 100644
--- a/src/qt_gui/main_window.cpp
+++ b/src/qt_gui/main_window.cpp
@@ -32,6 +32,9 @@ MainWindow::MainWindow(QWidget* parent) : QMainWindow(parent), ui(new Ui::MainWi
ui->setupUi(this);
installEventFilter(this);
setAttribute(Qt::WA_DeleteOnClose);
+ m_gui_settings = std::make_shared();
+ ui->toggleLabelsAct->setChecked(
+ m_gui_settings->GetValue(gui::mw_showLabelsUnderIcons).toBool());
}
MainWindow::~MainWindow() {
@@ -139,7 +142,7 @@ void MainWindow::PauseGame() {
void MainWindow::toggleLabelsUnderIcons() {
bool showLabels = ui->toggleLabelsAct->isChecked();
- Config::setShowLabelsUnderIcons();
+ m_gui_settings->SetValue(gui::mw_showLabelsUnderIcons, showLabels);
UpdateToolbarLabels();
if (isGameRunning) {
UpdateToolbarButtons();
@@ -290,21 +293,21 @@ void MainWindow::CreateDockWindows() {
setCentralWidget(phCentralWidget);
m_dock_widget.reset(new QDockWidget(tr("Game List"), this));
- m_game_list_frame.reset(new GameListFrame(m_game_info, m_compat_info, this));
+ m_game_list_frame.reset(new GameListFrame(m_gui_settings, m_game_info, m_compat_info, this));
m_game_list_frame->setObjectName("gamelist");
- m_game_grid_frame.reset(new GameGridFrame(m_game_info, m_compat_info, this));
+ m_game_grid_frame.reset(new GameGridFrame(m_gui_settings, m_game_info, m_compat_info, this));
m_game_grid_frame->setObjectName("gamegridlist");
m_elf_viewer.reset(new ElfViewer(this));
m_elf_viewer->setObjectName("elflist");
- int table_mode = Config::getTableMode();
+ int table_mode = m_gui_settings->GetValue(gui::gl_mode).toInt();
int slider_pos = 0;
if (table_mode == 0) { // List
m_game_grid_frame->hide();
m_elf_viewer->hide();
m_game_list_frame->show();
m_dock_widget->setWidget(m_game_list_frame.data());
- slider_pos = Config::getSliderPosition();
+ slider_pos = m_gui_settings->GetValue(gui::gl_slider_pos).toInt();
ui->sizeSlider->setSliderPosition(slider_pos); // set slider pos at start;
isTableList = true;
} else if (table_mode == 1) { // Grid
@@ -312,7 +315,7 @@ void MainWindow::CreateDockWindows() {
m_elf_viewer->hide();
m_game_grid_frame->show();
m_dock_widget->setWidget(m_game_grid_frame.data());
- slider_pos = Config::getSliderPositionGrid();
+ slider_pos = m_gui_settings->GetValue(gui::gg_slider_pos).toInt();
ui->sizeSlider->setSliderPosition(slider_pos); // set slider pos at start;
isTableList = false;
} else {
@@ -356,11 +359,11 @@ void MainWindow::LoadGameLists() {
#ifdef ENABLE_UPDATER
void MainWindow::CheckUpdateMain(bool checkSave) {
if (checkSave) {
- if (!Config::autoUpdate()) {
+ if (!m_gui_settings->GetValue(gui::gen_checkForUpdates).toBool()) {
return;
}
}
- auto checkUpdate = new CheckUpdate(false);
+ auto checkUpdate = new CheckUpdate(m_gui_settings, false);
checkUpdate->exec();
}
#endif
@@ -380,13 +383,13 @@ void MainWindow::CreateConnects() {
m_game_list_frame->icon_size =
48 + value; // 48 is the minimum icon size to use due to text disappearing.
m_game_list_frame->ResizeIcons(48 + value);
- Config::setIconSize(48 + value);
- Config::setSliderPosition(value);
+ m_gui_settings->SetValue(gui::gl_icon_size, 48 + value);
+ m_gui_settings->SetValue(gui::gl_slider_pos, value);
} else {
m_game_grid_frame->icon_size = 69 + value;
m_game_grid_frame->PopulateGameGrid(m_game_info->m_games, false);
- Config::setIconSizeGrid(69 + value);
- Config::setSliderPositionGrid(value);
+ m_gui_settings->SetValue(gui::gg_icon_size, 69 + value);
+ m_gui_settings->SetValue(gui::gg_slider_pos, value);
}
});
@@ -404,7 +407,7 @@ void MainWindow::CreateConnects() {
&MainWindow::StartGame);
connect(ui->configureAct, &QAction::triggered, this, [this]() {
- auto settingsDialog = new SettingsDialog(m_compat_info, this);
+ auto settingsDialog = new SettingsDialog(m_gui_settings, m_compat_info, this);
connect(settingsDialog, &SettingsDialog::LanguageChanged, this,
&MainWindow::OnLanguageChanged);
@@ -418,7 +421,8 @@ void MainWindow::CreateConnects() {
connect(settingsDialog, &SettingsDialog::BackgroundOpacityChanged, this,
[this](int opacity) {
- Config::setBackgroundImageOpacity(opacity);
+ m_gui_settings->SetValue(gui::gl_backgroundImageOpacity,
+ std::clamp(opacity, 0, 100));
if (m_game_list_frame) {
QTableWidgetItem* current = m_game_list_frame->GetCurrentItem();
if (current) {
@@ -437,7 +441,7 @@ void MainWindow::CreateConnects() {
});
connect(ui->settingsButton, &QPushButton::clicked, this, [this]() {
- auto settingsDialog = new SettingsDialog(m_compat_info, this);
+ auto settingsDialog = new SettingsDialog(m_gui_settings, m_compat_info, this);
connect(settingsDialog, &SettingsDialog::LanguageChanged, this,
&MainWindow::OnLanguageChanged);
@@ -451,7 +455,8 @@ void MainWindow::CreateConnects() {
connect(settingsDialog, &SettingsDialog::BackgroundOpacityChanged, this,
[this](int opacity) {
- Config::setBackgroundImageOpacity(opacity);
+ m_gui_settings->SetValue(gui::gl_backgroundImageOpacity,
+ std::clamp(opacity, 0, 100));
if (m_game_list_frame) {
QTableWidgetItem* current = m_game_list_frame->GetCurrentItem();
if (current) {
@@ -481,7 +486,7 @@ void MainWindow::CreateConnects() {
#ifdef ENABLE_UPDATER
connect(ui->updaterAct, &QAction::triggered, this, [this]() {
- auto checkUpdate = new CheckUpdate(true);
+ auto checkUpdate = new CheckUpdate(m_gui_settings, true);
checkUpdate->exec();
});
#endif
@@ -496,13 +501,13 @@ void MainWindow::CreateConnects() {
m_game_list_frame->icon_size =
36; // 36 is the minimum icon size to use due to text disappearing.
ui->sizeSlider->setValue(0); // icone_size - 36
- Config::setIconSize(36);
- Config::setSliderPosition(0);
+ m_gui_settings->SetValue(gui::gl_icon_size, 36);
+ m_gui_settings->SetValue(gui::gl_slider_pos, 0);
} else {
m_game_grid_frame->icon_size = 69;
ui->sizeSlider->setValue(0); // icone_size - 36
- Config::setIconSizeGrid(69);
- Config::setSliderPositionGrid(0);
+ m_gui_settings->SetValue(gui::gg_icon_size, 69);
+ m_gui_settings->SetValue(gui::gg_slider_pos, 9);
m_game_grid_frame->PopulateGameGrid(m_game_info->m_games, false);
}
});
@@ -511,13 +516,13 @@ void MainWindow::CreateConnects() {
if (isTableList) {
m_game_list_frame->icon_size = 64;
ui->sizeSlider->setValue(28);
- Config::setIconSize(64);
- Config::setSliderPosition(28);
+ m_gui_settings->SetValue(gui::gl_icon_size, 64);
+ m_gui_settings->SetValue(gui::gl_slider_pos, 28);
} else {
m_game_grid_frame->icon_size = 97;
ui->sizeSlider->setValue(28);
- Config::setIconSizeGrid(97);
- Config::setSliderPositionGrid(28);
+ m_gui_settings->SetValue(gui::gg_icon_size, 97);
+ m_gui_settings->SetValue(gui::gg_slider_pos, 28);
m_game_grid_frame->PopulateGameGrid(m_game_info->m_games, false);
}
});
@@ -526,13 +531,13 @@ void MainWindow::CreateConnects() {
if (isTableList) {
m_game_list_frame->icon_size = 128;
ui->sizeSlider->setValue(92);
- Config::setIconSize(128);
- Config::setSliderPosition(92);
+ m_gui_settings->SetValue(gui::gl_icon_size, 128);
+ m_gui_settings->SetValue(gui::gl_slider_pos, 92);
} else {
m_game_grid_frame->icon_size = 161;
ui->sizeSlider->setValue(92);
- Config::setIconSizeGrid(161);
- Config::setSliderPositionGrid(92);
+ m_gui_settings->SetValue(gui::gg_icon_size, 161);
+ m_gui_settings->SetValue(gui::gg_slider_pos, 92);
m_game_grid_frame->PopulateGameGrid(m_game_info->m_games, false);
}
});
@@ -541,13 +546,13 @@ void MainWindow::CreateConnects() {
if (isTableList) {
m_game_list_frame->icon_size = 256;
ui->sizeSlider->setValue(220);
- Config::setIconSize(256);
- Config::setSliderPosition(220);
+ m_gui_settings->SetValue(gui::gl_icon_size, 256);
+ m_gui_settings->SetValue(gui::gl_slider_pos, 220);
} else {
m_game_grid_frame->icon_size = 256;
ui->sizeSlider->setValue(220);
- Config::setIconSizeGrid(256);
- Config::setSliderPositionGrid(220);
+ m_gui_settings->SetValue(gui::gg_icon_size, 256);
+ m_gui_settings->SetValue(gui::gg_slider_pos, 220);
m_game_grid_frame->PopulateGameGrid(m_game_info->m_games, false);
}
});
@@ -563,8 +568,8 @@ void MainWindow::CreateConnects() {
m_game_list_frame->PopulateGameList();
}
isTableList = true;
- Config::setTableMode(0);
- int slider_pos = Config::getSliderPosition();
+ m_gui_settings->SetValue(gui::gl_mode, 0);
+ int slider_pos = m_gui_settings->GetValue(gui::gl_slider_pos).toInt();
ui->sizeSlider->setEnabled(true);
ui->sizeSlider->setSliderPosition(slider_pos);
ui->mw_searchbar->setText("");
@@ -582,8 +587,8 @@ void MainWindow::CreateConnects() {
m_game_grid_frame->PopulateGameGrid(m_game_info->m_games, false);
}
isTableList = false;
- Config::setTableMode(1);
- int slider_pos_grid = Config::getSliderPositionGrid();
+ m_gui_settings->SetValue(gui::gl_mode, 1);
+ int slider_pos_grid = m_gui_settings->GetValue(gui::gg_slider_pos).toInt();
ui->sizeSlider->setEnabled(true);
ui->sizeSlider->setSliderPosition(slider_pos_grid);
ui->mw_searchbar->setText("");
@@ -598,7 +603,7 @@ void MainWindow::CreateConnects() {
m_elf_viewer->show();
isTableList = false;
ui->sizeSlider->setDisabled(true);
- Config::setTableMode(2);
+ m_gui_settings->SetValue(gui::gl_mode, 2);
SetLastIconSizeBullet();
});
@@ -840,7 +845,7 @@ void MainWindow::CreateConnects() {
void MainWindow::StartGame() {
BackgroundMusicPlayer::getInstance().stopMusic();
QString gamePath = "";
- int table_mode = Config::getTableMode();
+ int table_mode = m_gui_settings->GetValue(gui::gl_mode).toInt();
if (table_mode == 0) {
if (m_game_list_frame->currentItem()) {
int itemID = m_game_list_frame->currentItem()->row();
@@ -925,25 +930,25 @@ void MainWindow::RefreshGameTable() {
}
void MainWindow::ConfigureGuiFromSettings() {
- setGeometry(Config::getMainWindowGeometryX(), Config::getMainWindowGeometryY(),
- Config::getMainWindowGeometryW(), Config::getMainWindowGeometryH());
-
+ if (!restoreGeometry(m_gui_settings->GetValue(gui::mw_geometry).toByteArray())) {
+ // By default, set the window to 70% of the screen
+ resize(QGuiApplication::primaryScreen()->availableSize() * 0.7);
+ }
ui->showGameListAct->setChecked(true);
- if (Config::getTableMode() == 0) {
+ int table_mode = m_gui_settings->GetValue(gui::gl_mode).toInt();
+ if (table_mode == 0) {
ui->setlistModeListAct->setChecked(true);
- } else if (Config::getTableMode() == 1) {
+ } else if (table_mode == 1) {
ui->setlistModeGridAct->setChecked(true);
- } else if (Config::getTableMode() == 2) {
+ } else if (table_mode == 2) {
ui->setlistElfAct->setChecked(true);
}
- BackgroundMusicPlayer::getInstance().setVolume(Config::getBGMvolume());
+ BackgroundMusicPlayer::getInstance().setVolume(
+ m_gui_settings->GetValue(gui::gl_backgroundMusicVolume).toInt());
}
-void MainWindow::SaveWindowState() const {
- Config::setMainWindowWidth(this->width());
- Config::setMainWindowHeight(this->height());
- Config::setMainWindowGeometry(this->geometry().x(), this->geometry().y(),
- this->geometry().width(), this->geometry().height());
+void MainWindow::SaveWindowState() {
+ m_gui_settings->SetValue(gui::mw_geometry, saveGeometry(), false);
}
void MainWindow::BootGame() {
@@ -1024,8 +1029,8 @@ void MainWindow::SetLastUsedTheme() {
void MainWindow::SetLastIconSizeBullet() {
// set QAction bullet point if applicable
- int lastSize = Config::getIconSize();
- int lastSizeGrid = Config::getIconSizeGrid();
+ int lastSize = m_gui_settings->GetValue(gui::gl_icon_size).toInt();
+ int lastSizeGrid = m_gui_settings->GetValue(gui::gg_icon_size).toInt();
if (isTableList) {
switch (lastSize) {
case 36:
@@ -1195,7 +1200,7 @@ bool MainWindow::eventFilter(QObject* obj, QEvent* event) {
if (event->type() == QEvent::KeyPress) {
QKeyEvent* keyEvent = static_cast(event);
if (keyEvent->key() == Qt::Key_Enter || keyEvent->key() == Qt::Key_Return) {
- auto tblMode = Config::getTableMode();
+ auto tblMode = m_gui_settings->GetValue(gui::gl_mode).toInt();
if (tblMode != 2 && (tblMode != 1 || m_game_grid_frame->IsValidCellSelected())) {
StartGame();
return true;
diff --git a/src/qt_gui/main_window.h b/src/qt_gui/main_window.h
index 97c56433d..7f11f7310 100644
--- a/src/qt_gui/main_window.h
+++ b/src/qt_gui/main_window.h
@@ -20,6 +20,7 @@
#include "game_info.h"
#include "game_list_frame.h"
#include "game_list_utils.h"
+#include "gui_settings.h"
#include "main_window_themes.h"
#include "main_window_ui.h"
@@ -41,7 +42,7 @@ public:
private Q_SLOTS:
void ConfigureGuiFromSettings();
- void SaveWindowState() const;
+ void SaveWindowState();
void SearchGameTable(const QString& text);
void ShowGameList();
void RefreshGameTable();
@@ -102,6 +103,7 @@ private:
std::make_shared();
QTranslator* translator;
+ std::shared_ptr m_gui_settings;
protected:
bool eventFilter(QObject* obj, QEvent* event) override;
diff --git a/src/qt_gui/main_window_ui.h b/src/qt_gui/main_window_ui.h
index 4d3481c07..4ce71013e 100644
--- a/src/qt_gui/main_window_ui.h
+++ b/src/qt_gui/main_window_ui.h
@@ -107,7 +107,6 @@ public:
toggleLabelsAct = new QAction(MainWindow);
toggleLabelsAct->setObjectName("toggleLabelsAct");
toggleLabelsAct->setCheckable(true);
- toggleLabelsAct->setChecked(Config::getShowLabelsUnderIcons());
setIconSizeTinyAct = new QAction(MainWindow);
setIconSizeTinyAct->setObjectName("setIconSizeTinyAct");
diff --git a/src/qt_gui/settings.cpp b/src/qt_gui/settings.cpp
new file mode 100644
index 000000000..44133dac5
--- /dev/null
+++ b/src/qt_gui/settings.cpp
@@ -0,0 +1,77 @@
+// SPDX-FileCopyrightText: Copyright 2025 shadPS4 Emulator Project
+// SPDX-License-Identifier: GPL-2.0-or-later
+
+#include
+#include "settings.h"
+
+settings::settings(QObject* parent) : QObject(parent), m_settings_dir(ComputeSettingsDir()) {}
+
+settings::~settings() {
+ sync();
+}
+
+void settings::sync() {
+ if (m_settings) {
+ m_settings->sync();
+ }
+}
+
+QString settings::GetSettingsDir() const {
+ return m_settings_dir.absolutePath();
+}
+
+QString settings::ComputeSettingsDir() {
+ const auto config_dir = Common::FS::GetUserPath(Common::FS::PathType::UserDir);
+ return QString::fromStdString(config_dir.string() + "/");
+}
+
+void settings::RemoveValue(const QString& key, const QString& name, bool sync) const {
+ if (m_settings) {
+ m_settings->beginGroup(key);
+ m_settings->remove(name);
+ m_settings->endGroup();
+
+ if (sync) {
+ m_settings->sync();
+ }
+ }
+}
+
+void settings::RemoveValue(const gui_value& entry, bool sync) const {
+ RemoveValue(entry.key, entry.name, sync);
+}
+
+QVariant settings::GetValue(const QString& key, const QString& name, const QVariant& def) const {
+ return m_settings ? m_settings->value(key + "/" + name, def) : def;
+}
+
+QVariant settings::GetValue(const gui_value& entry) const {
+ return GetValue(entry.key, entry.name, entry.def);
+}
+
+void settings::SetValue(const gui_value& entry, const QVariant& value, bool sync) const {
+ SetValue(entry.key, entry.name, value, sync);
+}
+
+void settings::SetValue(const QString& key, const QVariant& value, bool sync) const {
+ if (m_settings) {
+ m_settings->setValue(key, value);
+
+ if (sync) {
+ m_settings->sync();
+ }
+ }
+}
+
+void settings::SetValue(const QString& key, const QString& name, const QVariant& value,
+ bool sync) const {
+ if (m_settings) {
+ m_settings->beginGroup(key);
+ m_settings->setValue(name, value);
+ m_settings->endGroup();
+
+ if (sync) {
+ m_settings->sync();
+ }
+ }
+}
diff --git a/src/qt_gui/settings.h b/src/qt_gui/settings.h
new file mode 100644
index 000000000..da71fe01a
--- /dev/null
+++ b/src/qt_gui/settings.h
@@ -0,0 +1,55 @@
+// SPDX-FileCopyrightText: Copyright 2025 shadPS4 Emulator Project
+// SPDX-License-Identifier: GPL-2.0-or-later
+
+#pragma once
+
+#include
+#include
+#include
+#include
+
+struct gui_value {
+ QString key;
+ QString name;
+ QVariant def;
+
+ gui_value() {}
+
+ gui_value(const QString& k, const QString& n, const QVariant& d) : key(k), name(n), def(d) {}
+
+ bool operator==(const gui_value& rhs) const noexcept {
+ return key == rhs.key && name == rhs.name && def == rhs.def;
+ }
+};
+
+class settings : public QObject {
+ Q_OBJECT
+
+public:
+ explicit settings(QObject* parent = nullptr);
+ ~settings();
+
+ void sync();
+
+ QString GetSettingsDir() const;
+
+ QVariant GetValue(const QString& key, const QString& name, const QVariant& def) const;
+ QVariant GetValue(const gui_value& entry) const;
+
+public Q_SLOTS:
+ /** Remove entry */
+ void RemoveValue(const QString& key, const QString& name, bool sync = true) const;
+ void RemoveValue(const gui_value& entry, bool sync = true) const;
+
+ /** Write value to entry */
+ void SetValue(const gui_value& entry, const QVariant& value, bool sync = true) const;
+ void SetValue(const QString& key, const QVariant& value, bool sync = true) const;
+ void SetValue(const QString& key, const QString& name, const QVariant& value,
+ bool sync = true) const;
+
+protected:
+ static QString ComputeSettingsDir();
+
+ std::unique_ptr m_settings;
+ QDir m_settings_dir;
+};
diff --git a/src/qt_gui/settings_dialog.cpp b/src/qt_gui/settings_dialog.cpp
index 914cc5470..fc00c6f75 100644
--- a/src/qt_gui/settings_dialog.cpp
+++ b/src/qt_gui/settings_dialog.cpp
@@ -71,9 +71,10 @@ int bgm_volume_backup;
static std::vector m_physical_devices;
-SettingsDialog::SettingsDialog(std::shared_ptr m_compat_info,
+SettingsDialog::SettingsDialog(std::shared_ptr gui_settings,
+ std::shared_ptr m_compat_info,
QWidget* parent)
- : QDialog(parent), ui(new Ui::SettingsDialog) {
+ : QDialog(parent), ui(new Ui::SettingsDialog), m_gui_settings(std::move(gui_settings)) {
ui->setupUi(this);
ui->tabWidgetSettings->setUsesScrollButtons(false);
@@ -147,6 +148,7 @@ SettingsDialog::SettingsDialog(std::shared_ptr m_compat_
Config::save(config_dir / "config.toml");
} else if (button == ui->buttonBox->button(QDialogButtonBox::RestoreDefaults)) {
Config::setDefaultValues();
+ setDefaultValues();
Config::save(config_dir / "config.toml");
LoadValuesFromConfig();
} else if (button == ui->buttonBox->button(QDialogButtonBox::Close)) {
@@ -175,28 +177,34 @@ SettingsDialog::SettingsDialog(std::shared_ptr m_compat_
{
#ifdef ENABLE_UPDATER
#if (QT_VERSION < QT_VERSION_CHECK(6, 7, 0))
- connect(ui->updateCheckBox, &QCheckBox::stateChanged, this,
- [](int state) { Config::setAutoUpdate(state == Qt::Checked); });
+ connect(ui->updateCheckBox, &QCheckBox::stateChanged, this, [this](int state) {
+ m_gui_settings->SetValue(gui::gen_checkForUpdates, state == Qt::Checked);
+ });
- connect(ui->changelogCheckBox, &QCheckBox::stateChanged, this,
- [](int state) { Config::setAlwaysShowChangelog(state == Qt::Checked); });
+ connect(ui->changelogCheckBox, &QCheckBox::stateChanged, this, [this](int state) {
+ m_gui_settings->SetValue(gui::gen_showChangeLog, state == Qt::Checked);
+ });
#else
connect(ui->updateCheckBox, &QCheckBox::checkStateChanged, this,
- [](Qt::CheckState state) { Config::setAutoUpdate(state == Qt::Checked); });
+ [this](Qt::CheckState state) {
+ m_gui_settings->SetValue(gui::gen_checkForUpdates, state == Qt::Checked);
+ });
connect(ui->changelogCheckBox, &QCheckBox::checkStateChanged, this,
- [](Qt::CheckState state) { Config::setAlwaysShowChangelog(state == Qt::Checked); });
+ [this](Qt::CheckState state) {
+ m_gui_settings->SetValue(gui::gen_showChangeLog, state == Qt::Checked);
+ });
#endif
connect(ui->updateComboBox, &QComboBox::currentTextChanged, this,
[this](const QString& channel) {
if (channelMap.contains(channel)) {
- Config::setUpdateChannel(channelMap.value(channel).toStdString());
+ m_gui_settings->SetValue(gui::gen_updateChannel, channelMap.value(channel));
}
});
- connect(ui->checkUpdateButton, &QPushButton::clicked, this, []() {
- auto checkUpdate = new CheckUpdate(true);
+ connect(ui->checkUpdateButton, &QPushButton::clicked, this, [this]() {
+ auto checkUpdate = new CheckUpdate(m_gui_settings, true);
checkUpdate->exec();
});
#else
@@ -235,12 +243,12 @@ SettingsDialog::SettingsDialog(std::shared_ptr m_compat_
[](const QString& hometab) { Config::setChooseHomeTab(hometab.toStdString()); });
#if (QT_VERSION < QT_VERSION_CHECK(6, 7, 0))
- connect(ui->showBackgroundImageCheckBox, &QCheckBox::stateChanged, this, [](int state) {
+ connect(ui->showBackgroundImageCheckBox, &QCheckBox::stateChanged, this, [this](int state) {
#else
connect(ui->showBackgroundImageCheckBox, &QCheckBox::checkStateChanged, this,
- [](Qt::CheckState state) {
+ [this](Qt::CheckState state) {
#endif
- Config::setShowBackgroundImage(state == Qt::Checked);
+ m_gui_settings->SetValue(gui::gl_showBackgroundImage, state == Qt::Checked);
});
}
@@ -505,7 +513,7 @@ void SettingsDialog::LoadValuesFromConfig() {
ui->changelogCheckBox->setChecked(
toml::find_or(data, "General", "alwaysShowChangelog", false));
- QString updateChannel = QString::fromStdString(Config::getUpdateChannel());
+ QString updateChannel = m_gui_settings->GetValue(gui::gen_updateChannel).toString();
ui->updateComboBox->setCurrentText(
channelMap.key(updateChannel != "Release" && updateChannel != "Nightly"
? (Common::g_is_release ? "Release" : "Nightly")
@@ -536,11 +544,14 @@ void SettingsDialog::LoadValuesFromConfig() {
ui->removeFolderButton->setEnabled(!ui->gameFoldersListWidget->selectedItems().isEmpty());
ResetInstallFolders();
- ui->backgroundImageOpacitySlider->setValue(Config::getBackgroundImageOpacity());
- ui->showBackgroundImageCheckBox->setChecked(Config::getShowBackgroundImage());
+ ui->backgroundImageOpacitySlider->setValue(
+ m_gui_settings->GetValue(gui::gl_backgroundImageOpacity).toInt());
+ ui->showBackgroundImageCheckBox->setChecked(
+ m_gui_settings->GetValue(gui::gl_showBackgroundImage).toBool());
- backgroundImageOpacitySlider_backup = Config::getBackgroundImageOpacity();
- bgm_volume_backup = Config::getBGMvolume();
+ backgroundImageOpacitySlider_backup =
+ m_gui_settings->GetValue(gui::gl_backgroundImageOpacity).toInt();
+ bgm_volume_backup = m_gui_settings->GetValue(gui::gl_backgroundMusicVolume).toInt();
}
void SettingsDialog::InitializeEmulatorLanguages() {
@@ -754,8 +765,7 @@ void SettingsDialog::UpdateSettings() {
} else if (ui->radioButton_Bottom->isChecked()) {
Config::setSideTrophy("bottom");
}
-
- Config::setPlayBGM(ui->playBGMCheckBox->isChecked());
+ m_gui_settings->SetValue(gui::gl_playBackgroundMusic, ui->playBGMCheckBox->isChecked());
Config::setAllowHDR(ui->enableHDRCheckBox->isChecked());
Config::setLogType(logTypeMap.value(ui->logTypeComboBox->currentText()).toStdString());
Config::setLogFilter(ui->logFilterLineEdit->text().toStdString());
@@ -764,7 +774,7 @@ void SettingsDialog::UpdateSettings() {
Config::setCursorState(ui->hideCursorComboBox->currentIndex());
Config::setCursorHideTimeout(ui->idleTimeoutSpinBox->value());
Config::setGpuId(ui->graphicsAdapterBox->currentIndex() - 1);
- Config::setBGMvolume(ui->BGMVolumeSlider->value());
+ m_gui_settings->SetValue(gui::gl_backgroundMusicVolume, ui->BGMVolumeSlider->value());
Config::setLanguage(languageIndexes[ui->consoleLanguageComboBox->currentIndex()]);
Config::setEnableDiscordRPC(ui->discordRPCCheckbox->isChecked());
Config::setScreenWidth(ui->widthSpinBox->value());
@@ -784,16 +794,19 @@ void SettingsDialog::UpdateSettings() {
Config::setVkCrashDiagnosticEnabled(ui->crashDiagnosticsCheckBox->isChecked());
Config::setCollectShaderForDebug(ui->collectShaderCheckBox->isChecked());
Config::setCopyGPUCmdBuffers(ui->copyGPUBuffersCheckBox->isChecked());
- Config::setAutoUpdate(ui->updateCheckBox->isChecked());
- Config::setAlwaysShowChangelog(ui->changelogCheckBox->isChecked());
- Config::setUpdateChannel(channelMap.value(ui->updateComboBox->currentText()).toStdString());
+ m_gui_settings->SetValue(gui::gen_checkForUpdates, ui->updateCheckBox->isChecked());
+ m_gui_settings->SetValue(gui::gen_showChangeLog, ui->changelogCheckBox->isChecked());
+ m_gui_settings->SetValue(gui::gen_updateChannel,
+ channelMap.value(ui->updateComboBox->currentText()));
Config::setChooseHomeTab(
chooseHomeTabMap.value(ui->chooseHomeTabComboBox->currentText()).toStdString());
Config::setCompatibilityEnabled(ui->enableCompatibilityCheckBox->isChecked());
Config::setCheckCompatibilityOnStartup(ui->checkCompatibilityOnStartupCheckBox->isChecked());
- Config::setBackgroundImageOpacity(ui->backgroundImageOpacitySlider->value());
+ m_gui_settings->SetValue(gui::gl_backgroundImageOpacity,
+ std::clamp(ui->backgroundImageOpacitySlider->value(), 0, 100));
emit BackgroundOpacityChanged(ui->backgroundImageOpacitySlider->value());
- Config::setShowBackgroundImage(ui->showBackgroundImageCheckBox->isChecked());
+ m_gui_settings->SetValue(gui::gl_showBackgroundImage,
+ ui->showBackgroundImageCheckBox->isChecked());
std::vector dirs_with_states;
for (int i = 0; i < ui->gameFoldersListWidget->count(); i++) {
@@ -862,3 +875,16 @@ void SettingsDialog::ResetInstallFolders() {
Config::setAllGameInstallDirs(settings_install_dirs_config);
}
}
+void SettingsDialog::setDefaultValues() {
+ m_gui_settings->SetValue(gui::gl_showBackgroundImage, true);
+ m_gui_settings->SetValue(gui::gl_backgroundImageOpacity, 50);
+ m_gui_settings->SetValue(gui::gl_playBackgroundMusic, false);
+ m_gui_settings->SetValue(gui::gl_backgroundMusicVolume, 50);
+ m_gui_settings->SetValue(gui::gen_checkForUpdates, false);
+ m_gui_settings->SetValue(gui::gen_showChangeLog, false);
+ if (Common::g_is_release) {
+ m_gui_settings->SetValue(gui::gen_updateChannel, "Release");
+ } else {
+ m_gui_settings->SetValue(gui::gen_updateChannel, "Nightly");
+ }
+}
\ No newline at end of file
diff --git a/src/qt_gui/settings_dialog.h b/src/qt_gui/settings_dialog.h
index cdf9be80e..db1bcf772 100644
--- a/src/qt_gui/settings_dialog.h
+++ b/src/qt_gui/settings_dialog.h
@@ -11,6 +11,7 @@
#include "common/config.h"
#include "common/path_util.h"
+#include "gui_settings.h"
#include "qt_gui/compatibility_info.h"
namespace Ui {
@@ -20,7 +21,8 @@ class SettingsDialog;
class SettingsDialog : public QDialog {
Q_OBJECT
public:
- explicit SettingsDialog(std::shared_ptr m_compat_info,
+ explicit SettingsDialog(std::shared_ptr gui_settings,
+ std::shared_ptr m_compat_info,
QWidget* parent = nullptr);
~SettingsDialog();
@@ -42,6 +44,7 @@ private:
void OnLanguageChanged(int index);
void OnCursorStateChanged(s16 index);
void closeEvent(QCloseEvent* event) override;
+ void setDefaultValues();
std::unique_ptr ui;
@@ -52,4 +55,5 @@ private:
int initialHeight;
bool is_saving = false;
+ std::shared_ptr m_gui_settings;
};
From c35141b33f3e376f9123e3595cec0f2184f5351d Mon Sep 17 00:00:00 2001
From: georgemoralis
Date: Thu, 12 Jun 2025 13:28:14 +0300
Subject: [PATCH 45/53] New Crowdin updates (#3085)
* New translations en_us.ts (Persian)
* New translations en_us.ts (Catalan)
* New translations en_us.ts (Persian)
* New translations en_us.ts (Persian)
* New translations en_us.ts (Persian)
* New translations en_us.ts (Catalan)
* New translations en_us.ts (Catalan)
* New translations en_us.ts (Serbian (Latin))
---
src/qt_gui/translations/ca_ES.ts | 2081 ++++++++++++++++++++++++++++++
src/qt_gui/translations/fa_IR.ts | 108 +-
src/qt_gui/translations/sr_CS.ts | 2081 ++++++++++++++++++++++++++++++
3 files changed, 4216 insertions(+), 54 deletions(-)
create mode 100644 src/qt_gui/translations/ca_ES.ts
create mode 100644 src/qt_gui/translations/sr_CS.ts
diff --git a/src/qt_gui/translations/ca_ES.ts b/src/qt_gui/translations/ca_ES.ts
new file mode 100644
index 000000000..412cefa2c
--- /dev/null
+++ b/src/qt_gui/translations/ca_ES.ts
@@ -0,0 +1,2081 @@
+
+
+
+
+
+ AboutDialog
+
+ About shadPS4
+ Sobre shadPS4
+
+
+ shadPS4 is an experimental open-source emulator for the PlayStation 4.
+ shadPS4 is an experimental open-source emulator for the PlayStation 4.
+
+
+ This software should not be used to play games you have not legally obtained.
+ This software should not be used to play games you have not legally obtained.
+
+
+
+ CheatsPatches
+
+ Cheats / Patches for
+ Trucs / Correccions per
+
+
+ Cheats/Patches are experimental.\nUse with caution.\n\nDownload cheats individually by selecting the repository and clicking the download button.\nIn the Patches tab, you can download all patches at once, choose which ones you want to use, and save your selection.\n\nSince we do not develop the Cheats/Patches,\nplease report issues to the cheat author.\n\nCreated a new cheat? Visit:\n
+ Cheats/Patches are experimental.\nUse with caution.\n\nDownload cheats individually by selecting the repository and clicking the download button.\nIn the Patches tab, you can download all patches at once, choose which ones you want to use, and save your selection.\n\nSince we do not develop the Cheats/Patches,\nplease report issues to the cheat author.\n\nCreated a new cheat? Visit:\n
+
+
+ No Image Available
+ No hi ha imatge disponible
+
+
+ Serial:
+ Número de sèrie:
+
+
+ Version:
+ Versió:
+
+
+ Size:
+ Mida:
+
+
+ Select Cheat File:
+ Selecciona el fitxer de trucs:
+
+
+ Repository:
+ Repositori:
+
+
+ Download Cheats
+ Descarrega els trucs
+
+
+ Delete File
+ Elimina el fitxer
+
+
+ No files selected.
+ No hi ha cap fitxer seleccionat.
+
+
+ You can delete the cheats you don't want after downloading them.
+ You can delete the cheats you don't want after downloading them.
+
+
+ Do you want to delete the selected file?\n%1
+ Do you want to delete the selected file?\n%1
+
+
+ Select Patch File:
+ Selecciona un fitxer de correcció:
+
+
+ Download Patches
+ Descarrega les correccions
+
+
+ Save
+ Desa
+
+
+ Cheats
+ Trucs
+
+
+ Patches
+ Correccions
+
+
+ Error
+ Error
+
+
+ No patch selected.
+ No s'ha seleccionat cap correcció.
+
+
+ Unable to open files.json for reading.
+ Unable to open files.json for reading.
+
+
+ No patch file found for the current serial.
+ No patch file found for the current serial.
+
+
+ Unable to open the file for reading.
+ Unable to open the file for reading.
+
+
+ Unable to open the file for writing.
+ Unable to open the file for writing.
+
+
+ Failed to parse XML:
+ Error en analitzar XML:
+
+
+ Success
+ Realitzat amb èxit
+
+
+ Options saved successfully.
+ Options saved successfully.
+
+
+ Invalid Source
+ Font no vàlida
+
+
+ The selected source is invalid.
+ The selected source is invalid.
+
+
+ File Exists
+ El fitxer ja existeix
+
+
+ File already exists. Do you want to replace it?
+ File already exists. Do you want to replace it?
+
+
+ Failed to save file:
+ Error en desar el fitxer:
+
+
+ Failed to download file:
+ Failed to download file:
+
+
+ Cheats Not Found
+ No s'han trobat els trucs
+
+
+ No Cheats found for this game in this version of the selected repository,try another repository or a different version of the game.
+ No Cheats found for this game in this version of the selected repository,try another repository or a different version of the game.
+
+
+ Cheats Downloaded Successfully
+ Cheats Downloaded Successfully
+
+
+ You have successfully downloaded the cheats for this version of the game from the selected repository. You can try downloading from another repository, if it is available it will also be possible to use it by selecting the file from the list.
+ You have successfully downloaded the cheats for this version of the game from the selected repository. You can try downloading from another repository, if it is available it will also be possible to use it by selecting the file from the list.
+
+
+ Failed to save:
+ Error en desar:
+
+
+ Failed to download:
+ Error en la descàrrega:
+
+
+ Download Complete
+ Descàrrega completa
+
+
+ Patches Downloaded Successfully! All Patches available for all games have been downloaded, there is no need to download them individually for each game as happens in Cheats. If the patch does not appear, it may be that it does not exist for the specific serial and version of the game.
+ Patches Downloaded Successfully! All Patches available for all games have been downloaded, there is no need to download them individually for each game as happens in Cheats. If the patch does not appear, it may be that it does not exist for the specific serial and version of the game.
+
+
+ Failed to parse JSON data from HTML.
+ Failed to parse JSON data from HTML.
+
+
+ Failed to retrieve HTML page.
+ Failed to retrieve HTML page.
+
+
+ The game is in version: %1
+ The game is in version: %1
+
+
+ The downloaded patch only works on version: %1
+ The downloaded patch only works on version: %1
+
+
+ You may need to update your game.
+ You may need to update your game.
+
+
+ Incompatibility Notice
+ Avís d'incompatibilitat
+
+
+ Failed to open file:
+ Error en obrir el fitxer:
+
+
+ XML ERROR:
+ Error XML:
+
+
+ Failed to open files.json for writing
+ Failed to open files.json for writing
+
+
+ Author:
+ Autor:
+
+
+ Directory does not exist:
+ Directory does not exist:
+
+
+ Failed to open files.json for reading.
+ Failed to open files.json for reading.
+
+
+ Name:
+ Nom:
+
+
+ Can't apply cheats before the game is started
+ Can't apply cheats before the game is started
+
+
+ Close
+ Tanca
+
+
+
+ CheckUpdate
+
+ Auto Updater
+ Actualització automàtica
+
+
+ Error
+ Error
+
+
+ Network error:
+ Error de xarxa:
+
+
+ The Auto Updater allows up to 60 update checks per hour.\nYou have reached this limit. Please try again later.
+ The Auto Updater allows up to 60 update checks per hour.\nYou have reached this limit. Please try again later.
+
+
+ Failed to parse update information.
+ Failed to parse update information.
+
+
+ No pre-releases found.
+ No s'han trobat llançaments previs.
+
+
+ Invalid release data.
+ Dades de la versió no vàlides.
+
+
+ No download URL found for the specified asset.
+ No download URL found for the specified asset.
+
+
+ Your version is already up to date!
+ Your version is already up to date!
+
+
+ Update Available
+ Hi ha una actualització disponible
+
+
+ Update Channel
+ Actualitza el canal
+
+
+ Current Version
+ Versió actual
+
+
+ Latest Version
+ Última versió
+
+
+ Do you want to update?
+ Estàs segur que vols actualitzar?
+
+
+ Show Changelog
+ Mostra el registre de canvis
+
+
+ Check for Updates at Startup
+ Check for Updates at Startup
+
+
+ Update
+ Actualitza
+
+
+ No
+ No
+
+
+ Hide Changelog
+ Oculta el registre de canvis
+
+
+ Changes
+ Canvis
+
+
+ Network error occurred while trying to access the URL
+ Network error occurred while trying to access the URL
+
+
+ Download Complete
+ Descàrrega completa
+
+
+ The update has been downloaded, press OK to install.
+ The update has been downloaded, press OK to install.
+
+
+ Failed to save the update file at
+ Failed to save the update file at
+
+
+ Starting Update...
+ Iniciant l'actualització...
+
+
+ Failed to create the update script file
+ Failed to create the update script file
+
+
+
+ CompatibilityInfoClass
+
+ Fetching compatibility data, please wait
+ Fetching compatibility data, please wait
+
+
+ Cancel
+ Cancel·la
+
+
+ Loading...
+ Carregant...
+
+
+ Error
+ Error
+
+
+ Unable to update compatibility data! Try again later.
+ Unable to update compatibility data! Try again later.
+
+
+ Unable to open compatibility_data.json for writing.
+ Unable to open compatibility_data.json for writing.
+
+
+ Unknown
+ Desconegut
+
+
+ Nothing
+ Res
+
+
+ Boots
+ Executa
+
+
+ Menus
+ Menús
+
+
+ Ingame
+ En joc
+
+
+ Playable
+ Jugable
+
+
+
+ ControlSettings
+
+ Configure Controls
+ Configura els controladors
+
+
+ D-Pad
+ Botons de direcció
+
+
+ Up
+ Amunt
+
+
+ Left
+ Esquerra
+
+
+ Right
+ Dreta
+
+
+ Down
+ Avall
+
+
+ Left Stick Deadzone (def:2 max:127)
+ Left Stick Deadzone (def:2 max:127)
+
+
+ Left Deadzone
+ Zona morta de la palanca esquerra
+
+
+ Left Stick
+ Palanca esquerra
+
+
+ Config Selection
+ Configura la selecció
+
+
+ Common Config
+ Configuració estàndard
+
+
+ Use per-game configs
+ Fes servir configuracions per cada joc
+
+
+ L1 / LB
+ L1 / LB
+
+
+ L2 / LT
+ L2 / LT
+
+
+ Back
+ Torna
+
+
+ R1 / RB
+ R1 / RB
+
+
+ R2 / RT
+ R2 / RT
+
+
+ L3
+ L3
+
+
+ Options / Start
+ Opcions / Executa
+
+
+ R3
+ R3
+
+
+ Face Buttons
+ Botons d'acció
+
+
+ Triangle / Y
+ Triangle / Y
+
+
+ Square / X
+ Quadrat / X
+
+
+ Circle / B
+ Cercle / B
+
+
+ Cross / A
+ Creu / A
+
+
+ Right Stick Deadzone (def:2, max:127)
+ Right Stick Deadzone (def:2, max:127)
+
+
+ Right Deadzone
+ Zona morta de la palanca dreta
+
+
+ Right Stick
+ Palanca dreta
+
+
+ Color Adjustment
+ Ajust del color
+
+
+ R:
+ R:
+
+
+ G:
+ G:
+
+
+ B:
+ B:
+
+
+ Override Lightbar Color
+ Override Lightbar Color
+
+
+ Override Color
+ Reemplaça el color
+
+
+ Unable to Save
+ No s'ha pogut desar
+
+
+ Cannot bind axis values more than once
+ Cannot bind axis values more than once
+
+
+ Save
+ Desa
+
+
+ Apply
+ Aplica
+
+
+ Restore Defaults
+ Restaura als valors predeterminats
+
+
+ Cancel
+ Cancel·la
+
+
+
+ EditorDialog
+
+ Edit Keyboard + Mouse and Controller input bindings
+ Edit Keyboard + Mouse and Controller input bindings
+
+
+ Use Per-Game configs
+ Fes servir configuracions per cada joc
+
+
+ Error
+ Error
+
+
+ Could not open the file for reading
+ Could not open the file for reading
+
+
+ Could not open the file for writing
+ Could not open the file for writing
+
+
+ Save Changes
+ Desa els canvis
+
+
+ Do you want to save changes?
+ Do you want to save changes?
+
+
+ Help
+ Ajuda
+
+
+ Do you want to reset your custom default config to the original default config?
+ Do you want to reset your custom default config to the original default config?
+
+
+ Do you want to reset this config to your custom default config?
+ Do you want to reset this config to your custom default config?
+
+
+ Reset to Default
+ Reinicia ala valors predeterminats
+
+
+
+ ElfViewer
+
+ Open Folder
+ Obre la carpeta
+
+
+
+ GameInfoClass
+
+ Loading game list, please wait :3
+ Loading game list, please wait :3
+
+
+ Cancel
+ Cancel·la
+
+
+ Loading...
+ Carregant...
+
+
+
+ GameInstallDialog
+
+ shadPS4 - Choose directory
+ shadPS4 - Choose directory
+
+
+ Directory to install games
+ Directory to install games
+
+
+ Browse
+ Cercart
+
+
+ Error
+ Error
+
+
+ Directory to install DLC
+ Directory to install DLC
+
+
+
+ GameListFrame
+
+ Icon
+ Icona
+
+
+ Name
+ Nom
+
+
+ Serial
+ Número de sèrie
+
+
+ Compatibility
+ Compatibilitat
+
+
+ Region
+ Regió
+
+
+ Firmware
+ Firmware
+
+
+ Size
+ Mida
+
+
+ Version
+ Versió
+
+
+ Path
+ Camí
+
+
+ Play Time
+ Temps de joc
+
+
+ Never Played
+ Mai jugat
+
+
+ h
+ h
+
+
+ m
+ m
+
+
+ s
+ s
+
+
+ Compatibility is untested
+ Compatibility is untested
+
+
+ Game does not initialize properly / crashes the emulator
+ Game does not initialize properly / crashes the emulator
+
+
+ Game boots, but only displays a blank screen
+ Game boots, but only displays a blank screen
+
+
+ Game displays an image but does not go past the menu
+ Game displays an image but does not go past the menu
+
+
+ Game has game-breaking glitches or unplayable performance
+ Game has game-breaking glitches or unplayable performance
+
+
+ Game can be completed with playable performance and no major glitches
+ Game can be completed with playable performance and no major glitches
+
+
+ Click to see details on github
+ Click to see details on github
+
+
+ Last updated
+ Darrera actualització
+
+
+
+ GameListUtils
+
+ B
+ B
+
+
+ KB
+ KB
+
+
+ MB
+ MB
+
+
+ GB
+ GB
+
+
+ TB
+ TB
+
+
+
+ GuiContextMenus
+
+ Create Shortcut
+ Crear una drecera
+
+
+ Cheats / Patches
+ Trucs / Correccions
+
+
+ SFO Viewer
+ Visualitzador SFO
+
+
+ Trophy Viewer
+ Visualitzador de trofeus
+
+
+ Open Folder...
+ Obre la carpeta...
+
+
+ Open Game Folder
+ Obre la carpeta de jocs
+
+
+ Open Save Data Folder
+ Obre la carpeta de dades desades
+
+
+ Open Log Folder
+ Obre la carpeta de registres
+
+
+ Copy info...
+ Copia la informació...
+
+
+ Copy Name
+ Copia el nom
+
+
+ Copy Serial
+ Copia el número de sèrie
+
+
+ Copy Version
+ Copia la versió
+
+
+ Copy Size
+ Copia la mida
+
+
+ Copy All
+ Copia tot
+
+
+ Delete...
+ Esborra...
+
+
+ Delete Game
+ Esborra el joc
+
+
+ Delete Update
+ Suprimeix l'actualització
+
+
+ Delete DLC
+ Esborra el DLC
+
+
+ Delete Trophy
+ Suprimeix el trofeu
+
+
+ Compatibility...
+ Compatibilitat...
+
+
+ Update database
+ Actualitza la base de dades
+
+
+ View report
+ Visualitza l'informe
+
+
+ Submit a report
+ Envia un informe
+
+
+ Shortcut creation
+ Crea una drecera
+
+
+ Shortcut created successfully!
+ Shortcut created successfully!
+
+
+ Error
+ Error
+
+
+ Error creating shortcut!
+ Error creating shortcut!
+
+
+ Game
+ Joc
+
+
+ This game has no update to delete!
+ This game has no update to delete!
+
+
+ Update
+ Actualitza
+
+
+ This game has no DLC to delete!
+ This game has no DLC to delete!
+
+
+ DLC
+ DLC
+
+
+ Delete %1
+ Esborra %1
+
+
+ Are you sure you want to delete %1's %2 directory?
+ Are you sure you want to delete %1's %2 directory?
+
+
+ Open Update Folder
+ Obre la carpeta d'actualitzacions
+
+
+ Delete Save Data
+ Elimina les dades desades
+
+
+ This game has no update folder to open!
+ This game has no update folder to open!
+
+
+ No log file found for this game!
+ No log file found for this game!
+
+
+ Failed to convert icon.
+ Failed to convert icon.
+
+
+ This game has no save data to delete!
+ This game has no save data to delete!
+
+
+ This game has no saved trophies to delete!
+ This game has no saved trophies to delete!
+
+
+ Save Data
+ Desa les dades
+
+
+ Trophy
+ Trofeu
+
+
+ SFO Viewer for
+ Visualitzador SFO per
+
+
+
+ HelpDialog
+
+ Quickstart
+ Inici ràpid
+
+
+ FAQ
+ Preguntes freqüents
+
+
+ Syntax
+ Sintaxi
+
+
+ Special Bindings
+ Assignació de tecles especials
+
+
+ Keybindings
+ Dreceres de teclat
+
+
+
+ KBMSettings
+
+ Configure Controls
+ Configura els controladors
+
+
+ D-Pad
+ Botons de direcció
+
+
+ Up
+ Amunt
+
+
+ unmapped
+ sense assignar
+
+
+ Left
+ Esquerra
+
+
+ Right
+ Dreta
+
+
+ Down
+ Avall
+
+
+ Left Analog Halfmode
+ Mode reduït de la palanca esquerra
+
+
+ hold to move left stick at half-speed
+ hold to move left stick at half-speed
+
+
+ Left Stick
+ Palanca esquerra
+
+
+ Config Selection
+ Configura la selecció
+
+
+ Common Config
+ Configuració estàndard
+
+
+ Use per-game configs
+ Fes servir configuracions per cada joc
+
+
+ L1
+ L1
+
+
+ L2
+ L2
+
+
+ Text Editor
+ Editor de text
+
+
+ Help
+ Ajuda
+
+
+ R1
+ R1
+
+
+ R2
+ R2
+
+
+ L3
+ L3
+
+
+ Touchpad Click
+ Click al touchpad
+
+
+ Mouse to Joystick
+ Ratolí a palanca
+
+
+ *press F7 ingame to activate
+ *press F7 ingame to activate
+
+
+ R3
+ R3
+
+
+ Options
+ Opcions
+
+
+ Mouse Movement Parameters
+ Mouse Movement Parameters
+
+
+ note: click Help Button/Special Keybindings for more information
+ note: click Help Button/Special Keybindings for more information
+
+
+ Face Buttons
+ Botons d'acció
+
+
+ Triangle
+ Triangle
+
+
+ Square
+ Quadrat
+
+
+ Circle
+ Cercle
+
+
+ Cross
+ Creu
+
+
+ Right Analog Halfmode
+ Mode reduït de la palanca dreta
+
+
+ hold to move right stick at half-speed
+ hold to move right stick at half-speed
+
+
+ Right Stick
+ Palanca dreta
+
+
+ Speed Offset (def 0.125):
+ Speed Offset (def 0.125):
+
+
+ Copy from Common Config
+ Copy from Common Config
+
+
+ Deadzone Offset (def 0.50):
+ Deadzone Offset (def 0.50):
+
+
+ Speed Multiplier (def 1.0):
+ Speed Multiplier (def 1.0):
+
+
+ Common Config Selected
+ Configuració estàndard seleccionada
+
+
+ This button copies mappings from the Common Config to the currently selected profile, and cannot be used when the currently selected profile is the Common Config.
+ This button copies mappings from the Common Config to the currently selected profile, and cannot be used when the currently selected profile is the Common Config.
+
+
+ Copy values from Common Config
+ Copy values from Common Config
+
+
+ Do you want to overwrite existing mappings with the mappings from the Common Config?
+ Do you want to overwrite existing mappings with the mappings from the Common Config?
+
+
+ Unable to Save
+ No s'ha pogut desar
+
+
+ Cannot bind any unique input more than once
+ Cannot bind any unique input more than once
+
+
+ Press a key
+ Premeu una tecla
+
+
+ Cannot set mapping
+ No s'ha pogut fer l'assignació
+
+
+ Mousewheel cannot be mapped to stick outputs
+ Mousewheel cannot be mapped to stick outputs
+
+
+ Save
+ Desa
+
+
+ Apply
+ Aplica
+
+
+ Restore Defaults
+ Restaura els valors per defecte
+
+
+ Cancel
+ Cancel·la
+
+
+
+ MainWindow
+
+ Open/Add Elf Folder
+ Obre/Afegeix la carpeta Elf
+
+
+ Boot Game
+ Executa el joc
+
+
+ Check for Updates
+ Comprova si hi ha actualitzacions
+
+
+ About shadPS4
+ Sobre shadPS4
+
+
+ Configure...
+ Configura...
+
+
+ Recent Games
+ Jocs recents
+
+
+ Open shadPS4 Folder
+ Obre la carpeta de shadPS4
+
+
+ Exit
+ Sortida
+
+
+ Exit shadPS4
+ Surt de shadPS4
+
+
+ Exit the application.
+ Surt de l'aplicació.
+
+
+ Show Game List
+ Mostra la llista de jocs
+
+
+ Game List Refresh
+ Actualitza la llista de jocs
+
+
+ Tiny
+ Molt petita
+
+
+ Small
+ Petita
+
+
+ Medium
+ Mitjà
+
+
+ Large
+ Gran
+
+
+ List View
+ Visualització en llista
+
+
+ Grid View
+ Visualització en graella
+
+
+ Elf Viewer
+ Visualitzador Elf
+
+
+ Game Install Directory
+ Carpeta d'instal·lació de jocs
+
+
+ Download Cheats/Patches
+ Download Cheats/Patches
+
+
+ Dump Game List
+ Aboca la llista de jocs
+
+
+ Trophy Viewer
+ Visualitzador de trofeus
+
+
+ No games found. Please add your games to your library first.
+ No games found. Please add your games to your library first.
+
+
+ Search...
+ Cerca...
+
+
+ File
+ Fitxer
+
+
+ View
+ Visualitza
+
+
+ Game List Icons
+ Icones de la llista de jocs
+
+
+ Game List Mode
+ Mode de la llista de jocs
+
+
+ Settings
+ Configuració
+
+
+ Utils
+ Útils
+
+
+ Themes
+ Temes
+
+
+ Help
+ Ajuda
+
+
+ Dark
+ Fosc
+
+
+ Light
+ Clar
+
+
+ Green
+ Verd
+
+
+ Blue
+ Blau
+
+
+ Violet
+ Violeta
+
+
+ toolBar
+ Barra d'eines
+
+
+ Game List
+ Llista de jocs
+
+
+ Download Cheats For All Installed Games
+ Download Cheats For All Installed Games
+
+
+ Download Patches For All Games
+ Download Patches For All Games
+
+
+ Download Complete
+ Descàrrega completa
+
+
+ You have downloaded cheats for all the games you have installed.
+ You have downloaded cheats for all the games you have installed.
+
+
+ Patches Downloaded Successfully!
+ Patches Downloaded Successfully!
+
+
+ All Patches available for all games have been downloaded.
+ All Patches available for all games have been downloaded.
+
+
+ Games:
+ Jocs:
+
+
+ ELF files (*.bin *.elf *.oelf)
+ ELF files (*.bin *.elf *.oelf)
+
+
+ Game Boot
+ Executa el joc
+
+
+ Only one file can be selected!
+ Only one file can be selected!
+
+
+ Run Game
+ Executa el joc
+
+
+ Eboot.bin file not found
+ Eboot.bin file not found
+
+
+ Game is already running!
+ Game is already running!
+
+
+ shadPS4
+ shadPS4
+
+
+ Play
+ Reprodueix
+
+
+ Pause
+ Pausa
+
+
+ Stop
+ Atura
+
+
+ Restart
+ Reinicia
+
+
+ Full Screen
+ Pantalla completa
+
+
+ Controllers
+ Controladors
+
+
+ Keyboard
+ Teclat
+
+
+ Refresh List
+ Actualitza la llista
+
+
+ Resume
+ Reprendre
+
+
+ Show Labels Under Icons
+ Show Labels Under Icons
+
+
+
+ SettingsDialog
+
+ Settings
+ Configuració
+
+
+ General
+ General
+
+
+ System
+ Sistema
+
+
+ Console Language
+ Idioma de la consola
+
+
+ Emulator Language
+ Idioma de l'emulador
+
+
+ Emulator
+ Emulador
+
+
+ Default tab when opening settings
+ Default tab when opening settings
+
+
+ Show Game Size In List
+ Mostra la mida del joc a la llista
+
+
+ Show Splash
+ Mostra missatge de benvinguda
+
+
+ Enable Discord Rich Presence
+ Enable Discord Rich Presence
+
+
+ Username
+ Nom d’usuari
+
+
+ Trophy Key
+ Clau dels trofeus
+
+
+ Trophy
+ Trofeu
+
+
+ Open the custom trophy images/sounds folder
+ Open the custom trophy images/sounds folder
+
+
+ Logger
+ Registre
+
+
+ Log Type
+ Registre de tipus
+
+
+ Log Filter
+ Filtre del registre
+
+
+ Open Log Location
+ Obre la ubicació del registre
+
+
+ Input
+ Entrada
+
+
+ Cursor
+ Cursor
+
+
+ Hide Cursor
+ Amaga el ratolí
+
+
+ Hide Cursor Idle Timeout
+ Hide Cursor Idle Timeout
+
+
+ s
+ s
+
+
+ Controller
+ Controlador
+
+
+ Back Button Behavior
+ Comportament del botó de retrocés
+
+
+ Graphics
+ Gràfics
+
+
+ GUI
+ Interfície gràfica
+
+
+ User
+ Usuari
+
+
+ Graphics Device
+ Dispositiu de gràfics
+
+
+ Vblank Divider
+ Divisor Vblank
+
+
+ Advanced
+ Avançat
+
+
+ Enable Shaders Dumping
+ Habilita l'abocat de shaders
+
+
+ Enable NULL GPU
+ Activa NULL GPU
+
+
+ Enable HDR
+ Activa el HDR
+
+
+ Paths
+ Camins
+
+
+ Game Folders
+ Carpetes dels jocs
+
+
+ Add...
+ Afegir...
+
+
+ Remove
+ Suprimeix
+
+
+ Debug
+ Depuració
+
+
+ Enable Debug Dumping
+ Activa l'abocat de depuració
+
+
+ Enable Vulkan Validation Layers
+ Enable Vulkan Validation Layers
+
+
+ Enable Vulkan Synchronization Validation
+ Enable Vulkan Synchronization Validation
+
+
+ Enable RenderDoc Debugging
+ Enable RenderDoc Debugging
+
+
+ Enable Crash Diagnostics
+ Enable Crash Diagnostics
+
+
+ Collect Shaders
+ Recopila Shaders
+
+
+ Copy GPU Buffers
+ Copia la memòria intermèdia de la GPU
+
+
+ Host Debug Markers
+ Marcardors de depuració
+
+
+ Guest Debug Markers
+ Marcadors de depuració
+
+
+ Update
+ Actualitza
+
+
+ Check for Updates at Startup
+ Check for Updates at Startup
+
+
+ Always Show Changelog
+ Mostra sempre el registre de canvis
+
+
+ Update Channel
+ Actualitza el canal
+
+
+ Check for Updates
+ Comprova si hi ha actualitzacions
+
+
+ GUI Settings
+ Configuració de la interfície
+
+
+ Title Music
+ Música de títol
+
+
+ Disable Trophy Notification
+ Disable Trophy Notification
+
+
+ Background Image
+ Imatge de fons
+
+
+ Show Background Image
+ Mostra imatge de fons
+
+
+ Opacity
+ Opacitat
+
+
+ Play title music
+ Reprodueix la música del títol
+
+
+ Update Compatibility Database On Startup
+ Update Compatibility Database On Startup
+
+
+ Game Compatibility
+ Compatibilitat dels jocs
+
+
+ Display Compatibility Data
+ Display Compatibility Data
+
+
+ Update Compatibility Database
+ Update Compatibility Database
+
+
+ Volume
+ Volum
+
+
+ Save
+ Desa
+
+
+ Apply
+ Aplica
+
+
+ Restore Defaults
+ Restaura els valors per defecte
+
+
+ Close
+ Tanca
+
+
+ Point your mouse at an option to display its description.
+ Point your mouse at an option to display its description.
+
+
+ Console Language:\nSets the language that the PS4 game uses.\nIt's recommended to set this to a language the game supports, which will vary by region.
+ Console Language:\nSets the language that the PS4 game uses.\nIt's recommended to set this to a language the game supports, which will vary by region.
+
+
+ Emulator Language:\nSets the language of the emulator's user interface.
+ Emulator Language:\nSets the language of the emulator's user interface.
+
+
+ Show Splash Screen:\nShows the game's splash screen (a special image) while the game is starting.
+ Show Splash Screen:\nShows the game's splash screen (a special image) while the game is starting.
+
+
+ Enable Discord Rich Presence:\nDisplays the emulator icon and relevant information on your Discord profile.
+ Enable Discord Rich Presence:\nDisplays the emulator icon and relevant information on your Discord profile.
+
+
+ Username:\nSets the PS4's account username, which may be displayed by some games.
+ Username:\nSets the PS4's account username, which may be displayed by some games.
+
+
+ Trophy Key:\nKey used to decrypt trophies. Must be obtained from your jailbroken console.\nMust contain only hex characters.
+ Trophy Key:\nKey used to decrypt trophies. Must be obtained from your jailbroken console.\nMust contain only hex characters.
+
+
+ Log Type:\nSets whether to synchronize the output of the log window for performance. May have adverse effects on emulation.
+ Log Type:\nSets whether to synchronize the output of the log window for performance. May have adverse effects on emulation.
+
+
+ Log Filter:\nFilters the log to only print specific information.\nExamples: "Core:Trace" "Lib.Pad:Debug Common.Filesystem:Error" "*:Critical"\nLevels: Trace, Debug, Info, Warning, Error, Critical - in this order, a specific level silences all levels preceding it in the list and logs every level after it.
+ Log Filter:\nFilters the log to only print specific information.\nExamples: "Core:Trace" "Lib.Pad:Debug Common.Filesystem:Error" "*:Critical"\nLevels: Trace, Debug, Info, Warning, Error, Critical - in this order, a specific level silences all levels preceding it in the list and logs every level after it.
+
+
+ Update:\nRelease: Official versions released every month that may be very outdated, but are more reliable and tested.\nNightly: Development versions that have all the latest features and fixes, but may contain bugs and are less stable.
+ Update:\nRelease: Official versions released every month that may be very outdated, but are more reliable and tested.\nNightly: Development versions that have all the latest features and fixes, but may contain bugs and are less stable.
+
+
+ Background Image:\nControl the opacity of the game background image.
+ Background Image:\nControl the opacity of the game background image.
+
+
+ Play Title Music:\nIf a game supports it, enable playing special music when selecting the game in the GUI.
+ Play Title Music:\nIf a game supports it, enable playing special music when selecting the game in the GUI.
+
+
+ Disable Trophy Pop-ups:\nDisable in-game trophy notifications. Trophy progress can still be tracked using the Trophy Viewer (right-click the game in the main window).
+ Disable Trophy Pop-ups:\nDisable in-game trophy notifications. Trophy progress can still be tracked using the Trophy Viewer (right-click the game in the main window).
+
+
+ Hide Cursor:\nChoose when the cursor will disappear:\nNever: You will always see the mouse.\nidle: Set a time for it to disappear after being idle.\nAlways: you will never see the mouse.
+ Hide Cursor:\nChoose when the cursor will disappear:\nNever: You will always see the mouse.\nidle: Set a time for it to disappear after being idle.\nAlways: you will never see the mouse.
+
+
+ Hide Idle Cursor Timeout:\nThe duration (seconds) after which the cursor that has been idle hides itself.
+ Hide Idle Cursor Timeout:\nThe duration (seconds) after which the cursor that has been idle hides itself.
+
+
+ Back Button Behavior:\nSets the controller's back button to emulate tapping the specified position on the PS4 touchpad.
+ Back Button Behavior:\nSets the controller's back button to emulate tapping the specified position on the PS4 touchpad.
+
+
+ Display Compatibility Data:\nDisplays game compatibility information in table view. Enable "Update Compatibility On Startup" to get up-to-date information.
+ Display Compatibility Data:\nDisplays game compatibility information in table view. Enable "Update Compatibility On Startup" to get up-to-date information.
+
+
+ Update Compatibility On Startup:\nAutomatically update the compatibility database when shadPS4 starts.
+ Update Compatibility On Startup:\nAutomatically update the compatibility database when shadPS4 starts.
+
+
+ Update Compatibility Database:\nImmediately update the compatibility database.
+ Update Compatibility Database:\nImmediately update the compatibility database.
+
+
+ Never
+ Mai
+
+
+ Idle
+ Inactiu
+
+
+ Always
+ Sempre
+
+
+ Touchpad Left
+ Touchpad esquerra
+
+
+ Touchpad Right
+ Touchpad dret
+
+
+ Touchpad Center
+ Centre del Touchpad
+
+
+ None
+ Cap
+
+
+ Graphics Device:\nOn multiple GPU systems, select the GPU the emulator will use from the drop down list,\nor select "Auto Select" to automatically determine it.
+ Graphics Device:\nOn multiple GPU systems, select the GPU the emulator will use from the drop down list,\nor select "Auto Select" to automatically determine it.
+
+
+ Width/Height:\nSets the size of the emulator window at launch, which can be resized during gameplay.\nThis is different from the in-game resolution.
+ Width/Height:\nSets the size of the emulator window at launch, which can be resized during gameplay.\nThis is different from the in-game resolution.
+
+
+ Vblank Divider:\nThe frame rate at which the emulator refreshes at is multiplied by this number. Changing this may have adverse effects, such as increasing the game speed, or breaking critical game functionality that does not expect this to change!
+ Vblank Divider:\nThe frame rate at which the emulator refreshes at is multiplied by this number. Changing this may have adverse effects, such as increasing the game speed, or breaking critical game functionality that does not expect this to change!
+
+
+ Enable Shaders Dumping:\nFor the sake of technical debugging, saves the games shaders to a folder as they render.
+ Enable Shaders Dumping:\nFor the sake of technical debugging, saves the games shaders to a folder as they render.
+
+
+ Enable Null GPU:\nFor the sake of technical debugging, disables game rendering as if there were no graphics card.
+ Enable Null GPU:\nFor the sake of technical debugging, disables game rendering as if there were no graphics card.
+
+
+ Enable HDR:\nEnables HDR in games that support it.\nYour monitor must have support for the BT2020 PQ color space and the RGB10A2 swapchain format.
+ Enable HDR:\nEnables HDR in games that support it.\nYour monitor must have support for the BT2020 PQ color space and the RGB10A2 swapchain format.
+
+
+ Game Folders:\nThe list of folders to check for installed games.
+ Game Folders:\nThe list of folders to check for installed games.
+
+
+ Add:\nAdd a folder to the list.
+ Add:\nAdd a folder to the list.
+
+
+ Remove:\nRemove a folder from the list.
+ Remove:\nRemove a folder from the list.
+
+
+ Enable Debug Dumping:\nSaves the import and export symbols and file header information of the currently running PS4 program to a directory.
+ Enable Debug Dumping:\nSaves the import and export symbols and file header information of the currently running PS4 program to a directory.
+
+
+ Enable Vulkan Validation Layers:\nEnables a system that validates the state of the Vulkan renderer and logs information about its internal state.\nThis will reduce performance and likely change the behavior of emulation.
+ Enable Vulkan Validation Layers:\nEnables a system that validates the state of the Vulkan renderer and logs information about its internal state.\nThis will reduce performance and likely change the behavior of emulation.
+
+
+ Enable Vulkan Synchronization Validation:\nEnables a system that validates the timing of Vulkan rendering tasks.\nThis will reduce performance and likely change the behavior of emulation.
+ Enable Vulkan Synchronization Validation:\nEnables a system that validates the timing of Vulkan rendering tasks.\nThis will reduce performance and likely change the behavior of emulation.
+
+
+ Enable RenderDoc Debugging:\nIf enabled, the emulator will provide compatibility with Renderdoc to allow capture and analysis of the currently rendered frame.
+ Enable RenderDoc Debugging:\nIf enabled, the emulator will provide compatibility with Renderdoc to allow capture and analysis of the currently rendered frame.
+
+
+ Collect Shaders:\nYou need this enabled to edit shaders with the debug menu (Ctrl + F10).
+ Collect Shaders:\nYou need this enabled to edit shaders with the debug menu (Ctrl + F10).
+
+
+ Crash Diagnostics:\nCreates a .yaml file with info about the Vulkan state at the time of crashing.\nUseful for debugging 'Device lost' errors. If you have this enabled, you should enable Host AND Guest Debug Markers.\nDoes not work on Intel GPUs.\nYou need Vulkan Validation Layers enabled and the Vulkan SDK for this to work.
+ Crash Diagnostics:\nCreates a .yaml file with info about the Vulkan state at the time of crashing.\nUseful for debugging 'Device lost' errors. If you have this enabled, you should enable Host AND Guest Debug Markers.\nDoes not work on Intel GPUs.\nYou need Vulkan Validation Layers enabled and the Vulkan SDK for this to work.
+
+
+ Copy GPU Buffers:\nGets around race conditions involving GPU submits.\nMay or may not help with PM4 type 0 crashes.
+ Copy GPU Buffers:\nGets around race conditions involving GPU submits.\nMay or may not help with PM4 type 0 crashes.
+
+
+ Host Debug Markers:\nInserts emulator-side information like markers for specific AMDGPU commands around Vulkan commands, as well as giving resources debug names.\nIf you have this enabled, you should enable Crash Diagnostics.\nUseful for programs like RenderDoc.
+ Host Debug Markers:\nInserts emulator-side information like markers for specific AMDGPU commands around Vulkan commands, as well as giving resources debug names.\nIf you have this enabled, you should enable Crash Diagnostics.\nUseful for programs like RenderDoc.
+
+
+ Guest Debug Markers:\nInserts any debug markers the game itself has added to the command buffer.\nIf you have this enabled, you should enable Crash Diagnostics.\nUseful for programs like RenderDoc.
+ Guest Debug Markers:\nInserts any debug markers the game itself has added to the command buffer.\nIf you have this enabled, you should enable Crash Diagnostics.\nUseful for programs like RenderDoc.
+
+
+ Save Data Path:\nThe folder where game save data will be saved.
+ Save Data Path:\nThe folder where game save data will be saved.
+
+
+ Browse:\nBrowse for a folder to set as the save data path.
+ Browse:\nBrowse for a folder to set as the save data path.
+
+
+ Release
+ Publicació
+
+
+ Nightly
+ Publicació diària
+
+
+ Set the volume of the background music.
+ Set the volume of the background music.
+
+
+ Enable Motion Controls
+ Habilita els controls de moviment
+
+
+ Save Data Path
+ Desa la ruta a les dades
+
+
+ Browse
+ Navega
+
+
+ async
+ asíncron
+
+
+ sync
+ sincronitzar
+
+
+ Auto Select
+ Selecciona automàticament
+
+
+ Directory to install games
+ Directory to install games
+
+
+ Directory to save data
+ Directory to save data
+
+
+ Video
+ Vídeo
+
+
+ Display Mode
+ Mode de visualització
+
+
+ Windowed
+ En finestra
+
+
+ Fullscreen
+ Pantalla completa
+
+
+ Fullscreen (Borderless)
+ Fullscreen (Borderless)
+
+
+ Window Size
+ Mida de la finestra
+
+
+ W:
+ W:
+
+
+ H:
+ H:
+
+
+ Separate Log Files
+ Fitxers de registre independents
+
+
+ Separate Log Files:\nWrites a separate logfile for each game.
+ Separate Log Files:\nWrites a separate logfile for each game.
+
+
+ Trophy Notification Position
+ Trophy Notification Position
+
+
+ Left
+ Esquerra
+
+
+ Right
+ Dreta
+
+
+ Top
+ Amunt
+
+
+ Bottom
+ Sota
+
+
+ Notification Duration
+ Duració de les notificacions
+
+
+ Portable User Folder
+ Carpeta de l'usuari portàtil
+
+
+ Create Portable User Folder from Common User Folder
+ Create Portable User Folder from Common User Folder
+
+
+ Portable user folder:\nStores shadPS4 settings and data that will be applied only to the shadPS4 build located in the current folder. Restart the app after creating the portable user folder to begin using it.
+ Portable user folder:\nStores shadPS4 settings and data that will be applied only to the shadPS4 build located in the current folder. Restart the app after creating the portable user folder to begin using it.
+
+
+ Cannot create portable user folder
+ Cannot create portable user folder
+
+
+ %1 already exists
+ %1 ja existeix
+
+
+ Portable user folder created
+ Portable user folder created
+
+
+ %1 successfully created.
+ %1 successfully created.
+
+
+ Open the custom trophy images/sounds folder:\nYou can add custom images to the trophies and an audio.\nAdd the files to custom_trophy with the following names:\ntrophy.wav OR trophy.mp3, bronze.png, gold.png, platinum.png, silver.png\nNote: The sound will only work in QT versions.
+ Open the custom trophy images/sounds folder:\nYou can add custom images to the trophies and an audio.\nAdd the files to custom_trophy with the following names:\ntrophy.wav OR trophy.mp3, bronze.png, gold.png, platinum.png, silver.png\nNote: The sound will only work in QT versions.
+
+
+ * Unsupported Vulkan Version
+ * Unsupported Vulkan Version
+
+
+
+ TrophyViewer
+
+ Trophy Viewer
+ Visualitzador de trofeus
+
+
+ Select Game:
+ Selecciona un joc:
+
+
+ Progress
+ Progrés
+
+
+ Show Earned Trophies
+ Mostra els trofeus aconseguits
+
+
+ Show Not Earned Trophies
+ Show Not Earned Trophies
+
+
+ Show Hidden Trophies
+ Mostra els trofeus ocults
+
+
+
diff --git a/src/qt_gui/translations/fa_IR.ts b/src/qt_gui/translations/fa_IR.ts
index b9c2282fa..115632444 100644
--- a/src/qt_gui/translations/fa_IR.ts
+++ b/src/qt_gui/translations/fa_IR.ts
@@ -26,7 +26,7 @@
Cheats/Patches are experimental.\nUse with caution.\n\nDownload cheats individually by selecting the repository and clicking the download button.\nIn the Patches tab, you can download all patches at once, choose which ones you want to use, and save your selection.\n\nSince we do not develop the Cheats/Patches,\nplease report issues to the cheat author.\n\nCreated a new cheat? Visit:\n
- Cheats/Patches are experimental.\nUse with caution.\n\nDownload cheats individually by selecting the repository and clicking the download button.\nIn the Patches tab, you can download all patches at once, choose which ones you want to use, and save your selection.\n\nSince we do not develop the Cheats/Patches,\nplease report issues to the cheat author.\n\nCreated a new cheat? Visit:\n
+ تقلبها/پچها آزمایشی هستند.\n با احتیاط استفاده کنید.\n\n با انتخاب مخزن و کلیک روی دکمه دانلود، تقلبها را بهصورت جداگانه دانلود کنید.\n در تب پچها، میتوانید همه پچها را بهطور همزمان دانلود کنید، انتخاب کنید که میخواهید از کدام استفاده کنید و انتخاب خود را ذخیره کنید.\n\n از آنجایی که ما تقلبها/پچها را توسعه نمیدهیم،\n لطفاً مشکلات را به نویسنده تقلب گزارش دهید.\n\n تقلب جدیدی ایجاد کردهاید؟ به این صفحه مراجعه کنید: \nNo Image Available
@@ -214,7 +214,7 @@
XML ERROR:
- XML ERROR:
+ XML خطای :Failed to open files.json for writing
@@ -407,43 +407,43 @@
ControlSettingsConfigure Controls
- Configure Controls
+ پیکربندی دسته هاD-Pad
- D-Pad
+ D-PadUp
- Up
+ بالاLeft
- Left
+ چپRight
- Right
+ راستDown
- Down
+ پایینLeft Stick Deadzone (def:2 max:127)
- Left Stick Deadzone (def:2 max:127)
+ منطقهی حساس به حرکت چپ (def:2 max:127)Left Deadzone
- Left Deadzone
+ منطقه مرده چپLeft Stick
- Left Stick
+ جواستیک چپConfig Selection
- Config Selection
+ انتخاب پیکربندیCommon Config
@@ -451,7 +451,7 @@
Use per-game configs
- Use per-game configs
+ از پیکربندیهای مخصوص هر بازی استفاده کنیدL1 / LB
@@ -483,7 +483,7 @@
R3
- R3
+ R3Face Buttons
@@ -491,7 +491,7 @@
Triangle / Y
- Triangle / Y
+ مثلث / YSquare / X
@@ -531,7 +531,7 @@
B:
- B:
+ B:Override Lightbar Color
@@ -543,7 +543,7 @@
Unable to Save
- Unable to Save
+ ذخیره امکان پذیر نیستCannot bind axis values more than once
@@ -570,7 +570,7 @@
EditorDialogEdit Keyboard + Mouse and Controller input bindings
- Edit Keyboard + Mouse and Controller input bindings
+ تغییر دکمه های کیبرد + ماوس و دستهUse Per-Game configs
@@ -582,7 +582,7 @@
Could not open the file for reading
- Could not open the file for reading
+ نمی تواند فایل را برای خواندن باز کندCould not open the file for writing
@@ -602,7 +602,7 @@
Do you want to reset your custom default config to the original default config?
- Do you want to reset your custom default config to the original default config?
+ آیا میخواهید پیکربندی سفارشی خود را به پیکربندی پیشفرض اصلی بازگردانید ؟Do you want to reset this config to your custom default config?
@@ -860,7 +860,7 @@
View report
- View report
+ مشاهده گزارشSubmit a report
@@ -916,11 +916,11 @@
Delete Save Data
- Delete Save Data
+ پاک کردن داده های ذخیره شدهThis game has no update folder to open!
- This game has no update folder to open!
+ این بازی هیچ پوشهی بهروزرسانی برای باز کردن ندارد!No log file found for this game!
@@ -948,7 +948,7 @@
SFO Viewer for
- SFO Viewer for
+ SFO مشاهده
@@ -986,7 +986,7 @@
Up
- Up
+ unmapped
@@ -1058,7 +1058,7 @@
Touchpad Click
- Touchpad Click
+ کلیک روی تاچپدMouse to Joystick
@@ -1078,7 +1078,7 @@
Mouse Movement Parameters
- Mouse Movement Parameters
+ note: click Help Button/Special Keybindings for more information
@@ -1102,7 +1102,7 @@
Cross
- Cross
+ ضربدرRight Analog Halfmode
@@ -1122,7 +1122,7 @@
Copy from Common Config
- Copy from Common Config
+ کپی از پیکربندی مشترکDeadzone Offset (def 0.50):
@@ -1130,23 +1130,23 @@
Speed Multiplier (def 1.0):
- Speed Multiplier (def 1.0):
+ ضریب سرعت (def 1.0):Common Config Selected
- Common Config Selected
+ پیکربندی مشترک انتخاب شدهThis button copies mappings from the Common Config to the currently selected profile, and cannot be used when the currently selected profile is the Common Config.
- This button copies mappings from the Common Config to the currently selected profile, and cannot be used when the currently selected profile is the Common Config.
+ این دکمه نگاشتها را از پیکربندی مشترک به پروفایل انتخابشدهی فعلی کپی میکند و وقتی پروفایل انتخابشدهی فعلی پیکربندی مشترک باشد، نمیتوان از آن استفاده کرد.Copy values from Common Config
- Copy values from Common Config
+ کپی کردن مقادیر از پیکربندی مشترکDo you want to overwrite existing mappings with the mappings from the Common Config?
- Do you want to overwrite existing mappings with the mappings from the Common Config?
+ آیا میخواهید نگاشتهای موجود را با نگاشتهای پیکربندی مشترک جایگزین کنید؟Unable to Save
@@ -1170,7 +1170,7 @@
Save
- Save
+ ذخیرهسازیApply
@@ -1213,7 +1213,7 @@
Open shadPS4 Folder
- Open shadPS4 Folder
+ پوشه shadPS4 را باز کنیدExit
@@ -1624,7 +1624,7 @@
Collect Shaders
- Collect Shaders
+ جمع آوری شیدرهاCopy GPU Buffers
@@ -1664,7 +1664,7 @@
Title Music
- Title Music
+ Disable Trophy Notification
@@ -1728,7 +1728,7 @@
Console Language:\nSets the language that the PS4 game uses.\nIt's recommended to set this to a language the game supports, which will vary by region.
- Console Language:\nSets the language that the PS4 game uses.\nIt's recommended to set this to a language the game supports, which will vary by region.
+ زبان کنسول:\nزبانی را که بازی PS4 استفاده میکند تنظیم میکند.\nتوصیه میشود این را روی زبانی که بازی پشتیبانی میکند تنظیم کنید، که بسته به منطقه متفاوت خواهد بود.Emulator Language:\nSets the language of the emulator's user interface.
@@ -1748,7 +1748,7 @@
Trophy Key:\nKey used to decrypt trophies. Must be obtained from your jailbroken console.\nMust contain only hex characters.
- Trophy Key:\nKey used to decrypt trophies. Must be obtained from your jailbroken console.\nMust contain only hex characters.
+ کلید تروفی:\و کلیدی که برای رمزگشایی تروفیها استفاده میشود. باید از کنسول جیلبریک شده شما دریافت شود.\باید فقط شامل کاراکترهای هگز باشد.Log Type:\nSets whether to synchronize the output of the log window for performance. May have adverse effects on emulation.
@@ -1756,7 +1756,7 @@
Log Filter:\nFilters the log to only print specific information.\nExamples: "Core:Trace" "Lib.Pad:Debug Common.Filesystem:Error" "*:Critical"\nLevels: Trace, Debug, Info, Warning, Error, Critical - in this order, a specific level silences all levels preceding it in the list and logs every level after it.
- Log Filter:\nFilters the log to only print specific information.\nExamples: "Core:Trace" "Lib.Pad:Debug Common.Filesystem:Error" "*:Critical"\nLevels: Trace, Debug, Info, Warning, Error, Critical - in this order, a specific level silences all levels preceding it in the list and logs every level after it.
+ فیلتر گزارش:\nگزارش را فیلتر میکند تا فقط اطلاعات خاصی چاپ شود.\nمثالها: "هسته:ردیابی" "Lib.Pad:اشکالزدایی Common.Filesystem:خطا" "*:بحرانی"\nسطوح: ردیابی، اشکالزدایی، اطلاعات، هشدار، خطا، بحرانی - به این ترتیب، یک سطح خاص تمام سطوح قبل از خود را در لیست بیصدا میکند و هر سطح بعد از خود را ثبت میکند.Update:\nRelease: Official versions released every month that may be very outdated, but are more reliable and tested.\nNightly: Development versions that have all the latest features and fixes, but may contain bugs and are less stable.
@@ -1764,7 +1764,7 @@
Background Image:\nControl the opacity of the game background image.
- Background Image:\nControl the opacity of the game background image.
+ تصویر پسزمینه: میزان شفافیت تصویر پسزمینه بازی را کنترل کنید.Play Title Music:\nIf a game supports it, enable playing special music when selecting the game in the GUI.
@@ -1844,11 +1844,11 @@
Enable Null GPU:\nFor the sake of technical debugging, disables game rendering as if there were no graphics card.
- Enable Null GPU:\nFor the sake of technical debugging, disables game rendering as if there were no graphics card.
+ فعال کردن پردازنده گرافیکی خالی:\برای رفع اشکال فنی، رندر بازی را طوری غیرفعال کنید که انگار هیچ کارت گرافیکی وجود ندارد.Enable HDR:\nEnables HDR in games that support it.\nYour monitor must have support for the BT2020 PQ color space and the RGB10A2 swapchain format.
- Enable HDR:\nEnables HDR in games that support it.\nYour monitor must have support for the BT2020 PQ color space and the RGB10A2 swapchain format.
+ فعال کردن HDR و :\n این گزینه HDR را در بازیهایی که از آن پشتیبانی میکنند فعال میکند.\n مانیتور شما باید از فضای رنگی BT2020 PQ و فرمت swapchain RGB10A2 پشتیبانی کند.Game Folders:\nThe list of folders to check for installed games.
@@ -1860,7 +1860,7 @@
Remove:\nRemove a folder from the list.
- حذف:\nیک پوشه را از لیست حذف کنید.
+ حذف:\n یک پوشه را از لیست حذف کنید.Enable Debug Dumping:\nSaves the import and export symbols and file header information of the currently running PS4 program to a directory.
@@ -1868,11 +1868,11 @@
Enable Vulkan Validation Layers:\nEnables a system that validates the state of the Vulkan renderer and logs information about its internal state.\nThis will reduce performance and likely change the behavior of emulation.
- Enable Vulkan Validation Layers:\nEnables a system that validates the state of the Vulkan renderer and logs information about its internal state.\nThis will reduce performance and likely change the behavior of emulation.
+ فعال کردن لایههای اعتبارسنجی Vulkan: \nسیستمی را فعال میکند که وضعیت رندرکننده Vulkan را اعتبارسنجی کرده و اطلاعات مربوط به وضعیت داخلی آن را ثبت میکند.\n این کار باعث کاهش عملکرد و احتمالاً تغییر رفتار شبیهسازی میشود.Enable Vulkan Synchronization Validation:\nEnables a system that validates the timing of Vulkan rendering tasks.\nThis will reduce performance and likely change the behavior of emulation.
- Enable Vulkan Synchronization Validation:\nEnables a system that validates the timing of Vulkan rendering tasks.\nThis will reduce performance and likely change the behavior of emulation.
+ فعال کردن اعتبارسنجی همگامسازی Vulkan: \nسیستمی را فعال میکند که زمانبندی وظایف رندر Vulkan را اعتبارسنجی میکند.\n این کار باعث کاهش عملکرد و احتمالاً تغییر رفتار شبیهسازی میشود.Enable RenderDoc Debugging:\nIf enabled, the emulator will provide compatibility with Renderdoc to allow capture and analysis of the currently rendered frame.
@@ -1880,7 +1880,7 @@
Collect Shaders:\nYou need this enabled to edit shaders with the debug menu (Ctrl + F10).
- Collect Shaders:\nYou need this enabled to edit shaders with the debug menu (Ctrl + F10).
+ جمعآوری سایهزنها:\n برای ویرایش سایهزنها با منوی اشکالزدایی (Ctrl + F10) باید این گزینه فعال باشد.Crash Diagnostics:\nCreates a .yaml file with info about the Vulkan state at the time of crashing.\nUseful for debugging 'Device lost' errors. If you have this enabled, you should enable Host AND Guest Debug Markers.\nDoes not work on Intel GPUs.\nYou need Vulkan Validation Layers enabled and the Vulkan SDK for this to work.
@@ -1912,7 +1912,7 @@
Nightly
- Nightly
+ اخرین نسخه شبانهSet the volume of the background music.
@@ -1936,7 +1936,7 @@
sync
- sync
+ همزمانAuto Select
@@ -2000,7 +2000,7 @@
Right
- Right
+ راستTop
@@ -2032,7 +2032,7 @@
%1 already exists
- %1 already exists
+ %1 از قبل وجود داردPortable user folder created
@@ -2044,7 +2044,7 @@
Open the custom trophy images/sounds folder:\nYou can add custom images to the trophies and an audio.\nAdd the files to custom_trophy with the following names:\ntrophy.wav OR trophy.mp3, bronze.png, gold.png, platinum.png, silver.png\nNote: The sound will only work in QT versions.
- Open the custom trophy images/sounds folder:\nYou can add custom images to the trophies and an audio.\nAdd the files to custom_trophy with the following names:\ntrophy.wav OR trophy.mp3, bronze.png, gold.png, platinum.png, silver.png\nNote: The sound will only work in QT versions.
+ پوشه تصاویر/صداهای تروفی سفارشی را باز کنید:\n شما میتوانید تصاویر و صدای سفارشی به تروفیها اضافه کنید.\n فایلها را با نامهای زیر به custom_trophy اضافه کنید:\ntrophy.wav یا trophy.mp3، bronze.png، gold.png، platinum.png، silver.png \nتوجه: صدا فقط در نسخههای QT کار میکند. * Unsupported Vulkan Version
@@ -2075,7 +2075,7 @@
Show Hidden Trophies
- Show Hidden Trophies
+ نمایش جوایز مخفی
diff --git a/src/qt_gui/translations/sr_CS.ts b/src/qt_gui/translations/sr_CS.ts
new file mode 100644
index 000000000..4277728e6
--- /dev/null
+++ b/src/qt_gui/translations/sr_CS.ts
@@ -0,0 +1,2081 @@
+
+
+
+
+
+ AboutDialog
+
+ About shadPS4
+ About shadPS4
+
+
+ shadPS4 is an experimental open-source emulator for the PlayStation 4.
+ shadPS4 is an experimental open-source emulator for the PlayStation 4.
+
+
+ This software should not be used to play games you have not legally obtained.
+ This software should not be used to play games you have not legally obtained.
+
+
+
+ CheatsPatches
+
+ Cheats / Patches for
+ Cheats / Patches for
+
+
+ Cheats/Patches are experimental.\nUse with caution.\n\nDownload cheats individually by selecting the repository and clicking the download button.\nIn the Patches tab, you can download all patches at once, choose which ones you want to use, and save your selection.\n\nSince we do not develop the Cheats/Patches,\nplease report issues to the cheat author.\n\nCreated a new cheat? Visit:\n
+ Cheats/Patches are experimental.\nUse with caution.\n\nDownload cheats individually by selecting the repository and clicking the download button.\nIn the Patches tab, you can download all patches at once, choose which ones you want to use, and save your selection.\n\nSince we do not develop the Cheats/Patches,\nplease report issues to the cheat author.\n\nCreated a new cheat? Visit:\n
+
+
+ No Image Available
+ No Image Available
+
+
+ Serial:
+ Serial:
+
+
+ Version:
+ Version:
+
+
+ Size:
+ Size:
+
+
+ Select Cheat File:
+ Select Cheat File:
+
+
+ Repository:
+ Repository:
+
+
+ Download Cheats
+ Download Cheats
+
+
+ Delete File
+ Delete File
+
+
+ No files selected.
+ No files selected.
+
+
+ You can delete the cheats you don't want after downloading them.
+ You can delete the cheats you don't want after downloading them.
+
+
+ Do you want to delete the selected file?\n%1
+ Do you want to delete the selected file?\n%1
+
+
+ Select Patch File:
+ Select Patch File:
+
+
+ Download Patches
+ Download Patches
+
+
+ Save
+ Save
+
+
+ Cheats
+ Cheats
+
+
+ Patches
+ Patches
+
+
+ Error
+ Error
+
+
+ No patch selected.
+ No patch selected.
+
+
+ Unable to open files.json for reading.
+ Unable to open files.json for reading.
+
+
+ No patch file found for the current serial.
+ No patch file found for the current serial.
+
+
+ Unable to open the file for reading.
+ Unable to open the file for reading.
+
+
+ Unable to open the file for writing.
+ Unable to open the file for writing.
+
+
+ Failed to parse XML:
+ Failed to parse XML:
+
+
+ Success
+ Success
+
+
+ Options saved successfully.
+ Options saved successfully.
+
+
+ Invalid Source
+ Invalid Source
+
+
+ The selected source is invalid.
+ The selected source is invalid.
+
+
+ File Exists
+ File Exists
+
+
+ File already exists. Do you want to replace it?
+ File already exists. Do you want to replace it?
+
+
+ Failed to save file:
+ Failed to save file:
+
+
+ Failed to download file:
+ Failed to download file:
+
+
+ Cheats Not Found
+ Cheats Not Found
+
+
+ No Cheats found for this game in this version of the selected repository,try another repository or a different version of the game.
+ No Cheats found for this game in this version of the selected repository,try another repository or a different version of the game.
+
+
+ Cheats Downloaded Successfully
+ Cheats Downloaded Successfully
+
+
+ You have successfully downloaded the cheats for this version of the game from the selected repository. You can try downloading from another repository, if it is available it will also be possible to use it by selecting the file from the list.
+ You have successfully downloaded the cheats for this version of the game from the selected repository. You can try downloading from another repository, if it is available it will also be possible to use it by selecting the file from the list.
+
+
+ Failed to save:
+ Failed to save:
+
+
+ Failed to download:
+ Failed to download:
+
+
+ Download Complete
+ Download Complete
+
+
+ Patches Downloaded Successfully! All Patches available for all games have been downloaded, there is no need to download them individually for each game as happens in Cheats. If the patch does not appear, it may be that it does not exist for the specific serial and version of the game.
+ Patches Downloaded Successfully! All Patches available for all games have been downloaded, there is no need to download them individually for each game as happens in Cheats. If the patch does not appear, it may be that it does not exist for the specific serial and version of the game.
+
+
+ Failed to parse JSON data from HTML.
+ Failed to parse JSON data from HTML.
+
+
+ Failed to retrieve HTML page.
+ Failed to retrieve HTML page.
+
+
+ The game is in version: %1
+ The game is in version: %1
+
+
+ The downloaded patch only works on version: %1
+ The downloaded patch only works on version: %1
+
+
+ You may need to update your game.
+ You may need to update your game.
+
+
+ Incompatibility Notice
+ Incompatibility Notice
+
+
+ Failed to open file:
+ Failed to open file:
+
+
+ XML ERROR:
+ XML ERROR:
+
+
+ Failed to open files.json for writing
+ Failed to open files.json for writing
+
+
+ Author:
+ Author:
+
+
+ Directory does not exist:
+ Directory does not exist:
+
+
+ Failed to open files.json for reading.
+ Failed to open files.json for reading.
+
+
+ Name:
+ Name:
+
+
+ Can't apply cheats before the game is started
+ Can't apply cheats before the game is started
+
+
+ Close
+ Close
+
+
+
+ CheckUpdate
+
+ Auto Updater
+ Auto Updater
+
+
+ Error
+ Error
+
+
+ Network error:
+ Network error:
+
+
+ The Auto Updater allows up to 60 update checks per hour.\nYou have reached this limit. Please try again later.
+ The Auto Updater allows up to 60 update checks per hour.\nYou have reached this limit. Please try again later.
+
+
+ Failed to parse update information.
+ Failed to parse update information.
+
+
+ No pre-releases found.
+ No pre-releases found.
+
+
+ Invalid release data.
+ Invalid release data.
+
+
+ No download URL found for the specified asset.
+ No download URL found for the specified asset.
+
+
+ Your version is already up to date!
+ Your version is already up to date!
+
+
+ Update Available
+ Update Available
+
+
+ Update Channel
+ Update Channel
+
+
+ Current Version
+ Current Version
+
+
+ Latest Version
+ Latest Version
+
+
+ Do you want to update?
+ Do you want to update?
+
+
+ Show Changelog
+ Show Changelog
+
+
+ Check for Updates at Startup
+ Check for Updates at Startup
+
+
+ Update
+ Update
+
+
+ No
+ No
+
+
+ Hide Changelog
+ Hide Changelog
+
+
+ Changes
+ Changes
+
+
+ Network error occurred while trying to access the URL
+ Network error occurred while trying to access the URL
+
+
+ Download Complete
+ Download Complete
+
+
+ The update has been downloaded, press OK to install.
+ The update has been downloaded, press OK to install.
+
+
+ Failed to save the update file at
+ Failed to save the update file at
+
+
+ Starting Update...
+ Starting Update...
+
+
+ Failed to create the update script file
+ Failed to create the update script file
+
+
+
+ CompatibilityInfoClass
+
+ Fetching compatibility data, please wait
+ Fetching compatibility data, please wait
+
+
+ Cancel
+ Cancel
+
+
+ Loading...
+ Loading...
+
+
+ Error
+ Error
+
+
+ Unable to update compatibility data! Try again later.
+ Unable to update compatibility data! Try again later.
+
+
+ Unable to open compatibility_data.json for writing.
+ Unable to open compatibility_data.json for writing.
+
+
+ Unknown
+ Unknown
+
+
+ Nothing
+ Nothing
+
+
+ Boots
+ Boots
+
+
+ Menus
+ Menus
+
+
+ Ingame
+ Ingame
+
+
+ Playable
+ Playable
+
+
+
+ ControlSettings
+
+ Configure Controls
+ Configure Controls
+
+
+ D-Pad
+ D-Pad
+
+
+ Up
+ Up
+
+
+ Left
+ Left
+
+
+ Right
+ Right
+
+
+ Down
+ Down
+
+
+ Left Stick Deadzone (def:2 max:127)
+ Left Stick Deadzone (def:2 max:127)
+
+
+ Left Deadzone
+ Left Deadzone
+
+
+ Left Stick
+ Left Stick
+
+
+ Config Selection
+ Config Selection
+
+
+ Common Config
+ Common Config
+
+
+ Use per-game configs
+ Use per-game configs
+
+
+ L1 / LB
+ L1 / LB
+
+
+ L2 / LT
+ L2 / LT
+
+
+ Back
+ Back
+
+
+ R1 / RB
+ R1 / RB
+
+
+ R2 / RT
+ R2 / RT
+
+
+ L3
+ L3
+
+
+ Options / Start
+ Options / Start
+
+
+ R3
+ R3
+
+
+ Face Buttons
+ Face Buttons
+
+
+ Triangle / Y
+ Triangle / Y
+
+
+ Square / X
+ Square / X
+
+
+ Circle / B
+ Circle / B
+
+
+ Cross / A
+ Cross / A
+
+
+ Right Stick Deadzone (def:2, max:127)
+ Right Stick Deadzone (def:2, max:127)
+
+
+ Right Deadzone
+ Right Deadzone
+
+
+ Right Stick
+ Right Stick
+
+
+ Color Adjustment
+ Color Adjustment
+
+
+ R:
+ R:
+
+
+ G:
+ G:
+
+
+ B:
+ B:
+
+
+ Override Lightbar Color
+ Override Lightbar Color
+
+
+ Override Color
+ Override Color
+
+
+ Unable to Save
+ Unable to Save
+
+
+ Cannot bind axis values more than once
+ Cannot bind axis values more than once
+
+
+ Save
+ Save
+
+
+ Apply
+ Apply
+
+
+ Restore Defaults
+ Restore Defaults
+
+
+ Cancel
+ Cancel
+
+
+
+ EditorDialog
+
+ Edit Keyboard + Mouse and Controller input bindings
+ Edit Keyboard + Mouse and Controller input bindings
+
+
+ Use Per-Game configs
+ Use Per-Game configs
+
+
+ Error
+ Error
+
+
+ Could not open the file for reading
+ Could not open the file for reading
+
+
+ Could not open the file for writing
+ Could not open the file for writing
+
+
+ Save Changes
+ Save Changes
+
+
+ Do you want to save changes?
+ Do you want to save changes?
+
+
+ Help
+ Help
+
+
+ Do you want to reset your custom default config to the original default config?
+ Do you want to reset your custom default config to the original default config?
+
+
+ Do you want to reset this config to your custom default config?
+ Do you want to reset this config to your custom default config?
+
+
+ Reset to Default
+ Reset to Default
+
+
+
+ ElfViewer
+
+ Open Folder
+ Open Folder
+
+
+
+ GameInfoClass
+
+ Loading game list, please wait :3
+ Loading game list, please wait :3
+
+
+ Cancel
+ Cancel
+
+
+ Loading...
+ Loading...
+
+
+
+ GameInstallDialog
+
+ shadPS4 - Choose directory
+ shadPS4 - Choose directory
+
+
+ Directory to install games
+ Directory to install games
+
+
+ Browse
+ Browse
+
+
+ Error
+ Error
+
+
+ Directory to install DLC
+ Directory to install DLC
+
+
+
+ GameListFrame
+
+ Icon
+ Icon
+
+
+ Name
+ Name
+
+
+ Serial
+ Serial
+
+
+ Compatibility
+ Compatibility
+
+
+ Region
+ Region
+
+
+ Firmware
+ Firmware
+
+
+ Size
+ Size
+
+
+ Version
+ Version
+
+
+ Path
+ Path
+
+
+ Play Time
+ Play Time
+
+
+ Never Played
+ Never Played
+
+
+ h
+ h
+
+
+ m
+ m
+
+
+ s
+ s
+
+
+ Compatibility is untested
+ Compatibility is untested
+
+
+ Game does not initialize properly / crashes the emulator
+ Game does not initialize properly / crashes the emulator
+
+
+ Game boots, but only displays a blank screen
+ Game boots, but only displays a blank screen
+
+
+ Game displays an image but does not go past the menu
+ Game displays an image but does not go past the menu
+
+
+ Game has game-breaking glitches or unplayable performance
+ Game has game-breaking glitches or unplayable performance
+
+
+ Game can be completed with playable performance and no major glitches
+ Game can be completed with playable performance and no major glitches
+
+
+ Click to see details on github
+ Click to see details on github
+
+
+ Last updated
+ Last updated
+
+
+
+ GameListUtils
+
+ B
+ B
+
+
+ KB
+ KB
+
+
+ MB
+ MB
+
+
+ GB
+ GB
+
+
+ TB
+ TB
+
+
+
+ GuiContextMenus
+
+ Create Shortcut
+ Create Shortcut
+
+
+ Cheats / Patches
+ Cheats / Patches
+
+
+ SFO Viewer
+ SFO Viewer
+
+
+ Trophy Viewer
+ Trophy Viewer
+
+
+ Open Folder...
+ Open Folder...
+
+
+ Open Game Folder
+ Open Game Folder
+
+
+ Open Save Data Folder
+ Open Save Data Folder
+
+
+ Open Log Folder
+ Open Log Folder
+
+
+ Copy info...
+ Copy info...
+
+
+ Copy Name
+ Copy Name
+
+
+ Copy Serial
+ Copy Serial
+
+
+ Copy Version
+ Copy Version
+
+
+ Copy Size
+ Copy Size
+
+
+ Copy All
+ Copy All
+
+
+ Delete...
+ Delete...
+
+
+ Delete Game
+ Delete Game
+
+
+ Delete Update
+ Delete Update
+
+
+ Delete DLC
+ Delete DLC
+
+
+ Delete Trophy
+ Delete Trophy
+
+
+ Compatibility...
+ Compatibility...
+
+
+ Update database
+ Update database
+
+
+ View report
+ View report
+
+
+ Submit a report
+ Submit a report
+
+
+ Shortcut creation
+ Shortcut creation
+
+
+ Shortcut created successfully!
+ Shortcut created successfully!
+
+
+ Error
+ Error
+
+
+ Error creating shortcut!
+ Error creating shortcut!
+
+
+ Game
+ Game
+
+
+ This game has no update to delete!
+ This game has no update to delete!
+
+
+ Update
+ Update
+
+
+ This game has no DLC to delete!
+ This game has no DLC to delete!
+
+
+ DLC
+ DLC
+
+
+ Delete %1
+ Delete %1
+
+
+ Are you sure you want to delete %1's %2 directory?
+ Are you sure you want to delete %1's %2 directory?
+
+
+ Open Update Folder
+ Open Update Folder
+
+
+ Delete Save Data
+ Delete Save Data
+
+
+ This game has no update folder to open!
+ This game has no update folder to open!
+
+
+ No log file found for this game!
+ No log file found for this game!
+
+
+ Failed to convert icon.
+ Failed to convert icon.
+
+
+ This game has no save data to delete!
+ This game has no save data to delete!
+
+
+ This game has no saved trophies to delete!
+ This game has no saved trophies to delete!
+
+
+ Save Data
+ Save Data
+
+
+ Trophy
+ Trophy
+
+
+ SFO Viewer for
+ SFO Viewer for
+
+
+
+ HelpDialog
+
+ Quickstart
+ Quickstart
+
+
+ FAQ
+ FAQ
+
+
+ Syntax
+ Syntax
+
+
+ Special Bindings
+ Special Bindings
+
+
+ Keybindings
+ Keybindings
+
+
+
+ KBMSettings
+
+ Configure Controls
+ Configure Controls
+
+
+ D-Pad
+ D-Pad
+
+
+ Up
+ Up
+
+
+ unmapped
+ unmapped
+
+
+ Left
+ Left
+
+
+ Right
+ Right
+
+
+ Down
+ Down
+
+
+ Left Analog Halfmode
+ Left Analog Halfmode
+
+
+ hold to move left stick at half-speed
+ hold to move left stick at half-speed
+
+
+ Left Stick
+ Left Stick
+
+
+ Config Selection
+ Config Selection
+
+
+ Common Config
+ Common Config
+
+
+ Use per-game configs
+ Use per-game configs
+
+
+ L1
+ L1
+
+
+ L2
+ L2
+
+
+ Text Editor
+ Text Editor
+
+
+ Help
+ Help
+
+
+ R1
+ R1
+
+
+ R2
+ R2
+
+
+ L3
+ L3
+
+
+ Touchpad Click
+ Touchpad Click
+
+
+ Mouse to Joystick
+ Mouse to Joystick
+
+
+ *press F7 ingame to activate
+ *press F7 ingame to activate
+
+
+ R3
+ R3
+
+
+ Options
+ Options
+
+
+ Mouse Movement Parameters
+ Mouse Movement Parameters
+
+
+ note: click Help Button/Special Keybindings for more information
+ note: click Help Button/Special Keybindings for more information
+
+
+ Face Buttons
+ Face Buttons
+
+
+ Triangle
+ Triangle
+
+
+ Square
+ Square
+
+
+ Circle
+ Circle
+
+
+ Cross
+ Cross
+
+
+ Right Analog Halfmode
+ Right Analog Halfmode
+
+
+ hold to move right stick at half-speed
+ hold to move right stick at half-speed
+
+
+ Right Stick
+ Right Stick
+
+
+ Speed Offset (def 0.125):
+ Speed Offset (def 0.125):
+
+
+ Copy from Common Config
+ Copy from Common Config
+
+
+ Deadzone Offset (def 0.50):
+ Deadzone Offset (def 0.50):
+
+
+ Speed Multiplier (def 1.0):
+ Speed Multiplier (def 1.0):
+
+
+ Common Config Selected
+ Common Config Selected
+
+
+ This button copies mappings from the Common Config to the currently selected profile, and cannot be used when the currently selected profile is the Common Config.
+ This button copies mappings from the Common Config to the currently selected profile, and cannot be used when the currently selected profile is the Common Config.
+
+
+ Copy values from Common Config
+ Copy values from Common Config
+
+
+ Do you want to overwrite existing mappings with the mappings from the Common Config?
+ Do you want to overwrite existing mappings with the mappings from the Common Config?
+
+
+ Unable to Save
+ Unable to Save
+
+
+ Cannot bind any unique input more than once
+ Cannot bind any unique input more than once
+
+
+ Press a key
+ Press a key
+
+
+ Cannot set mapping
+ Cannot set mapping
+
+
+ Mousewheel cannot be mapped to stick outputs
+ Mousewheel cannot be mapped to stick outputs
+
+
+ Save
+ Save
+
+
+ Apply
+ Apply
+
+
+ Restore Defaults
+ Restore Defaults
+
+
+ Cancel
+ Cancel
+
+
+
+ MainWindow
+
+ Open/Add Elf Folder
+ Open/Add Elf Folder
+
+
+ Boot Game
+ Boot Game
+
+
+ Check for Updates
+ Check for Updates
+
+
+ About shadPS4
+ About shadPS4
+
+
+ Configure...
+ Configure...
+
+
+ Recent Games
+ Recent Games
+
+
+ Open shadPS4 Folder
+ Open shadPS4 Folder
+
+
+ Exit
+ Exit
+
+
+ Exit shadPS4
+ Exit shadPS4
+
+
+ Exit the application.
+ Exit the application.
+
+
+ Show Game List
+ Show Game List
+
+
+ Game List Refresh
+ Game List Refresh
+
+
+ Tiny
+ Tiny
+
+
+ Small
+ Small
+
+
+ Medium
+ Medium
+
+
+ Large
+ Large
+
+
+ List View
+ List View
+
+
+ Grid View
+ Grid View
+
+
+ Elf Viewer
+ Elf Viewer
+
+
+ Game Install Directory
+ Game Install Directory
+
+
+ Download Cheats/Patches
+ Download Cheats/Patches
+
+
+ Dump Game List
+ Dump Game List
+
+
+ Trophy Viewer
+ Trophy Viewer
+
+
+ No games found. Please add your games to your library first.
+ No games found. Please add your games to your library first.
+
+
+ Search...
+ Search...
+
+
+ File
+ File
+
+
+ View
+ View
+
+
+ Game List Icons
+ Game List Icons
+
+
+ Game List Mode
+ Game List Mode
+
+
+ Settings
+ Settings
+
+
+ Utils
+ Utils
+
+
+ Themes
+ Themes
+
+
+ Help
+ Help
+
+
+ Dark
+ Dark
+
+
+ Light
+ Light
+
+
+ Green
+ Green
+
+
+ Blue
+ Blue
+
+
+ Violet
+ Violet
+
+
+ toolBar
+ toolBar
+
+
+ Game List
+ Game List
+
+
+ Download Cheats For All Installed Games
+ Download Cheats For All Installed Games
+
+
+ Download Patches For All Games
+ Download Patches For All Games
+
+
+ Download Complete
+ Download Complete
+
+
+ You have downloaded cheats for all the games you have installed.
+ You have downloaded cheats for all the games you have installed.
+
+
+ Patches Downloaded Successfully!
+ Patches Downloaded Successfully!
+
+
+ All Patches available for all games have been downloaded.
+ All Patches available for all games have been downloaded.
+
+
+ Games:
+ Games:
+
+
+ ELF files (*.bin *.elf *.oelf)
+ ELF files (*.bin *.elf *.oelf)
+
+
+ Game Boot
+ Game Boot
+
+
+ Only one file can be selected!
+ Only one file can be selected!
+
+
+ Run Game
+ Run Game
+
+
+ Eboot.bin file not found
+ Eboot.bin file not found
+
+
+ Game is already running!
+ Game is already running!
+
+
+ shadPS4
+ shadPS4
+
+
+ Play
+ Play
+
+
+ Pause
+ Pause
+
+
+ Stop
+ Stop
+
+
+ Restart
+ Restart
+
+
+ Full Screen
+ Full Screen
+
+
+ Controllers
+ Controllers
+
+
+ Keyboard
+ Keyboard
+
+
+ Refresh List
+ Refresh List
+
+
+ Resume
+ Resume
+
+
+ Show Labels Under Icons
+ Show Labels Under Icons
+
+
+
+ SettingsDialog
+
+ Settings
+ Settings
+
+
+ General
+ General
+
+
+ System
+ System
+
+
+ Console Language
+ Console Language
+
+
+ Emulator Language
+ Emulator Language
+
+
+ Emulator
+ Emulator
+
+
+ Default tab when opening settings
+ Default tab when opening settings
+
+
+ Show Game Size In List
+ Show Game Size In List
+
+
+ Show Splash
+ Show Splash
+
+
+ Enable Discord Rich Presence
+ Enable Discord Rich Presence
+
+
+ Username
+ Username
+
+
+ Trophy Key
+ Trophy Key
+
+
+ Trophy
+ Trophy
+
+
+ Open the custom trophy images/sounds folder
+ Open the custom trophy images/sounds folder
+
+
+ Logger
+ Logger
+
+
+ Log Type
+ Log Type
+
+
+ Log Filter
+ Log Filter
+
+
+ Open Log Location
+ Open Log Location
+
+
+ Input
+ Input
+
+
+ Cursor
+ Cursor
+
+
+ Hide Cursor
+ Hide Cursor
+
+
+ Hide Cursor Idle Timeout
+ Hide Cursor Idle Timeout
+
+
+ s
+ s
+
+
+ Controller
+ Controller
+
+
+ Back Button Behavior
+ Back Button Behavior
+
+
+ Graphics
+ Graphics
+
+
+ GUI
+ GUI
+
+
+ User
+ User
+
+
+ Graphics Device
+ Graphics Device
+
+
+ Vblank Divider
+ Vblank Divider
+
+
+ Advanced
+ Advanced
+
+
+ Enable Shaders Dumping
+ Enable Shaders Dumping
+
+
+ Enable NULL GPU
+ Enable NULL GPU
+
+
+ Enable HDR
+ Enable HDR
+
+
+ Paths
+ Paths
+
+
+ Game Folders
+ Game Folders
+
+
+ Add...
+ Add...
+
+
+ Remove
+ Remove
+
+
+ Debug
+ Debug
+
+
+ Enable Debug Dumping
+ Enable Debug Dumping
+
+
+ Enable Vulkan Validation Layers
+ Enable Vulkan Validation Layers
+
+
+ Enable Vulkan Synchronization Validation
+ Enable Vulkan Synchronization Validation
+
+
+ Enable RenderDoc Debugging
+ Enable RenderDoc Debugging
+
+
+ Enable Crash Diagnostics
+ Enable Crash Diagnostics
+
+
+ Collect Shaders
+ Collect Shaders
+
+
+ Copy GPU Buffers
+ Copy GPU Buffers
+
+
+ Host Debug Markers
+ Host Debug Markers
+
+
+ Guest Debug Markers
+ Guest Debug Markers
+
+
+ Update
+ Update
+
+
+ Check for Updates at Startup
+ Check for Updates at Startup
+
+
+ Always Show Changelog
+ Always Show Changelog
+
+
+ Update Channel
+ Update Channel
+
+
+ Check for Updates
+ Check for Updates
+
+
+ GUI Settings
+ GUI Settings
+
+
+ Title Music
+ Title Music
+
+
+ Disable Trophy Notification
+ Disable Trophy Notification
+
+
+ Background Image
+ Background Image
+
+
+ Show Background Image
+ Show Background Image
+
+
+ Opacity
+ Opacity
+
+
+ Play title music
+ Play title music
+
+
+ Update Compatibility Database On Startup
+ Update Compatibility Database On Startup
+
+
+ Game Compatibility
+ Game Compatibility
+
+
+ Display Compatibility Data
+ Display Compatibility Data
+
+
+ Update Compatibility Database
+ Update Compatibility Database
+
+
+ Volume
+ Volume
+
+
+ Save
+ Save
+
+
+ Apply
+ Apply
+
+
+ Restore Defaults
+ Restore Defaults
+
+
+ Close
+ Close
+
+
+ Point your mouse at an option to display its description.
+ Point your mouse at an option to display its description.
+
+
+ Console Language:\nSets the language that the PS4 game uses.\nIt's recommended to set this to a language the game supports, which will vary by region.
+ Console Language:\nSets the language that the PS4 game uses.\nIt's recommended to set this to a language the game supports, which will vary by region.
+
+
+ Emulator Language:\nSets the language of the emulator's user interface.
+ Emulator Language:\nSets the language of the emulator's user interface.
+
+
+ Show Splash Screen:\nShows the game's splash screen (a special image) while the game is starting.
+ Show Splash Screen:\nShows the game's splash screen (a special image) while the game is starting.
+
+
+ Enable Discord Rich Presence:\nDisplays the emulator icon and relevant information on your Discord profile.
+ Enable Discord Rich Presence:\nDisplays the emulator icon and relevant information on your Discord profile.
+
+
+ Username:\nSets the PS4's account username, which may be displayed by some games.
+ Username:\nSets the PS4's account username, which may be displayed by some games.
+
+
+ Trophy Key:\nKey used to decrypt trophies. Must be obtained from your jailbroken console.\nMust contain only hex characters.
+ Trophy Key:\nKey used to decrypt trophies. Must be obtained from your jailbroken console.\nMust contain only hex characters.
+
+
+ Log Type:\nSets whether to synchronize the output of the log window for performance. May have adverse effects on emulation.
+ Log Type:\nSets whether to synchronize the output of the log window for performance. May have adverse effects on emulation.
+
+
+ Log Filter:\nFilters the log to only print specific information.\nExamples: "Core:Trace" "Lib.Pad:Debug Common.Filesystem:Error" "*:Critical"\nLevels: Trace, Debug, Info, Warning, Error, Critical - in this order, a specific level silences all levels preceding it in the list and logs every level after it.
+ Log Filter:\nFilters the log to only print specific information.\nExamples: "Core:Trace" "Lib.Pad:Debug Common.Filesystem:Error" "*:Critical"\nLevels: Trace, Debug, Info, Warning, Error, Critical - in this order, a specific level silences all levels preceding it in the list and logs every level after it.
+
+
+ Update:\nRelease: Official versions released every month that may be very outdated, but are more reliable and tested.\nNightly: Development versions that have all the latest features and fixes, but may contain bugs and are less stable.
+ Update:\nRelease: Official versions released every month that may be very outdated, but are more reliable and tested.\nNightly: Development versions that have all the latest features and fixes, but may contain bugs and are less stable.
+
+
+ Background Image:\nControl the opacity of the game background image.
+ Background Image:\nControl the opacity of the game background image.
+
+
+ Play Title Music:\nIf a game supports it, enable playing special music when selecting the game in the GUI.
+ Play Title Music:\nIf a game supports it, enable playing special music when selecting the game in the GUI.
+
+
+ Disable Trophy Pop-ups:\nDisable in-game trophy notifications. Trophy progress can still be tracked using the Trophy Viewer (right-click the game in the main window).
+ Disable Trophy Pop-ups:\nDisable in-game trophy notifications. Trophy progress can still be tracked using the Trophy Viewer (right-click the game in the main window).
+
+
+ Hide Cursor:\nChoose when the cursor will disappear:\nNever: You will always see the mouse.\nidle: Set a time for it to disappear after being idle.\nAlways: you will never see the mouse.
+ Hide Cursor:\nChoose when the cursor will disappear:\nNever: You will always see the mouse.\nidle: Set a time for it to disappear after being idle.\nAlways: you will never see the mouse.
+
+
+ Hide Idle Cursor Timeout:\nThe duration (seconds) after which the cursor that has been idle hides itself.
+ Hide Idle Cursor Timeout:\nThe duration (seconds) after which the cursor that has been idle hides itself.
+
+
+ Back Button Behavior:\nSets the controller's back button to emulate tapping the specified position on the PS4 touchpad.
+ Back Button Behavior:\nSets the controller's back button to emulate tapping the specified position on the PS4 touchpad.
+
+
+ Display Compatibility Data:\nDisplays game compatibility information in table view. Enable "Update Compatibility On Startup" to get up-to-date information.
+ Display Compatibility Data:\nDisplays game compatibility information in table view. Enable "Update Compatibility On Startup" to get up-to-date information.
+
+
+ Update Compatibility On Startup:\nAutomatically update the compatibility database when shadPS4 starts.
+ Update Compatibility On Startup:\nAutomatically update the compatibility database when shadPS4 starts.
+
+
+ Update Compatibility Database:\nImmediately update the compatibility database.
+ Update Compatibility Database:\nImmediately update the compatibility database.
+
+
+ Never
+ Never
+
+
+ Idle
+ Idle
+
+
+ Always
+ Always
+
+
+ Touchpad Left
+ Touchpad Left
+
+
+ Touchpad Right
+ Touchpad Right
+
+
+ Touchpad Center
+ Touchpad Center
+
+
+ None
+ None
+
+
+ Graphics Device:\nOn multiple GPU systems, select the GPU the emulator will use from the drop down list,\nor select "Auto Select" to automatically determine it.
+ Graphics Device:\nOn multiple GPU systems, select the GPU the emulator will use from the drop down list,\nor select "Auto Select" to automatically determine it.
+
+
+ Width/Height:\nSets the size of the emulator window at launch, which can be resized during gameplay.\nThis is different from the in-game resolution.
+ Width/Height:\nSets the size of the emulator window at launch, which can be resized during gameplay.\nThis is different from the in-game resolution.
+
+
+ Vblank Divider:\nThe frame rate at which the emulator refreshes at is multiplied by this number. Changing this may have adverse effects, such as increasing the game speed, or breaking critical game functionality that does not expect this to change!
+ Vblank Divider:\nThe frame rate at which the emulator refreshes at is multiplied by this number. Changing this may have adverse effects, such as increasing the game speed, or breaking critical game functionality that does not expect this to change!
+
+
+ Enable Shaders Dumping:\nFor the sake of technical debugging, saves the games shaders to a folder as they render.
+ Enable Shaders Dumping:\nFor the sake of technical debugging, saves the games shaders to a folder as they render.
+
+
+ Enable Null GPU:\nFor the sake of technical debugging, disables game rendering as if there were no graphics card.
+ Enable Null GPU:\nFor the sake of technical debugging, disables game rendering as if there were no graphics card.
+
+
+ Enable HDR:\nEnables HDR in games that support it.\nYour monitor must have support for the BT2020 PQ color space and the RGB10A2 swapchain format.
+ Enable HDR:\nEnables HDR in games that support it.\nYour monitor must have support for the BT2020 PQ color space and the RGB10A2 swapchain format.
+
+
+ Game Folders:\nThe list of folders to check for installed games.
+ Game Folders:\nThe list of folders to check for installed games.
+
+
+ Add:\nAdd a folder to the list.
+ Add:\nAdd a folder to the list.
+
+
+ Remove:\nRemove a folder from the list.
+ Remove:\nRemove a folder from the list.
+
+
+ Enable Debug Dumping:\nSaves the import and export symbols and file header information of the currently running PS4 program to a directory.
+ Enable Debug Dumping:\nSaves the import and export symbols and file header information of the currently running PS4 program to a directory.
+
+
+ Enable Vulkan Validation Layers:\nEnables a system that validates the state of the Vulkan renderer and logs information about its internal state.\nThis will reduce performance and likely change the behavior of emulation.
+ Enable Vulkan Validation Layers:\nEnables a system that validates the state of the Vulkan renderer and logs information about its internal state.\nThis will reduce performance and likely change the behavior of emulation.
+
+
+ Enable Vulkan Synchronization Validation:\nEnables a system that validates the timing of Vulkan rendering tasks.\nThis will reduce performance and likely change the behavior of emulation.
+ Enable Vulkan Synchronization Validation:\nEnables a system that validates the timing of Vulkan rendering tasks.\nThis will reduce performance and likely change the behavior of emulation.
+
+
+ Enable RenderDoc Debugging:\nIf enabled, the emulator will provide compatibility with Renderdoc to allow capture and analysis of the currently rendered frame.
+ Enable RenderDoc Debugging:\nIf enabled, the emulator will provide compatibility with Renderdoc to allow capture and analysis of the currently rendered frame.
+
+
+ Collect Shaders:\nYou need this enabled to edit shaders with the debug menu (Ctrl + F10).
+ Collect Shaders:\nYou need this enabled to edit shaders with the debug menu (Ctrl + F10).
+
+
+ Crash Diagnostics:\nCreates a .yaml file with info about the Vulkan state at the time of crashing.\nUseful for debugging 'Device lost' errors. If you have this enabled, you should enable Host AND Guest Debug Markers.\nDoes not work on Intel GPUs.\nYou need Vulkan Validation Layers enabled and the Vulkan SDK for this to work.
+ Crash Diagnostics:\nCreates a .yaml file with info about the Vulkan state at the time of crashing.\nUseful for debugging 'Device lost' errors. If you have this enabled, you should enable Host AND Guest Debug Markers.\nDoes not work on Intel GPUs.\nYou need Vulkan Validation Layers enabled and the Vulkan SDK for this to work.
+
+
+ Copy GPU Buffers:\nGets around race conditions involving GPU submits.\nMay or may not help with PM4 type 0 crashes.
+ Copy GPU Buffers:\nGets around race conditions involving GPU submits.\nMay or may not help with PM4 type 0 crashes.
+
+
+ Host Debug Markers:\nInserts emulator-side information like markers for specific AMDGPU commands around Vulkan commands, as well as giving resources debug names.\nIf you have this enabled, you should enable Crash Diagnostics.\nUseful for programs like RenderDoc.
+ Host Debug Markers:\nInserts emulator-side information like markers for specific AMDGPU commands around Vulkan commands, as well as giving resources debug names.\nIf you have this enabled, you should enable Crash Diagnostics.\nUseful for programs like RenderDoc.
+
+
+ Guest Debug Markers:\nInserts any debug markers the game itself has added to the command buffer.\nIf you have this enabled, you should enable Crash Diagnostics.\nUseful for programs like RenderDoc.
+ Guest Debug Markers:\nInserts any debug markers the game itself has added to the command buffer.\nIf you have this enabled, you should enable Crash Diagnostics.\nUseful for programs like RenderDoc.
+
+
+ Save Data Path:\nThe folder where game save data will be saved.
+ Save Data Path:\nThe folder where game save data will be saved.
+
+
+ Browse:\nBrowse for a folder to set as the save data path.
+ Browse:\nBrowse for a folder to set as the save data path.
+
+
+ Release
+ Release
+
+
+ Nightly
+ Nightly
+
+
+ Set the volume of the background music.
+ Set the volume of the background music.
+
+
+ Enable Motion Controls
+ Enable Motion Controls
+
+
+ Save Data Path
+ Save Data Path
+
+
+ Browse
+ Browse
+
+
+ async
+ async
+
+
+ sync
+ sync
+
+
+ Auto Select
+ Auto Select
+
+
+ Directory to install games
+ Directory to install games
+
+
+ Directory to save data
+ Directory to save data
+
+
+ Video
+ Video
+
+
+ Display Mode
+ Display Mode
+
+
+ Windowed
+ Windowed
+
+
+ Fullscreen
+ Fullscreen
+
+
+ Fullscreen (Borderless)
+ Fullscreen (Borderless)
+
+
+ Window Size
+ Window Size
+
+
+ W:
+ W:
+
+
+ H:
+ H:
+
+
+ Separate Log Files
+ Separate Log Files
+
+
+ Separate Log Files:\nWrites a separate logfile for each game.
+ Separate Log Files:\nWrites a separate logfile for each game.
+
+
+ Trophy Notification Position
+ Trophy Notification Position
+
+
+ Left
+ Left
+
+
+ Right
+ Right
+
+
+ Top
+ Top
+
+
+ Bottom
+ Bottom
+
+
+ Notification Duration
+ Notification Duration
+
+
+ Portable User Folder
+ Portable User Folder
+
+
+ Create Portable User Folder from Common User Folder
+ Create Portable User Folder from Common User Folder
+
+
+ Portable user folder:\nStores shadPS4 settings and data that will be applied only to the shadPS4 build located in the current folder. Restart the app after creating the portable user folder to begin using it.
+ Portable user folder:\nStores shadPS4 settings and data that will be applied only to the shadPS4 build located in the current folder. Restart the app after creating the portable user folder to begin using it.
+
+
+ Cannot create portable user folder
+ Cannot create portable user folder
+
+
+ %1 already exists
+ %1 already exists
+
+
+ Portable user folder created
+ Portable user folder created
+
+
+ %1 successfully created.
+ %1 successfully created.
+
+
+ Open the custom trophy images/sounds folder:\nYou can add custom images to the trophies and an audio.\nAdd the files to custom_trophy with the following names:\ntrophy.wav OR trophy.mp3, bronze.png, gold.png, platinum.png, silver.png\nNote: The sound will only work in QT versions.
+ Open the custom trophy images/sounds folder:\nYou can add custom images to the trophies and an audio.\nAdd the files to custom_trophy with the following names:\ntrophy.wav OR trophy.mp3, bronze.png, gold.png, platinum.png, silver.png\nNote: The sound will only work in QT versions.
+
+
+ * Unsupported Vulkan Version
+ * Unsupported Vulkan Version
+
+
+
+ TrophyViewer
+
+ Trophy Viewer
+ Trophy Viewer
+
+
+ Select Game:
+ Select Game:
+
+
+ Progress
+ Progress
+
+
+ Show Earned Trophies
+ Show Earned Trophies
+
+
+ Show Not Earned Trophies
+ Show Not Earned Trophies
+
+
+ Show Hidden Trophies
+ Show Hidden Trophies
+
+
+
From 1a27af6951fb916608fbaad2a5c3b8d9dc0d14d5 Mon Sep 17 00:00:00 2001
From: georgemoralis
Date: Thu, 12 Jun 2025 19:06:54 +0300
Subject: [PATCH 46/53] fixed non updated values (#3092)
---
src/qt_gui/settings_dialog.cpp | 5 ++---
1 file changed, 2 insertions(+), 3 deletions(-)
diff --git a/src/qt_gui/settings_dialog.cpp b/src/qt_gui/settings_dialog.cpp
index fc00c6f75..f7cbe7af6 100644
--- a/src/qt_gui/settings_dialog.cpp
+++ b/src/qt_gui/settings_dialog.cpp
@@ -509,9 +509,8 @@ void SettingsDialog::LoadValuesFromConfig() {
toml::find_or(data, "General", "checkCompatibilityOnStartup", false));
#ifdef ENABLE_UPDATER
- ui->updateCheckBox->setChecked(toml::find_or(data, "General", "autoUpdate", false));
- ui->changelogCheckBox->setChecked(
- toml::find_or(data, "General", "alwaysShowChangelog", false));
+ ui->updateCheckBox->setChecked(m_gui_settings->GetValue(gui::gen_checkForUpdates).toBool());
+ ui->changelogCheckBox->setChecked(m_gui_settings->GetValue(gui::gen_showChangeLog).toBool());
QString updateChannel = m_gui_settings->GetValue(gui::gen_updateChannel).toString();
ui->updateComboBox->setCurrentText(
From ae6f7b8d5ad65a252543161f03733c9f8a62ad76 Mon Sep 17 00:00:00 2001
From: UltraDaCat <113462733+UltraDaCat@users.noreply.github.com>
Date: Thu, 12 Jun 2025 19:20:39 +0200
Subject: [PATCH 47/53] remove the accidental backslash in README.md (#3093)
---
README.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/README.md b/README.md
index 9079ead73..22fc27a33 100644
--- a/README.md
+++ b/README.md
@@ -138,7 +138,7 @@ The following firmware modules are supported and must be placed in shadPS4's `sy
> [!Caution]
-> The above modules are required to run the games properly and must be extracted from your PlayStation 4.\
+> The above modules are required to run the games properly and must be extracted from your PlayStation 4.
From 226058d2e97f353d777032a74db89b1e0de91948 Mon Sep 17 00:00:00 2001
From: georgemoralis
Date: Thu, 12 Jun 2025 20:29:39 +0300
Subject: [PATCH 48/53] fixed nonload issues with background music (#3094)
---
src/qt_gui/settings_dialog.cpp | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/src/qt_gui/settings_dialog.cpp b/src/qt_gui/settings_dialog.cpp
index f7cbe7af6..da2b0dde3 100644
--- a/src/qt_gui/settings_dialog.cpp
+++ b/src/qt_gui/settings_dialog.cpp
@@ -456,7 +456,7 @@ void SettingsDialog::LoadValuesFromConfig() {
ui->dumpShadersCheckBox->setChecked(toml::find_or(data, "GPU", "dumpShaders", false));
ui->nullGpuCheckBox->setChecked(toml::find_or(data, "GPU", "nullGpu", false));
ui->enableHDRCheckBox->setChecked(toml::find_or(data, "GPU", "allowHDR", false));
- ui->playBGMCheckBox->setChecked(toml::find_or(data, "General", "playBGM", false));
+ ui->playBGMCheckBox->setChecked(m_gui_settings->GetValue(gui::gl_playBackgroundMusic).toBool());
ui->disableTrophycheckBox->setChecked(
toml::find_or(data, "General", "isTrophyPopupDisabled", false));
ui->popUpDurationSpinBox->setValue(Config::getTrophyNotificationDuration());
@@ -468,7 +468,7 @@ void SettingsDialog::LoadValuesFromConfig() {
ui->radioButton_Top->setChecked(side == "top");
ui->radioButton_Bottom->setChecked(side == "bottom");
- ui->BGMVolumeSlider->setValue(toml::find_or(data, "General", "BGMvolume", 50));
+ ui->BGMVolumeSlider->setValue(m_gui_settings->GetValue(gui::gl_backgroundMusicVolume).toInt());
ui->discordRPCCheckbox->setChecked(
toml::find_or(data, "General", "enableDiscordRPC", true));
QString translatedText_FullscreenMode =
From 3f40a8d46edc28d07a9aaf29a389d0d5d305375d Mon Sep 17 00:00:00 2001
From: rainmakerv2 <30595646+rainmakerv3@users.noreply.github.com>
Date: Sun, 15 Jun 2025 23:06:30 +0800
Subject: [PATCH 49/53] Qt: If duplicate unique inputs found, show which
buttons have duplicates (#3098)
* If duplicate unique inputs found, show which buttons have duplicates
* remove duplicate button from list
* cleanup
* Set clang-format off for long translatable string
---
src/qt_gui/kbm_gui.cpp | 37 +++++++++++++++++++++++++++----------
1 file changed, 27 insertions(+), 10 deletions(-)
diff --git a/src/qt_gui/kbm_gui.cpp b/src/qt_gui/kbm_gui.cpp
index 15e9008ab..596de6d30 100644
--- a/src/qt_gui/kbm_gui.cpp
+++ b/src/qt_gui/kbm_gui.cpp
@@ -33,13 +33,13 @@ KBMSettings::KBMSettings(std::shared_ptr game_info_get, QWidget*
}
ButtonsList = {
- ui->CrossButton, ui->CircleButton, ui->TriangleButton, ui->SquareButton,
- ui->L1Button, ui->R1Button, ui->L2Button, ui->R2Button,
- ui->L3Button, ui->R3Button, ui->TouchpadButton, ui->OptionsButton,
- ui->TouchpadButton, ui->DpadUpButton, ui->DpadDownButton, ui->DpadLeftButton,
- ui->DpadRightButton, ui->LStickUpButton, ui->LStickDownButton, ui->LStickLeftButton,
- ui->LStickRightButton, ui->RStickUpButton, ui->RStickDownButton, ui->RStickLeftButton,
- ui->RStickRightButton, ui->LHalfButton, ui->RHalfButton};
+ ui->CrossButton, ui->CircleButton, ui->TriangleButton, ui->SquareButton,
+ ui->L1Button, ui->R1Button, ui->L2Button, ui->R2Button,
+ ui->L3Button, ui->R3Button, ui->OptionsButton, ui->TouchpadButton,
+ ui->DpadUpButton, ui->DpadDownButton, ui->DpadLeftButton, ui->DpadRightButton,
+ ui->LStickUpButton, ui->LStickDownButton, ui->LStickLeftButton, ui->LStickRightButton,
+ ui->RStickUpButton, ui->RStickDownButton, ui->RStickLeftButton, ui->RStickRightButton,
+ ui->LHalfButton, ui->RHalfButton};
ButtonConnects();
SetUIValuestoMappings("default");
@@ -372,14 +372,31 @@ void KBMSettings::SaveKBMConfig(bool CloseOnSave) {
file.close();
// Prevent duplicate inputs for KBM as this breaks the engine
+ bool duplicateFound = false;
+ QSet duplicateMappings;
for (auto it = inputs.begin(); it != inputs.end(); ++it) {
if (std::find(it + 1, inputs.end(), *it) != inputs.end()) {
- QMessageBox::information(this, tr("Unable to Save"),
- tr("Cannot bind any unique input more than once"));
- return;
+ duplicateFound = true;
+ duplicateMappings.insert(QString::fromStdString(*it));
}
}
+ if (duplicateFound) {
+ QStringList duplicatesList;
+ for (const QString mapping : duplicateMappings) {
+ for (const auto& button : ButtonsList) {
+ if (button->text() == mapping)
+ duplicatesList.append(button->objectName() + " - " + mapping);
+ }
+ }
+ QMessageBox::information(
+ this, tr("Unable to Save"),
+ // clang-format off
+QString(tr("Cannot bind any unique input more than once. Duplicate inputs mapped to the following buttons:\n\n%1").arg(duplicatesList.join("\n"))));
+ // clang-format on
+ return;
+ }
+
std::vector save;
bool CurrentLineEmpty = false, LastLineEmpty = false;
for (auto const& line : lines) {
From de69f2b40b88d27284305dc806ea6fd7c2698b7f Mon Sep 17 00:00:00 2001
From: Fire Cube
Date: Sun, 15 Jun 2025 18:03:57 +0200
Subject: [PATCH 50/53] Equeue: HrTimer fixes (#2987)
* initial changes
* tmp
* impl
* support wait for multiple timers
* cleanup
---
src/core/libraries/kernel/equeue.cpp | 45 +++++++++++++++++-----------
src/core/libraries/kernel/equeue.h | 20 +++++++++----
2 files changed, 42 insertions(+), 23 deletions(-)
diff --git a/src/core/libraries/kernel/equeue.cpp b/src/core/libraries/kernel/equeue.cpp
index 911ae4cd5..4d1b116c5 100644
--- a/src/core/libraries/kernel/equeue.cpp
+++ b/src/core/libraries/kernel/equeue.cpp
@@ -125,7 +125,6 @@ int EqueueInternal::WaitForEvents(SceKernelEvent* ev, int num, u32 micros) {
.count();
count = WaitForSmallTimer(ev, num, std::max(0l, long(micros - time_waited)));
}
- small_timer_event.event.data = 0;
}
if (ev->flags & SceKernelEvent::Flags::OneShot) {
@@ -179,39 +178,46 @@ int EqueueInternal::GetTriggeredEvents(SceKernelEvent* ev, int num) {
}
bool EqueueInternal::AddSmallTimer(EqueueEvent& ev) {
- // We assume that only one timer event (with the same ident across calls)
- // can be posted to the queue, based on observations so far. In the opposite case,
- // the small timer storage and wait logic should be reworked.
- ASSERT(!HasSmallTimer() || small_timer_event.event.ident == ev.event.ident);
- ev.time_added = std::chrono::steady_clock::now();
- small_timer_event = std::move(ev);
+ SmallTimer st;
+ st.event = ev.event;
+ st.added = std::chrono::steady_clock::now();
+ st.interval = std::chrono::microseconds{ev.event.data};
+ {
+ std::scoped_lock lock{m_mutex};
+ m_small_timers[st.event.ident] = std::move(st);
+ }
return true;
}
int EqueueInternal::WaitForSmallTimer(SceKernelEvent* ev, int num, u32 micros) {
- int count{};
-
- ASSERT(num == 1);
+ ASSERT(num >= 1);
auto curr_clock = std::chrono::steady_clock::now();
const auto wait_end_us = (micros == 0) ? std::chrono::steady_clock::time_point::max()
: curr_clock + std::chrono::microseconds{micros};
-
+ int count = 0;
do {
curr_clock = std::chrono::steady_clock::now();
{
std::scoped_lock lock{m_mutex};
- if ((curr_clock - small_timer_event.time_added) >
- std::chrono::microseconds{small_timer_event.event.data}) {
- ev[count++] = small_timer_event.event;
- small_timer_event.event.data = 0;
- break;
+ for (auto it = m_small_timers.begin(); it != m_small_timers.end() && count < num;) {
+ const SmallTimer& st = it->second;
+
+ if (curr_clock - st.added >= st.interval) {
+ ev[count++] = st.event;
+ it = m_small_timers.erase(it);
+ } else {
+ ++it;
+ }
}
+
+ if (count > 0)
+ return count;
}
std::this_thread::yield();
} while (curr_clock < wait_end_us);
- return count;
+ return 0;
}
bool EqueueInternal::EventExists(u64 id, s16 filter) {
@@ -326,6 +332,11 @@ s32 PS4_SYSV_ABI sceKernelAddHRTimerEvent(SceKernelEqueue eq, int id, timespec*
// `HrTimerSpinlockThresholdUs`) and fall back to boost asio timers if the time to tick is
// large. Even for large delays, we truncate a small portion to complete the wait
// using the spinlock, prioritizing precision.
+
+ if (eq->EventExists(event.event.ident, event.event.filter)) {
+ eq->RemoveEvent(id, SceKernelEvent::Filter::HrTimer);
+ }
+
if (total_us < HrTimerSpinlockThresholdUs) {
return eq->AddSmallTimer(event) ? ORBIS_OK : ORBIS_KERNEL_ERROR_ENOMEM;
}
diff --git a/src/core/libraries/kernel/equeue.h b/src/core/libraries/kernel/equeue.h
index e6e3c0c53..fbc209265 100644
--- a/src/core/libraries/kernel/equeue.h
+++ b/src/core/libraries/kernel/equeue.h
@@ -9,6 +9,7 @@
#include
#include
+#include
#include "common/rdtsc.h"
#include "common/types.h"
@@ -135,6 +136,12 @@ private:
};
class EqueueInternal {
+ struct SmallTimer {
+ SceKernelEvent event;
+ std::chrono::steady_clock::time_point added;
+ std::chrono::microseconds interval;
+ };
+
public:
explicit EqueueInternal(std::string_view name) : m_name(name) {}
@@ -151,13 +158,14 @@ public:
int GetTriggeredEvents(SceKernelEvent* ev, int num);
bool AddSmallTimer(EqueueEvent& event);
- bool HasSmallTimer() const {
- return small_timer_event.event.data != 0;
+ bool HasSmallTimer() {
+ std::scoped_lock lock{m_mutex};
+ return !m_small_timers.empty();
}
bool RemoveSmallTimer(u64 id) {
- if (HasSmallTimer() && small_timer_event.event.ident == id) {
- small_timer_event = {};
- return true;
+ if (HasSmallTimer()) {
+ std::scoped_lock lock{m_mutex};
+ return m_small_timers.erase(id) > 0;
}
return false;
}
@@ -170,8 +178,8 @@ private:
std::string m_name;
std::mutex m_mutex;
std::vector m_events;
- EqueueEvent small_timer_event{};
std::condition_variable m_cond;
+ std::unordered_map m_small_timers;
};
u64 PS4_SYSV_ABI sceKernelGetEventData(const SceKernelEvent* ev);
From 213ca72fa172ef2b46addc923eea911d89a63272 Mon Sep 17 00:00:00 2001
From: Stephen Miller <56742918+StevenMiller123@users.noreply.github.com>
Date: Sun, 15 Jun 2025 14:43:39 -0500
Subject: [PATCH 51/53] Filesystem: Fixes for posix_rename and write (#3099)
* Fix rename
We shouldn't be leaving a copy of the original filename laying around.
This fixes one of a few broken savedata checks in DRAGON BALL XENOVERSE (CUSA01341)
* sceKernelWrite hack
Seems like std::fwrite has some weird edge cases we aren't handling properly.
Until we get to the bottom of this issue, here's a hack that bypasses it.
This fixes saves in DRAGON BALL XENOVERSE (CUSA01341)
* hack fix
* Improved "hack"
* Fix rename for Windows users
Turns out, we're using copy instead of rename for a reason, and that same reason came up when adding the remove call.
Also adds a log for the sceKernelWrite issue, since that's definitely a hack that needs to be debugged.
* A real fix for the sceKernelWrite issue
Turns out, some data was just buffered.
Running Flush fixes that problem.
* Move fflush call to WriteRaw
To prevent future cases of this issue.
---
src/common/io_file.h | 4 +++-
src/core/libraries/kernel/file_system.cpp | 18 ++++++++++++++++++
2 files changed, 21 insertions(+), 1 deletion(-)
diff --git a/src/common/io_file.h b/src/common/io_file.h
index 45787a092..cb01e154a 100644
--- a/src/common/io_file.h
+++ b/src/common/io_file.h
@@ -186,7 +186,9 @@ public:
template
size_t WriteRaw(const void* data, size_t size) const {
- return std::fwrite(data, sizeof(T), size, file);
+ auto bytes = std::fwrite(data, sizeof(T), size, file);
+ std::fflush(file);
+ return bytes;
}
template
diff --git a/src/core/libraries/kernel/file_system.cpp b/src/core/libraries/kernel/file_system.cpp
index fecc606fd..76d1a3339 100644
--- a/src/core/libraries/kernel/file_system.cpp
+++ b/src/core/libraries/kernel/file_system.cpp
@@ -293,6 +293,7 @@ s64 PS4_SYSV_ABI write(s32 fd, const void* buf, size_t nbytes) {
}
return result;
}
+
return file->f.WriteRaw(buf, nbytes);
}
@@ -750,7 +751,24 @@ s32 PS4_SYSV_ABI posix_rename(const char* from, const char* to) {
*__Error() = POSIX_ENOTEMPTY;
return -1;
}
+
+ // On Windows, std::filesystem::rename will error if the file has been opened before.
std::filesystem::copy(src_path, dst_path, std::filesystem::copy_options::overwrite_existing);
+ auto* h = Common::Singleton::Instance();
+ auto file = h->GetFile(src_path);
+ if (file) {
+ // We need to force ReadWrite if the file had Write access before
+ // Otherwise f.Open will clear the file contents.
+ auto access_mode = file->f.GetAccessMode() == Common::FS::FileAccessMode::Write
+ ? Common::FS::FileAccessMode::ReadWrite
+ : file->f.GetAccessMode();
+ file->f.Close();
+ std::filesystem::remove(src_path);
+ file->f.Open(dst_path, access_mode);
+ } else {
+ std::filesystem::remove(src_path);
+ }
+
return ORBIS_OK;
}
From e2b8ceb6bacccbf6c9d4d1f9745138289eeeedb9 Mon Sep 17 00:00:00 2001
From: georgemoralis
Date: Mon, 16 Jun 2025 12:34:58 +0300
Subject: [PATCH 52/53] [ci skip] Qt GUI: Update Translation. (#3100)
Co-authored-by: georgemoralis <4313123+georgemoralis@users.noreply.github.com>
---
src/qt_gui/translations/en_US.ts | 10 ++++++----
1 file changed, 6 insertions(+), 4 deletions(-)
diff --git a/src/qt_gui/translations/en_US.ts b/src/qt_gui/translations/en_US.ts
index cc854120f..432c767f5 100644
--- a/src/qt_gui/translations/en_US.ts
+++ b/src/qt_gui/translations/en_US.ts
@@ -1152,10 +1152,6 @@
Unable to Save
-
- Cannot bind any unique input more than once
-
- Press a key
@@ -1184,6 +1180,12 @@
CancelCancel
+
+ Cannot bind any unique input more than once. Duplicate inputs mapped to the following buttons:
+
+%1
+
+ MainWindow
From d0e2a40cdc019c0103dc3fb397d6741a51c5a3c5 Mon Sep 17 00:00:00 2001
From: georgemoralis
Date: Mon, 16 Jun 2025 13:07:09 +0300
Subject: [PATCH 53/53] New Crowdin updates (#3089)
* New translations en_us.ts (Catalan)
* New translations en_us.ts (Catalan)
* New translations en_us.ts (Catalan)
* New translations en_us.ts (Swedish)
* New translations en_us.ts (Turkish)
* New translations en_us.ts (Portuguese, Brazilian)
* New translations en_us.ts (Arabic)
* New translations en_us.ts (Persian)
* New translations en_us.ts (Catalan)
* New translations en_us.ts (Serbian (Latin))
* New translations en_us.ts (Swedish)
* New translations en_us.ts (Romanian)
* New translations en_us.ts (French)
* New translations en_us.ts (Spanish)
* New translations en_us.ts (Danish)
* New translations en_us.ts (German)
* New translations en_us.ts (Greek)
* New translations en_us.ts (Finnish)
* New translations en_us.ts (Hungarian)
* New translations en_us.ts (Italian)
* New translations en_us.ts (Japanese)
* New translations en_us.ts (Korean)
* New translations en_us.ts (Lithuanian)
* New translations en_us.ts (Dutch)
* New translations en_us.ts (Polish)
* New translations en_us.ts (Portuguese)
* New translations en_us.ts (Russian)
* New translations en_us.ts (Slovenian)
* New translations en_us.ts (Albanian)
* New translations en_us.ts (Ukrainian)
* New translations en_us.ts (Chinese Simplified)
* New translations en_us.ts (Chinese Traditional)
* New translations en_us.ts (Vietnamese)
* New translations en_us.ts (Indonesian)
* New translations en_us.ts (Norwegian Bokmal)
---
src/qt_gui/translations/ar_SA.ts | 12 +-
src/qt_gui/translations/ca_ES.ts | 332 ++++++++++++++++---------------
src/qt_gui/translations/da_DK.ts | 12 +-
src/qt_gui/translations/de_DE.ts | 12 +-
src/qt_gui/translations/el_GR.ts | 12 +-
src/qt_gui/translations/es_ES.ts | 12 +-
src/qt_gui/translations/fa_IR.ts | 12 +-
src/qt_gui/translations/fi_FI.ts | 12 +-
src/qt_gui/translations/fr_FR.ts | 12 +-
src/qt_gui/translations/hu_HU.ts | 12 +-
src/qt_gui/translations/id_ID.ts | 12 +-
src/qt_gui/translations/it_IT.ts | 12 +-
src/qt_gui/translations/ja_JP.ts | 12 +-
src/qt_gui/translations/ko_KR.ts | 12 +-
src/qt_gui/translations/lt_LT.ts | 12 +-
src/qt_gui/translations/nb_NO.ts | 12 +-
src/qt_gui/translations/nl_NL.ts | 12 +-
src/qt_gui/translations/pl_PL.ts | 12 +-
src/qt_gui/translations/pt_BR.ts | 12 +-
src/qt_gui/translations/pt_PT.ts | 12 +-
src/qt_gui/translations/ro_RO.ts | 12 +-
src/qt_gui/translations/ru_RU.ts | 12 +-
src/qt_gui/translations/sl_SI.ts | 12 +-
src/qt_gui/translations/sq_AL.ts | 12 +-
src/qt_gui/translations/sr_CS.ts | 12 +-
src/qt_gui/translations/sv_SE.ts | 90 +++++----
src/qt_gui/translations/tr_TR.ts | 12 +-
src/qt_gui/translations/uk_UA.ts | 12 +-
src/qt_gui/translations/vi_VN.ts | 12 +-
src/qt_gui/translations/zh_CN.ts | 12 +-
src/qt_gui/translations/zh_TW.ts | 12 +-
31 files changed, 447 insertions(+), 323 deletions(-)
diff --git a/src/qt_gui/translations/ar_SA.ts b/src/qt_gui/translations/ar_SA.ts
index 7d0c15e6b..e3f9781d2 100644
--- a/src/qt_gui/translations/ar_SA.ts
+++ b/src/qt_gui/translations/ar_SA.ts
@@ -1152,10 +1152,6 @@
Unable to Saveتعذّر الحفظ
-
- Cannot bind any unique input more than once
- لا يمكن تعيين نفس الزر لأكثر من وظيفة
- Press a keyاضغط زرًا
@@ -1184,6 +1180,14 @@
Cancelإلغاء
+
+ Cannot bind any unique input more than once. Duplicate inputs mapped to the following buttons:
+
+%1
+ Cannot bind any unique input more than once. Duplicate inputs mapped to the following buttons:
+
+%1
+ MainWindow
diff --git a/src/qt_gui/translations/ca_ES.ts b/src/qt_gui/translations/ca_ES.ts
index 412cefa2c..53a7dcd5d 100644
--- a/src/qt_gui/translations/ca_ES.ts
+++ b/src/qt_gui/translations/ca_ES.ts
@@ -11,11 +11,11 @@
shadPS4 is an experimental open-source emulator for the PlayStation 4.
- shadPS4 is an experimental open-source emulator for the PlayStation 4.
+ shadPS4 és un emulador experimental de codi obert de la PlayStation 4.This software should not be used to play games you have not legally obtained.
- This software should not be used to play games you have not legally obtained.
+ Aquest programari no s'hauria de fer servir per jugar jocs que no has obtingut legalment.
@@ -26,7 +26,7 @@
Cheats/Patches are experimental.\nUse with caution.\n\nDownload cheats individually by selecting the repository and clicking the download button.\nIn the Patches tab, you can download all patches at once, choose which ones you want to use, and save your selection.\n\nSince we do not develop the Cheats/Patches,\nplease report issues to the cheat author.\n\nCreated a new cheat? Visit:\n
- Cheats/Patches are experimental.\nUse with caution.\n\nDownload cheats individually by selecting the repository and clicking the download button.\nIn the Patches tab, you can download all patches at once, choose which ones you want to use, and save your selection.\n\nSince we do not develop the Cheats/Patches,\nplease report issues to the cheat author.\n\nCreated a new cheat? Visit:\n
+ Els trucs i les correccions són experimentals.\nFes-les servir amb precaució.\n\nDescarrega trucs individualment seleccionant el repositori i clicant al botó de baixada.\nA la pestanya de correccions, et pots descarregar totes les correccions de cop, escull quines vols fer servir i desa la selecció.\n\nCom que no desenvolupem ni els trucs ni les correccions,\nhas d'informar de qualsevol problema als seus autors corresponents.\n\nHas creat un nou truc? Visita:\nNo Image Available
@@ -66,11 +66,11 @@
You can delete the cheats you don't want after downloading them.
- You can delete the cheats you don't want after downloading them.
+ Pots suprimir trucs que no vols abans de descarregar-los.Do you want to delete the selected file?\n%1
- Do you want to delete the selected file?\n%1
+ Estàs segur que vols esborrar el fitxer seleccionat?\n%1Select Patch File:
@@ -102,19 +102,19 @@
Unable to open files.json for reading.
- Unable to open files.json for reading.
+ Error en obrir fitxers .json per modificar-los.No patch file found for the current serial.
- No patch file found for the current serial.
+ No s'ha trobat fitxer de correccions pel número de sèrie actual.Unable to open the file for reading.
- Unable to open the file for reading.
+ No es pot obrir el fitxer per llegir-lo.Unable to open the file for writing.
- Unable to open the file for writing.
+ No es pot obrir el fitxer per modificar-lo.Failed to parse XML:
@@ -126,7 +126,7 @@
Options saved successfully.
- Options saved successfully.
+ Opcions desades correctament.Invalid Source
@@ -134,7 +134,7 @@
The selected source is invalid.
- The selected source is invalid.
+ La font seleccionada no és vàlida.File Exists
@@ -142,7 +142,7 @@
File already exists. Do you want to replace it?
- File already exists. Do you want to replace it?
+ Aquest fitxer ja existeix. Estàs segur que el vols reemplaçar?Failed to save file:
@@ -150,7 +150,7 @@
Failed to download file:
- Failed to download file:
+ Error en descarregar el fitxer:Cheats Not Found
@@ -158,15 +158,15 @@
No Cheats found for this game in this version of the selected repository,try another repository or a different version of the game.
- No Cheats found for this game in this version of the selected repository,try another repository or a different version of the game.
+ No s'han trobat trucs per aquest joc en aquesta versió del repositori seleccionat, prova-ho amb un altre repositori o amb una versió diferent del joc.Cheats Downloaded Successfully
- Cheats Downloaded Successfully
+ S'han descarregat els trucs correctamentYou have successfully downloaded the cheats for this version of the game from the selected repository. You can try downloading from another repository, if it is available it will also be possible to use it by selecting the file from the list.
- You have successfully downloaded the cheats for this version of the game from the selected repository. You can try downloading from another repository, if it is available it will also be possible to use it by selecting the file from the list.
+ Has descarregat correctament els trucs per aquesta versió del joc des d'aquest repositori. Pots provar de descarregar des d'un altre repositori; si està disponible, també pots seleccionar el fitxer des d'una llista.Failed to save:
@@ -182,27 +182,27 @@
Patches Downloaded Successfully! All Patches available for all games have been downloaded, there is no need to download them individually for each game as happens in Cheats. If the patch does not appear, it may be that it does not exist for the specific serial and version of the game.
- Patches Downloaded Successfully! All Patches available for all games have been downloaded, there is no need to download them individually for each game as happens in Cheats. If the patch does not appear, it may be that it does not exist for the specific serial and version of the game.
+ Has descarregat les correccions correctament! Totes les correccions disponibles per tots els jocs s'han descarregat, no cal descarregar-les individualment com passa amb els trucs. Si una correcció no apareix, pot ser que no existeixi per aquesta versió o per aquest número de sèrie del joc.Failed to parse JSON data from HTML.
- Failed to parse JSON data from HTML.
+ Error en analitzar les dades JSON del HTML.Failed to retrieve HTML page.
- Failed to retrieve HTML page.
+ Error en recuperar la pàgina HTML.The game is in version: %1
- The game is in version: %1
+ La versió del joc és: %1The downloaded patch only works on version: %1
- The downloaded patch only works on version: %1
+ La correcció descarregada només funció amb la versió: %1You may need to update your game.
- You may need to update your game.
+ Cal actualitzar el joc.Incompatibility Notice
@@ -218,7 +218,7 @@
Failed to open files.json for writing
- Failed to open files.json for writing
+ Error en obrir fitxers .json per modificar-losAuthor:
@@ -226,11 +226,11 @@
Directory does not exist:
- Directory does not exist:
+ Aquesta carpeta no existeix:Failed to open files.json for reading.
- Failed to open files.json for reading.
+ Error en obrir fitxers .json per llegir-los.Name:
@@ -238,7 +238,7 @@
Can't apply cheats before the game is started
- Can't apply cheats before the game is started
+ No es poden aplicar trucs abans que s'iniciï el jocClose
@@ -261,11 +261,11 @@
The Auto Updater allows up to 60 update checks per hour.\nYou have reached this limit. Please try again later.
- The Auto Updater allows up to 60 update checks per hour.\nYou have reached this limit. Please try again later.
+ L'actualització automàtica permet fer 60 comprovacions cada hora.\nTu has arribat a aquest límit. Torna a intentar-ho més tard.Failed to parse update information.
- Failed to parse update information.
+ Error en analitzar la informació de l'actualització.No pre-releases found.
@@ -277,11 +277,11 @@
No download URL found for the specified asset.
- No download URL found for the specified asset.
+ No s'ha trobat la direcció web de descàrrega.Your version is already up to date!
- Your version is already up to date!
+ La teva versió ja és la més actualitzada!Update Available
@@ -309,7 +309,7 @@
Check for Updates at Startup
- Check for Updates at Startup
+ Comprova les actualitzacions a l'iniciUpdate
@@ -329,7 +329,7 @@
Network error occurred while trying to access the URL
- Network error occurred while trying to access the URL
+ S'ha produït un error de xarxa en intentar connectar a l'adreça webDownload Complete
@@ -337,11 +337,11 @@
The update has been downloaded, press OK to install.
- The update has been downloaded, press OK to install.
+ S'ha baixat l'actualització, clica OK per instal·lar-la.Failed to save the update file at
- Failed to save the update file at
+ Error en desar el fitxer d'actualització aStarting Update...
@@ -349,14 +349,14 @@
Failed to create the update script file
- Failed to create the update script file
+ Error en crear el fitxer de script d'actualitzacióCompatibilityInfoClassFetching compatibility data, please wait
- Fetching compatibility data, please wait
+ Obtenint dades de compatibilitat, espera si us plauCancel
@@ -372,11 +372,11 @@
Unable to update compatibility data! Try again later.
- Unable to update compatibility data! Try again later.
+ No s'ha pogut actualitzar les dades de compatibilitat! Prova-ho més tard.Unable to open compatibility_data.json for writing.
- Unable to open compatibility_data.json for writing.
+ No es pot obrir el fitxer compatibility_data.json per modificar-lo.Unknown
@@ -431,7 +431,7 @@
Left Stick Deadzone (def:2 max:127)
- Left Stick Deadzone (def:2 max:127)
+ Zona morta de la palanca esquerra (per defecte:2 màxim:127)Left Deadzone
@@ -507,7 +507,7 @@
Right Stick Deadzone (def:2, max:127)
- Right Stick Deadzone (def:2, max:127)
+ Zona morta de la palanca dreta (per defecte:2 màxim:127)Right Deadzone
@@ -535,7 +535,7 @@
Override Lightbar Color
- Override Lightbar Color
+ Canvia el color de la barra de llumOverride Color
@@ -547,7 +547,7 @@
Cannot bind axis values more than once
- Cannot bind axis values more than once
+ No es pot vincular els valors de l'eix més d'una vegadaSave
@@ -570,7 +570,7 @@
EditorDialogEdit Keyboard + Mouse and Controller input bindings
- Edit Keyboard + Mouse and Controller input bindings
+ Edita les assignacions del teclat, ratolí i controladorUse Per-Game configs
@@ -582,11 +582,11 @@
Could not open the file for reading
- Could not open the file for reading
+ No es pot obrir el fitxer per llegir-loCould not open the file for writing
- Could not open the file for writing
+ No es pot obrir el fitxer per modificar-loSave Changes
@@ -594,7 +594,7 @@
Do you want to save changes?
- Do you want to save changes?
+ Voleu desar els canvis?Help
@@ -602,11 +602,11 @@
Do you want to reset your custom default config to the original default config?
- Do you want to reset your custom default config to the original default config?
+ Vols reiniciar la configuració personalitzada a la configuració original per defecte?Do you want to reset this config to your custom default config?
- Do you want to reset this config to your custom default config?
+ Vols reiniciar aquesta configuració a la configuració personalitzada per defecte?Reset to Default
@@ -624,7 +624,7 @@
GameInfoClassLoading game list, please wait :3
- Loading game list, please wait :3
+ Carregant la llista de jocs, espera si us plau :3Cancel
@@ -639,11 +639,11 @@
GameInstallDialogshadPS4 - Choose directory
- shadPS4 - Choose directory
+ shadPS4 - Selecciona carpetaDirectory to install games
- Directory to install games
+ Carpeta per instal·lar jocsBrowse
@@ -655,7 +655,7 @@
Directory to install DLC
- Directory to install DLC
+ Carpeta per instal·lar DLC
@@ -718,31 +718,31 @@
Compatibility is untested
- Compatibility is untested
+ No s'ha provat la compatibilitatGame does not initialize properly / crashes the emulator
- Game does not initialize properly / crashes the emulator
+ El joc no s'inicialitza correctament / l'emulador fa fallidaGame boots, but only displays a blank screen
- Game boots, but only displays a blank screen
+ El joc s'inicia, però es queda en blancGame displays an image but does not go past the menu
- Game displays an image but does not go past the menu
+ El joc mostra imatges, però no es pot anar més enllà dels menúsGame has game-breaking glitches or unplayable performance
- Game has game-breaking glitches or unplayable performance
+ El joc té errors greus o un rendiment que no el fa jugableGame can be completed with playable performance and no major glitches
- Game can be completed with playable performance and no major glitches
+ El joc pot ser completat amb un rendiment jugable i amb pocs errors greusClick to see details on github
- Click to see details on github
+ Clica per veure els detalls a githubLast updated
@@ -872,7 +872,7 @@
Shortcut created successfully!
- Shortcut created successfully!
+ S'ha creat la drecera correctament!Error
@@ -880,7 +880,7 @@
Error creating shortcut!
- Error creating shortcut!
+ Error en crear la drecera!Game
@@ -888,7 +888,7 @@
This game has no update to delete!
- This game has no update to delete!
+ Aquest joc no té una actualització per esborrar!Update
@@ -896,7 +896,7 @@
This game has no DLC to delete!
- This game has no DLC to delete!
+ Aquest joc no té un DLC per esborrar!DLC
@@ -908,7 +908,7 @@
Are you sure you want to delete %1's %2 directory?
- Are you sure you want to delete %1's %2 directory?
+ Estàs segur que vols eliminar la carpeta %1 de %2?Open Update Folder
@@ -920,23 +920,23 @@
This game has no update folder to open!
- This game has no update folder to open!
+ Aquest joc no té carpeta d'actualització per obrir!No log file found for this game!
- No log file found for this game!
+ No s'ha trobat fitxer de registre per aquest joc!Failed to convert icon.
- Failed to convert icon.
+ Error en convertir la icona.This game has no save data to delete!
- This game has no save data to delete!
+ Aquest joc no té dades desades per esborrar!This game has no saved trophies to delete!
- This game has no saved trophies to delete!
+ Aquest joc no té trofeus desats per esborrar!Save Data
@@ -1010,7 +1010,7 @@
hold to move left stick at half-speed
- hold to move left stick at half-speed
+ manté per moure la palanca esquerra a mitja velocitatLeft Stick
@@ -1066,7 +1066,7 @@
*press F7 ingame to activate
- *press F7 ingame to activate
+ Pressiona F7 durant el joc per activarR3
@@ -1078,11 +1078,11 @@
Mouse Movement Parameters
- Mouse Movement Parameters
+ Paràmetres de moviment del ratolínote: click Help Button/Special Keybindings for more information
- note: click Help Button/Special Keybindings for more information
+ nota: clica al botó Ajuda/Assignació de tecles especials per més informacióFace Buttons
@@ -1110,7 +1110,7 @@
hold to move right stick at half-speed
- hold to move right stick at half-speed
+ manté per moure la palanca dreta a mitja velocitatRight Stick
@@ -1118,19 +1118,19 @@
Speed Offset (def 0.125):
- Speed Offset (def 0.125):
+ Compensació de velocitat (0,125 per defecte):Copy from Common Config
- Copy from Common Config
+ Copia de la configuració estàndardDeadzone Offset (def 0.50):
- Deadzone Offset (def 0.50):
+ Desplaçament de zona morta (0,50 per defecte):Speed Multiplier (def 1.0):
- Speed Multiplier (def 1.0):
+ Multiplicador de velocitat (1,0 per defecte):Common Config Selected
@@ -1138,24 +1138,20 @@
This button copies mappings from the Common Config to the currently selected profile, and cannot be used when the currently selected profile is the Common Config.
- This button copies mappings from the Common Config to the currently selected profile, and cannot be used when the currently selected profile is the Common Config.
+ Aquest botó copia les assignacions de la configuració comuna al perfil seleccionat, i no es pot utilitzar si has seleccionat el perfil de la configuració comuna.Copy values from Common Config
- Copy values from Common Config
+ Copia els valors de la configuració estàndardDo you want to overwrite existing mappings with the mappings from the Common Config?
- Do you want to overwrite existing mappings with the mappings from the Common Config?
+ Vols sobreescriure l'assignació actual amb l'assignació de la configuració comuna?Unable to SaveNo s'ha pogut desar
-
- Cannot bind any unique input more than once
- Cannot bind any unique input more than once
- Press a keyPremeu una tecla
@@ -1166,7 +1162,7 @@
Mousewheel cannot be mapped to stick outputs
- Mousewheel cannot be mapped to stick outputs
+ La roda del ratolí no es pot assignar a les palanquesSave
@@ -1184,6 +1180,14 @@
CancelCancel·la
+
+ Cannot bind any unique input more than once. Duplicate inputs mapped to the following buttons:
+
+%1
+ Cannot bind any unique input more than once. Duplicate inputs mapped to the following buttons:
+
+%1
+ MainWindow
@@ -1269,7 +1273,7 @@
Download Cheats/Patches
- Download Cheats/Patches
+ Descarrega Trucs/CorreccionsDump Game List
@@ -1281,7 +1285,7 @@
No games found. Please add your games to your library first.
- No games found. Please add your games to your library first.
+ No s'han trobat jocs. Primer afegeix els teus jocs a la llibreria, si us plau.Search...
@@ -1349,11 +1353,11 @@
Download Cheats For All Installed Games
- Download Cheats For All Installed Games
+ Descarrega els trucs per tots els jocs instal·latsDownload Patches For All Games
- Download Patches For All Games
+ Descarrega les correccions per tots els jocsDownload Complete
@@ -1361,15 +1365,15 @@
You have downloaded cheats for all the games you have installed.
- You have downloaded cheats for all the games you have installed.
+ Has descarregat trucs per tots els jocs que tens instal·lats.Patches Downloaded Successfully!
- Patches Downloaded Successfully!
+ S'han descarregat les correccions correctament!All Patches available for all games have been downloaded.
- All Patches available for all games have been downloaded.
+ S'han descarregat totes les correccions disponibles de tots els jocs.Games:
@@ -1377,7 +1381,7 @@
ELF files (*.bin *.elf *.oelf)
- ELF files (*.bin *.elf *.oelf)
+ Fitxers ELF (*.bin *.elf *.oelf)Game Boot
@@ -1385,7 +1389,7 @@
Only one file can be selected!
- Only one file can be selected!
+ Només es pot seleccionar un fitxer!Run Game
@@ -1393,11 +1397,11 @@
Eboot.bin file not found
- Eboot.bin file not found
+ No s'ha trobat el fitxer Eboot.binGame is already running!
- Game is already running!
+ El joc ja està en funcionament!shadPS4
@@ -1441,7 +1445,7 @@
Show Labels Under Icons
- Show Labels Under Icons
+ Mostra les etiquetes sota les icones
@@ -1472,7 +1476,7 @@
Default tab when opening settings
- Default tab when opening settings
+ Pestanya predeterminada en obrir la configuracióShow Game Size In List
@@ -1484,7 +1488,7 @@
Enable Discord Rich Presence
- Enable Discord Rich Presence
+ Activa la Discord Rich PresenceUsername
@@ -1500,7 +1504,7 @@
Open the custom trophy images/sounds folder
- Open the custom trophy images/sounds folder
+ Obre la carpeta de trofeus/sons personalitzatsLogger
@@ -1532,7 +1536,7 @@
Hide Cursor Idle Timeout
- Hide Cursor Idle Timeout
+ Temps d'espera per ocultar el ratolís
@@ -1608,19 +1612,19 @@
Enable Vulkan Validation Layers
- Enable Vulkan Validation Layers
+ Activa les capes de validació de VulkanEnable Vulkan Synchronization Validation
- Enable Vulkan Synchronization Validation
+ Activa la validació de sincronització de VulkanEnable RenderDoc Debugging
- Enable RenderDoc Debugging
+ Habilita la depuració de RenderDocEnable Crash Diagnostics
- Enable Crash Diagnostics
+ Habilita el diagnòstic d'errorsCollect Shaders
@@ -1644,7 +1648,7 @@
Check for Updates at Startup
- Check for Updates at Startup
+ Comprova les actualitzacions a l'iniciAlways Show Changelog
@@ -1668,7 +1672,7 @@
Disable Trophy Notification
- Disable Trophy Notification
+ Desactiva les notificacions de trofeusBackground Image
@@ -1688,7 +1692,7 @@
Update Compatibility Database On Startup
- Update Compatibility Database On Startup
+ Actualitza la base de dades de compatibilitat a l'iniciGame Compatibility
@@ -1696,11 +1700,11 @@
Display Compatibility Data
- Display Compatibility Data
+ Mostra les dades de compatibilitatUpdate Compatibility Database
- Update Compatibility Database
+ S'ha actualitzat la base de dades de compatibilitatVolume
@@ -1724,79 +1728,79 @@
Point your mouse at an option to display its description.
- Point your mouse at an option to display its description.
+ Mou el ratolí sobre una opció per mostrar una descripció.Console Language:\nSets the language that the PS4 game uses.\nIt's recommended to set this to a language the game supports, which will vary by region.
- Console Language:\nSets the language that the PS4 game uses.\nIt's recommended to set this to a language the game supports, which will vary by region.
+ Idioma de la consola:\nEstableix l'idioma que la consola PS4 fa servir.\nEs recomana seleccionar un idioma que el joc suporti, que pot variar en funció de la regió.Emulator Language:\nSets the language of the emulator's user interface.
- Emulator Language:\nSets the language of the emulator's user interface.
+ Idioma de l'emulador:\nSelecciona l'idioma de l'interfície d'usuari de l'emulador.Show Splash Screen:\nShows the game's splash screen (a special image) while the game is starting.
- Show Splash Screen:\nShows the game's splash screen (a special image) while the game is starting.
+ Mostra la pantalla d'inici:\nMostra la pantalla d'inici del joc (una imatge especial) mentre el joc s'està iniciant.Enable Discord Rich Presence:\nDisplays the emulator icon and relevant information on your Discord profile.
- Enable Discord Rich Presence:\nDisplays the emulator icon and relevant information on your Discord profile.
+ Activa Discord Rich Presence:\nMostra la icona de l'emulador i informació rellevant en el teu perfil de Discord.Username:\nSets the PS4's account username, which may be displayed by some games.
- Username:\nSets the PS4's account username, which may be displayed by some games.
+ Nom d'usuari:\nProveeix el nom d'usuari del compte de PS4, que es farà servir i es veurà en alguns jocs.Trophy Key:\nKey used to decrypt trophies. Must be obtained from your jailbroken console.\nMust contain only hex characters.
- Trophy Key:\nKey used to decrypt trophies. Must be obtained from your jailbroken console.\nMust contain only hex characters.
+ Clau de trofeus:\nClau que es fa servir per desxifrar trofeus. Cal obtenir-la de la teva consola desbloquejada.\nAcostuma a tenir caràcters hexadecimals.Log Type:\nSets whether to synchronize the output of the log window for performance. May have adverse effects on emulation.
- Log Type:\nSets whether to synchronize the output of the log window for performance. May have adverse effects on emulation.
+ Tipus de registre:\nEstableix si sincronitza la sortida de la finestra de registre per millorar el rendiment. Pot tenir reaccions adverses en el rendiment.Log Filter:\nFilters the log to only print specific information.\nExamples: "Core:Trace" "Lib.Pad:Debug Common.Filesystem:Error" "*:Critical"\nLevels: Trace, Debug, Info, Warning, Error, Critical - in this order, a specific level silences all levels preceding it in the list and logs every level after it.
- Log Filter:\nFilters the log to only print specific information.\nExamples: "Core:Trace" "Lib.Pad:Debug Common.Filesystem:Error" "*:Critical"\nLevels: Trace, Debug, Info, Warning, Error, Critical - in this order, a specific level silences all levels preceding it in the list and logs every level after it.
+ Filtre del registre:\nFiltra el registre per mostrar només la informació especificada.\nExemples: "Core:Trace" "Lib.Pad:Debug Common.Filesystem:Error" "*:Critical"\nNivells: Trace, Debug, Info, Warning, Error, Critical - en aquest ordre, un nivell específic silencia tots els nivells precedents de la llista i mostra només els nivells posteriors.Update:\nRelease: Official versions released every month that may be very outdated, but are more reliable and tested.\nNightly: Development versions that have all the latest features and fixes, but may contain bugs and are less stable.
- Update:\nRelease: Official versions released every month that may be very outdated, but are more reliable and tested.\nNightly: Development versions that have all the latest features and fixes, but may contain bugs and are less stable.
+ Actualització:\nEstables: Versions oficials llançades cada mes que poden estar desactualitzades, però que són més resistents i estan més provades.\nDiàries: Versions de desenvolupament que tenen totes les últimes funcions i correccions, però poden contenir errors i son menys estables.Background Image:\nControl the opacity of the game background image.
- Background Image:\nControl the opacity of the game background image.
+ Imatge de fons:\nControla la opacitat de la imatge de fons del joc.Play Title Music:\nIf a game supports it, enable playing special music when selecting the game in the GUI.
- Play Title Music:\nIf a game supports it, enable playing special music when selecting the game in the GUI.
+ Reprodueix música del títol:\nSi el joc la conté, reprodueix la música del títol si es selecciona el joc a l'interfície gràfica.Disable Trophy Pop-ups:\nDisable in-game trophy notifications. Trophy progress can still be tracked using the Trophy Viewer (right-click the game in the main window).
- Disable Trophy Pop-ups:\nDisable in-game trophy notifications. Trophy progress can still be tracked using the Trophy Viewer (right-click the game in the main window).
+ Desactiva les notificacions de trofeus:\nDesactiva les notificacions de trofeus en el joc. El progrés en els trofeus es pot seguir en el visualitzador de trofeus (clicant botó dret del ratolí a la finestra principal).Hide Cursor:\nChoose when the cursor will disappear:\nNever: You will always see the mouse.\nidle: Set a time for it to disappear after being idle.\nAlways: you will never see the mouse.
- Hide Cursor:\nChoose when the cursor will disappear:\nNever: You will always see the mouse.\nidle: Set a time for it to disappear after being idle.\nAlways: you will never see the mouse.
+ Oculta el ratolí:\nSelecciona quan s'ocultarà el ratolí.\nMai: El ratolí serà sempre visible.\nInactiu: Estableix un temps perquè s'oculti el ratolí si està inactiu.\nSempre: El ratolí estarà sempre ocult.Hide Idle Cursor Timeout:\nThe duration (seconds) after which the cursor that has been idle hides itself.
- Hide Idle Cursor Timeout:\nThe duration (seconds) after which the cursor that has been idle hides itself.
+ Temps d'espera per ocultar el ratolí:\nLa duració (en segons) després de la qual el ratolí s'amaga si es troba inactiu.Back Button Behavior:\nSets the controller's back button to emulate tapping the specified position on the PS4 touchpad.
- Back Button Behavior:\nSets the controller's back button to emulate tapping the specified position on the PS4 touchpad.
+ Comportament del botó posterior:\nEstableix el botó posterior del controlador per simular el toc en una posició especificada del touchpad de PS4.Display Compatibility Data:\nDisplays game compatibility information in table view. Enable "Update Compatibility On Startup" to get up-to-date information.
- Display Compatibility Data:\nDisplays game compatibility information in table view. Enable "Update Compatibility On Startup" to get up-to-date information.
+ Mostra les dades de compatibilitat:\nMostra informació sobre la compatibilitat a la vista de graella. Pots activar l'actualització de compatibilitat a l'inici per obtenir més informació actualitzada.Update Compatibility On Startup:\nAutomatically update the compatibility database when shadPS4 starts.
- Update Compatibility On Startup:\nAutomatically update the compatibility database when shadPS4 starts.
+ Actualitza la compatibilitat a l'inici:\nActualitza automàticament la base de dades de compatibilitat quan s'inicia shadPS4.Update Compatibility Database:\nImmediately update the compatibility database.
- Update Compatibility Database:\nImmediately update the compatibility database.
+ Base de dades de compatibilitat:\nActualitza immediatament la base de dades de compatibilitat.Never
@@ -1828,83 +1832,83 @@
Graphics Device:\nOn multiple GPU systems, select the GPU the emulator will use from the drop down list,\nor select "Auto Select" to automatically determine it.
- Graphics Device:\nOn multiple GPU systems, select the GPU the emulator will use from the drop down list,\nor select "Auto Select" to automatically determine it.
+ Dispositiu de gràfics:\nEn sistemes amb múltiples targetes gràfiques, selecciona la targeta gràfica que farà servir l'emulador de la llista,\n o clica a "Selecció automàtica" per determinar-la automàticament.Width/Height:\nSets the size of the emulator window at launch, which can be resized during gameplay.\nThis is different from the in-game resolution.
- Width/Height:\nSets the size of the emulator window at launch, which can be resized during gameplay.\nThis is different from the in-game resolution.
+ Amplada/Alçada:\nEstableix les mides de la finestra de l'emulador quan s'inicia, durant el joc es pot canviar la mida.\nAixò és diferent que la resolució del joc.Vblank Divider:\nThe frame rate at which the emulator refreshes at is multiplied by this number. Changing this may have adverse effects, such as increasing the game speed, or breaking critical game functionality that does not expect this to change!
- Vblank Divider:\nThe frame rate at which the emulator refreshes at is multiplied by this number. Changing this may have adverse effects, such as increasing the game speed, or breaking critical game functionality that does not expect this to change!
+ Divisor Vblank:\nLa taxa de fotogrames a la qual s'actualitza l'emulador és multiplicada per aquest valor. Canviar aquest valor pot tenir reaccions adverses, com incrementar la velocitat del joc, o trencar alguna funcionalitat crítica del joc que no s'espera aquest canvi.Enable Shaders Dumping:\nFor the sake of technical debugging, saves the games shaders to a folder as they render.
- Enable Shaders Dumping:\nFor the sake of technical debugging, saves the games shaders to a folder as they render.
+ Activa els abocats de shaders:\nPer la millora de la depuració tècnica, desa els shaders del joc en una carpeta mentre es renderitzen.Enable Null GPU:\nFor the sake of technical debugging, disables game rendering as if there were no graphics card.
- Enable Null GPU:\nFor the sake of technical debugging, disables game rendering as if there were no graphics card.
+ Habilita GPU Nul·la:\nPer la millora de la depuració tècnica, desactiva el renderitzat del joc si no hi ha una targeta gràfica.Enable HDR:\nEnables HDR in games that support it.\nYour monitor must have support for the BT2020 PQ color space and the RGB10A2 swapchain format.
- Enable HDR:\nEnables HDR in games that support it.\nYour monitor must have support for the BT2020 PQ color space and the RGB10A2 swapchain format.
+ Activa HDR:\nActiva HDR els jocs que ho suporten.\nEl teu monitor ha de donar suport a l'espai de color BT2020 PQ i al format de cadena d'intercanvi RGB10A2.Game Folders:\nThe list of folders to check for installed games.
- Game Folders:\nThe list of folders to check for installed games.
+ Carpetes de joc:\nLa llista de carpetes on comprovar si hi ha jocs instal·lats.Add:\nAdd a folder to the list.
- Add:\nAdd a folder to the list.
+ Afegeix:\nAfegeix una carpeta a la llista.Remove:\nRemove a folder from the list.
- Remove:\nRemove a folder from the list.
+ Elimina:\nElimina la carpeta de la llista.Enable Debug Dumping:\nSaves the import and export symbols and file header information of the currently running PS4 program to a directory.
- Enable Debug Dumping:\nSaves the import and export symbols and file header information of the currently running PS4 program to a directory.
+ Activa l'abocat de depuració:\nDesa els símbols d'importació i exportació i la informació de l'encapçalament del fitxer de programa de PS4 que s'està executant ara mateix.Enable Vulkan Validation Layers:\nEnables a system that validates the state of the Vulkan renderer and logs information about its internal state.\nThis will reduce performance and likely change the behavior of emulation.
- Enable Vulkan Validation Layers:\nEnables a system that validates the state of the Vulkan renderer and logs information about its internal state.\nThis will reduce performance and likely change the behavior of emulation.
+ Activa les capes de validació de Vulkan:\nActiva un sistema que valida l'estat del renderitzador de Vulkan i registra informació sobre el seu ús intern.\nAixò redueix el rendiment i pot canviar el comportament de l'emulador.Enable Vulkan Synchronization Validation:\nEnables a system that validates the timing of Vulkan rendering tasks.\nThis will reduce performance and likely change the behavior of emulation.
- Enable Vulkan Synchronization Validation:\nEnables a system that validates the timing of Vulkan rendering tasks.\nThis will reduce performance and likely change the behavior of emulation.
+ Activa la validació de sincronització de Vulkan:\nActiva un sistema que valida la sincronització de Vulkan en les tasques de renderització.\nAixò pot reduir el rendiment i pot canviar el comportament de l'emulació.Enable RenderDoc Debugging:\nIf enabled, the emulator will provide compatibility with Renderdoc to allow capture and analysis of the currently rendered frame.
- Enable RenderDoc Debugging:\nIf enabled, the emulator will provide compatibility with Renderdoc to allow capture and analysis of the currently rendered frame.
+ Activa la depuració RenderDoc:\nSi aquesta opció està activada, l'emulador tindrà compatibilitat amb RenderDoc per permetre capturar i analitzar els fotogrames renderitzats.Collect Shaders:\nYou need this enabled to edit shaders with the debug menu (Ctrl + F10).
- Collect Shaders:\nYou need this enabled to edit shaders with the debug menu (Ctrl + F10).
+ Recopilar shaders:\nHas de tenir activada aquesta opció per editar els shaders amb el menú de depurador (Ctrl + F10).Crash Diagnostics:\nCreates a .yaml file with info about the Vulkan state at the time of crashing.\nUseful for debugging 'Device lost' errors. If you have this enabled, you should enable Host AND Guest Debug Markers.\nDoes not work on Intel GPUs.\nYou need Vulkan Validation Layers enabled and the Vulkan SDK for this to work.
- Crash Diagnostics:\nCreates a .yaml file with info about the Vulkan state at the time of crashing.\nUseful for debugging 'Device lost' errors. If you have this enabled, you should enable Host AND Guest Debug Markers.\nDoes not work on Intel GPUs.\nYou need Vulkan Validation Layers enabled and the Vulkan SDK for this to work.
+ Diagnòstiques de fallides:\nCrea un fitxer .yaml amb informació sobre l'estat de Vulkan en el moment de fer fallida.\nÉs útil per depurar errors del tipus 'Dispositiu perdut'. Si aquesta opció està activada, caldria activar els marcadors de depuració de convidat.\nNo funciona en les targetes gràfiques de Intel.\nCal activar la validació de capes de Vulkan i el SDK de Vulkan perquè funcioni.Copy GPU Buffers:\nGets around race conditions involving GPU submits.\nMay or may not help with PM4 type 0 crashes.
- Copy GPU Buffers:\nGets around race conditions involving GPU submits.\nMay or may not help with PM4 type 0 crashes.
+ Copia la memòria intermèdia de la GPU:\nEvita les condicions de carrera que impliquen més enviaments a la targeta gràfica.\nPot ajudar o no amb fer fallida del tipus 0 de PM4.Host Debug Markers:\nInserts emulator-side information like markers for specific AMDGPU commands around Vulkan commands, as well as giving resources debug names.\nIf you have this enabled, you should enable Crash Diagnostics.\nUseful for programs like RenderDoc.
- Host Debug Markers:\nInserts emulator-side information like markers for specific AMDGPU commands around Vulkan commands, as well as giving resources debug names.\nIf you have this enabled, you should enable Crash Diagnostics.\nUseful for programs like RenderDoc.
+ Marcadors de depuració de convidat:\nInsereix informació des de l'emulador com marcadors específics de les targetes gràfiques AMB sobre les comandes Vulkan, així com proporcionar noms de depuració.\nSi aquesta opció està activada, caldria activar el diagnòstic d'errors.\nÉs útil per aplicacions com RenderDoc.Guest Debug Markers:\nInserts any debug markers the game itself has added to the command buffer.\nIf you have this enabled, you should enable Crash Diagnostics.\nUseful for programs like RenderDoc.
- Guest Debug Markers:\nInserts any debug markers the game itself has added to the command buffer.\nIf you have this enabled, you should enable Crash Diagnostics.\nUseful for programs like RenderDoc.
+ Marcadors de depuració de convidat:\nInsereix qualsevol marcador que el joc ha afegit a la memòria intermèdia de les comandes.\nSi està activada aquesta opció, caldria activar el diagnòstic d'errors.\nÉs útil per aplicacions com RenderDoc.Save Data Path:\nThe folder where game save data will be saved.
- Save Data Path:\nThe folder where game save data will be saved.
+ Carpeta de dades desades:\nLa carpeta on es desaran les dades el joc.Browse:\nBrowse for a folder to set as the save data path.
- Browse:\nBrowse for a folder to set as the save data path.
+ Navegador:\nCerca una carpeta que serà assignada com la carpeta de dades desades.Release
@@ -1916,7 +1920,7 @@
Set the volume of the background music.
- Set the volume of the background music.
+ Selecciona el volum de la música de fons.Enable Motion Controls
@@ -1944,11 +1948,11 @@
Directory to install games
- Directory to install games
+ Carpeta per instal·lar jocsDirectory to save data
- Directory to save data
+ Carpeta de les dades desadesVideo
@@ -1968,7 +1972,7 @@
Fullscreen (Borderless)
- Fullscreen (Borderless)
+ Pantalla completa (Sense vores)Window Size
@@ -1988,11 +1992,11 @@
Separate Log Files:\nWrites a separate logfile for each game.
- Separate Log Files:\nWrites a separate logfile for each game.
+ Fitxers de registre independents:\nFes servir un fitxer de registre separat per cada joc.Trophy Notification Position
- Trophy Notification Position
+ Posició de les notificacions de trofeusLeft
@@ -2020,15 +2024,15 @@
Create Portable User Folder from Common User Folder
- Create Portable User Folder from Common User Folder
+ Crea la carpeta d'usuari portàtil a partir de la carpeta d'usuari estàndardPortable user folder:\nStores shadPS4 settings and data that will be applied only to the shadPS4 build located in the current folder. Restart the app after creating the portable user folder to begin using it.
- Portable user folder:\nStores shadPS4 settings and data that will be applied only to the shadPS4 build located in the current folder. Restart the app after creating the portable user folder to begin using it.
+ Carpeta d'usuari portàtil:\nDesa la configuració i les dades de shadPS4 en la carpeta actual. Reinicia shadPS4 després de crear la carpeta d'usuari portàtil per començar a fer-la servir.Cannot create portable user folder
- Cannot create portable user folder
+ No s'ha pogut crear la carpeta d'usuari portàtil%1 already exists
@@ -2036,19 +2040,19 @@
Portable user folder created
- Portable user folder created
+ S'ha creat la carpeta d'usuari portàtil%1 successfully created.
- %1 successfully created.
+ %1 s'ha creat correctament.Open the custom trophy images/sounds folder:\nYou can add custom images to the trophies and an audio.\nAdd the files to custom_trophy with the following names:\ntrophy.wav OR trophy.mp3, bronze.png, gold.png, platinum.png, silver.png\nNote: The sound will only work in QT versions.
- Open the custom trophy images/sounds folder:\nYou can add custom images to the trophies and an audio.\nAdd the files to custom_trophy with the following names:\ntrophy.wav OR trophy.mp3, bronze.png, gold.png, platinum.png, silver.png\nNote: The sound will only work in QT versions.
+ Obre la carpeta de trofeus/sons personalitzats.\nPots afegir imatges i sons personalitzats als trofeus.\nAfeigeix els fitxers com custom_trophy amb els següents noms:\ntrophy.wav o trophy.mp3, bronze.png, gold.png, platinum.png, silver.png\nNota: El so només funcionarà en les versions QT. * Unsupported Vulkan Version
- * Unsupported Vulkan Version
+ Versió de Vulkan no suportada
@@ -2071,7 +2075,7 @@
Show Not Earned Trophies
- Show Not Earned Trophies
+ Mostra els trofeus no aconseguitsShow Hidden Trophies
diff --git a/src/qt_gui/translations/da_DK.ts b/src/qt_gui/translations/da_DK.ts
index 1023c584b..120797aa9 100644
--- a/src/qt_gui/translations/da_DK.ts
+++ b/src/qt_gui/translations/da_DK.ts
@@ -1152,10 +1152,6 @@
Unable to SaveUnable to Save
-
- Cannot bind any unique input more than once
- Cannot bind any unique input more than once
- Press a keyPress a key
@@ -1184,6 +1180,14 @@
CancelCancel
+
+ Cannot bind any unique input more than once. Duplicate inputs mapped to the following buttons:
+
+%1
+ Cannot bind any unique input more than once. Duplicate inputs mapped to the following buttons:
+
+%1
+ MainWindow
diff --git a/src/qt_gui/translations/de_DE.ts b/src/qt_gui/translations/de_DE.ts
index 1d44eb717..3177be4ff 100644
--- a/src/qt_gui/translations/de_DE.ts
+++ b/src/qt_gui/translations/de_DE.ts
@@ -1152,10 +1152,6 @@
Unable to SaveSpeichern nicht möglich
-
- Cannot bind any unique input more than once
- Kann keine eindeutige Eingabe mehr als einmal zuordnen
- Press a keyDrücken Sie eine Taste
@@ -1184,6 +1180,14 @@
CancelAbbrechen
+
+ Cannot bind any unique input more than once. Duplicate inputs mapped to the following buttons:
+
+%1
+ Cannot bind any unique input more than once. Duplicate inputs mapped to the following buttons:
+
+%1
+ MainWindow
diff --git a/src/qt_gui/translations/el_GR.ts b/src/qt_gui/translations/el_GR.ts
index 765185c9e..aed2b3b2c 100644
--- a/src/qt_gui/translations/el_GR.ts
+++ b/src/qt_gui/translations/el_GR.ts
@@ -1152,10 +1152,6 @@
Unable to SaveUnable to Save
-
- Cannot bind any unique input more than once
- Cannot bind any unique input more than once
- Press a keyPress a key
@@ -1184,6 +1180,14 @@
CancelCancel
+
+ Cannot bind any unique input more than once. Duplicate inputs mapped to the following buttons:
+
+%1
+ Cannot bind any unique input more than once. Duplicate inputs mapped to the following buttons:
+
+%1
+ MainWindow
diff --git a/src/qt_gui/translations/es_ES.ts b/src/qt_gui/translations/es_ES.ts
index 9568388cc..f5a268da3 100644
--- a/src/qt_gui/translations/es_ES.ts
+++ b/src/qt_gui/translations/es_ES.ts
@@ -1152,10 +1152,6 @@
Unable to SaveNo se Pudo Guardar
-
- Cannot bind any unique input more than once
- No se puede vincular ninguna entrada única más de una vez
- Press a keyPulsa una tecla
@@ -1184,6 +1180,14 @@
CancelCancelar
+
+ Cannot bind any unique input more than once. Duplicate inputs mapped to the following buttons:
+
+%1
+ Cannot bind any unique input more than once. Duplicate inputs mapped to the following buttons:
+
+%1
+ MainWindow
diff --git a/src/qt_gui/translations/fa_IR.ts b/src/qt_gui/translations/fa_IR.ts
index 115632444..a21f6e0d2 100644
--- a/src/qt_gui/translations/fa_IR.ts
+++ b/src/qt_gui/translations/fa_IR.ts
@@ -1152,10 +1152,6 @@
Unable to SaveUnable to Save
-
- Cannot bind any unique input more than once
- Cannot bind any unique input more than once
- Press a keyPress a key
@@ -1184,6 +1180,14 @@
CancelCancel
+
+ Cannot bind any unique input more than once. Duplicate inputs mapped to the following buttons:
+
+%1
+ Cannot bind any unique input more than once. Duplicate inputs mapped to the following buttons:
+
+%1
+ MainWindow
diff --git a/src/qt_gui/translations/fi_FI.ts b/src/qt_gui/translations/fi_FI.ts
index c77c63b3e..25104fa40 100644
--- a/src/qt_gui/translations/fi_FI.ts
+++ b/src/qt_gui/translations/fi_FI.ts
@@ -1152,10 +1152,6 @@
Unable to SaveUnable to Save
-
- Cannot bind any unique input more than once
- Cannot bind any unique input more than once
- Press a keyPress a key
@@ -1184,6 +1180,14 @@
CancelCancel
+
+ Cannot bind any unique input more than once. Duplicate inputs mapped to the following buttons:
+
+%1
+ Cannot bind any unique input more than once. Duplicate inputs mapped to the following buttons:
+
+%1
+ MainWindow
diff --git a/src/qt_gui/translations/fr_FR.ts b/src/qt_gui/translations/fr_FR.ts
index 75e424ad0..a9b434579 100644
--- a/src/qt_gui/translations/fr_FR.ts
+++ b/src/qt_gui/translations/fr_FR.ts
@@ -1152,10 +1152,6 @@
Unable to SaveImpossible de sauvegarder
-
- Cannot bind any unique input more than once
- Impossible de lier une entrée unique plus d'une fois
- Press a keyAppuyez sur un bouton
@@ -1184,6 +1180,14 @@
CancelAnnuler
+
+ Cannot bind any unique input more than once. Duplicate inputs mapped to the following buttons:
+
+%1
+ Cannot bind any unique input more than once. Duplicate inputs mapped to the following buttons:
+
+%1
+ MainWindow
diff --git a/src/qt_gui/translations/hu_HU.ts b/src/qt_gui/translations/hu_HU.ts
index e396cc4f5..834ecd71a 100644
--- a/src/qt_gui/translations/hu_HU.ts
+++ b/src/qt_gui/translations/hu_HU.ts
@@ -1152,10 +1152,6 @@
Unable to SaveUnable to Save
-
- Cannot bind any unique input more than once
- Cannot bind any unique input more than once
- Press a keyPress a key
@@ -1184,6 +1180,14 @@
CancelCancel
+
+ Cannot bind any unique input more than once. Duplicate inputs mapped to the following buttons:
+
+%1
+ Cannot bind any unique input more than once. Duplicate inputs mapped to the following buttons:
+
+%1
+ MainWindow
diff --git a/src/qt_gui/translations/id_ID.ts b/src/qt_gui/translations/id_ID.ts
index b4fe48637..d4db7cf18 100644
--- a/src/qt_gui/translations/id_ID.ts
+++ b/src/qt_gui/translations/id_ID.ts
@@ -1152,10 +1152,6 @@
Unable to SaveUnable to Save
-
- Cannot bind any unique input more than once
- Cannot bind any unique input more than once
- Press a keyPress a key
@@ -1184,6 +1180,14 @@
CancelCancel
+
+ Cannot bind any unique input more than once. Duplicate inputs mapped to the following buttons:
+
+%1
+ Cannot bind any unique input more than once. Duplicate inputs mapped to the following buttons:
+
+%1
+ MainWindow
diff --git a/src/qt_gui/translations/it_IT.ts b/src/qt_gui/translations/it_IT.ts
index a1aa0bb3f..95fed4156 100644
--- a/src/qt_gui/translations/it_IT.ts
+++ b/src/qt_gui/translations/it_IT.ts
@@ -1152,10 +1152,6 @@
Unable to SaveImpossibile Salvare
-
- Cannot bind any unique input more than once
- Non è possibile associare qualsiasi input univoco più di una volta
- Press a keyPremi un tasto
@@ -1184,6 +1180,14 @@
CancelAnnulla
+
+ Cannot bind any unique input more than once. Duplicate inputs mapped to the following buttons:
+
+%1
+ Cannot bind any unique input more than once. Duplicate inputs mapped to the following buttons:
+
+%1
+ MainWindow
diff --git a/src/qt_gui/translations/ja_JP.ts b/src/qt_gui/translations/ja_JP.ts
index 7bd7fed8a..99ccc163e 100644
--- a/src/qt_gui/translations/ja_JP.ts
+++ b/src/qt_gui/translations/ja_JP.ts
@@ -1152,10 +1152,6 @@
Unable to SaveUnable to Save
-
- Cannot bind any unique input more than once
- Cannot bind any unique input more than once
- Press a keyPress a key
@@ -1184,6 +1180,14 @@
CancelCancel
+
+ Cannot bind any unique input more than once. Duplicate inputs mapped to the following buttons:
+
+%1
+ Cannot bind any unique input more than once. Duplicate inputs mapped to the following buttons:
+
+%1
+ MainWindow
diff --git a/src/qt_gui/translations/ko_KR.ts b/src/qt_gui/translations/ko_KR.ts
index 6e5b232a0..b38480f9f 100644
--- a/src/qt_gui/translations/ko_KR.ts
+++ b/src/qt_gui/translations/ko_KR.ts
@@ -1152,10 +1152,6 @@
Unable to SaveUnable to Save
-
- Cannot bind any unique input more than once
- Cannot bind any unique input more than once
- Press a keyPress a key
@@ -1184,6 +1180,14 @@
CancelCancel
+
+ Cannot bind any unique input more than once. Duplicate inputs mapped to the following buttons:
+
+%1
+ Cannot bind any unique input more than once. Duplicate inputs mapped to the following buttons:
+
+%1
+ MainWindow
diff --git a/src/qt_gui/translations/lt_LT.ts b/src/qt_gui/translations/lt_LT.ts
index a0b047dbb..837ea81fe 100644
--- a/src/qt_gui/translations/lt_LT.ts
+++ b/src/qt_gui/translations/lt_LT.ts
@@ -1152,10 +1152,6 @@
Unable to SaveUnable to Save
-
- Cannot bind any unique input more than once
- Cannot bind any unique input more than once
- Press a keyPress a key
@@ -1184,6 +1180,14 @@
CancelCancel
+
+ Cannot bind any unique input more than once. Duplicate inputs mapped to the following buttons:
+
+%1
+ Cannot bind any unique input more than once. Duplicate inputs mapped to the following buttons:
+
+%1
+ MainWindow
diff --git a/src/qt_gui/translations/nb_NO.ts b/src/qt_gui/translations/nb_NO.ts
index cb209cfb1..92e902dea 100644
--- a/src/qt_gui/translations/nb_NO.ts
+++ b/src/qt_gui/translations/nb_NO.ts
@@ -1152,10 +1152,6 @@
Unable to SaveKlarte ikke lagre
-
- Cannot bind any unique input more than once
- Kan ikke tildele unike oppsett mer enn en gang
- Press a keyTrykk på en tast
@@ -1184,6 +1180,14 @@
CancelAvbryt
+
+ Cannot bind any unique input more than once. Duplicate inputs mapped to the following buttons:
+
+%1
+ Cannot bind any unique input more than once. Duplicate inputs mapped to the following buttons:
+
+%1
+ MainWindow
diff --git a/src/qt_gui/translations/nl_NL.ts b/src/qt_gui/translations/nl_NL.ts
index ec676d360..61cd9f359 100644
--- a/src/qt_gui/translations/nl_NL.ts
+++ b/src/qt_gui/translations/nl_NL.ts
@@ -1152,10 +1152,6 @@
Unable to SaveUnable to Save
-
- Cannot bind any unique input more than once
- Cannot bind any unique input more than once
- Press a keyPress a key
@@ -1184,6 +1180,14 @@
CancelCancel
+
+ Cannot bind any unique input more than once. Duplicate inputs mapped to the following buttons:
+
+%1
+ Cannot bind any unique input more than once. Duplicate inputs mapped to the following buttons:
+
+%1
+ MainWindow
diff --git a/src/qt_gui/translations/pl_PL.ts b/src/qt_gui/translations/pl_PL.ts
index c1343cd2e..0da03b472 100644
--- a/src/qt_gui/translations/pl_PL.ts
+++ b/src/qt_gui/translations/pl_PL.ts
@@ -1152,10 +1152,6 @@
Unable to SaveZapisywanie nie powiodło się
-
- Cannot bind any unique input more than once
- Nie można powiązać żadnych unikalnych danych wejściowych więcej niż raz
- Press a keyNaciśnij klawisz
@@ -1184,6 +1180,14 @@
CancelAnuluj
+
+ Cannot bind any unique input more than once. Duplicate inputs mapped to the following buttons:
+
+%1
+ Cannot bind any unique input more than once. Duplicate inputs mapped to the following buttons:
+
+%1
+ MainWindow
diff --git a/src/qt_gui/translations/pt_BR.ts b/src/qt_gui/translations/pt_BR.ts
index 9f254e272..eee4c5dd5 100644
--- a/src/qt_gui/translations/pt_BR.ts
+++ b/src/qt_gui/translations/pt_BR.ts
@@ -1152,10 +1152,6 @@
Unable to SaveNão foi possível salvar
-
- Cannot bind any unique input more than once
- Não é possível vincular qualquer entrada única mais de uma vez
- Press a keyAperte uma tecla
@@ -1184,6 +1180,14 @@
CancelCancelar
+
+ Cannot bind any unique input more than once. Duplicate inputs mapped to the following buttons:
+
+%1
+ Cannot bind any unique input more than once. Duplicate inputs mapped to the following buttons:
+
+%1
+ MainWindow
diff --git a/src/qt_gui/translations/pt_PT.ts b/src/qt_gui/translations/pt_PT.ts
index a543d0ec3..9876ee291 100644
--- a/src/qt_gui/translations/pt_PT.ts
+++ b/src/qt_gui/translations/pt_PT.ts
@@ -1152,10 +1152,6 @@
Unable to SaveNão foi possível guardar
-
- Cannot bind any unique input more than once
- Não é possível vincular qualquer entrada única mais de uma vez
- Press a keyPressione uma tecla
@@ -1184,6 +1180,14 @@
CancelCancelar
+
+ Cannot bind any unique input more than once. Duplicate inputs mapped to the following buttons:
+
+%1
+ Cannot bind any unique input more than once. Duplicate inputs mapped to the following buttons:
+
+%1
+ MainWindow
diff --git a/src/qt_gui/translations/ro_RO.ts b/src/qt_gui/translations/ro_RO.ts
index a05bb06a8..670a96372 100644
--- a/src/qt_gui/translations/ro_RO.ts
+++ b/src/qt_gui/translations/ro_RO.ts
@@ -1152,10 +1152,6 @@
Unable to SaveUnable to Save
-
- Cannot bind any unique input more than once
- Cannot bind any unique input more than once
- Press a keyPress a key
@@ -1184,6 +1180,14 @@
CancelCancel
+
+ Cannot bind any unique input more than once. Duplicate inputs mapped to the following buttons:
+
+%1
+ Cannot bind any unique input more than once. Duplicate inputs mapped to the following buttons:
+
+%1
+ MainWindow
diff --git a/src/qt_gui/translations/ru_RU.ts b/src/qt_gui/translations/ru_RU.ts
index a56127ece..a637ccb23 100644
--- a/src/qt_gui/translations/ru_RU.ts
+++ b/src/qt_gui/translations/ru_RU.ts
@@ -1152,10 +1152,6 @@
Unable to SaveНе удаётся сохранить
-
- Cannot bind any unique input more than once
- Невозможно привязать уникальный ввод более одного раза
- Press a keyНажмите кнопку
@@ -1184,6 +1180,14 @@
CancelОтмена
+
+ Cannot bind any unique input more than once. Duplicate inputs mapped to the following buttons:
+
+%1
+ Cannot bind any unique input more than once. Duplicate inputs mapped to the following buttons:
+
+%1
+ MainWindow
diff --git a/src/qt_gui/translations/sl_SI.ts b/src/qt_gui/translations/sl_SI.ts
index 47c5f5534..4b0536842 100644
--- a/src/qt_gui/translations/sl_SI.ts
+++ b/src/qt_gui/translations/sl_SI.ts
@@ -1152,10 +1152,6 @@
Unable to SaveUnable to Save
-
- Cannot bind any unique input more than once
- Cannot bind any unique input more than once
- Press a keyPress a key
@@ -1184,6 +1180,14 @@
CancelCancel
+
+ Cannot bind any unique input more than once. Duplicate inputs mapped to the following buttons:
+
+%1
+ Cannot bind any unique input more than once. Duplicate inputs mapped to the following buttons:
+
+%1
+ MainWindow
diff --git a/src/qt_gui/translations/sq_AL.ts b/src/qt_gui/translations/sq_AL.ts
index c554a283a..553e5b44a 100644
--- a/src/qt_gui/translations/sq_AL.ts
+++ b/src/qt_gui/translations/sq_AL.ts
@@ -1152,10 +1152,6 @@
Unable to SaveRuajtja Dështoi
-
- Cannot bind any unique input more than once
- Asnjë hyrje unike nuk mund të caktohet më shumë se një herë
- Press a keyShtyp një tast
@@ -1184,6 +1180,14 @@
CancelAnulo
+
+ Cannot bind any unique input more than once. Duplicate inputs mapped to the following buttons:
+
+%1
+ Cannot bind any unique input more than once. Duplicate inputs mapped to the following buttons:
+
+%1
+ MainWindow
diff --git a/src/qt_gui/translations/sr_CS.ts b/src/qt_gui/translations/sr_CS.ts
index 4277728e6..834976377 100644
--- a/src/qt_gui/translations/sr_CS.ts
+++ b/src/qt_gui/translations/sr_CS.ts
@@ -1152,10 +1152,6 @@
Unable to SaveUnable to Save
-
- Cannot bind any unique input more than once
- Cannot bind any unique input more than once
- Press a keyPress a key
@@ -1184,6 +1180,14 @@
CancelCancel
+
+ Cannot bind any unique input more than once. Duplicate inputs mapped to the following buttons:
+
+%1
+ Cannot bind any unique input more than once. Duplicate inputs mapped to the following buttons:
+
+%1
+ MainWindow
diff --git a/src/qt_gui/translations/sv_SE.ts b/src/qt_gui/translations/sv_SE.ts
index b8fab701c..435712f35 100644
--- a/src/qt_gui/translations/sv_SE.ts
+++ b/src/qt_gui/translations/sv_SE.ts
@@ -158,7 +158,7 @@
No Cheats found for this game in this version of the selected repository,try another repository or a different version of the game.
- Inga fusk hittades för detta spel i denna version av det valda förrådet. Prova ett annat förråd eller en annan version av spelet
+ Inga fusk hittades för detta spel i denna version av det valda förrådet. Prova ett annat förråd eller en annan version av spelet.Cheats Downloaded Successfully
@@ -166,7 +166,7 @@
You have successfully downloaded the cheats for this version of the game from the selected repository. You can try downloading from another repository, if it is available it will also be possible to use it by selecting the file from the list.
- Du har hämtat ner fusken för denna version av spelet från valt förråd. Du kan försöka att hämta från andra förråd, om de är tillgängliga så kan det vara möjligt att använda det genom att välja det genom att välja filen från listan
+ Du har hämtat ner fusken för denna version av spelet från valt förråd. Du kan försöka att hämta från andra förråd, om de är tillgängliga så kan det vara möjligt att använda det genom att välja det genom att välja filen från listan.Failed to save:
@@ -182,7 +182,7 @@
Patches Downloaded Successfully! All Patches available for all games have been downloaded, there is no need to download them individually for each game as happens in Cheats. If the patch does not appear, it may be that it does not exist for the specific serial and version of the game.
- Patchhämtningen är färdig! Alla patchar tillgängliga för alla spel har hämtats och de behövs inte hämtas individuellt för varje spel som med fusk. Om patchen inte dyker upp kan det bero på att den inte finns för det specifika serienumret och versionen av spelet
+ Patchhämtningen är färdig! Alla patchar tillgängliga för alla spel har hämtats och de behövs inte hämtas individuellt för varje spel som med fusk. Om patchen inte dyker upp kan det bero på att den inte finns för det specifika serienumret och versionen av spelet.Failed to parse JSON data from HTML.
@@ -261,7 +261,7 @@
The Auto Updater allows up to 60 update checks per hour.\nYou have reached this limit. Please try again later.
- Den automatiska uppdateraren tillåter upp till 60 uppdateringskontroller per timme.\nDu har uppnått denna gräns. Försök igen senare
+ Den automatiska uppdateraren tillåter upp till 60 uppdateringskontroller per timme.\nDu har uppnått denna gräns. Försök igen senare.Failed to parse update information.
@@ -1152,10 +1152,6 @@
Unable to SaveKunde inte spara
-
- Cannot bind any unique input more than once
- Kan inte binda någon unik inmatning fler än en gång
- Press a keyTryck på en tangent
@@ -1184,6 +1180,14 @@
CancelAvbryt
+
+ Cannot bind any unique input more than once. Duplicate inputs mapped to the following buttons:
+
+%1
+ Cannot bind any unique input more than once. Duplicate inputs mapped to the following buttons:
+
+%1
+ MainWindow
@@ -1728,47 +1732,47 @@
Console Language:\nSets the language that the PS4 game uses.\nIt's recommended to set this to a language the game supports, which will vary by region.
- Konsollspråk:\nStäller in språket som PS4-spelet använder.\nDet rekommenderas att ställa in detta till ett språk som spelet har stöd för, vilket kan skilja sig mellan regioner
+ Konsollspråk:\nStäller in språket som PS4-spelet använder.\nDet rekommenderas att ställa in detta till ett språk som spelet har stöd för, vilket kan skilja sig mellan regioner.Emulator Language:\nSets the language of the emulator's user interface.
- Emulatorspråk:\nStäller in språket för emulatorns användargränssnitt
+ Emulatorspråk:\nStäller in språket för emulatorns användargränssnitt.Show Splash Screen:\nShows the game's splash screen (a special image) while the game is starting.
- Visa startskärm:\nVisar spelets startskärm (en speciell bild) när spelet startas
+ Visa startskärm:\nVisar spelets startskärm (en speciell bild) när spelet startas.Enable Discord Rich Presence:\nDisplays the emulator icon and relevant information on your Discord profile.
- Aktivera Discord Rich Presence:\nVisar emulatorikonen och relevant information på din Discord-profil
+ Aktivera Discord Rich Presence:\nVisar emulatorikonen och relevant information på din Discord-profil.Username:\nSets the PS4's account username, which may be displayed by some games.
- Användarnamn:\nStäller in PS4ans användarkonto, som kan visas av vissa spel
+ Användarnamn:\nStäller in PS4ans användarkonto, som kan visas av vissa spel.Trophy Key:\nKey used to decrypt trophies. Must be obtained from your jailbroken console.\nMust contain only hex characters.
- Trofényckel:\nNyckel som används för att avkryptera troféer. Måste hämtas från din konsoll (jailbroken).\nMåste innehålla endast hex-tecken
+ Trofényckel:\nNyckel som används för att avkryptera troféer. Måste hämtas från din konsoll (jailbroken).\nMåste innehålla endast hex-tecken.Log Type:\nSets whether to synchronize the output of the log window for performance. May have adverse effects on emulation.
- Loggtyp:\nStäller in huruvida synkronisering av utdata för loggfönstret för prestanda. Kan ha inverkan på emulationen
+ Loggtyp:\nStäller in huruvida synkronisering av utdata för loggfönstret för prestanda. Kan ha inverkan på emulationen.Log Filter:\nFilters the log to only print specific information.\nExamples: "Core:Trace" "Lib.Pad:Debug Common.Filesystem:Error" "*:Critical"\nLevels: Trace, Debug, Info, Warning, Error, Critical - in this order, a specific level silences all levels preceding it in the list and logs every level after it.
- Loggfilter:\nFiltrera loggen till att endast skriva ut specifik information.\nExempel: "Core:Trace" "Lib.Pad:Debug Common.Filesystem:Error" "*:Critical"\nNivåer: Trace, Debug, Info, Warning, Error, Critical - i den ordningen, en specifik nivå som tystar alla nivåer före den i listan och loggar allting efter den
+ Loggfilter:\nFiltrera loggen till att endast skriva ut specifik information.\nExempel: "Core:Trace" "Lib.Pad:Debug Common.Filesystem:Error" "*:Critical"\nNivåer: Trace, Debug, Info, Warning, Error, Critical - i den ordningen, en specifik nivå som tystar alla nivåer före den i listan och loggar allting efter den.Update:\nRelease: Official versions released every month that may be very outdated, but are more reliable and tested.\nNightly: Development versions that have all the latest features and fixes, but may contain bugs and are less stable.
- Uppdatering:\nRelease: Officiella versioner som släpps varje månad som kan vara mycket utdaterade, men är mer pålitliga och testade.\nNightly: Utvecklingsversioner som har de senaste funktionerna och fixarna, men kan innehålla fel och är mindre stabila
+ Uppdatering:\nRelease: Officiella versioner som släpps varje månad som kan vara mycket utdaterade, men är mer pålitliga och testade.\nNightly: Utvecklingsversioner som har de senaste funktionerna och fixarna, men kan innehålla fel och är mindre stabila.Background Image:\nControl the opacity of the game background image.
- Bakgrundsbild:\nKontrollerar opaciteten för spelets bakgrundsbild
+ Bakgrundsbild:\nKontrollerar opaciteten för spelets bakgrundsbild.Play Title Music:\nIf a game supports it, enable playing special music when selecting the game in the GUI.
- Spela upp titelmusik:\nOm ett spel har stöd för det kan speciell musik spelas upp från spelet i gränssnittet
+ Spela upp titelmusik:\nOm ett spel har stöd för det kan speciell musik spelas upp från spelet i gränssnittet.Disable Trophy Pop-ups:\nDisable in-game trophy notifications. Trophy progress can still be tracked using the Trophy Viewer (right-click the game in the main window).
@@ -1776,27 +1780,27 @@
Hide Cursor:\nChoose when the cursor will disappear:\nNever: You will always see the mouse.\nidle: Set a time for it to disappear after being idle.\nAlways: you will never see the mouse.
- Dölj pekare:\nVälj när muspekaren ska försvinna:\nAldrig: Du kommer alltid se muspekaren.\nOverksam: Ställ in en tid för när den ska försvinna efter den inte använts.\nAlltid: du kommer aldrig se muspekaren
+ Dölj pekare:\nVälj när muspekaren ska försvinna:\nAldrig: Du kommer alltid se muspekaren.\nOverksam: Ställ in en tid för när den ska försvinna efter den inte använts.\nAlltid: du kommer aldrig se muspekaren.Hide Idle Cursor Timeout:\nThe duration (seconds) after which the cursor that has been idle hides itself.
- Dölj pekare vid overksam:\nLängden (sekunder) efter vilken som muspekaren som har varit overksam döljer sig själv
+ Dölj pekare vid overksam:\nLängden (sekunder) efter vilken som muspekaren som har varit overksam döljer sig själv.Back Button Behavior:\nSets the controller's back button to emulate tapping the specified position on the PS4 touchpad.
- Beteende för bakåtknapp:\nStäller in handkontrollerns bakåtknapp för att emulera ett tryck på angivna positionen på PS4ns touchpad
+ Beteende för bakåtknapp:\nStäller in handkontrollerns bakåtknapp för att emulera ett tryck på angivna positionen på PS4ns touchpad.Display Compatibility Data:\nDisplays game compatibility information in table view. Enable "Update Compatibility On Startup" to get up-to-date information.
- Visa kompatibilitetsdata:\nVisar information om spelkompatibilitet i tabellvyn. Aktivera "Uppdatera kompatibilitet vid uppstart" för att få uppdaterad information
+ Visa kompatibilitetsdata:\nVisar information om spelkompatibilitet i tabellvyn. Aktivera "Uppdatera kompatibilitet vid uppstart" för att få uppdaterad information.Update Compatibility On Startup:\nAutomatically update the compatibility database when shadPS4 starts.
- Uppdatera kompatibilitet vid uppstart:\nUppdatera automatiskt kompatibilitetsdatabasen när shadPS4 startar
+ Uppdatera kompatibilitet vid uppstart:\nUppdatera automatiskt kompatibilitetsdatabasen när shadPS4 startar.Update Compatibility Database:\nImmediately update the compatibility database.
- Uppdatera kompatibilitetsdatabasen:\nUppdaterar kompatibilitetsdatabasen direkt
+ Uppdatera kompatibilitetsdatabasen:\nUppdaterar kompatibilitetsdatabasen direkt.Never
@@ -1828,23 +1832,23 @@
Graphics Device:\nOn multiple GPU systems, select the GPU the emulator will use from the drop down list,\nor select "Auto Select" to automatically determine it.
- Grafikenhet:\nFör system med flera GPUer kan du välja den GPU som emulatorn ska använda från rullgardinsmenyn,\neller välja "Auto Select" för att automatiskt bestämma det
+ Grafikenhet:\nFör system med flera GPUer kan du välja den GPU som emulatorn ska använda från rullgardinsmenyn,\neller välja "Auto Select" för att automatiskt bestämma det.Width/Height:\nSets the size of the emulator window at launch, which can be resized during gameplay.\nThis is different from the in-game resolution.
- Bredd/Höjd:\nStäller in storleken för emulatorfönstret vid uppstart, som kan storleksändras under spelning.\nDetta är inte det samma som spelupplösningen
+ Bredd/Höjd:\nStäller in storleken för emulatorfönstret vid uppstart, som kan storleksändras under spelning.\nDetta är inte det samma som spelupplösningen.Vblank Divider:\nThe frame rate at which the emulator refreshes at is multiplied by this number. Changing this may have adverse effects, such as increasing the game speed, or breaking critical game functionality that does not expect this to change!
- Vblank Divider:\nBildfrekvensen som emulatorn uppdaterar vid multipliceras med detta tal. Ändra detta kan ha inverkan på saker, såsom ökad spelhastighet eller göra sönder kritisk spelfunktionalitet, som inte förväntar sig denna ändring
+ Vblank Divider:\nBildfrekvensen som emulatorn uppdaterar vid multipliceras med detta tal. Ändra detta kan ha inverkan på saker, såsom ökad spelhastighet eller göra sönder kritisk spelfunktionalitet, som inte förväntar sig denna ändring!Enable Shaders Dumping:\nFor the sake of technical debugging, saves the games shaders to a folder as they render.
- Aktivera Shaders Dumping:\nFör teknisk felsökning, sparar spelets shaders till en mapp när de renderas
+ Aktivera Shaders Dumping:\nFör teknisk felsökning, sparar spelets shaders till en mapp när de renderas.Enable Null GPU:\nFor the sake of technical debugging, disables game rendering as if there were no graphics card.
- Aktivera Null GPU:\nFör teknisk felsökning, inaktiverar spelrenderingen som om det inte fanns något grafikkort
+ Aktivera Null GPU:\nFör teknisk felsökning, inaktiverar spelrenderingen som om det inte fanns något grafikkort.Enable HDR:\nEnables HDR in games that support it.\nYour monitor must have support for the BT2020 PQ color space and the RGB10A2 swapchain format.
@@ -1852,31 +1856,31 @@
Game Folders:\nThe list of folders to check for installed games.
- Spelmappar:\nListan över mappar att leta i efter installerade spel
+ Spelmappar:\nListan över mappar att leta i efter installerade spel.Add:\nAdd a folder to the list.
- Aktivera separat uppdateringsmapp:\nAktiverar installation av speluppdateringar till en separat mapp för enkel hantering.\nDetta kan manuellt skapas genom att lägga till den uppackade uppdateringen till spelmappen med namnet "CUSA00000-UPDATE" där CUSA ID matchar spelets id
+ Lägg till:\Lägg till en mapp till listan.Remove:\nRemove a folder from the list.
- Ta bort:\nTa bort en mapp från listan
+ Ta bort:\nTa bort en mapp från listan.Enable Debug Dumping:\nSaves the import and export symbols and file header information of the currently running PS4 program to a directory.
- Aktivera felsökningsdumpning:\nSparar import och export av symboler och fil-header-information för aktuellt körande PS4-program till en katalog
+ Aktivera felsökningsdumpning:\nSparar import och export av symboler och fil-header-information för aktuellt körande PS4-program till en katalog.Enable Vulkan Validation Layers:\nEnables a system that validates the state of the Vulkan renderer and logs information about its internal state.\nThis will reduce performance and likely change the behavior of emulation.
- Aktivera Vulkan Validation Layers:\nAktiverar ett system som validerar tillståndet för Vulkan renderer och loggar information om dess interna tillstånd.\nDetta kommer minska prestandan och antagligen ändra beteendet för emuleringen
+ Aktivera Vulkan Validation Layers:\nAktiverar ett system som validerar tillståndet för Vulkan renderer och loggar information om dess interna tillstånd.\nDetta kommer minska prestandan och antagligen ändra beteendet för emuleringen.Enable Vulkan Synchronization Validation:\nEnables a system that validates the timing of Vulkan rendering tasks.\nThis will reduce performance and likely change the behavior of emulation.
- Aktivera Vulkan Synchronization Validation:\nAktiverar ett system som validerar timing för Vulkan rendering tasks.\nDetta kommer minska prestandan och antagligen ändra beteendet för emuleringen
+ Aktivera Vulkan Synchronization Validation:\nAktiverar ett system som validerar timing för Vulkan rendering tasks.\nDetta kommer minska prestandan och antagligen ändra beteendet för emuleringen.Enable RenderDoc Debugging:\nIf enabled, the emulator will provide compatibility with Renderdoc to allow capture and analysis of the currently rendered frame.
- Aktivera RenderDoc-felsökning:\nOm aktiverad kommer emulatorn att tillhandahålla kompatibilitet med Renderdoc för att tillåta fångst och analys för aktuell renderad bildruta
+ Aktivera RenderDoc-felsökning:\nOm aktiverad kommer emulatorn att tillhandahålla kompatibilitet med Renderdoc för att tillåta fångst och analys för aktuell renderad bildruta.Collect Shaders:\nYou need this enabled to edit shaders with the debug menu (Ctrl + F10).
@@ -1884,27 +1888,27 @@
Crash Diagnostics:\nCreates a .yaml file with info about the Vulkan state at the time of crashing.\nUseful for debugging 'Device lost' errors. If you have this enabled, you should enable Host AND Guest Debug Markers.\nDoes not work on Intel GPUs.\nYou need Vulkan Validation Layers enabled and the Vulkan SDK for this to work.
- Krashdiagnostik:\nSkapar en .yaml-fil med information om Vulkan-tillståndet vid tid för kraschen.\nAnvändbart för felsökning av 'Device lost'-fel. Om du har aktiverat detta bör du aktivera felsökningsmarkörer för Värd OCH Gäst.\nFungerar inte på Intel GPUer.\nDu behöver aktivera Vulkan Validation Layers och Vulkan SDK för att detta ska fungera
+ Krashdiagnostik:\nSkapar en .yaml-fil med information om Vulkan-tillståndet vid tid för kraschen.\nAnvändbart för felsökning av 'Device lost'-fel. Om du har aktiverat detta bör du aktivera felsökningsmarkörer för Värd OCH Gäst.\nFungerar inte på Intel GPUer.\nDu behöver aktivera Vulkan Validation Layers och Vulkan SDK för att detta ska fungera.Copy GPU Buffers:\nGets around race conditions involving GPU submits.\nMay or may not help with PM4 type 0 crashes.
- Kopiera GPU-buffertar:\nGör att man kan komma runt race conditions som involverar GPU submits.\nKan eller kan inte hjälpa med PM4 type 0-kraschar
+ Kopiera GPU-buffertar:\nGör att man kan komma runt race conditions som involverar GPU submits.\nKan eller kan inte hjälpa med PM4 type 0-kraschar.Host Debug Markers:\nInserts emulator-side information like markers for specific AMDGPU commands around Vulkan commands, as well as giving resources debug names.\nIf you have this enabled, you should enable Crash Diagnostics.\nUseful for programs like RenderDoc.
- Felsökningsmarkörer för värd:\nInfogar informationsliknande markörer i emulatorn för specifika AMDGPU-kommandon runt Vulkan-kommandon, så väl som ger resurser felsökningsnamn.\nOm du har detta aktiverat bör du aktivera Kraschdiagnostik.\nAnvändbart för program som RenderDoc
+ Felsökningsmarkörer för värd:\nInfogar informationsliknande markörer i emulatorn för specifika AMDGPU-kommandon runt Vulkan-kommandon, så väl som ger resurser felsökningsnamn.\nOm du har detta aktiverat bör du aktivera Kraschdiagnostik.\nAnvändbart för program som RenderDoc.Guest Debug Markers:\nInserts any debug markers the game itself has added to the command buffer.\nIf you have this enabled, you should enable Crash Diagnostics.\nUseful for programs like RenderDoc.
- Felsökningsmarkörer för gäst:\nInfogar felsökningsmarkörer som själva spelet har lagt till i kommandobufferten.\nOm du har aktiverat detta bör du aktivera Kraschdiagnostik.\nAnvändbart för program som RenderDoc
+ Felsökningsmarkörer för gäst:\nInfogar felsökningsmarkörer som själva spelet har lagt till i kommandobufferten.\nOm du har aktiverat detta bör du aktivera Kraschdiagnostik.\nAnvändbart för program som RenderDoc.Save Data Path:\nThe folder where game save data will be saved.
- Sökväg för sparat data:\nSökvägen där spelets sparade data kommer att sparas
+ Sökväg för sparat data:\nSökvägen där spelets sparade data kommer att sparas.Browse:\nBrowse for a folder to set as the save data path.
- Bläddra:\nBläddra efter en mapp att ställa in som sökväg för sparat data
+ Bläddra:\nBläddra efter en mapp att ställa in som sökväg för sparat data.Release
diff --git a/src/qt_gui/translations/tr_TR.ts b/src/qt_gui/translations/tr_TR.ts
index c6d641470..8db7e02c4 100644
--- a/src/qt_gui/translations/tr_TR.ts
+++ b/src/qt_gui/translations/tr_TR.ts
@@ -1152,10 +1152,6 @@
Unable to SaveKaydedilemedi
-
- Cannot bind any unique input more than once
- Herhangi bir benzersiz girdi birden fazla kez bağlanamaz
- Press a keyBir tuşa basın
@@ -1184,6 +1180,14 @@
Cancelİptal
+
+ Cannot bind any unique input more than once. Duplicate inputs mapped to the following buttons:
+
+%1
+ Cannot bind any unique input more than once. Duplicate inputs mapped to the following buttons:
+
+%1
+ MainWindow
diff --git a/src/qt_gui/translations/uk_UA.ts b/src/qt_gui/translations/uk_UA.ts
index 8b83ae62f..214596e7e 100644
--- a/src/qt_gui/translations/uk_UA.ts
+++ b/src/qt_gui/translations/uk_UA.ts
@@ -1152,10 +1152,6 @@
Unable to SaveНе вдалося зберегти
-
- Cannot bind any unique input more than once
- Не можна прив'язати кнопку вводу більш ніж один раз
- Press a keyНатисніть клавішу
@@ -1184,6 +1180,14 @@
CancelВідмінити
+
+ Cannot bind any unique input more than once. Duplicate inputs mapped to the following buttons:
+
+%1
+ Cannot bind any unique input more than once. Duplicate inputs mapped to the following buttons:
+
+%1
+ MainWindow
diff --git a/src/qt_gui/translations/vi_VN.ts b/src/qt_gui/translations/vi_VN.ts
index 1e26f626c..e94515ea8 100644
--- a/src/qt_gui/translations/vi_VN.ts
+++ b/src/qt_gui/translations/vi_VN.ts
@@ -1152,10 +1152,6 @@
Unable to SaveUnable to Save
-
- Cannot bind any unique input more than once
- Cannot bind any unique input more than once
- Press a keyPress a key
@@ -1184,6 +1180,14 @@
CancelHủy
+
+ Cannot bind any unique input more than once. Duplicate inputs mapped to the following buttons:
+
+%1
+ Cannot bind any unique input more than once. Duplicate inputs mapped to the following buttons:
+
+%1
+ MainWindow
diff --git a/src/qt_gui/translations/zh_CN.ts b/src/qt_gui/translations/zh_CN.ts
index 2bc635c41..acb140fdc 100644
--- a/src/qt_gui/translations/zh_CN.ts
+++ b/src/qt_gui/translations/zh_CN.ts
@@ -1152,10 +1152,6 @@
Unable to Save无法保存
-
- Cannot bind any unique input more than once
- 不能绑定重复的按键
- Press a key按下按键
@@ -1184,6 +1180,14 @@
Cancel取消
+
+ Cannot bind any unique input more than once. Duplicate inputs mapped to the following buttons:
+
+%1
+ Cannot bind any unique input more than once. Duplicate inputs mapped to the following buttons:
+
+%1
+ MainWindow
diff --git a/src/qt_gui/translations/zh_TW.ts b/src/qt_gui/translations/zh_TW.ts
index 320f73c83..ee7974fca 100644
--- a/src/qt_gui/translations/zh_TW.ts
+++ b/src/qt_gui/translations/zh_TW.ts
@@ -1152,10 +1152,6 @@
Unable to Save無法儲存
-
- Cannot bind any unique input more than once
- 任何唯一的鍵位都不能重複連結
- Press a key按下按鍵
@@ -1184,6 +1180,14 @@
Cancel取消
+
+ Cannot bind any unique input more than once. Duplicate inputs mapped to the following buttons:
+
+%1
+ Cannot bind any unique input more than once. Duplicate inputs mapped to the following buttons:
+
+%1
+ MainWindow