mirror of
https://github.com/shadps4-emu/shadPS4.git
synced 2026-04-04 20:37:51 -06:00
Some checks failed
Build and Release / reuse (push) Has been cancelled
Build and Release / clang-format (push) Has been cancelled
Build and Release / get-info (push) Has been cancelled
Build and Release / windows-sdl (push) Has been cancelled
Build and Release / macos-sdl (push) Has been cancelled
Build and Release / linux-sdl (push) Has been cancelled
Build and Release / linux-sdl-gcc (push) Has been cancelled
Build and Release / pre-release (push) Has been cancelled
* Fixed sceCompanionUtilGetEvent stub Previously we effectively stubbed with ORBIS_COMPANION_UTIL_INVALID_POINTER, which makes no sense and caused issues in games. * Check for null issuer_id in libSceNpAuth's GetAuthorizationCode Comes up in Mirror's Edge Catalyst, according to some debugging done by a community member. Given the library didn't have any null checks for that value, this is probably allowed.
71 lines
2.3 KiB
C++
71 lines
2.3 KiB
C++
// SPDX-FileCopyrightText: Copyright 2025 shadPS4 Emulator Project
|
|
// SPDX-License-Identifier: GPL-2.0-or-later
|
|
|
|
#include "common/logging/log.h"
|
|
#include "companion_error.h"
|
|
#include "core/libraries/companion/companion_util.h"
|
|
#include "core/libraries/error_codes.h"
|
|
#include "core/libraries/libs.h"
|
|
|
|
namespace Libraries::CompanionUtil {
|
|
|
|
u32 PS4_SYSV_ABI getEvent(sceCompanionUtilContext* ctx, sceCompanionUtilEvent* outEvent,
|
|
s32 param_3) {
|
|
if (outEvent == 0) {
|
|
return ORBIS_COMPANION_UTIL_INVALID_ARGUMENT;
|
|
}
|
|
|
|
if (ctx == nullptr) {
|
|
return ORBIS_COMPANION_UTIL_INVALID_POINTER;
|
|
}
|
|
|
|
uint8_t* base = ctx->blob;
|
|
int flag = *reinterpret_cast<int*>(base + 0x178);
|
|
if (flag == 0) {
|
|
return ORBIS_COMPANION_UTIL_NO_EVENT;
|
|
}
|
|
|
|
return ORBIS_COMPANION_UTIL_OK;
|
|
}
|
|
|
|
s32 PS4_SYSV_ABI sceCompanionUtilGetEvent(sceCompanionUtilEvent* outEvent) {
|
|
u32 ret = ORBIS_COMPANION_UTIL_NO_EVENT;
|
|
|
|
LOG_DEBUG(Lib_CompanionUtil, "(STUBBED) called ret: {:#x}", ret);
|
|
return ret;
|
|
}
|
|
|
|
s32 PS4_SYSV_ABI sceCompanionUtilGetRemoteOskEvent() {
|
|
LOG_ERROR(Lib_CompanionUtil, "(STUBBED) called");
|
|
return ORBIS_OK;
|
|
}
|
|
|
|
s32 PS4_SYSV_ABI sceCompanionUtilInitialize() {
|
|
LOG_ERROR(Lib_CompanionUtil, "(STUBBED) called");
|
|
return ORBIS_OK;
|
|
}
|
|
|
|
s32 PS4_SYSV_ABI sceCompanionUtilOptParamInitialize() {
|
|
LOG_ERROR(Lib_CompanionUtil, "(STUBBED) called");
|
|
return ORBIS_OK;
|
|
}
|
|
|
|
s32 PS4_SYSV_ABI sceCompanionUtilTerminate() {
|
|
LOG_ERROR(Lib_CompanionUtil, "(STUBBED) called");
|
|
return ORBIS_OK;
|
|
}
|
|
|
|
void RegisterLib(Core::Loader::SymbolsResolver* sym) {
|
|
LIB_FUNCTION("cE5Msy11WhU", "libSceCompanionUtil", 1, "libSceCompanionUtil",
|
|
sceCompanionUtilGetEvent);
|
|
LIB_FUNCTION("MaVrz79mT5o", "libSceCompanionUtil", 1, "libSceCompanionUtil",
|
|
sceCompanionUtilGetRemoteOskEvent);
|
|
LIB_FUNCTION("xb1xlIhf0QY", "libSceCompanionUtil", 1, "libSceCompanionUtil",
|
|
sceCompanionUtilInitialize);
|
|
LIB_FUNCTION("IPN-FRSrafk", "libSceCompanionUtil", 1, "libSceCompanionUtil",
|
|
sceCompanionUtilOptParamInitialize);
|
|
LIB_FUNCTION("H1fYQd5lFAI", "libSceCompanionUtil", 1, "libSceCompanionUtil",
|
|
sceCompanionUtilTerminate);
|
|
};
|
|
|
|
} // namespace Libraries::CompanionUtil
|