From 99044c7c4964bff1f31e396ea9573d373f2251f7 Mon Sep 17 00:00:00 2001 From: herrMirto Date: Sun, 25 Oct 2026 18:38:26 +0100 Subject: [PATCH] libs: provide NpEntitlementAccessPft state query used by FC27 (#1897) Co-authored-by: Andre Michi --- src/libs/libNet.cpp | 4 ++++ src/libs/libNpEntitlementAccess.cpp | 22 ++++++++++++++++++++++ 2 files changed, 26 insertions(+) diff --git a/src/libs/libNet.cpp b/src/libs/libNet.cpp index 11e5d3c82..95be4eeb5 100644 --- a/src/libs/libNet.cpp +++ b/src/libs/libNet.cpp @@ -21,6 +21,9 @@ namespace Libs { namespace LibNpEntitlementAccess { void InitNet_1_NpEntitlementAccess(Loader::SymbolDatabase* s); } +namespace LibNpEntitlementAccessPft { +void InitNet_1_NpEntitlementAccessPft(Loader::SymbolDatabase* s); +} namespace LibNpTrophy2 { void InitNet_1_NpTrophy2(Loader::SymbolDatabase* s); } @@ -2846,6 +2849,7 @@ LIB_DEFINE(InitNet_1) { LibNpManager::InitNet_1_NpManager(s); LibNpSessionSignaling::InitNet_1_NpSessionSignaling(s); LibNpEntitlementAccess::InitNet_1_NpEntitlementAccess(s); + LibNpEntitlementAccessPft::InitNet_1_NpEntitlementAccessPft(s); LibNpAuth::InitNet_1_NpAuth(s); LibNpTrophy2::InitNet_1_NpTrophy2(s); LibNpUniversalDataSystem::InitNet_1_NpUniversalDataSystem(s); diff --git a/src/libs/libNpEntitlementAccess.cpp b/src/libs/libNpEntitlementAccess.cpp index 3c130517d..ee12d5be4 100644 --- a/src/libs/libNpEntitlementAccess.cpp +++ b/src/libs/libNpEntitlementAccess.cpp @@ -513,4 +513,26 @@ LIB_DEFINE(InitNet_1_NpEntitlementAccess) { } // namespace LibNpEntitlementAccess +namespace LibNpEntitlementAccessPft { + +LIB_VERSION("NpEntitlementAccessPft", 1, "NpEntitlementAccess", 1, 1); + +// Unknown function; return state 2 for the FC27 investigation. +static int KYTY_SYSV_ABI NpEntitlementAccessPftUnknowneDXKe9FndlE(uint32_t* state) { + PRINT_NAME(); + + if (state == nullptr) { + return LibNpEntitlementAccess::NP_ENTITLEMENT_ACCESS_ERROR_PARAMETER; + } + + *state = 2; + return 0; +} + +LIB_DEFINE(InitNet_1_NpEntitlementAccessPft) { + LIB_FUNC("eDXKe9FndlE", NpEntitlementAccessPftUnknowneDXKe9FndlE); +} + +} // namespace LibNpEntitlementAccessPft + } // namespace Libs