diff --git a/Core/Dialog/PSPDialog.h b/Core/Dialog/PSPDialog.h index db00f8a178..c08e5d8c2e 100644 --- a/Core/Dialog/PSPDialog.h +++ b/Core/Dialog/PSPDialog.h @@ -26,9 +26,11 @@ class PointerWrap; #define SCE_UTILITY_DIALOG_RESULT_CANCEL 1 #define SCE_UTILITY_DIALOG_RESULT_ABORT 2 -const int SCE_ERROR_UTILITY_INVALID_STATUS = 0x80110001; -const int SCE_ERROR_UTILITY_INVALID_PARAM_SIZE = 0x80110004; -const int SCE_ERROR_UTILITY_WRONG_TYPE = 0x80110005; +const int SCE_ERROR_UTILITY_INVALID_STATUS = 0x80110001; +const int SCE_ERROR_UTILITY_INVALID_PARAM_SIZE = 0x80110004; +const int SCE_ERROR_UTILITY_WRONG_TYPE = 0x80110005; +const int ERROR_UTILITY_INVALID_ADHOC_CHANNEL = 0x80110104; +const int ERROR_UTILITY_INVALID_SYSTEM_PARAM_ID = 0x80110103; struct pspUtilityDialogCommon { diff --git a/Core/HLE/sceUtility.cpp b/Core/HLE/sceUtility.cpp index f49edf7d74..6b5b89d75f 100644 --- a/Core/HLE/sceUtility.cpp +++ b/Core/HLE/sceUtility.cpp @@ -690,6 +690,25 @@ static u32 sceUtilityGetSystemParamString(u32 id, u32 destaddr, int destSize) return 0; } +static u32 sceUtilitySetSystemParamInt(u32 id, u32 value) +{ + switch (id) { + case PSP_SYSTEMPARAM_ID_INT_ADHOC_CHANNEL: + if (value != 0 && value != 1 && value != 6 && value != 11) { + return ERROR_UTILITY_INVALID_ADHOC_CHANNEL; + } + //Settings.getInstance().writeInt(SYSTEMPARAM_SETTINGS_OPTION_ADHOC_CHANNEL, value); + break; + case PSP_SYSTEMPARAM_ID_INT_WLAN_POWERSAVE: + // Settings.getInstance().writeInt(SYSTEMPARAM_SETTINGS_OPTION_WLAN_POWER_SAVE, value); + break; + default: + // PSP can only set above int parameters + return ERROR_UTILITY_INVALID_SYSTEM_PARAM_ID; + } + return 0; +} + static u32 sceUtilityGetSystemParamInt(u32 id, u32 destaddr) { DEBUG_LOG(SCEUTILITY,"sceUtilityGetSystemParamInt(%i, %08x)", id,destaddr); @@ -875,7 +894,7 @@ const HLEFunction sceUtility[] = {0XF3F76017, &WrapI_V, "sceUtilityOskGetStatus", 'i', "" }, {0X41E30674, &WrapU_UU, "sceUtilitySetSystemParamString", 'x', "xx" }, - {0X45C18506, nullptr, "sceUtilitySetSystemParamInt", '?', "" }, + {0X45C18506, &WrapU_UU, "sceUtilitySetSystemParamInt", 'x', "xx" }, {0X34B78343, &WrapU_UUI, "sceUtilityGetSystemParamString", 'x', "xxi"}, {0XA5DA2406, &WrapU_UU, "sceUtilityGetSystemParamInt", 'x', "xx" },