diff --git a/fpPS4.lpi b/fpPS4.lpi
index 8d8e5630..df663402 100644
--- a/fpPS4.lpi
+++ b/fpPS4.lpi
@@ -1570,6 +1570,11 @@
+
+
+
+
+
diff --git a/gui/game_run.pas b/gui/game_run.pas
index ce925e70..f4c23993 100644
--- a/gui/game_run.pas
+++ b/gui/game_run.pas
@@ -83,6 +83,7 @@ uses
ps4_libSceNpGameIntent,
ps4_libSceNpWebApi,
ps4_libSceNpWebApi2,
+ ps4_libSceRemoteplay,
ps4_libSceScreenShot,
ps4_libSceSaveData,
ps4_libSceAudioOut,
diff --git a/src/old/ps4_libsceremoteplay.pas b/src/old/ps4_libsceremoteplay.pas
deleted file mode 100644
index 9eca88ee..00000000
--- a/src/old/ps4_libsceremoteplay.pas
+++ /dev/null
@@ -1,70 +0,0 @@
-unit ps4_libSceRemoteplay;
-
-{$mode ObjFPC}{$H+}
-
-interface
-
-uses
- ps4_program,
- Classes,
- SysUtils;
-
-implementation
-
-const
- SCE_REMOTEPLAY_HEAP_SIZE=6*1024;
-
-function ps4_sceRemoteplayInitialize(pHeap:Pointer;heapSize:QWORD):Integer; SysV_ABI_CDecl;
-begin
- Writeln('sceRemoteplayInitialize:',heapSize);
- Result:=0;
-end;
-
-function ps4_sceRemoteplayApprove:Integer; SysV_ABI_CDecl;
-begin
- Result:=0;
-end;
-
-function ps4_sceRemoteplaySetProhibition:Integer; SysV_ABI_CDecl;
-begin
- Result:=0;
-end;
-
-const
- SCE_REMOTEPLAY_CONNECTION_STATUS_DISCONNECT=0;
- SCE_REMOTEPLAY_CONNECTION_STATUS_CONNECT =1;
-
-function ps4_sceRemoteplayGetConnectionStatus(userId:Integer;pStatus:PInteger):Integer; SysV_ABI_CDecl;
-begin
- if (pStatus<>nil) then
- begin
- pStatus^:=SCE_REMOTEPLAY_CONNECTION_STATUS_DISCONNECT;
- end;
- Result:=0;
-end;
-
-function ps4_sceRemoteplayProhibit:Integer; SysV_ABI_CDecl;
-begin
- Result:=0;
-end;
-
-function Load_libSceRemoteplay(Const name:RawByteString):TElf_node;
-var
- lib:PLIBRARY;
-begin
- Result:=TElf_node.Create;
- Result.pFileName:=name;
-
- lib:=Result._add_lib('libSceRemoteplay');
- lib^.set_proc($9354B082431238CF,@ps4_sceRemoteplayInitialize);
- lib^.set_proc($C50788AF24D7EDD6,@ps4_sceRemoteplayApprove);
- lib^.set_proc($8373CD8D8296AA74,@ps4_sceRemoteplayGetConnectionStatus);
- lib^.set_proc($45FD1731547BC4FC,@ps4_sceRemoteplaySetProhibition);
- lib^.set_proc($9AB361EFCB41A668,@ps4_sceRemoteplayProhibit);
-end;
-
-initialization
- ps4_app.RegistredPreLoad('libSceRemoteplay.prx',@Load_libSceRemoteplay);
-
-end.
-
diff --git a/src/ps4_libsceremoteplay.pas b/src/ps4_libsceremoteplay.pas
new file mode 100644
index 00000000..40cfe1f4
--- /dev/null
+++ b/src/ps4_libsceremoteplay.pas
@@ -0,0 +1,71 @@
+unit ps4_libSceRemoteplay;
+
+{$mode ObjFPC}{$H+}
+{$CALLING SysV_ABI_CDecl}
+
+interface
+
+uses
+ subr_dynlib;
+
+implementation
+
+const
+ SCE_REMOTEPLAY_HEAP_SIZE=6*1024;
+
+function ps4_sceRemoteplayInitialize(pHeap:Pointer;heapSize:QWORD):Integer;
+begin
+ Writeln('sceRemoteplayInitialize:',heapSize);
+ Result:=0;
+end;
+
+function ps4_sceRemoteplayApprove:Integer;
+begin
+ Result:=0;
+end;
+
+function ps4_sceRemoteplaySetProhibition:Integer;
+begin
+ Result:=0;
+end;
+
+const
+ SCE_REMOTEPLAY_CONNECTION_STATUS_DISCONNECT=0;
+ SCE_REMOTEPLAY_CONNECTION_STATUS_CONNECT =1;
+
+function ps4_sceRemoteplayGetConnectionStatus(userId:Integer;pStatus:PInteger):Integer;
+begin
+ if (pStatus<>nil) then
+ begin
+ pStatus^:=SCE_REMOTEPLAY_CONNECTION_STATUS_DISCONNECT;
+ end;
+ Result:=0;
+end;
+
+function ps4_sceRemoteplayProhibit:Integer;
+begin
+ Result:=0;
+end;
+
+function Load_libSceRemoteplay(name:pchar):p_lib_info;
+var
+ lib:TLIBRARY;
+begin
+ Result:=obj_new_int('libSceRemoteplay');
+
+ lib:=Result^.add_lib('libSceRemoteplay');
+ lib.set_proc($9354B082431238CF,@ps4_sceRemoteplayInitialize);
+ lib.set_proc($C50788AF24D7EDD6,@ps4_sceRemoteplayApprove);
+ lib.set_proc($8373CD8D8296AA74,@ps4_sceRemoteplayGetConnectionStatus);
+ lib.set_proc($45FD1731547BC4FC,@ps4_sceRemoteplaySetProhibition);
+ lib.set_proc($9AB361EFCB41A668,@ps4_sceRemoteplayProhibit);
+end;
+
+var
+ stub:t_int_file;
+
+initialization
+ RegisteredInternalFile(stub,'libSceRemoteplay.prx',@Load_libSceRemoteplay);
+
+end.
+