From 1ded37d2535127ec0669a7db7a8d0eb0bde8c2c1 Mon Sep 17 00:00:00 2001 From: Survanium90 Date: Wed, 1 Oct 2014 13:25:06 +0400 Subject: [PATCH] Added initialization for SceNpUtilBandwidthTestInitStart Also added initialization checks --- rpcs3/Emu/SysCalls/Modules/sceNp.cpp | 31 ++++++++++++++++++++++++---- 1 file changed, 27 insertions(+), 4 deletions(-) diff --git a/rpcs3/Emu/SysCalls/Modules/sceNp.cpp b/rpcs3/Emu/SysCalls/Modules/sceNp.cpp index 35c8126587..f5695c15a7 100644 --- a/rpcs3/Emu/SysCalls/Modules/sceNp.cpp +++ b/rpcs3/Emu/SysCalls/Modules/sceNp.cpp @@ -17,12 +17,14 @@ struct sceNpInternal bool m_bSceNp2Initialized; bool m_bScoreInitialized; bool m_bLookupInitialized; + bool m_bSceNpUtilBandwidthTestInitialized; sceNpInternal() : m_bSceNpInitialized(false), m_bSceNp2Initialized(false), m_bScoreInitialized(false), - m_bLookupInitialized(false) + m_bLookupInitialized(false), + m_bSceNpUtilBandwidthTestInitialized(false) { } }; @@ -1547,27 +1549,47 @@ int sceNpUtilCmpNpIdInOrder() return CELL_OK; } -int sceNpUtilBandwidthTestInitStart() +int sceNpUtilBandwidthTestInitStart(u32 prio, size_t stack) { UNIMPLEMENTED_FUNC(sceNp); + + if (sceNpInstance.m_bSceNpUtilBandwidthTestInitialized) + return SCE_NP_ERROR_ALREADY_INITIALIZED; + + sceNpInstance.m_bSceNpUtilBandwidthTestInitialized = true; + return CELL_OK; } int sceNpUtilBandwidthTestGetStatus() { UNIMPLEMENTED_FUNC(sceNp); + + if (!sceNpInstance.m_bSceNpUtilBandwidthTestInitialized) + return SCE_NP_ERROR_NOT_INITIALIZED; + return CELL_OK; } int sceNpUtilBandwidthTestShutdown() { UNIMPLEMENTED_FUNC(sceNp); + + if (!sceNpInstance.m_bSceNpUtilBandwidthTestInitialized) + return SCE_NP_ERROR_NOT_INITIALIZED; + + sceNpInstance.m_bSceNpUtilBandwidthTestInitialized = false; + return CELL_OK; } int sceNpUtilBandwidthTestAbort() { UNIMPLEMENTED_FUNC(sceNp); + + if (!sceNpInstance.m_bSceNpUtilBandwidthTestInitialized) + return SCE_NP_ERROR_NOT_INITIALIZED; + return CELL_OK; } @@ -1589,6 +1611,7 @@ void sceNp_unload() sceNpInstance.m_bSceNp2Initialized = false; sceNpInstance.m_bScoreInitialized = false; sceNpInstance.m_bLookupInitialized = false; + sceNpInstance.m_bSceNpUtilBandwidthTestInitialized = false; } void sceNp_init(Module *pxThis) @@ -1597,8 +1620,10 @@ void sceNp_init(Module *pxThis) sceNp->AddFunc(0xbd28fdbf, sceNpInit); sceNp->AddFunc(0x41251f74, sceNp2Init); + sceNp->AddFunc(0xc2ced2b7, sceNpUtilBandwidthTestInitStart); sceNp->AddFunc(0x4885aa18, sceNpTerm); sceNp->AddFunc(0xaadb7c12, sceNp2Term); + sceNp->AddFunc(0x432b3cbf, sceNpUtilBandwidthTestShutdown); sceNp->AddFunc(0xad218faf, sceNpDrmIsAvailable); sceNp->AddFunc(0xf042b14f, sceNpDrmIsAvailable2); sceNp->AddFunc(0x2ecd48ed, sceNpDrmVerifyUpgradeLicense); @@ -1817,9 +1842,7 @@ void sceNp_init(Module *pxThis) sceNp->AddFunc(0xd0958814, sceNpSignalingGetPeerNetInfoResult); sceNp->AddFunc(0xd208f91d, sceNpUtilCmpNpId); sceNp->AddFunc(0xf5ff5f31, sceNpUtilCmpNpIdInOrder); - sceNp->AddFunc(0xc2ced2b7, sceNpUtilBandwidthTestInitStart); sceNp->AddFunc(0xc880f37d, sceNpUtilBandwidthTestGetStatus); - sceNp->AddFunc(0x432b3cbf, sceNpUtilBandwidthTestShutdown); sceNp->AddFunc(0xc99ee313, sceNpUtilBandwidthTestAbort); sceNp->AddFunc(0xee0cc40c, _sceNpSysutilClientMalloc); sceNp->AddFunc(0x816c6a5f, _sceNpSysutilClientFree);