From ef5adf8274f489c5aa0ffecdc5b8d0b833562291 Mon Sep 17 00:00:00 2001 From: Dominic Masters Date: Thu, 16 Jul 2026 20:09:39 -0500 Subject: [PATCH] PSP Network connect --- src/dusk/engine/engine.c | 23 ++++++++++++++------ src/dusk/ui/frame/settings/uisettingsinput.c | 1 + src/duskpsp/display/displayplatform.h | 4 ++-- src/duskpsp/system/systempsp.c | 5 +++++ 4 files changed, 24 insertions(+), 9 deletions(-) diff --git a/src/dusk/engine/engine.c b/src/dusk/engine/engine.c index cb0232b7..ed3188b8 100644 --- a/src/dusk/engine/engine.c +++ b/src/dusk/engine/engine.c @@ -39,6 +39,7 @@ errorret_t engineInit(const int32_t argc, const char_t **argv) { errorChain(inputInit()); errorChain(assetInit()); errorChain(saveInit()); + errorChain(inputLoadSettings()); errorChain(localeManagerInit()); errorChain(displayInit()); errorChain(uiInit()); @@ -79,16 +80,24 @@ errorret_t engineUpdate(void) { networkRequestDisconnection(engineNetworkDisconnectTestOnComplete, NULL); } - inputUpdate(); - consoleUpdate(); - errorChain(rpgUpdate()); - errorChain(sceneUpdate()); - errorChain(assetUpdate()); - errorChain(uiUpdate()); + const systemdialogtype_t dialogType = systemGetActiveDialogType(); + if(dialogType == SYSTEM_DIALOG_TYPE_NONE) { + inputUpdate(); + consoleUpdate(); + errorChain(rpgUpdate()); + errorChain(sceneUpdate()); + errorChain(assetUpdate()); + errorChain(uiUpdate()); + } // Render errorChain(displayUpdate()); - if(inputPressed(INPUT_ACTION_RAGEQUIT)) ENGINE.running = false; + if( + dialogType == SYSTEM_DIALOG_TYPE_NONE && + inputPressed(INPUT_ACTION_RAGEQUIT) + ) { + ENGINE.running = false; + } errorOk(); } diff --git a/src/dusk/ui/frame/settings/uisettingsinput.c b/src/dusk/ui/frame/settings/uisettingsinput.c index 287329cd..f0a83693 100644 --- a/src/dusk/ui/frame/settings/uisettingsinput.c +++ b/src/dusk/ui/frame/settings/uisettingsinput.c @@ -66,6 +66,7 @@ void uiSettingsInputApply(void) { &UI_SETTINGS.data.input.items[UI_SETTINGS_INPUT_INDEX_DEADZONE].slider ); #endif + errorCatch(errorPrint(inputSaveSettings())); uiMenuClose(&UI_SETTINGS.data.input.menu); } diff --git a/src/duskpsp/display/displayplatform.h b/src/duskpsp/display/displayplatform.h index 57dbf17e..8826780c 100644 --- a/src/duskpsp/display/displayplatform.h +++ b/src/duskpsp/display/displayplatform.h @@ -1,6 +1,6 @@ /** * Copyright (c) 2026 Dominic Masters - * + * * This software is released under the MIT License. * https://opensource.org/licenses/MIT */ @@ -14,4 +14,4 @@ typedef displaysdl2_t displayplatform_t; #define displayPlatformUpdate displaySDL2Update #define displayPlatformSwap displaySDL2Swap #define displayPlatformDispose displaySDL2Dispose -#define displayPlatformSetState displaySDL2SetState \ No newline at end of file +#define displayPlatformSetState displaySDL2SetState diff --git a/src/duskpsp/system/systempsp.c b/src/duskpsp/system/systempsp.c index b4825ef1..47dbbc94 100644 --- a/src/duskpsp/system/systempsp.c +++ b/src/duskpsp/system/systempsp.c @@ -9,6 +9,7 @@ #include "input/input.h" #include "util/string.h" #include "assert/assert.h" +#include "network/network.h" errorret_t systemInitPSP() { // Bind ACCEPT and CANCEL binds. @@ -45,6 +46,10 @@ errorret_t systemInitPSP() { } systemdialogtype_t systemGetActiveDialogTypePSP() { + if(NETWORK.state == NETWORK_STATE_CONNECTING) { + return SYSTEM_DIALOG_TYPE_TICK_BLOCKING; + } + return SYSTEM_DIALOG_TYPE_NONE; }