From b740f9e651b7e534f1c5cdafddfd6706eb39fba7 Mon Sep 17 00:00:00 2001 From: Pavel <68122101+red-prig@users.noreply.github.com> Date: Wed, 30 Oct 2024 10:43:44 +0300 Subject: [PATCH] + --- fpPS4.lpi | 5 +++++ gui/game_run.pas | 1 + src/{old => }/ps4_libscediscmap.pas | 35 +++++++++++++++-------------- 3 files changed, 24 insertions(+), 17 deletions(-) rename src/{old => }/ps4_libscediscmap.pas (63%) diff --git a/fpPS4.lpi b/fpPS4.lpi index 1e6cc633..50d6cf7f 100644 --- a/fpPS4.lpi +++ b/fpPS4.lpi @@ -1530,6 +1530,11 @@ + + + + + diff --git a/gui/game_run.pas b/gui/game_run.pas index 7f931668..822d8cc2 100644 --- a/gui/game_run.pas +++ b/gui/game_run.pas @@ -66,6 +66,7 @@ uses vDevice, //internal libs + ps4_libSceDiscMap, ps4_libSceSystemService, ps4_libSceUserService, ps4_libSceAppContent, diff --git a/src/old/ps4_libscediscmap.pas b/src/ps4_libscediscmap.pas similarity index 63% rename from src/old/ps4_libscediscmap.pas rename to src/ps4_libscediscmap.pas index a54b1fc5..907e12c0 100644 --- a/src/old/ps4_libscediscmap.pas +++ b/src/ps4_libscediscmap.pas @@ -1,13 +1,12 @@ unit ps4_libSceDiscMap; {$mode ObjFPC}{$H+} +{$CALLING SysV_ABI_CDecl} interface uses - ps4_program, - Classes, - SysUtils; + subr_dynlib; implementation @@ -21,13 +20,13 @@ const DM_PATCH_FLAG=$1; DM_APP1_FLAG =$100; -function ps4_sceDiscMapIsRequestOnHDD(path:PChar;param2,param3:Int64;pret:PInteger):Integer; SysV_ABI_CDecl; +function ps4_sceDiscMapIsRequestOnHDD(path:PChar;param2,param3:Int64;pret:PInteger):Integer; begin //pret^:=1; Result:=SCE_DISC_MAP_ERROR_NO_BITMAP_INFO; end; -function ps4_ioKMruft1ek(path:PChar;param2,param3:Int64;pflags,pret1,pret2:PInt64):Integer; SysV_ABI_CDecl; +function ps4_ioKMruft1ek(path:PChar;param2,param3:Int64;pflags,pret1,pret2:PInt64):Integer; begin //pflags^:=0; //pret1^:=0; @@ -35,7 +34,7 @@ begin Result:=SCE_DISC_MAP_ERROR_NO_BITMAP_INFO; end; -function ps4_fJgP_wqifno(path:PChar;param2,param3:Int64;pflags,pret1,pret2:PInt64):Integer; SysV_ABI_CDecl; +function ps4_fJgP_wqifno(path:PChar;param2,param3:Int64;pflags,pret1,pret2:PInt64):Integer; begin if (param3<=0) or (param2<=-2) or @@ -50,27 +49,29 @@ begin Result:=0; end; -function ps4_sceDiscMapGetPackageSize(fflags:Int64;pret1,pret2:PInt64):Integer; SysV_ABI_CDecl; +function ps4_sceDiscMapGetPackageSize(fflags:Int64;pret1,pret2:PInt64):Integer; begin Result:=SCE_DISC_MAP_ERROR_NO_BITMAP_INFO; end; -function Load_libSceDiscMap(Const name:RawByteString):TElf_node; +function Load_libSceDiscMap(name:pchar):p_lib_info; var - lib:PLIBRARY; + lib:TLIBRARY; begin - Result:=TElf_node.Create; - Result.pFileName:=name; + Result:=obj_new_int('libSceDiscMap'); - lib:=Result._add_lib('libSceDiscMap'); - lib^.set_proc($95B40AAAC11186D1,@ps4_sceDiscMapIsRequestOnHDD); - lib^.set_proc($8A828CAEE7EDD5E9,@ps4_ioKMruft1ek); - lib^.set_proc($7C980FFB0AA27E7A,@ps4_fJgP_wqifno); - lib^.set_proc($7E5D5EA039F0438B,@ps4_sceDiscMapGetPackageSize); + lib:=Result^.add_lib('libSceDiscMap'); + lib.set_proc($95B40AAAC11186D1,@ps4_sceDiscMapIsRequestOnHDD); + lib.set_proc($8A828CAEE7EDD5E9,@ps4_ioKMruft1ek); + lib.set_proc($7C980FFB0AA27E7A,@ps4_fJgP_wqifno); + lib.set_proc($7E5D5EA039F0438B,@ps4_sceDiscMapGetPackageSize); end; +var + stub:t_int_file; + initialization - ps4_app.RegistredPreLoad('libSceDiscMap.prx',@Load_libSceDiscMap); + RegisteredInternalFile(stub,'libSceDiscMap.prx',@Load_libSceDiscMap,IF_POSTLOAD); end.