From 1bb114e5b68f570bd97ee878db5e6b3ae0ebd3a4 Mon Sep 17 00:00:00 2001 From: Pavel <68122101+red-prig@users.noreply.github.com> Date: Tue, 6 Sep 2022 17:00:59 +0300 Subject: [PATCH] + --- chip/ps4_gpu_regs.pas | 8 ++++++++ fpPS4.lpr | 34 +++++++++++++++++++++++++++++++++- ps4_libkernel/libsysmodule.inc | 5 +++++ vulkan/vImage.pas | 1 + 4 files changed, 47 insertions(+), 1 deletion(-) diff --git a/chip/ps4_gpu_regs.pas b/chip/ps4_gpu_regs.pas index d8a16967..7f314815 100644 --- a/chip/ps4_gpu_regs.pas +++ b/chip/ps4_gpu_regs.pas @@ -855,6 +855,13 @@ begin //Assert(RENDER_TARGET[i].INFO.COMPRESSION=0); //FMASK and MSAA Case RENDER_TARGET[i].INFO.FORMAT of + COLOR_8: + Case RENDER_TARGET[i].INFO.NUMBER_TYPE of + NUMBER_UNORM:Result.FImageInfo.cformat:=VK_FORMAT_R8_UNORM; + NUMBER_SRGB :Result.FImageInfo.cformat:=VK_FORMAT_R8_SRGB; + else + Assert(false,'TODO'); + end; COLOR_8_8_8_8: Case RENDER_TARGET[i].INFO.NUMBER_TYPE of NUMBER_UNORM:Result.FImageInfo.cformat:=VK_FORMAT_R8G8B8A8_UNORM; @@ -909,6 +916,7 @@ begin //end; Case RENDER_TARGET[i].INFO.FORMAT of + COLOR_8, COLOR_8_8_8_8: Case RENDER_TARGET[i].INFO.NUMBER_TYPE of NUMBER_UNORM, diff --git a/fpPS4.lpr b/fpPS4.lpr index 748a233d..743a7ce2 100644 --- a/fpPS4.lpr +++ b/fpPS4.lpr @@ -147,6 +147,8 @@ asm xor %rax,%rax end; +//nop nid:libSceNpGameIntent:8C4217500AFD5C4F:sceNpGameIntentReceiveIntent + procedure print_stub(nid:QWORD;lib:PLIBRARY); MS_ABI_Default; begin Writeln(StdErr,'nop nid:',lib^.strName,':',HexStr(nid,16),':',ps4libdoc.GetFunctName(nid)); @@ -170,12 +172,26 @@ begin Result:=3; end; -function ps4_sceNpWebApiInitialize(libHttpCtxId:Integer;poolSize:size_t):Integer; SysV_ABI_CDecl; +function ps4_sceNpWebApiInitialize(libHttpCtxId:Integer; + poolSize:size_t):Integer; SysV_ABI_CDecl; begin Writeln('sceNpWebApiInitialize:',libHttpCtxId,':',poolSize); Result:=4; end; +function ps4_sceNpWebApi2Initialize(libHttp2CtxId:Integer; + poolSize:size_t):Integer; SysV_ABI_CDecl; +begin + Writeln('sceNpWebApi2Initialize:',poolSize); + Result:=4; +end; + +function ps4_sceNpWebApi2CreateUserContext(libCtxId,m_userId:Integer):Integer; SysV_ABI_CDecl; +begin + Writeln('sceNpWebApi2CreateUserContext:',libCtxId); + Result:=5; +end; + function ps4_sceMoveInit:Integer; SysV_ABI_CDecl; begin Writeln('sceMoveInit'); @@ -211,6 +227,11 @@ begin Result:=0; end; +function ps4_sceNpGameIntentInitialize(initParam:PByte;size:PInteger):Integer; SysV_ABI_CDecl; +begin + Result:=6; +end; + function ResolveImport(elf:Telf_file;Info:PResolveImportInfo;data:Pointer):Pointer; var lib:PLIBRARY; @@ -262,6 +283,12 @@ begin QWORD($1B70272CD7510631):Result:=@ps4_sceNpWebApiInitialize; end; + 'libSceNpWebApi2': + Case Info^.nid of + QWORD($FA8F7CD7A61086A4):Result:=@ps4_sceNpWebApi2Initialize; + QWORD($B24E786E2E85B583):Result:=@ps4_sceNpWebApi2CreateUserContext; + end; + 'libSceMove': Case Info^.nid of QWORD($8F521313F1282661):Result:=@ps4_sceMoveInit; @@ -287,6 +314,11 @@ begin QWORD($76CA8256C34CD198):Result:=@ps4_sceNpCommerceHidePsStoreIcon; end; + 'libSceNpGameIntent': + Case Info^.nid of + QWORD($9BCEC11F1B7F1FAD):Result:=@ps4_sceNpGameIntentInitialize; + end; + end; end; diff --git a/ps4_libkernel/libsysmodule.inc b/ps4_libkernel/libsysmodule.inc index 1ac61ce9..711a995b 100644 --- a/ps4_libkernel/libsysmodule.inc +++ b/ps4_libkernel/libsysmodule.inc @@ -139,6 +139,8 @@ const SCE_SYSMODULE_RESERVED45 =$0104; SCE_SYSMODULE_RESERVED46 =$00f7; + SCE_SYSMODULE_CES_CS =$010c; + SCE_SYSMODULE_PLAYER_INVITATION_DIALOG =$010d; SCE_SYSMODULE_ERROR_INVALID_VALUE=-2141581312; // 0x805A1000 SCE_SYSMODULE_ERROR_UNLOADED =-2141581311; // 0x805A1001 @@ -243,6 +245,9 @@ begin SCE_SYSMODULE_JOB_MANAGER :Result:='SCE_SYSMODULE_JOB_MANAGER'; SCE_SYSMODULE_SOCIAL_SCREEN_DIALOG :Result:='SCE_SYSMODULE_SOCIAL_SCREEN_DIALOG'; SCE_SYSMODULE_NP_TOOLKIT2 :Result:='SCE_SYSMODULE_NP_TOOLKIT2'; + + SCE_SYSMODULE_CES_CS :Result:='SCE_SYSMODULE_CES_CS'; + SCE_SYSMODULE_PLAYER_INVITATION_DIALOG :Result:='SCE_SYSMODULE_PLAYER_INVITATION_DIALOG'; else Result:=HexStr(id,4); end; diff --git a/vulkan/vImage.pas b/vulkan/vImage.pas index 2486f17b..9a580d8d 100644 --- a/vulkan/vImage.pas +++ b/vulkan/vImage.pas @@ -180,6 +180,7 @@ begin VK_FORMAT_R8G8_UNORM :Result:=2; VK_FORMAT_R8_UNORM :Result:=1; VK_FORMAT_R8_UINT :Result:=1; + VK_FORMAT_R8_SRGB :Result:=1; VK_FORMAT_R5G6B5_UNORM_PACK16 :Result:=2; VK_FORMAT_R32_SFLOAT :Result:=4;