From 2bb83b1adb90936484c46531d16d3d2faba91704 Mon Sep 17 00:00:00 2001 From: Nayla Hanegan Date: Fri, 23 Aug 2024 15:42:58 -0400 Subject: [PATCH] more shady stuff --- Data/Sys/GameSettings/GP7E01.ini | 18 ------- .../Mario Party Netplay/modifications.png | Bin 0 -> 6955 bytes .../Mario Party Netplay/modifications@2x.png | Bin 0 -> 12888 bytes Data/User/GameSettings/GMPE01.ini | 2 +- Data/User/GameSettings/GP7E01.ini | 2 +- .../Core/DolphinQt/Config/GeckoCodeWidget.cpp | 46 ---------------- .../DolphinQt/Config/PropertiesDialog.cpp | 51 +++++++++++++++++- .../Core/DolphinQt/Config/PropertiesDialog.h | 10 ++++ Source/Core/DolphinQt/MainWindow.cpp | 17 +++++- Source/Core/DolphinQt/MainWindow.h | 5 +- .../Core/DolphinQt/NetPlay/NetPlayBrowser.cpp | 2 +- .../Core/DolphinQt/NetPlay/NetPlayDialog.cpp | 4 +- .../DolphinQt/NetPlay/NetPlaySetupDialog.cpp | 4 +- Source/Core/DolphinQt/ToolBar.cpp | 3 +- Source/Core/DolphinQt/ToolBar.h | 5 +- Source/Core/UICommon/NetPlayIndex.cpp | 10 ++-- 16 files changed, 93 insertions(+), 86 deletions(-) create mode 100644 Data/Sys/Themes/Mario Party Netplay/modifications.png create mode 100644 Data/Sys/Themes/Mario Party Netplay/modifications@2x.png diff --git a/Data/Sys/GameSettings/GP7E01.ini b/Data/Sys/GameSettings/GP7E01.ini index 4c6b1cae11..d11f5e8a92 100644 --- a/Data/Sys/GameSettings/GP7E01.ini +++ b/Data/Sys/GameSettings/GP7E01.ini @@ -1454,24 +1454,6 @@ $Mechanics - Slow Shroom Orb Rolls 1-5 [gamemasterplc] 0418d1ac 40820020 *Orb is more balanced. -$Mechanics - Stars are Free [gamemasterplc] -04188774 3b800000 -0418876c 3b800000 -204ed598 40800030 -044ed598 48000030 -044ed754 38800000 -e2000001 80008000 -204f62c0 38030001 -044f62c4 38000000 -044f690c 38600000 -e2000001 80008000 -*Stars cost nothing instead of the usual 20 coins. - -$Mechanics - Stars Cost 40 Coins [Ralf] -0418876c 3b800014 -04188774 3b800028 -*Only works in Grand Canal and Bowser's Enchanted Inferno - $Mechanics - Use Multiple Orbs in the Same Turn [Ralf] 041E3764 3860FFFF *Does not work with CPUs diff --git a/Data/Sys/Themes/Mario Party Netplay/modifications.png b/Data/Sys/Themes/Mario Party Netplay/modifications.png new file mode 100644 index 0000000000000000000000000000000000000000..a30511cd39d51656cbe2d591bd70556e75b72372 GIT binary patch literal 6955 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 bsd?C1H}^-1S#l203ol@A>ts`I<(u?B;{pGI literal 0 HcmV?d00001 diff --git a/Data/Sys/Themes/Mario Party Netplay/modifications@2x.png b/Data/Sys/Themes/Mario Party Netplay/modifications@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..bee5a597c2352170cdc43c93fb7e4fc359ffc4ec GIT binary patch literal 12888 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 literal 0 HcmV?d00001 diff --git a/Data/User/GameSettings/GMPE01.ini b/Data/User/GameSettings/GMPE01.ini index 12fce41924..15f1ebf341 100644 --- a/Data/User/GameSettings/GMPE01.ini +++ b/Data/User/GameSettings/GMPE01.ini @@ -1,10 +1,10 @@ [Gecko_Enabled] $!!! - README $QOL - Allow Digital Presses for Map Screen +$QOL - CPUs can use Bowser Suit and Item Bags $QOL - Faster Boot Time $QOL - Increased Board Speed $QOL - Increased Taunt Capabilities $QOL - Instant Text Display -$QOL - Rumble Always Off $QOL - Show Controller Port Number of Who Paused $QOL - Unlock Everything diff --git a/Data/User/GameSettings/GP7E01.ini b/Data/User/GameSettings/GP7E01.ini index 3ef1dafad6..d513811538 100644 --- a/Data/User/GameSettings/GP7E01.ini +++ b/Data/User/GameSettings/GP7E01.ini @@ -1,5 +1,5 @@ [Gecko_Enabled] -$QOL - Controller Options Always Acesssible +$QOL - Controller Options Always Accessible $QOL - Faster Boot Time $QOL - Increased Board Speed $QOL - Increased Orb Throwing Speed diff --git a/Source/Core/DolphinQt/Config/GeckoCodeWidget.cpp b/Source/Core/DolphinQt/Config/GeckoCodeWidget.cpp index d87162214d..5ec4c977c9 100644 --- a/Source/Core/DolphinQt/Config/GeckoCodeWidget.cpp +++ b/Source/Core/DolphinQt/Config/GeckoCodeWidget.cpp @@ -89,9 +89,6 @@ void GeckoCodeWidget::CreateWidgets() m_add_code = new NonDefaultQPushButton(tr("&Add New Code...")); m_edit_code = new NonDefaultQPushButton(tr("&Edit Code...")); m_remove_code = new NonDefaultQPushButton(tr("&Remove Code")); - m_download_codes = new NonDefaultQPushButton(tr("Download Codes")); - - m_download_codes->setToolTip(tr("Download Codes from the WiiRD Database")); m_code_list->setEnabled(!m_game_id.empty()); m_name_label->setEnabled(!m_game_id.empty()); @@ -102,7 +99,6 @@ void GeckoCodeWidget::CreateWidgets() m_add_code->setEnabled(!m_game_id.empty()); m_edit_code->setEnabled(false); m_remove_code->setEnabled(false); - m_download_codes->setEnabled(!m_game_id.empty()); auto* layout = new QVBoxLayout; @@ -135,7 +131,6 @@ void GeckoCodeWidget::CreateWidgets() btn_layout->addWidget(m_add_code); btn_layout->addWidget(m_edit_code); btn_layout->addWidget(m_remove_code); - btn_layout->addWidget(m_download_codes); layout->addLayout(btn_layout); @@ -155,7 +150,6 @@ void GeckoCodeWidget::ConnectWidgets() connect(m_add_code, &QPushButton::clicked, this, &GeckoCodeWidget::AddCode); connect(m_remove_code, &QPushButton::clicked, this, &GeckoCodeWidget::RemoveCode); connect(m_edit_code, &QPushButton::clicked, this, &GeckoCodeWidget::EditCode); - connect(m_download_codes, &QPushButton::clicked, this, &GeckoCodeWidget::DownloadCodes); connect(m_warning, &CheatWarningWidget::OpenCheatEnableSettings, this, &GeckoCodeWidget::OpenGeneralSettings); #ifdef USE_RETRO_ACHIEVEMENTS @@ -346,43 +340,3 @@ void GeckoCodeWidget::UpdateList() m_code_list->setDragDropMode(QAbstractItemView::InternalMove); } - -void GeckoCodeWidget::DownloadCodes() -{ - bool success; - - std::vector codes = Gecko::DownloadCodes(m_gametdb_id, &success); - - if (!success) - { - ModalMessageBox::critical(this, tr("Error"), tr("Failed to download codes.")); - return; - } - - if (codes.empty()) - { - ModalMessageBox::critical(this, tr("Error"), tr("File contained no codes.")); - return; - } - - size_t added_count = 0; - - for (const auto& code : codes) - { - auto it = std::find(m_gecko_codes.begin(), m_gecko_codes.end(), code); - - if (it == m_gecko_codes.end()) - { - m_gecko_codes.push_back(code); - added_count++; - } - } - - UpdateList(); - SaveCodes(); - - ModalMessageBox::information( - this, tr("Download complete"), - tr("Downloaded %1 codes. (added %2)") - .arg(QString::number(codes.size()), QString::number(added_count))); -} diff --git a/Source/Core/DolphinQt/Config/PropertiesDialog.cpp b/Source/Core/DolphinQt/Config/PropertiesDialog.cpp index 404f34eb03..bdd718f2f5 100644 --- a/Source/Core/DolphinQt/Config/PropertiesDialog.cpp +++ b/Source/Core/DolphinQt/Config/PropertiesDialog.cpp @@ -63,8 +63,8 @@ PropertiesDialog::PropertiesDialog(QWidget* parent, const UICommon::GameFile& ga connect(graphics_mod_list, &GraphicsModListWidget::OpenGraphicsSettings, this, &PropertiesDialog::OpenGraphicsSettings); - const int padding_width = 120; - const int padding_height = 100; + const int padding_width = 600; + const int padding_height = 1100; tab_widget->addTab(GetWrappedWidget(game_config, this, padding_width, padding_height), tr("Game Config")); tab_widget->addTab(GetWrappedWidget(patches, this, padding_width, padding_height), tr("Patches")); @@ -106,3 +106,50 @@ PropertiesDialog::PropertiesDialog(QWidget* parent, const UICommon::GameFile& ga setLayout(layout); tab_widget->setCurrentIndex(3); } + +GeckoDialog::GeckoDialog(QWidget* parent) : QDialog(parent) +{ + setWindowTitle(QStringLiteral("%1").arg(QString::fromStdString("Modifications"))); + setWindowFlags(windowFlags() & ~Qt::WindowContextHelpButtonHint); + + QVBoxLayout* layout = new QVBoxLayout(); + QTabWidget* tab_widget = new QTabWidget(this); + GeckoCodeWidget* mp4_gecko = new GeckoCodeWidget("GMPE01", "GMPE01", 0); + GeckoCodeWidget* mp5_gecko = new GeckoCodeWidget("GP5E01", "GP5E01", 0); + GeckoCodeWidget* mp6_gecko = new GeckoCodeWidget("GP6E01", "GP6E01", 0); + GeckoCodeWidget* mp7_gecko = new GeckoCodeWidget("GP7E01", "GP7E01", 0); + GeckoCodeWidget* mp8_gecko = new GeckoCodeWidget("RM8E01", "RM8E01", 0); + + connect(mp4_gecko, &GeckoCodeWidget::OpenGeneralSettings, this, + &GeckoDialog::OpenGeneralSettings); + connect(mp5_gecko, &GeckoCodeWidget::OpenGeneralSettings, this, + &GeckoDialog::OpenGeneralSettings); + connect(mp6_gecko, &GeckoCodeWidget::OpenGeneralSettings, this, + &GeckoDialog::OpenGeneralSettings); + connect(mp7_gecko, &GeckoCodeWidget::OpenGeneralSettings, this, + &GeckoDialog::OpenGeneralSettings); + connect(mp8_gecko, &GeckoCodeWidget::OpenGeneralSettings, this, + &GeckoDialog::OpenGeneralSettings); + + const int padding_width = 600; + const int padding_height = 1100; + + tab_widget->addTab(GetWrappedWidget(mp4_gecko, this, padding_width, padding_height), + tr("Mario Party 4")); + tab_widget->addTab(GetWrappedWidget(mp5_gecko, this, padding_width, padding_height), + tr("Mario Party 5")); + tab_widget->addTab(GetWrappedWidget(mp6_gecko, this, padding_width, padding_height), + tr("Mario Party 6")); + tab_widget->addTab(GetWrappedWidget(mp7_gecko, this, padding_width, padding_height), + tr("Mario Party 7")); + tab_widget->addTab(GetWrappedWidget(mp8_gecko, this, padding_width, padding_height), + tr("Mario Party 8")); + + layout->addWidget(tab_widget); + + QDialogButtonBox* close_box = new QDialogButtonBox(QDialogButtonBox::Close); + connect(close_box, &QDialogButtonBox::rejected, this, &QDialog::reject); + + layout->addWidget(close_box); + setLayout(layout); +} diff --git a/Source/Core/DolphinQt/Config/PropertiesDialog.h b/Source/Core/DolphinQt/Config/PropertiesDialog.h index 29d282a6e8..b45472a0b9 100644 --- a/Source/Core/DolphinQt/Config/PropertiesDialog.h +++ b/Source/Core/DolphinQt/Config/PropertiesDialog.h @@ -23,3 +23,13 @@ signals: void OpenAchievementSettings(); #endif // USE_RETRO_ACHIEVEMENTS }; + +class GeckoDialog final : public QDialog +{ + Q_OBJECT +public: + explicit GeckoDialog(QWidget* parent); + +signals: + void OpenGeneralSettings(); +}; diff --git a/Source/Core/DolphinQt/MainWindow.cpp b/Source/Core/DolphinQt/MainWindow.cpp index 2667e893d5..341d042e55 100644 --- a/Source/Core/DolphinQt/MainWindow.cpp +++ b/Source/Core/DolphinQt/MainWindow.cpp @@ -67,7 +67,7 @@ #include "Core/State.h" #include "Core/System.h" #include "Core/WiiUtils.h" - +#include "PropertiesDialog.h" #include "DiscIO/DirectoryBlob.h" #include "DiscIO/NANDImporter.h" #include "DiscIO/RiivolutionPatcher.h" @@ -699,7 +699,7 @@ void MainWindow::ConnectToolBar() connect(m_tool_bar, &ToolBar::GraphicsPressed, this, &MainWindow::ShowGraphicsWindow); connect(m_tool_bar, &ToolBar::StartNetPlayPressed, this, &MainWindow::ShowNetPlaySetupDialog); - + connect(m_tool_bar, &ToolBar::ViewGeckoCodes, this, &MainWindow::ShowGeckoCodes); connect(m_tool_bar, &ToolBar::StepPressed, m_code_widget, &CodeWidget::Step); connect(m_tool_bar, &ToolBar::StepOverPressed, m_code_widget, &CodeWidget::StepOver); connect(m_tool_bar, &ToolBar::StepOutPressed, m_code_widget, &CodeWidget::StepOut); @@ -2192,3 +2192,16 @@ void MainWindow::ShowRiivolutionBootWidget(const UICommon::GameFile& game) AddRiivolutionPatches(boot_params.get(), std::move(w.GetPatches())); StartGame(std::move(boot_params)); } + +void MainWindow::ShowGeckoCodes() +{ + if (!m_gecko_dialog) + { + m_gecko_dialog = new GeckoDialog(this); + InstallHotkeyFilter(m_gecko_dialog); + } + + m_gecko_dialog->show(); + m_gecko_dialog->raise(); + m_gecko_dialog->activateWindow(); +} diff --git a/Source/Core/DolphinQt/MainWindow.h b/Source/Core/DolphinQt/MainWindow.h index 84cdae2f91..101b699b08 100644 --- a/Source/Core/DolphinQt/MainWindow.h +++ b/Source/Core/DolphinQt/MainWindow.h @@ -31,6 +31,7 @@ class FreeLookWindow; class GameList; class GBATASInputWindow; class GCTASInputWindow; +class GeckoDialog; class GraphicsWindow; class HotkeyScheduler; class InfinityBaseWindow; @@ -213,6 +214,7 @@ private: void dragEnterEvent(QDragEnterEvent* event) override; void dropEvent(QDropEvent* event) override; QSize sizeHint() const override; + void ShowGeckoCodes(); #ifdef _WIN32 // This gets called for each event from the Windows message queue. @@ -237,7 +239,7 @@ private: bool m_is_screensaver_inhibited = false; u32 m_state_slot = 1; std::unique_ptr m_pending_boot; - + GeckoDialog* m_gecko_dialog = nullptr; ControllersWindow* m_controllers_window = nullptr; SettingsWindow* m_settings_window = nullptr; GraphicsWindow* m_graphics_window = nullptr; @@ -246,7 +248,6 @@ private: InfinityBaseWindow* m_infinity_window = nullptr; MappingWindow* m_hotkey_window = nullptr; FreeLookWindow* m_freelook_window = nullptr; - HotkeyScheduler* m_hotkey_scheduler; NetPlayDialog* m_netplay_dialog; DiscordHandler* m_netplay_discord; diff --git a/Source/Core/DolphinQt/NetPlay/NetPlayBrowser.cpp b/Source/Core/DolphinQt/NetPlay/NetPlayBrowser.cpp index e50f22ad26..67454e9c9e 100644 --- a/Source/Core/DolphinQt/NetPlay/NetPlayBrowser.cpp +++ b/Source/Core/DolphinQt/NetPlay/NetPlayBrowser.cpp @@ -105,7 +105,7 @@ void NetPlayBrowser::Refresh() std::map filters; if (m_check_hide_incompatible->isChecked()) - filters["version"] = Common::GetScmDescStr(); + filters["version"] = "MPN"; if (!m_edit_name->text().isEmpty()) filters["name"] = m_edit_name->text().toStdString(); diff --git a/Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp b/Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp index 6a02f5c8e2..bbdad9aa25 100644 --- a/Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp +++ b/Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp @@ -264,7 +264,7 @@ void NetPlayDialog::CreateMainLayout() m_main_layout->addLayout(options_widget, 2, 0, 1, -1, Qt::AlignRight); m_main_layout->setRowStretch(1, 1000); - + m_buffer_size_box->setFixedSize(100, 20); setLayout(m_main_layout); } @@ -1297,4 +1297,4 @@ void NetPlayDialog::OnActiveGeckoCodes(std::string codeStr) void NetPlayDialog::OnActiveARCodes(std::string codeStr) { DisplayMessage(QString::fromStdString(codeStr), "cornflowerblue"); -} \ No newline at end of file +} diff --git a/Source/Core/DolphinQt/NetPlay/NetPlaySetupDialog.cpp b/Source/Core/DolphinQt/NetPlay/NetPlaySetupDialog.cpp index 9228573155..ea842a8295 100644 --- a/Source/Core/DolphinQt/NetPlay/NetPlaySetupDialog.cpp +++ b/Source/Core/DolphinQt/NetPlay/NetPlaySetupDialog.cpp @@ -371,7 +371,7 @@ void NetPlaySetupDialog::show() m_host_server_name->setText(QString::fromStdString(nickname)); } m_connection_type->setCurrentIndex(1); - m_tab_widget->setCurrentIndex(2); // start on browser + m_tab_widget->setCurrentIndex(2); PopulateGameList(); QDialog::show(); @@ -444,7 +444,7 @@ void NetPlaySetupDialog::RefreshBrowser() filters["name"] = m_edit_name->text().toStdString(); if (true) - filters["version"] = Common::GetScmDescStr(); + filters["version"] = "MPN"; if (!m_radio_all->isChecked()) filters["password"] = std::to_string(m_radio_private->isChecked()); diff --git a/Source/Core/DolphinQt/ToolBar.cpp b/Source/Core/DolphinQt/ToolBar.cpp index 53131b232d..284fc490da 100644 --- a/Source/Core/DolphinQt/ToolBar.cpp +++ b/Source/Core/DolphinQt/ToolBar.cpp @@ -133,7 +133,7 @@ void ToolBar::MakeActions() m_config_action = addAction(tr("Config"), this, &ToolBar::SettingsPressed); m_graphics_action = addAction(tr("Graphics"), this, &ToolBar::GraphicsPressed); m_controllers_action = addAction(tr("Controllers"), this, &ToolBar::ControllersPressed); - + m_view_gecko_codes_action = addAction(tr("Modifications"), this, &ToolBar::ViewGeckoCodes); // Ensure every button has about the same width std::vector items; for (const auto& action : @@ -196,6 +196,7 @@ void ToolBar::UpdateIcons() m_screenshot_action->setIcon(Resources::GetThemeIcon("screenshot")); m_config_action->setIcon(Resources::GetThemeIcon("config")); m_controllers_action->setIcon(Resources::GetThemeIcon("classic")); + m_view_gecko_codes_action->setIcon(Resources::GetThemeIcon("modifications")); m_graphics_action->setIcon(Resources::GetThemeIcon("graphics")); m_start_netplay_action->setIcon(Resources::GetThemeIcon("wifi")); } diff --git a/Source/Core/DolphinQt/ToolBar.h b/Source/Core/DolphinQt/ToolBar.h index 8aa3fa73c4..efec279190 100644 --- a/Source/Core/DolphinQt/ToolBar.h +++ b/Source/Core/DolphinQt/ToolBar.h @@ -34,7 +34,7 @@ signals: void GraphicsPressed(); void StartNetPlayPressed(); - + void ViewGeckoCodes(); void StepPressed(); void StepOverPressed(); void StepOutPressed(); @@ -59,9 +59,10 @@ private: QAction* m_config_action; QAction* m_controllers_action; QAction* m_graphics_action; - QAction* m_start_netplay_action; + QAction* m_view_gecko_codes_action; + QAction* m_step_action; QAction* m_step_over_action; QAction* m_step_out_action; diff --git a/Source/Core/UICommon/NetPlayIndex.cpp b/Source/Core/UICommon/NetPlayIndex.cpp index aaaa4549a8..406bca310e 100644 --- a/Source/Core/UICommon/NetPlayIndex.cpp +++ b/Source/Core/UICommon/NetPlayIndex.cpp @@ -95,12 +95,10 @@ NetPlayIndex::List(const std::map& filters) const auto& player_count = entry.get("player_count"); const auto& port = entry.get("port"); const auto& in_game = entry.get("in_game"); - const auto& version = entry.get("version"); if (!name.is() || !region.is() || !method.is() || !server_id.is() || !game_id.is() || !has_password.is() || - !player_count.is() || !port.is() || !in_game.is() || - !version.is()) + !player_count.is() || !port.is() || !in_game.is()) { continue; } @@ -111,7 +109,7 @@ NetPlayIndex::List(const std::map& filters) session.game_id = game_id.to_str(); session.server_id = server_id.to_str(); session.method = method.to_str(); - session.version = version.to_str(); + session.version = "MPN"; session.has_password = has_password.get(); session.player_count = static_cast(player_count.get()); session.port = static_cast(port.get()); @@ -169,8 +167,8 @@ bool NetPlayIndex::Add(const NetPlaySession& session) "&game=" + request.EscapeComponent(session.game_id) + "&password=" + std::to_string(session.has_password) + "&method=" + session.method + "&server_id=" + session.server_id + "&in_game=" + std::to_string(session.in_game) + - "&port=" + std::to_string(session.port) + "&player_count=" + - std::to_string(session.player_count) + "&version=" + Common::GetScmDescStr(), + "&port=" + std::to_string(session.port) + "&player_count=" + std::to_string(session.player_count) + + "&version=MPN", {{"X-Is-Dolphin", "1"}}, Common::HttpRequest::AllowedReturnCodes::All); if (!response.has_value())