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.