From 8bee0161458a082491d611ba4353cda84881b067 Mon Sep 17 00:00:00 2001 From: B3n30 Date: Sat, 6 May 2017 02:55:51 +0200 Subject: Create a random console_unique_id (#2668) * Create a random console_id when config save_file is created Added button in system config to refresh the console unique id * Moved the connect for the button from .ui file to constructor of ConfigureSystem * Added warning and info dialog Fixup: Make use of qt5 style connects, renamed the refresh button, removed some duplicate code, changed random device and moved all to the generate function * Changed the random generator to reflect what a real 3DS stores as console unique id Fixup: Changed the warning message * Fixup: Set and Create * Fixup: Added console id label, therfore removed second message box * Fixup: fixed the endianess * Fixup: more endianness fixes * Fixup: Endianness the 3rd --- src/citra_qt/configuration/configure_system.cpp | 30 +++++++++++++++++++++++-- src/citra_qt/configuration/configure_system.h | 1 + src/citra_qt/configuration/configure_system.ui | 23 +++++++++++++++++++ 3 files changed, 52 insertions(+), 2 deletions(-) (limited to 'src/citra_qt/configuration') diff --git a/src/citra_qt/configuration/configure_system.cpp b/src/citra_qt/configuration/configure_system.cpp index a3a9015a4..9b1e6711d 100644 --- a/src/citra_qt/configuration/configure_system.cpp +++ b/src/citra_qt/configuration/configure_system.cpp @@ -2,6 +2,7 @@ // Licensed under GPLv2 or any later version // Refer to the license.txt file included. +#include #include "citra_qt/configuration/configure_system.h" #include "citra_qt/ui_settings.h" #include "core/core.h" @@ -15,8 +16,11 @@ static const std::array days_in_month = {{ ConfigureSystem::ConfigureSystem(QWidget* parent) : QWidget(parent), ui(new Ui::ConfigureSystem) { ui->setupUi(this); - connect(ui->combo_birthmonth, SIGNAL(currentIndexChanged(int)), - SLOT(updateBirthdayComboBox(int))); + connect(ui->combo_birthmonth, + static_cast(&QComboBox::currentIndexChanged), this, + &ConfigureSystem::updateBirthdayComboBox); + connect(ui->button_regenerate_console_id, &QPushButton::clicked, this, + &ConfigureSystem::refreshConsoleID); this->setConfiguration(); } @@ -71,6 +75,10 @@ void ConfigureSystem::ReadSystemSettings() { // set sound output mode sound_index = Service::CFG::GetSoundOutputMode(); ui->combo_sound->setCurrentIndex(sound_index); + + // set the console id + u64 console_id = Service::CFG::GetConsoleUniqueId(); + ui->label_console_id->setText("Console ID: 0x" + QString::number(console_id, 16).toUpper()); } void ConfigureSystem::applyConfiguration() { @@ -140,3 +148,21 @@ void ConfigureSystem::updateBirthdayComboBox(int birthmonth_index) { // restore the day selection ui->combo_birthday->setCurrentIndex(birthday_index); } + +void ConfigureSystem::refreshConsoleID() { + QMessageBox::StandardButton reply; + QString warning_text = tr("This will replace your current virtual 3DS with a new one. " + "Your current virtual 3DS will not be recoverable. " + "This might have unexpected effects in games. This might fail, " + "if you use an outdated config savegame. Continue?"); + reply = QMessageBox::critical(this, tr("Warning"), warning_text, + QMessageBox::No | QMessageBox::Yes); + if (reply == QMessageBox::No) + return; + u32 random_number; + u64 console_id; + Service::CFG::GenerateConsoleUniqueId(random_number, console_id); + Service::CFG::SetConsoleUniqueId(random_number, console_id); + Service::CFG::UpdateConfigNANDSavegame(); + ui->label_console_id->setText("Console ID: 0x" + QString::number(console_id, 16).toUpper()); +} diff --git a/src/citra_qt/configuration/configure_system.h b/src/citra_qt/configuration/configure_system.h index db0ead13c..f13de17d4 100644 --- a/src/citra_qt/configuration/configure_system.h +++ b/src/citra_qt/configuration/configure_system.h @@ -23,6 +23,7 @@ public: public slots: void updateBirthdayComboBox(int birthmonth_index); + void refreshConsoleID(); private: void ReadSystemSettings(); diff --git a/src/citra_qt/configuration/configure_system.ui b/src/citra_qt/configuration/configure_system.ui index cc54fa37f..8caf49623 100644 --- a/src/citra_qt/configuration/configure_system.ui +++ b/src/citra_qt/configuration/configure_system.ui @@ -220,6 +220,29 @@ + + + + Console ID: + + + + + + + + 0 + 0 + + + + Qt::RightToLeft + + + Regenerate + + + -- cgit v1.2.3