From e5001a115f382c390e82160af54bd1bf10b405f3 Mon Sep 17 00:00:00 2001 From: sum2012 Date: Sun, 9 Apr 2017 19:58:43 +0800 Subject: [PATCH 1/3] Implemented sceUtilityGetSystemParamInt --- Core/Dialog/PSPDialog.h | 8 +++++--- Core/HLE/sceUtility.cpp | 21 ++++++++++++++++++++- 2 files changed, 25 insertions(+), 4 deletions(-) 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..0451321b6f 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 sceUtilityGetSystemParamInt_(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" }, From 0081f5775e767edb844e600abcbf9c54eed327b2 Mon Sep 17 00:00:00 2001 From: sum2012 Date: Mon, 10 Apr 2017 20:33:56 +0800 Subject: [PATCH 2/3] Format fix --- Core/HLE/sceUtility.cpp | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/Core/HLE/sceUtility.cpp b/Core/HLE/sceUtility.cpp index 0451321b6f..d7df92bb7e 100644 --- a/Core/HLE/sceUtility.cpp +++ b/Core/HLE/sceUtility.cpp @@ -692,20 +692,20 @@ static u32 sceUtilityGetSystemParamString(u32 id, u32 destaddr, int destSize) static u32 sceUtilityGetSystemParamInt_(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; - } + 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; } From c17f5f1a13a76da678ba4d115a883a270b0f4b8d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Henrik=20Rydg=C3=A5rd?= Date: Tue, 6 Jun 2017 19:07:11 +0200 Subject: [PATCH 3/3] Fix get/set confusion --- Core/HLE/sceUtility.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Core/HLE/sceUtility.cpp b/Core/HLE/sceUtility.cpp index d7df92bb7e..6b5b89d75f 100644 --- a/Core/HLE/sceUtility.cpp +++ b/Core/HLE/sceUtility.cpp @@ -690,7 +690,7 @@ static u32 sceUtilityGetSystemParamString(u32 id, u32 destaddr, int destSize) return 0; } -static u32 sceUtilityGetSystemParamInt_(u32 id, u32 value) +static u32 sceUtilitySetSystemParamInt(u32 id, u32 value) { switch (id) { case PSP_SYSTEMPARAM_ID_INT_ADHOC_CHANNEL: @@ -894,7 +894,7 @@ const HLEFunction sceUtility[] = {0XF3F76017, &WrapI_V, "sceUtilityOskGetStatus", 'i', "" }, {0X41E30674, &WrapU_UU, "sceUtilitySetSystemParamString", 'x', "xx" }, - {0X45C18506, &WrapU_UU, "sceUtilitySetSystemParamInt", 'x', "xx" }, + {0X45C18506, &WrapU_UU, "sceUtilitySetSystemParamInt", 'x', "xx" }, {0X34B78343, &WrapU_UUI, "sceUtilityGetSystemParamString", 'x', "xxi"}, {0XA5DA2406, &WrapU_UU, "sceUtilityGetSystemParamInt", 'x', "xx" },