From 7a1d63b9644d6408448a71caf7cb8fcedd87bf65 Mon Sep 17 00:00:00 2001
From: krispy <125815038+kr1spy2115@users.noreply.github.com>
Date: Mon, 25 Dec 2023 17:25:38 +0100
Subject: [PATCH] SceNpGetAccountLanguageA (#152)

* Update ps4_libscenpmanager.pas (sceNpGetAccountLanguageA)

implement function

* Update ps4_libscenpmanager.pas

* Update ps4_libscenpmanager.pas (SceNpGetAccountLanguageA)

SceNpGetAccountLanguageA
---
 src/np/ps4_libscenpmanager.pas | 17 +++++++++++++++++
 1 file changed, 17 insertions(+)

diff --git a/src/np/ps4_libscenpmanager.pas b/src/np/ps4_libscenpmanager.pas
index 62f75934..cd2b4025 100644
--- a/src/np/ps4_libscenpmanager.pas
+++ b/src/np/ps4_libscenpmanager.pas
@@ -12,6 +12,8 @@ interface
 
 Const
  SCE_NP_COUNTRY_CODE_LENGTH=2;
+ 
+ SCE_NP_LANGUAGE_CODE_MAX_LEN=5;
 
  SCE_NP_TITLE_ID_LEN=12;
 
@@ -40,6 +42,12 @@ interface
   padding:array[0..1] of AnsiChar;
  end;
 
+ pSceNpLanguageCode=^SceNpLanguageCode;
+ SceNpLanguageCode=packed record
+  code:array[0..SCE_NP_LANGUAGE_CODE_MAX_LEN] of AnsiChar;
+  padding:array[0..9] of Byte;
+ end;
+
  SceNpAgeRestriction=packed record
   countryCode:SceNpCountryCode;
   age:Shortint;
@@ -161,6 +169,13 @@ function ps4_sceNpGetAccountIdA(userId:Integer;pAccountId:PQWORD):Integer; SysV_
  Result:=0;
 end;
 
+function ps4_sceNpGetAccountLanguageA(reqId,userId:Integer;pLangCode:pSceNpLanguageCode):Integer; SysV_ABI_CDecl;
+begin
+ if (pLangCode=nil) then Exit(SCE_NP_ERROR_INVALID_ARGUMENT);
+ pLangCode^.code:='en';
+ Result:=0;
+end;   
+
 const
  GEOCLASS_NATION = 16;
 
@@ -533,6 +548,8 @@ function Load_libSceNpManager(Const name:RawByteString):TElf_node;
  lib^.set_proc($BAA70F24B58BD3C3,@ps4_sceNpPollAsync);
  lib^.set_proc($337C055DB610B400,@ps4_sceNpUnregisterStateCallbackA);
  lib^.set_proc($F150537917F56702,@ps4_sceNpGetAccountDateOfBirth);
+ lib^.set_proc($4CF31B808C6FA20D,@ps4_sceNpGetAccountLanguageA);
+ 
 
  lib:=Result._add_lib('libSceNpManagerForToolkit');
  lib^.set_proc($D1CEC76D744A52DE,@ps4_sceNpRegisterStateCallbackForToolkit);