From 8125d7f21a502935e34c5faa847f5eeae7870618 Mon Sep 17 00:00:00 2001 From: zeph <35661622+ZephyrCodesStuff@users.noreply.github.com> Date: Sun, 7 Dec 2025 19:03:45 +0100 Subject: [PATCH] Clans: fix requests being unavailable Signed-off-by: zeph <35661622+ZephyrCodesStuff@users.noreply.github.com> --- rpcs3/Emu/Cell/Modules/sceNpClans.cpp | 15 +++++++++++++++ rpcs3/Emu/NP/clans_client.cpp | 2 +- rpcs3/rpcs3qt/clans_settings_dialog.cpp | 7 +++++++ 3 files changed, 23 insertions(+), 1 deletion(-) diff --git a/rpcs3/Emu/Cell/Modules/sceNpClans.cpp b/rpcs3/Emu/Cell/Modules/sceNpClans.cpp index 51960f58bd..737e481745 100644 --- a/rpcs3/Emu/Cell/Modules/sceNpClans.cpp +++ b/rpcs3/Emu/Cell/Modules/sceNpClans.cpp @@ -1063,6 +1063,9 @@ error_code sceNpClansPostChallenge(vm::ptr handle, SceN return SCE_NP_CLANS_ERROR_EXCEEDS_MAX; } + vm::var req; + vm::write32(handle.addr(), req.addr()); + return CELL_OK; } @@ -1088,6 +1091,9 @@ error_code sceNpClansRetrievePostedChallenges(vm::ptr h } } + vm::var req; + vm::write32(handle.addr(), req.addr()); + return CELL_OK; } @@ -1100,6 +1106,9 @@ error_code sceNpClansRemovePostedChallenge(vm::ptr hand return SCE_NP_CLANS_ERROR_NOT_INITIALIZED; } + vm::var req; + vm::write32(handle.addr(), req.addr()); + return CELL_OK; } @@ -1125,6 +1134,9 @@ error_code sceNpClansRetrieveChallenges(vm::ptr handle, } } + vm::var req; + vm::write32(handle.addr(), req.addr()); + return CELL_OK; } @@ -1137,6 +1149,9 @@ error_code sceNpClansRemoveChallenge(SceNpClansRequestHandle handle, SceNpClanId return SCE_NP_CLANS_ERROR_NOT_INITIALIZED; } + vm::var req; + vm::write32(handle.addr(), req.addr()); + return CELL_OK; } diff --git a/rpcs3/Emu/NP/clans_client.cpp b/rpcs3/Emu/NP/clans_client.cpp index 11ecf382ce..ebf0dfe97c 100644 --- a/rpcs3/Emu/NP/clans_client.cpp +++ b/rpcs3/Emu/NP/clans_client.cpp @@ -143,7 +143,7 @@ namespace clan SceNpClansError clans_client::createRequest() { if (curl) - return SceNpClansError::SCE_NP_CLANS_ERROR_ALREADY_INITIALIZED; + return SceNpClansError::SCE_NP_CLANS_SUCCESS; curl = curl_easy_init(); if (!curl) diff --git a/rpcs3/rpcs3qt/clans_settings_dialog.cpp b/rpcs3/rpcs3qt/clans_settings_dialog.cpp index 891ede4ded..0e0a17240f 100644 --- a/rpcs3/rpcs3qt/clans_settings_dialog.cpp +++ b/rpcs3/rpcs3qt/clans_settings_dialog.cpp @@ -8,10 +8,17 @@ #include "clans_settings_dialog.h" #include "Emu/NP/clans_config.h" +#include "Emu/System.h" clans_settings_dialog::clans_settings_dialog(QWidget* parent) : QDialog(parent) { + if (!Emu.IsStopped()) + { + QMessageBox::critical(this, tr("Error: Emulation Running"), tr("You need to stop the emulator before editing Clans connection information!"), QMessageBox::Ok); + return; + } + g_cfg_clans.load(); setWindowTitle(tr("Clans Configuration"));