Adding some debug projects. & Toolbox 2.0 Project :)

This commit is contained in:
Greg
2022-03-27 20:05:27 -06:00
parent 8a7bdd98e4
commit 23cbef1084
77 changed files with 1024 additions and 86 deletions
+48
View File
@@ -35,6 +35,14 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Orbis Toolbox", "Playstatio
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "OrbisSuite", "Playstation\OrbisSuite\OrbisSuite.vcxproj", "{228AA300-11F5-49B1-A6B5-4986635C6D0B}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Debug", "Debug", "{A8029CC8-E534-49AB-AD5A-017191D71B7E}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "OrbisToolbox-2.0", "Playstation\OrbisToolbox-2.0\OrbisToolbox-2.0.vcxproj", "{57244F52-BA7C-4D89-9C38-D80AD9727721}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "RunKernel", "Playstation\DebugExecutables\RunKernel\RunKernel.vcxproj", "{A0152852-B0DE-4606-A06C-7CFEF7C0D36F}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "RunShellUI", "Playstation\DebugExecutables\RunShellUI\RunShellUI.vcxproj", "{9ED7894B-7921-4E3E-8B6D-F7ACCFA9A77A}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
@@ -113,6 +121,42 @@ Global
{228AA300-11F5-49B1-A6B5-4986635C6D0B}.Release|x64.Build.0 = Release|x64
{228AA300-11F5-49B1-A6B5-4986635C6D0B}.Release|x86.ActiveCfg = Release|x64
{228AA300-11F5-49B1-A6B5-4986635C6D0B}.Release|x86.Build.0 = Release|x64
{57244F52-BA7C-4D89-9C38-D80AD9727721}.Debug|Any CPU.ActiveCfg = Debug|x64
{57244F52-BA7C-4D89-9C38-D80AD9727721}.Debug|Any CPU.Build.0 = Debug|x64
{57244F52-BA7C-4D89-9C38-D80AD9727721}.Debug|x64.ActiveCfg = Debug|x64
{57244F52-BA7C-4D89-9C38-D80AD9727721}.Debug|x64.Build.0 = Debug|x64
{57244F52-BA7C-4D89-9C38-D80AD9727721}.Debug|x86.ActiveCfg = Debug|x64
{57244F52-BA7C-4D89-9C38-D80AD9727721}.Debug|x86.Build.0 = Debug|x64
{57244F52-BA7C-4D89-9C38-D80AD9727721}.Release|Any CPU.ActiveCfg = Release|x64
{57244F52-BA7C-4D89-9C38-D80AD9727721}.Release|Any CPU.Build.0 = Release|x64
{57244F52-BA7C-4D89-9C38-D80AD9727721}.Release|x64.ActiveCfg = Release|x64
{57244F52-BA7C-4D89-9C38-D80AD9727721}.Release|x64.Build.0 = Release|x64
{57244F52-BA7C-4D89-9C38-D80AD9727721}.Release|x86.ActiveCfg = Release|x64
{57244F52-BA7C-4D89-9C38-D80AD9727721}.Release|x86.Build.0 = Release|x64
{A0152852-B0DE-4606-A06C-7CFEF7C0D36F}.Debug|Any CPU.ActiveCfg = Debug|x64
{A0152852-B0DE-4606-A06C-7CFEF7C0D36F}.Debug|Any CPU.Build.0 = Debug|x64
{A0152852-B0DE-4606-A06C-7CFEF7C0D36F}.Debug|x64.ActiveCfg = Debug|x64
{A0152852-B0DE-4606-A06C-7CFEF7C0D36F}.Debug|x64.Build.0 = Debug|x64
{A0152852-B0DE-4606-A06C-7CFEF7C0D36F}.Debug|x86.ActiveCfg = Debug|x64
{A0152852-B0DE-4606-A06C-7CFEF7C0D36F}.Debug|x86.Build.0 = Debug|x64
{A0152852-B0DE-4606-A06C-7CFEF7C0D36F}.Release|Any CPU.ActiveCfg = Release|x64
{A0152852-B0DE-4606-A06C-7CFEF7C0D36F}.Release|Any CPU.Build.0 = Release|x64
{A0152852-B0DE-4606-A06C-7CFEF7C0D36F}.Release|x64.ActiveCfg = Release|x64
{A0152852-B0DE-4606-A06C-7CFEF7C0D36F}.Release|x64.Build.0 = Release|x64
{A0152852-B0DE-4606-A06C-7CFEF7C0D36F}.Release|x86.ActiveCfg = Release|x64
{A0152852-B0DE-4606-A06C-7CFEF7C0D36F}.Release|x86.Build.0 = Release|x64
{9ED7894B-7921-4E3E-8B6D-F7ACCFA9A77A}.Debug|Any CPU.ActiveCfg = Debug|x64
{9ED7894B-7921-4E3E-8B6D-F7ACCFA9A77A}.Debug|Any CPU.Build.0 = Debug|x64
{9ED7894B-7921-4E3E-8B6D-F7ACCFA9A77A}.Debug|x64.ActiveCfg = Debug|x64
{9ED7894B-7921-4E3E-8B6D-F7ACCFA9A77A}.Debug|x64.Build.0 = Debug|x64
{9ED7894B-7921-4E3E-8B6D-F7ACCFA9A77A}.Debug|x86.ActiveCfg = Debug|x64
{9ED7894B-7921-4E3E-8B6D-F7ACCFA9A77A}.Debug|x86.Build.0 = Debug|x64
{9ED7894B-7921-4E3E-8B6D-F7ACCFA9A77A}.Release|Any CPU.ActiveCfg = Release|x64
{9ED7894B-7921-4E3E-8B6D-F7ACCFA9A77A}.Release|Any CPU.Build.0 = Release|x64
{9ED7894B-7921-4E3E-8B6D-F7ACCFA9A77A}.Release|x64.ActiveCfg = Release|x64
{9ED7894B-7921-4E3E-8B6D-F7ACCFA9A77A}.Release|x64.Build.0 = Release|x64
{9ED7894B-7921-4E3E-8B6D-F7ACCFA9A77A}.Release|x86.ActiveCfg = Release|x64
{9ED7894B-7921-4E3E-8B6D-F7ACCFA9A77A}.Release|x86.Build.0 = Release|x64
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
@@ -126,6 +170,10 @@ Global
{88E11D06-FCB4-4707-A48E-B8D66966A154} = {8E8E4C8D-E3E1-4CB9-BD78-7ADAB2F2CF45}
{CED79D48-621A-4076-81E8-11F77DE1E41B} = {8E8E4C8D-E3E1-4CB9-BD78-7ADAB2F2CF45}
{228AA300-11F5-49B1-A6B5-4986635C6D0B} = {8E8E4C8D-E3E1-4CB9-BD78-7ADAB2F2CF45}
{A8029CC8-E534-49AB-AD5A-017191D71B7E} = {8E8E4C8D-E3E1-4CB9-BD78-7ADAB2F2CF45}
{57244F52-BA7C-4D89-9C38-D80AD9727721} = {8E8E4C8D-E3E1-4CB9-BD78-7ADAB2F2CF45}
{A0152852-B0DE-4606-A06C-7CFEF7C0D36F} = {A8029CC8-E534-49AB-AD5A-017191D71B7E}
{9ED7894B-7921-4E3E-8B6D-F7ACCFA9A77A} = {A8029CC8-E534-49AB-AD5A-017191D71B7E}
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {4B6EE1D0-5ADF-44A2-B6EE-E5C8E110EE47}
@@ -0,0 +1,36 @@
<?xml version="1.0"?>
<psproject xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" fmt="gp4" version="1000">
<volume>
<volume_type>pkg_ps4_app</volume_type>
<volume_ts>2022-03-28 01:50:37</volume_ts>
<package content_id="IV0000-ORBS99999_00-ORBISSUITE000000" passcode="00000000000000000000000000000000" storage_type="digital50" app_type="full" />
<chunk_info chunk_count="1" scenario_count="1">
<chunks>
<chunk id="0" layer_no="0" label="Chunk #0" />
</chunks>
<scenarios default_id="0">
<scenario id="0" type="sp" initial_chunk_count="1" label="Scenario #0">0</scenario>
</scenarios>
</chunk_info>
</volume>
<files img_no="0">
<file targ_path="sce_sys/icon0.png" orig_path="sce_sys\icon0.png" />
<file targ_path="sce_sys/param.sfo" orig_path="sce_sys\param.sfo" />
<file targ_path="sce_sys/pic0.png" orig_path="sce_sys\pic0.png" />
<file targ_path="sce_sys/pic1.png" orig_path="sce_sys\pic1.png" />
<file targ_path="eboot.bin" orig_path="eboot.bin" />
<file targ_path="Kernel/Kernel.505.ELF" orig_path="Kernel\Kernel.505.ELF" />
<file targ_path="Kernel/Kernel.672.ELF" orig_path="Kernel\Kernel.672.ELF" />
<file targ_path="Kernel/Kernel.702.ELF" orig_path="Kernel\Kernel.702.ELF" />
<file targ_path="Kernel/Kernel.755.ELF" orig_path="Kernel\Kernel.755.ELF" />
<file targ_path="Kernel/Kernel.900.ELF" orig_path="Kernel\Kernel.900.ELF" />
<file targ_path="sce_module/libc.prx" orig_path="sce_module\libc.prx" />
<file targ_path="sce_module/libjbc.sprx" orig_path="sce_module\libjbc.sprx" />
<file targ_path="sce_module/libSceFios2.prx" orig_path="sce_module\libSceFios2.prx" />
</files>
<rootdir>
<dir targ_name="sce_sys" />
<dir targ_name="Kernel" />
<dir targ_name="sce_module" />
</rootdir>
</psproject>
Binary file not shown.
Binary file not shown.
Binary file not shown.

After

Width:  |  Height:  |  Size: 25 KiB

Binary file not shown.
Binary file not shown.
Binary file not shown.

After

Width:  |  Height:  |  Size: 42 KiB

Binary file not shown.
Binary file not shown.

After

Width:  |  Height:  |  Size: 42 KiB

@@ -0,0 +1,30 @@
<?xml version="1.0"?>
<psproject xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" fmt="gp4" version="1000">
<volume>
<volume_type>pkg_ps4_app</volume_type>
<volume_ts>2022-03-28 01:53:49</volume_ts>
<package content_id="IV0000-ORBS99998_00-ORBISSUITE000000" passcode="00000000000000000000000000000000" storage_type="digital50" app_type="full" />
<chunk_info chunk_count="1" scenario_count="1">
<chunks>
<chunk id="0" layer_no="0" label="Chunk #0" />
</chunks>
<scenarios default_id="0">
<scenario id="0" type="sp" initial_chunk_count="1" label="Scenario #0">0</scenario>
</scenarios>
</chunk_info>
</volume>
<files img_no="0">
<file targ_path="sce_sys/icon0.png" orig_path="sce_sys\icon0.png" />
<file targ_path="sce_sys/param.sfo" orig_path="sce_sys\param.sfo" />
<file targ_path="sce_sys/pic0.png" orig_path="sce_sys\pic0.png" />
<file targ_path="sce_sys/pic1.png" orig_path="sce_sys\pic1.png" />
<file targ_path="eboot.bin" orig_path="eboot.bin" />
<file targ_path="sce_module/libc.prx" orig_path="sce_module\libc.prx" />
<file targ_path="sce_module/libjbc.sprx" orig_path="sce_module\libjbc.sprx" />
<file targ_path="sce_module/libSceFios2.prx" orig_path="sce_module\libSceFios2.prx" />
</files>
<rootdir>
<dir targ_name="sce_sys" />
<dir targ_name="sce_module" />
</rootdir>
</psproject>
Binary file not shown.
Binary file not shown.

After

Width:  |  Height:  |  Size: 25 KiB

Binary file not shown.
Binary file not shown.
Binary file not shown.

After

Width:  |  Height:  |  Size: 42 KiB

Binary file not shown.
Binary file not shown.

After

Width:  |  Height:  |  Size: 42 KiB

Binary file not shown.
@@ -0,0 +1,19 @@
#pragma once
#include <math.h>
#include <errno.h>
#include <stdarg.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <sys/wait.h>
#include <unistd.h>
#include <orbis/libkernel.h>
#include <orbis/SystemService.h>
#include <orbis/AppInstUtil.h>
#include <orbis/Bgft.h>
#include <orbis/Sysmodule.h>
#include <orbis/UserService.h>
#include <orbis/Sysmodule.h>
#include "Utilities.h"
@@ -0,0 +1 @@
#pragma once
@@ -0,0 +1,122 @@
#include "Common.h"
#include "OrbisDriver.h"
OrbisDriver::OrbisDriver()
{
}
OrbisDriver::~OrbisDriver()
{
}
bool OrbisDriver::TestDriver()
{
int fd = sceKernelOpen("/dev/OrbisSuite", ORBIS_KERNEL_O_RDONLY, 0);
if (fd > 0)
{
klog("Driver Installed...\n");
sceKernelClose(fd);
return true;
}
klog("Driver Not Installed...\n");
return false;
}
bool OrbisDriver::GetDriverInfo(KDriver_Info* Info)
{
int fd = sceKernelOpen("/dev/OrbisSuite", 0, 0);
if (fd > 0)
{
int res = ioctl(fd, KDRIVER_INFO, Info);
if (res != 0)
{
klog("KDRIVER_INFO failed with %d\n", res);
sceKernelClose(fd);
return false;
}
sceKernelClose(fd);
return true;
}
else
klog("Where kernel??\n");
return false;
}
int OrbisDriver::LoadSPRX(const char* ProccessName, const char* Path, bool ShouldCallEntry)
{
klog("OrbisDriver::LoadSPRX\n");
auto fd = sceKernelOpen("/dev/OrbisSuite", 0, 0);
if (fd > 0)
{
KDriver_ProcSPRX ProcSPRX;
ProcSPRX.CallType = 0;
strcpy(ProcSPRX.ProcName, ProccessName);
strcpy(ProcSPRX.Path, Path);
ProcSPRX.CallEntryExit = ShouldCallEntry;
auto res = ioctl(fd, PROC_SPRX, &ProcSPRX);
sceKernelClose(fd);
return res;
}
else
klog("Where kernel??\n");
return -1;
}
int OrbisDriver::UnLoadSPRX(const char* ProccessName, const char* Name, bool ShouldCallExit)
{
klog("OrbisDriver::UnLoadSPRX\n");
auto fd = sceKernelOpen("/dev/OrbisSuite", 0, 0);
if (fd > 0)
{
KDriver_ProcSPRX ProcSPRX;
ProcSPRX.CallType = 1;
strcpy(ProcSPRX.ProcName, ProccessName);
strcpy(ProcSPRX.Path, Name);
ProcSPRX.CallEntryExit = ShouldCallExit;
auto res = ioctl(fd, PROC_SPRX, &ProcSPRX);
sceKernelClose(fd);
return res;
}
else
klog("Where kernel??\n");
return -1;
}
int OrbisDriver::UnLoadSPRX(const char* ProccessName, int ModuleHandle, bool ShouldCallExit)
{
klog("OrbisDriver::UnLoadSPRX\n");
auto fd = sceKernelOpen("/dev/OrbisSuite", 0, 0);
if (fd > 0)
{
KDriver_ProcSPRX ProcSPRX;
ProcSPRX.CallType = 2;
strcpy(ProcSPRX.ProcName, ProccessName);
ProcSPRX.Handle = ModuleHandle;
ProcSPRX.CallEntryExit = ShouldCallExit;
auto res = ioctl(fd, PROC_SPRX, &ProcSPRX);
sceKernelClose(fd);
return res;
}
else
klog("Where kernel??\n");
return -1;
}
@@ -0,0 +1,17 @@
#pragma once
#include "../../../Misc/DriverDefinitions.h"
class OrbisDriver
{
public:
OrbisDriver();
~OrbisDriver();
static bool TestDriver();
static bool GetDriverInfo(KDriver_Info* Info);
static int LoadSPRX(const char* ProccessName, const char* Path, bool ShouldCallEntry = true);
static int UnLoadSPRX(const char* ProccessName, const char* Name, bool ShouldCallExit = true);
static int UnLoadSPRX(const char* ProccessName, int ModuleHandle, bool ShouldCallExit = true);
private:
};
@@ -0,0 +1,92 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup Label="ProjectConfigurations">
<ProjectConfiguration Include="Debug|x64">
<Configuration>Debug</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|x64">
<Configuration>Release</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
</ItemGroup>
<PropertyGroup Label="Globals">
<VCProjectVersion>15.0</VCProjectVersion>
<ProjectGuid>{a0152852-b0de-4606-a06c-7cfef7c0d36f}</ProjectGuid>
<Keyword>Win32Proj</Keyword>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
<ConfigurationType>Makefile</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries>
<PlatformToolset>v141</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
<ConfigurationType>Makefile</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries>
<PlatformToolset>v141</PlatformToolset>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings">
</ImportGroup>
<ImportGroup Label="Shared">
</ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<PropertyGroup Label="UserMacros" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<NMakeOutput>eboot.bin</NMakeOutput>
<NMakePreprocessorDefinitions>_DEBUG;$(NMakePreprocessorDefinitions)</NMakePreprocessorDefinitions>
<NMakeBuildCommandLine>call build.bat $(IntDir) "$(TargetName)" "$(SolutionDir)"</NMakeBuildCommandLine>
<NMakeReBuildCommandLine>del /s /q /f $(IntDir)\*.o
del /s /q /f $(IntDir)\*.elf
del /s /q /f $(IntDir)\*.oelf
call build.bat $(IntDir) "$(TargetName)" "$(SolutionDir)"</NMakeReBuildCommandLine>
<NMakeCleanCommandLine>del /s /q /f $(IntDir)\*.o
del /s /q /f $(IntDir)\*.elf
del /s /q /f $(IntDir)\*.oelf</NMakeCleanCommandLine>
<OutDir>$(SolutionDir)</OutDir>
<NMakeIncludeSearchPath>$(OO_PS4_TOOLCHAIN)\include;$(NMakeIncludeSearchPath)</NMakeIncludeSearchPath>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<NMakeOutput>eboot.bin</NMakeOutput>
<NMakePreprocessorDefinitions>NDEBUG;$(NMakePreprocessorDefinitions)</NMakePreprocessorDefinitions>
</PropertyGroup>
<ItemDefinitionGroup>
</ItemDefinitionGroup>
<ItemGroup>
<ClCompile Include="kELF.cpp" />
<ClCompile Include="KernelLoader.cpp" />
<ClCompile Include="main.cpp" />
<ClCompile Include="build.bat" />
<ClCompile Include="OrbisDriver.cpp" />
<ClCompile Include="Utilities.cpp" />
</ItemGroup>
<ItemGroup>
<Image Include="sce_sys\icon0.png" />
</ItemGroup>
<ItemGroup>
<None Include="assets\audio\.gitkeep" />
<None Include="assets\fonts\.gitkeep" />
<None Include="assets\images\.gitkeep" />
<None Include="assets\misc\.gitkeep" />
<None Include="assets\videos\.gitkeep" />
<None Include="sce_module\libc.prx" />
<None Include="sce_module\libSceFios2.prx" />
<None Include="sce_sys\about\right.sprx" />
</ItemGroup>
<ItemGroup>
<ClInclude Include="Common.h" />
<ClInclude Include="kELF.h" />
<ClInclude Include="KernelLoader.h" />
<ClInclude Include="OrbisDriver.h" />
<ClInclude Include="Utilities.h" />
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">
</ImportGroup>
</Project>
@@ -0,0 +1,110 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<Filter Include="Source Files">
<UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
<Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
</Filter>
<Filter Include="Header Files">
<UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
<Extensions>h;hh;hpp;hxx;hm;inl;inc;ipp;xsd</Extensions>
</Filter>
<Filter Include="Resource Files">
<UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
<Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms</Extensions>
</Filter>
<Filter Include="Resource Files\sce_sys">
<UniqueIdentifier>{37821ab6-56f6-4b88-ad1e-dd94bdd938c0}</UniqueIdentifier>
</Filter>
<Filter Include="Resource Files\sce_sys\about">
<UniqueIdentifier>{c4c936bb-5d00-4b04-81a2-339aad710701}</UniqueIdentifier>
</Filter>
<Filter Include="Resource Files\sce_module">
<UniqueIdentifier>{5935aea7-079a-4642-807d-83c0313c6cf4}</UniqueIdentifier>
</Filter>
<Filter Include="Resource Files\assets">
<UniqueIdentifier>{c7bcdbf5-11d9-4148-9931-7ded001c7202}</UniqueIdentifier>
</Filter>
<Filter Include="Resource Files\assets\audio">
<UniqueIdentifier>{db4a58a5-4507-438f-9ba6-84bc0d1b7b5c}</UniqueIdentifier>
</Filter>
<Filter Include="Resource Files\assets\fonts">
<UniqueIdentifier>{241cb8f1-0014-47e2-9c0b-5654d5519ba7}</UniqueIdentifier>
</Filter>
<Filter Include="Resource Files\assets\images">
<UniqueIdentifier>{6ab9b10a-008c-4165-9ec4-a23213d1359a}</UniqueIdentifier>
</Filter>
<Filter Include="Resource Files\assets\misc">
<UniqueIdentifier>{0c4d5f66-7563-4cae-bdcd-1c022339b6ea}</UniqueIdentifier>
</Filter>
<Filter Include="Resource Files\assets\videos">
<UniqueIdentifier>{27ee93e0-2ba6-4baf-84d1-17ff6a9cb619}</UniqueIdentifier>
</Filter>
</ItemGroup>
<ItemGroup>
<ClCompile Include="main.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="build.bat" />
<ClCompile Include="Utilities.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="KernelLoader.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="kELF.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="OrbisDriver.cpp">
<Filter>Source Files</Filter>
</ClCompile>
</ItemGroup>
<ItemGroup>
<Image Include="sce_sys\icon0.png">
<Filter>Resource Files\sce_sys</Filter>
</Image>
</ItemGroup>
<ItemGroup>
<None Include="sce_sys\about\right.sprx">
<Filter>Resource Files\sce_sys\about</Filter>
</None>
<None Include="sce_module\libSceFios2.prx">
<Filter>Resource Files\sce_module</Filter>
</None>
<None Include="sce_module\libc.prx">
<Filter>Resource Files\sce_module</Filter>
</None>
<None Include="assets\audio\.gitkeep">
<Filter>Resource Files\assets\audio</Filter>
</None>
<None Include="assets\fonts\.gitkeep">
<Filter>Resource Files\assets\fonts</Filter>
</None>
<None Include="assets\images\.gitkeep">
<Filter>Resource Files\assets\images</Filter>
</None>
<None Include="assets\misc\.gitkeep">
<Filter>Resource Files\assets\misc</Filter>
</None>
<None Include="assets\videos\.gitkeep">
<Filter>Resource Files\assets\videos</Filter>
</None>
</ItemGroup>
<ItemGroup>
<ClInclude Include="Utilities.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="KernelLoader.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="kELF.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="Common.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="OrbisDriver.h">
<Filter>Header Files</Filter>
</ClInclude>
</ItemGroup>
</Project>
@@ -0,0 +1 @@
#pragma once
@@ -0,0 +1,31 @@
SETLOCAL EnableDelayedExpansion
Rem Libraries to link in
set libraries=-lc++ -lc -lSceSysModule -lkernel -lSceVideoOut -lSceSystemService -lSceSysCore -lSceSystemStateMgr -lSceNet -lScePad -lSceUserService -lSceRegMgr -lSceFreeType -lSceMsgDialog -lSceCommonDialog
Rem Read the script arguments into local vars
set intdir=%1
set targetname=%~2
set outputPath=%3
set outputElf=%intdir%%targetname%.elf
set outputOelf=%intdir%%targetname%.oelf
Rem Compile object files for all the source files
for %%f in (*.cpp) do (
clang++ -cc1 -triple x86_64-scei-ps4-elf -I"%OO_PS4_TOOLCHAIN%\\include" -I"%OO_PS4_TOOLCHAIN%\\include\\c++\\v1" -DORBISLIB_DEBUG -emit-obj -o %intdir%\%%~nf.o %%~nf.cpp
)
Rem Get a list of object files for linking
set obj_files=
for %%f in (%1\\*.o) do set obj_files=!obj_files! .\%%f
Rem Link the input ELF
ld.lld -m elf_x86_64 -pie --script "%OO_PS4_TOOLCHAIN%\link.x" --eh-frame-hdr -o "%outputElf%" "-L%OO_PS4_TOOLCHAIN%\\lib" %libraries% --verbose "%OO_PS4_TOOLCHAIN%\lib\crt1.o" %obj_files%
Rem Create the eboot
%OO_PS4_TOOLCHAIN%\bin\windows\create-fself.exe -in "%outputElf%" --out "%outputOelf%" --eboot "eboot.bin"
Rem Cleanup
copy "eboot.bin" %outputPath%\Playstation\Build\RunKernel-pkg\eboot.bin
del "eboot.bin"
@@ -0,0 +1 @@
#pragma once
@@ -0,0 +1,7 @@
#include <stdio.h>
int main()
{
// Your code here...
return 0;
}
@@ -0,0 +1,81 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup Label="ProjectConfigurations">
<ProjectConfiguration Include="Debug|x64">
<Configuration>Debug</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|x64">
<Configuration>Release</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
</ItemGroup>
<PropertyGroup Label="Globals">
<VCProjectVersion>15.0</VCProjectVersion>
<ProjectGuid>{9ed7894b-7921-4e3e-8b6d-f7accfa9a77a}</ProjectGuid>
<Keyword>Win32Proj</Keyword>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
<ConfigurationType>Makefile</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries>
<PlatformToolset>v141</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
<ConfigurationType>Makefile</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries>
<PlatformToolset>v141</PlatformToolset>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings">
</ImportGroup>
<ImportGroup Label="Shared">
</ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<PropertyGroup Label="UserMacros" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<NMakeOutput>eboot.bin</NMakeOutput>
<NMakePreprocessorDefinitions>_DEBUG;$(NMakePreprocessorDefinitions)</NMakePreprocessorDefinitions>
<NMakeBuildCommandLine>call build.bat $(IntDir) "$(TargetName)" "$(SolutionDir)"</NMakeBuildCommandLine>
<NMakeReBuildCommandLine>del /s /q /f $(IntDir)\*.o
del /s /q /f $(IntDir)\*.elf
del /s /q /f $(IntDir)\*.oelf
call build.bat $(IntDir) "$(TargetName)" "$(SolutionDir)"</NMakeReBuildCommandLine>
<NMakeCleanCommandLine>del /s /q /f $(IntDir)\*.o
del /s /q /f $(IntDir)\*.elf
del /s /q /f $(IntDir)\*.oelf</NMakeCleanCommandLine>
<OutDir>$(SolutionDir)</OutDir>
<NMakeIncludeSearchPath>$(OO_PS4_TOOLCHAIN)\include;$(NMakeIncludeSearchPath)</NMakeIncludeSearchPath>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<NMakeOutput>eboot.bin</NMakeOutput>
<NMakePreprocessorDefinitions>NDEBUG;$(NMakePreprocessorDefinitions)</NMakePreprocessorDefinitions>
</PropertyGroup>
<ItemDefinitionGroup>
</ItemDefinitionGroup>
<ItemGroup>
<ClCompile Include="main.cpp" />
<ClCompile Include="build.bat" />
</ItemGroup>
<ItemGroup>
<Image Include="sce_sys\icon0.png" />
</ItemGroup>
<ItemGroup>
<None Include="assets\audio\.gitkeep" />
<None Include="assets\fonts\.gitkeep" />
<None Include="assets\images\.gitkeep" />
<None Include="assets\misc\.gitkeep" />
<None Include="assets\videos\.gitkeep" />
<None Include="sce_module\libc.prx" />
<None Include="sce_module\libSceFios2.prx" />
<None Include="sce_sys\about\right.sprx" />
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">
</ImportGroup>
</Project>
@@ -0,0 +1,81 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<Filter Include="Source Files">
<UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
<Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
</Filter>
<Filter Include="Header Files">
<UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
<Extensions>h;hh;hpp;hxx;hm;inl;inc;ipp;xsd</Extensions>
</Filter>
<Filter Include="Resource Files">
<UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
<Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms</Extensions>
</Filter>
<Filter Include="Resource Files\sce_sys">
<UniqueIdentifier>{37821ab6-56f6-4b88-ad1e-dd94bdd938c0}</UniqueIdentifier>
</Filter>
<Filter Include="Resource Files\sce_sys\about">
<UniqueIdentifier>{c4c936bb-5d00-4b04-81a2-339aad710701}</UniqueIdentifier>
</Filter>
<Filter Include="Resource Files\sce_module">
<UniqueIdentifier>{5935aea7-079a-4642-807d-83c0313c6cf4}</UniqueIdentifier>
</Filter>
<Filter Include="Resource Files\assets">
<UniqueIdentifier>{c7bcdbf5-11d9-4148-9931-7ded001c7202}</UniqueIdentifier>
</Filter>
<Filter Include="Resource Files\assets\audio">
<UniqueIdentifier>{db4a58a5-4507-438f-9ba6-84bc0d1b7b5c}</UniqueIdentifier>
</Filter>
<Filter Include="Resource Files\assets\fonts">
<UniqueIdentifier>{241cb8f1-0014-47e2-9c0b-5654d5519ba7}</UniqueIdentifier>
</Filter>
<Filter Include="Resource Files\assets\images">
<UniqueIdentifier>{6ab9b10a-008c-4165-9ec4-a23213d1359a}</UniqueIdentifier>
</Filter>
<Filter Include="Resource Files\assets\misc">
<UniqueIdentifier>{0c4d5f66-7563-4cae-bdcd-1c022339b6ea}</UniqueIdentifier>
</Filter>
<Filter Include="Resource Files\assets\videos">
<UniqueIdentifier>{27ee93e0-2ba6-4baf-84d1-17ff6a9cb619}</UniqueIdentifier>
</Filter>
</ItemGroup>
<ItemGroup>
<ClCompile Include="main.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="build.bat" />
</ItemGroup>
<ItemGroup>
<Image Include="sce_sys\icon0.png">
<Filter>Resource Files\sce_sys</Filter>
</Image>
</ItemGroup>
<ItemGroup>
<None Include="sce_sys\about\right.sprx">
<Filter>Resource Files\sce_sys\about</Filter>
</None>
<None Include="sce_module\libSceFios2.prx">
<Filter>Resource Files\sce_module</Filter>
</None>
<None Include="sce_module\libc.prx">
<Filter>Resource Files\sce_module</Filter>
</None>
<None Include="assets\audio\.gitkeep">
<Filter>Resource Files\assets\audio</Filter>
</None>
<None Include="assets\fonts\.gitkeep">
<Filter>Resource Files\assets\fonts</Filter>
</None>
<None Include="assets\images\.gitkeep">
<Filter>Resource Files\assets\images</Filter>
</None>
<None Include="assets\misc\.gitkeep">
<Filter>Resource Files\assets\misc</Filter>
</None>
<None Include="assets\videos\.gitkeep">
<Filter>Resource Files\assets\videos</Filter>
</None>
</ItemGroup>
</Project>
@@ -0,0 +1,80 @@
SETLOCAL EnableDelayedExpansion
Rem Package information
set PKG_TITLE="My Homebrew"
set PKG_VERSION="1.00"
set PKG_ASSETS="assets"
set PKG_TITLE_ID="BREW00100"
set PKG_CONTENT_ID="IV0000-BREW00100_00-MYHOMEBREW000000"
Rem Libraries to link in
set libraries=-lc -lkernel -lc++
Rem set extra_flags=
Rem Read the script arguments into local vars
set intdir=%1
set targetname=%~2
set outputPath=%3
set outputElf=%intdir%\%targetname%.elf
set outputOelf=%intdir%\%targetname%.oelf
@mkdir %intdir%
Rem Compile object files for all the source files
for %%f in (*.c) do (
clang --target=x86_64-pc-freebsd12-elf -fPIC -funwind-tables -I"%OO_PS4_TOOLCHAIN%\\include" -I"%OO_PS4_TOOLCHAIN%\\include\\c++\\v1" %extra_flags% -c -o %intdir%\%%~nf.o %%~nf.c
)
for %%f in (*.cpp) do (
clang++ --target=x86_64-pc-freebsd12-elf -fPIC -funwind-tables -I"%OO_PS4_TOOLCHAIN%\\include" -I"%OO_PS4_TOOLCHAIN%\\include\\c++\\v1" %extra_flags% -c -o %intdir%\%%~nf.o %%~nf.cpp
)
Rem Get a list of object files for linking
set obj_files=
for %%f in (%1\\*.o) do set obj_files=!obj_files! .\%%f
Rem Link the input ELF
ld.lld -m elf_x86_64 -pie --script "%OO_PS4_TOOLCHAIN%\link.x" --eh-frame-hdr -o "%outputElf%" "-L%OO_PS4_TOOLCHAIN%\\lib" %libraries% --verbose "%OO_PS4_TOOLCHAIN%\lib\crt1.o" %obj_files%
Rem Create the eboot
%OO_PS4_TOOLCHAIN%\bin\windows\create-fself.exe -in "%outputElf%" --out "%outputOelf%" --eboot "eboot.bin" --paid 0x3800000000000011
Rem Create param.sfo
%OO_PS4_TOOLCHAIN%\bin\windows\PkgTool.Core.exe sfo_new sce_sys/param.sfo
%OO_PS4_TOOLCHAIN%\bin\windows\PkgTool.Core.exe sfo_setentry sce_sys/param.sfo APP_TYPE --type Integer --maxsize 4 --value 1
%OO_PS4_TOOLCHAIN%\bin\windows\PkgTool.Core.exe sfo_setentry sce_sys/param.sfo APP_VER --type Utf8 --maxsize 8 --value %PKG_VERSION%
%OO_PS4_TOOLCHAIN%\bin\windows\PkgTool.Core.exe sfo_setentry sce_sys/param.sfo ATTRIBUTE --type Integer --maxsize 4 --value 0
%OO_PS4_TOOLCHAIN%\bin\windows\PkgTool.Core.exe sfo_setentry sce_sys/param.sfo CATEGORY --type Utf8 --maxsize 4 --value "gd"
%OO_PS4_TOOLCHAIN%\bin\windows\PkgTool.Core.exe sfo_setentry sce_sys/param.sfo CONTENT_ID --type Utf8 --maxsize 48 --value %PKG_CONTENT_ID%
%OO_PS4_TOOLCHAIN%\bin\windows\PkgTool.Core.exe sfo_setentry sce_sys/param.sfo DOWNLOAD_DATA_SIZE --type Integer --maxsize 4 --value 0
%OO_PS4_TOOLCHAIN%\bin\windows\PkgTool.Core.exe sfo_setentry sce_sys/param.sfo SYSTEM_VER --type Integer --maxsize 4 --value 0
%OO_PS4_TOOLCHAIN%\bin\windows\PkgTool.Core.exe sfo_setentry sce_sys/param.sfo TITLE --type Utf8 --maxsize 128 --value %PKG_TITLE%
%OO_PS4_TOOLCHAIN%\bin\windows\PkgTool.Core.exe sfo_setentry sce_sys/param.sfo TITLE_ID --type Utf8 --maxsize 12 --value %PKG_TITLE_ID%
%OO_PS4_TOOLCHAIN%\bin\windows\PkgTool.Core.exe sfo_setentry sce_sys/param.sfo VERSION --type Utf8 --maxsize 8 --value %PKG_VERSION%
Rem Get a list of assets for packaging
set module_files=
for %%f in (sce_module\\*) do set module_files=!module_files! sce_module/%%~nxf
set asset_audio_files=
for %%f in (assets\\audio\\*) do set asset_audio_files=!asset_audio_files! assets/audio/%%~nxf
set asset_fonts_files=
for %%f in (assets\\fonts\\*) do set asset_fonts_files=!asset_fonts_files! assets/fonts/%%~nxf
set asset_images_files=
for %%f in (assets\\images\\*) do set asset_images_files=!asset_images_files! assets/images/%%~nxf
set asset_misc_files=
for %%f in (assets\\misc\\*) do set asset_misc_files=!asset_misc_files! assets/misc/%%~nxf
set asset_videos_files=
for %%f in (assets\\videos\\*) do set asset_videos_files=!asset_videos_files! assets/videos/%%~nxf
Rem Create gp4
%OO_PS4_TOOLCHAIN%\bin\windows\create-gp4.exe -out pkg.gp4 --content-id=%PKG_CONTENT_ID% --files "eboot.bin sce_sys/about/right.sprx sce_sys/param.sfo sce_sys/icon0.png %module_files% %asset_audio_files% %asset_fonts_files% %asset_images_files% %asset_misc_files% %asset_videos_files%"
Rem Create pkg
%OO_PS4_TOOLCHAIN%\bin\windows\PkgTool.Core.exe pkg_build pkg.gp4 ..
Binary file not shown.
@@ -0,0 +1,7 @@
#include <stdio.h>
int main()
{
// Your code here...
return 0;
}
@@ -0,0 +1,43 @@
<?xml version="1.0"?>
<psproject xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" fmt="gp4" version="1000">
<volume>
<volume_type>pkg_ps4_app</volume_type>
<volume_id>PS4VOLUME</volume_id>
<volume_ts>2022-03-27 20:03:08</volume_ts>
<package content_id="IV0000-BREW00100_00-MYHOMEBREW000000" passcode="00000000000000000000000000000000"
storage_type="digital50" app_type="full" />
<chunk_info chunk_count="1" scenario_count="1">
<chunks>
<chunk id="0" layer_no="0" label="Chunk #0" />
</chunks>
<scenarios default_id="0">
<scenario id="0" type="sp" initial_chunk_count="1" label="Scenario #0">0</scenario>
</scenarios>
</chunk_info>
</volume>
<files img_no="0">
<file targ_path="eboot.bin" orig_path="eboot.bin" />
<file targ_path="sce_sys/about/right.sprx" orig_path="sce_sys/about/right.sprx" />
<file targ_path="sce_sys/param.sfo" orig_path="sce_sys/param.sfo" />
<file targ_path="sce_sys/icon0.png" orig_path="sce_sys/icon0.png" />
<file targ_path="sce_module/libc.prx" orig_path="sce_module/libc.prx" />
<file targ_path="sce_module/libSceFios2.prx" orig_path="sce_module/libSceFios2.prx" />
<file targ_path="assets/audio/.gitkeep" orig_path="assets/audio/.gitkeep" />
<file targ_path="assets/fonts/.gitkeep" orig_path="assets/fonts/.gitkeep" />
<file targ_path="assets/images/.gitkeep" orig_path="assets/images/.gitkeep" />
<file targ_path="assets/misc/.gitkeep" orig_path="assets/misc/.gitkeep" />
<file targ_path="assets/videos/.gitkeep" orig_path="assets/videos/.gitkeep" /> </files>
<rootdir>
<dir targ_name="sce_sys">
<dir targ_name="about" />
</dir>
<dir targ_name="sce_module" />
<dir targ_name="assets">
<dir targ_name="audio" />
<dir targ_name="fonts" />
<dir targ_name="images" />
<dir targ_name="misc" />
<dir targ_name="videos" />
</dir>
</rootdir>
</psproject>
Binary file not shown.

After

Width:  |  Height:  |  Size: 197 KiB

+2 -2
View File
@@ -158,7 +158,7 @@ Config::Data_s* Config::Data;
bool Config::Read(const char* File)
{
int fd = sceKernelOpen(File, SCE_KERNEL_O_RDONLY, 0511);
int fd = sceKernelOpen(File, ORBIS_KERNEL_O_RDONLY, 0511);
if (fd)
{
@@ -217,7 +217,7 @@ bool Config::Parse(const char* File)
bool Config::Write(const char* File)
{
int fd = sceKernelOpen(File, SCE_KERNEL_O_CREAT | SCE_KERNEL_O_WRONLY, 0777);
int fd = sceKernelOpen(File, ORBIS_KERNEL_O_CREAT | ORBIS_KERNEL_O_WRONLY, 0777);
if (fd)
{
+1 -1
View File
@@ -3,7 +3,7 @@
bool KDriver::TestDriver()
{
int fd = sceKernelOpen("/dev/OrbisSuite", SCE_KERNEL_O_RDONLY, 0);
int fd = sceKernelOpen("/dev/OrbisSuite", ORBIS_KERNEL_O_RDONLY, 0);
if (fd > 0)
{
klog("Driver Installed...\n");
+4 -4
View File
@@ -36,7 +36,7 @@ void Menu::Init()
int fd;
OrbisKernelStat stats;
char* Dent_Buffer;
OrbisKernelDirents *dent;
OrbisKernelDirent *dent;
int bpos;
//Open a file descriptor on the directory where daemons are stored.
@@ -57,7 +57,7 @@ void Menu::Init()
for (bpos = 0; bpos < nread;)
{
//dent is our curent directory.
dent = (OrbisKernelDirents*) (Dent_Buffer + bpos);
dent = (OrbisKernelDirent*) (Dent_Buffer + bpos);
//Find any daemons that arent system. Making sure the type is directory and its name doesnt contain NPXS.
if (dent->d_type == DT_DIR && !strstr(dent->d_name, "NPXS") && !strstr(dent->d_name, ".") && !strstr(dent->d_name, PAYLOAD_DAEMON))
@@ -83,7 +83,7 @@ void Menu::Init()
int fd;
OrbisKernelStat stats;
char* Dent_Buffer;
OrbisKernelDirents *dent;
OrbisKernelDirent *dent;
int bpos;
//Open a file descriptor on the directory where daemons are stored.
@@ -104,7 +104,7 @@ void Menu::Init()
for (bpos = 0; bpos < nread;)
{
//dent is our curent directory.
dent = (OrbisKernelDirents*)(Dent_Buffer + bpos);
dent = (OrbisKernelDirent*)(Dent_Buffer + bpos);
//Find any daemons that arent system. Making sure the type is directory and its name doesnt contain NPXS.
if (dent->d_type == DT_DIR && !strstr(dent->d_name, "NPXS") && !strstr(dent->d_name, ".") && !strstr(dent->d_name, PAYLOAD_DAEMON))
+4 -5
View File
@@ -50,17 +50,16 @@ bool Mono::Init()
Vsh_Lx = Get_Image("/%s/common/lib/Sce.Vsh.Lx.dll", sceKernelGetFsSandboxRandomWord());
SysfileUtilWrapper = Get_Image("/%s/common/lib/Sce.Vsh.SysfileUtilWrapper.dll", sceKernelGetFsSandboxRandomWord());
SceKernelSystemSwVersion Version;
Version.Size = sizeof(SceKernelSystemSwVersion);
OrbisKernelSwVersion Version;
sceKernelGetSystemSwVersion(&Version);
char Version_Short[] = { Version.info[1], Version.info[3], Version.info[4] };
char Version_Short[] = { Version.s_version[1], Version.s_version[3], Version.s_version[4] };
Software_Version = atoi(Version_Short);
klog("Software Version: %s %i\n", Version.info, Software_Version);
klog("Software Version: %s %i\n", Version.s_version, Software_Version);
switch (Software_Version)
{
default:
klog("Unsuported Software Version!! \"%s\"(%i)\n", Version.info, Software_Version);
klog("Unsuported Software Version!! \"%s\"(%i)\n", Version.s_version, Software_Version);
break;
case 505:
+2 -2
View File
@@ -5,7 +5,7 @@
extern "C"
{
int module_start()
int __cdecl module_start(size_t argc, const void *args)
{
klog("!! Hello World !!\n");
@@ -26,7 +26,7 @@ extern "C"
return 0;
}
int module_stop()
int __cdecl module_stop(size_t argc, const void *args)
{
klog("!! BYE !!\n");
+1 -1
View File
@@ -171,7 +171,7 @@ void System_Monitor::Init()
scePthreadAttrSetstacksize(&attr, 0x80000);
OrbisPthread* id;
scePthreadCreate(&id, &attr, Monitor_Thread, NULL, "System Monitor Thread");
scePthreadCreate(&id, &attr, (void*)Monitor_Thread, NULL, "System Monitor Thread");
}
void System_Monitor::Term()
+9 -9
View File
@@ -16,23 +16,23 @@ void klog(const char* fmt, ...)
void Notify(const char* MessageFMT, ...)
{
NotifyBuffer Buffer;
OrbisNotificationRequest Buffer;
//Create full string from va list.
va_list args;
va_start(args, MessageFMT);
vsprintf(Buffer.Message, MessageFMT, args);
vsprintf(Buffer.message, MessageFMT, args);
va_end(args);
//Populate the notify buffer.
Buffer.Type = NotifyType::NotificationRequest; //this one is just a standard one and will print what ever is stored at the buffer.Message.
Buffer.type = OrbisNotificationRequestType::NotificationRequest; //this one is just a standard one and will print what ever is stored at the buffer.Message.
Buffer.unk3 = 0;
Buffer.UseIconImageUri = 1; //Bool to use a custom uri.
Buffer.TargetId = -1; //Not sure if name is correct but is always set to -1.
strcpy(Buffer.Uri, "https://i.imgur.com/SJPIBGG.png"); //Copy the uri to the buffer.
Buffer.useIconImageUri = 1; //Bool to use a custom uri.
Buffer.targetId = -1; //Not sure if name is correct but is always set to -1.
strcpy(Buffer.iconUri, "https://i.imgur.com/SJPIBGG.png"); //Copy the uri to the buffer.
//From user land we can call int64_t sceKernelSendNotificationRequest(int64_t unk1, char* Buffer, size_t size, int64_t unk2) which is a libkernel import.
sceKernelSendNotificationRequest(0, (char*)&Buffer, 3120, 0);
sceKernelSendNotificationRequest(0, &Buffer, 3120, 0);
//What sceKernelSendNotificationRequest is doing is opening the device "/dev/notification0" or "/dev/notification1"
// and writing the NotifyBuffer we created to it. Somewhere in ShellUI it is read and parsed into a json which is where
@@ -96,10 +96,10 @@ void Get_Page_Table_Stats(int vm, int type, int* Used, int* Free, int* Total)
{
int _Total = 0, _Free = 0;
if (get_page_table_stats(vm, type, &_Total, &_Free) == -1) {
/*if (get_page_table_stats(vm, type, &_Total, &_Free) == -1) {
klog("get_page_table_stats() Failed.\n");
return;
}
}*/
if (Used)
*Used = (_Total - _Free);
-47
View File
@@ -1,52 +1,5 @@
#pragma once
enum NotifyType
{
NotificationRequest = 0,
SystemNotification = 1,
SystemNotificationWithUserId = 2,
SystemNotificationWithDeviceId = 3,
SystemNotificationWithDeviceIdRelatedToUser = 4,
SystemNotificationWithText = 5,
SystemNotificationWithTextRelatedToUser = 6,
SystemNotificationWithErrorCode = 7,
SystemNotificationWithAppId = 8,
SystemNotificationWithAppName = 9,
SystemNotificationWithAppInfo = 9,
SystemNotificationWithAppNameRelatedToUser = 10,
SystemNotificationWithParams = 11,
SendSystemNotificationWithUserName = 12,
SystemNotificationWithUserNameInfo = 13,
SendAddressingSystemNotification = 14,
AddressingSystemNotificationWithDeviceId = 15,
AddressingSystemNotificationWithUserName = 16,
AddressingSystemNotificationWithUserId = 17,
UNK_1 = 100,
TrcCheckNotificationRequest = 101,
NpDebugNotificationRequest = 102,
UNK_2 = 102,
};
struct NotifyBuffer
{ //Naming may be incorrect.
NotifyType Type; //0x00
int ReqId; //0x04
int Priority; //0x08
int MsgId; //0x0C
int TargetId; //0x10
int UserId; //0x14
int unk1; //0x18
int unk2; //0x1C
int AppId; //0x20
int ErrorNum; //0x24
int unk3; //0x28
char UseIconImageUri; //0x2C
char Message[1024]; //0x2D
char Uri[1024]; //0x42D
char unkstr[1024]; //0x82D
}; //Size = 0xC30
#define ARRAY_COUNT(arry) sizeof(arry) / sizeof(arry[0])
typedef unsigned char vm_prot_t; /* protection codes */
+11 -11
View File
@@ -1,11 +1,11 @@
#pragma once
#define ORBIS_TOOLBOX_MAJOR 1
#define ORBIS_TOOLBOX_MINOR 0
#define ORBIS_TOOLBOX_BUILDVERSION 1229
#define stringify(a) stringify_(a)
#define stringify_(a) #a
#if defined(ORBIS_TOOLBOX_DEBUG)
#define ORBIS_TOOLBOX_BUILDSTRING ("[Orbis Toolbox Alpha Version " stringify(ORBIS_TOOLBOX_MAJOR) "." stringify(ORBIS_TOOLBOX_MINOR) "] Dev Build " stringify(ORBIS_TOOLBOX_BUILDVERSION) " " __DATE__ " " __TIME__)
#else
#define ORBIS_TOOLBOX_BUILDSTRING ("[Orbis Toolbox Alpha Version " stringify(ORBIS_TOOLBOX_MAJOR) "." stringify(ORBIS_TOOLBOX_MINOR) "] Build " stringify(ORBIS_TOOLBOX_BUILDVERSION) " " __DATE__ " " __TIME__)
#endif
#pragma once
#define ORBIS_TOOLBOX_MAJOR 1
#define ORBIS_TOOLBOX_MINOR 0
#define ORBIS_TOOLBOX_BUILDVERSION 1249
#define stringify(a) stringify_(a)
#define stringify_(a) #a
#if defined(ORBIS_TOOLBOX_DEBUG)
#define ORBIS_TOOLBOX_BUILDSTRING ("[Orbis Toolbox Alpha Version " stringify(ORBIS_TOOLBOX_MAJOR) "." stringify(ORBIS_TOOLBOX_MINOR) "] Dev Build " stringify(ORBIS_TOOLBOX_BUILDVERSION) " " __DATE__ " " __TIME__)
#else
#define ORBIS_TOOLBOX_BUILDSTRING ("[Orbis Toolbox Alpha Version " stringify(ORBIS_TOOLBOX_MAJOR) "." stringify(ORBIS_TOOLBOX_MINOR) "] Build " stringify(ORBIS_TOOLBOX_BUILDVERSION) " " __DATE__ " " __TIME__)
#endif
+2 -2
View File
@@ -15,7 +15,7 @@ set outputStub=%intdir%%targetname%_stub.so
Rem Compile object files for all the source files -DORBIS_TOOLBOX_DEBUG
for %%f in (*.cpp) do (
clang++ -cc1 -triple x86_64-scei-ps4-elf -munwind-tables -I"%OO_PS4_TOOLCHAIN%\include" -I"%OO_PS4_TOOLCHAIN%\\include\\c++\\v1" -emit-obj -o %intdir%\%%~nf.o %%~nf.cpp
clang++ -cc1 -triple x86_64-scei-ps4-elf -I"%OO_PS4_TOOLCHAIN%\include" -I"%OO_PS4_TOOLCHAIN%\\include\\c++\\v1" -emit-obj -o %intdir%\%%~nf.o %%~nf.cpp
)
Rem Compile object files for all the assembly files
@@ -41,7 +41,7 @@ for %%f in (%intdir%\\*.o.stub) do set stub_obj_files=!stub_obj_files! .\%%f
clang++ -target x86_64-pc-linux-gnu -shared -fuse-ld=lld -ffreestanding -nostdlib -fno-builtin "-L%OO_PS4_TOOLCHAIN%\lib" %libraries% %stub_obj_files% -o "%outputStub%"
Rem Create the prx
%OO_PS4_TOOLCHAIN%\bin\windows\create-lib.exe -in "%outputElf%" --out "%outputOelf%" --paid 0x3800000000010003
%OO_PS4_TOOLCHAIN%\bin\windows\create-fself.exe -in "%outputElf%" --out "%outputOelf%" --lib "%outputPrx%" --paid 0x3800000000010003
Rem Cleanup
copy "%outputPrx%" "%outputPath%\Playstation\Build\pkg\Orbis Toolbox\%targetname%.sprx"
+1
View File
@@ -0,0 +1 @@
#pragma once
@@ -0,0 +1,75 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup Label="ProjectConfigurations">
<ProjectConfiguration Include="Debug|x64">
<Configuration>Debug</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|x64">
<Configuration>Release</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
</ItemGroup>
<PropertyGroup Label="Globals">
<VCProjectVersion>15.0</VCProjectVersion>
<ProjectGuid>{57244f52-ba7c-4d89-9c38-d80ad9727721}</ProjectGuid>
<Keyword>Win32Proj</Keyword>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
<ConfigurationType>Makefile</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries>
<PlatformToolset>v141</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
<ConfigurationType>Makefile</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries>
<PlatformToolset>v141</PlatformToolset>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings">
</ImportGroup>
<ImportGroup Label="Shared">
</ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<PropertyGroup Label="UserMacros" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<NMakePreprocessorDefinitions>WIN32;_DEBUG;$(NMakePreprocessorDefinitions)</NMakePreprocessorDefinitions>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<NMakePreprocessorDefinitions>_DEBUG;$(NMakePreprocessorDefinitions)</NMakePreprocessorDefinitions>
<NMakeBuildCommandLine>call build.bat $(IntDir) "$(TargetName)" "$(SolutionDir)"</NMakeBuildCommandLine>
<NMakeReBuildCommandLine>del /s /q /f $(IntDir)\*.o
del /s /q /f $(IntDir)\*.elf
del /s /q /f $(IntDir)\*.oelf
call build.bat $(IntDir) "$(TargetName)" "$(SolutionDir)"</NMakeReBuildCommandLine>
<NMakeCleanCommandLine>del /s /q /f $(IntDir)\*.o
del /s /q /f $(IntDir)\*.elf
del /s /q /f $(IntDir)\*.oelf</NMakeCleanCommandLine>
<OutDir>$(SolutionDir)</OutDir>
<NMakeIncludeSearchPath>$(OO_PS4_TOOLCHAIN)\include;$(NMakeIncludeSearchPath)</NMakeIncludeSearchPath>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<NMakePreprocessorDefinitions>WIN32;NDEBUG;$(NMakePreprocessorDefinitions)</NMakePreprocessorDefinitions>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<NMakePreprocessorDefinitions>NDEBUG;$(NMakePreprocessorDefinitions)</NMakePreprocessorDefinitions>
</PropertyGroup>
<ItemDefinitionGroup>
</ItemDefinitionGroup>
<ItemGroup>
<None Include="build.bat" />
</ItemGroup>
<ItemGroup>
<ClInclude Include="Common.h" />
<ClInclude Include="Version.h" />
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">
</ImportGroup>
</Project>
@@ -0,0 +1,31 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<Filter Include="Source Files">
<UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
<Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
</Filter>
<Filter Include="Header Files">
<UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
<Extensions>h;hh;hpp;hxx;hm;inl;inc;ipp;xsd</Extensions>
</Filter>
<Filter Include="Resource Files">
<UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
<Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms</Extensions>
</Filter>
<Filter Include="Header Files\Utilities">
<UniqueIdentifier>{a1e7d8c0-9965-4dae-9e21-fec87fa057a9}</UniqueIdentifier>
</Filter>
</ItemGroup>
<ItemGroup>
<None Include="build.bat" />
</ItemGroup>
<ItemGroup>
<ClInclude Include="Common.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="Version.h">
<Filter>Header Files\Utilities</Filter>
</ClInclude>
</ItemGroup>
</Project>
+11
View File
@@ -0,0 +1,11 @@
#pragma once
#define ORBIS_TOOLBOX_MAJOR 2
#define ORBIS_TOOLBOX_MINOR 0
#define ORBIS_TOOLBOX_BUILDVERSION 0
#define stringify(a) stringify_(a)
#define stringify_(a) #a
#if defined(ORBIS_TOOLBOX_DEBUG)
#define ORBIS_TOOLBOX_BUILDSTRING ("[Orbis Toolbox Version " stringify(ORBIS_TOOLBOX_MAJOR) "." stringify(ORBIS_TOOLBOX_MINOR) "] Dev Build " stringify(ORBIS_TOOLBOX_BUILDVERSION) " " __DATE__ " " __TIME__)
#else
#define ORBIS_TOOLBOX_BUILDSTRING ("[Orbis Toolbox Version " stringify(ORBIS_TOOLBOX_MAJOR) "." stringify(ORBIS_TOOLBOX_MINOR) "] Build " stringify(ORBIS_TOOLBOX_BUILDVERSION) " " __DATE__ " " __TIME__)
#endif
+61
View File
@@ -0,0 +1,61 @@
SETLOCAL EnableDelayedExpansion
Rem Libraries to link in
set libraries=-lc -lkernel -lc++
Rem set extra_flags=
Rem Read the script arguments into local vars
set intdir=%1
set targetname=%~2
set outputPath=%3
set outputElf=%intdir%\%targetname%.elf
set outputOelf=%intdir%\%targetname%.oelf
set outputPrx=%targetname%.prx
set outputStub=%targetname%_stub.so
@mkdir %intdir%
Rem Compile object files for all the source files
for %%f in (*.c) do (
clang --target=x86_64-pc-freebsd12-elf -fPIC -funwind-tables -I"%OO_PS4_TOOLCHAIN%\\include" %extra_flags% -c -o %intdir%\%%~nf.o %%~nf.c
)
for %%f in (*.cpp) do (
clang++ --target=x86_64-pc-freebsd12-elf -fPIC -funwind-tables -I"%OO_PS4_TOOLCHAIN%\\include" -I"%OO_PS4_TOOLCHAIN%\\include\\c++\\v1" %extra_flags% -c -o %intdir%\%%~nf.o %%~nf.cpp
)
Rem Get a list of object files for linking
set obj_files=
for %%f in (%intdir%\\*.o) do set obj_files=!obj_files! .\%%f
Rem Link the input ELF
ld.lld -m elf_x86_64 -pie --script "%OO_PS4_TOOLCHAIN%\link.x" --eh-frame-hdr -o "%outputElf%" "-L%OO_PS4_TOOLCHAIN%\lib" %libraries% --verbose "%OO_PS4_TOOLCHAIN%\lib\crtlib.o" %obj_files%
Rem Create stub shared libraries
for %%f in (*.c) do (
clang -target x86_64-pc-linux-gnu -ffreestanding -nostdlib -fno-builtin -fPIC -c -I"%OO_PS4_TOOLCHAIN%\include" -o %intdir%\%%~nf.o.stub %%~nf.cpp
)
for %%f in (*.cpp) do (
clang++ -target x86_64-pc-linux-gnu -ffreestanding -nostdlib -fno-builtin -fPIC -c -I"%OO_PS4_TOOLCHAIN%\include" -I"%OO_PS4_TOOLCHAIN%\\include\\c++\\v1" -o %intdir%\%%~nf.o.stub %%~nf.cpp
)
set stub_obj_files=
for %%f in (%intdir%\\*.o.stub) do set stub_obj_files=!stub_obj_files! .\%%f
clang++ -target x86_64-pc-linux-gnu -shared -fuse-ld=lld -ffreestanding -nostdlib -fno-builtin "-L%OO_PS4_TOOLCHAIN%\lib" %libraries% %stub_obj_files% -o "%outputStub%"
Rem Create the prx
%OO_PS4_TOOLCHAIN%\bin\windows\create-fself.exe -in "%outputElf%" --out "%outputOelf%" --lib "%outputPrx%" --paid 0x3800000000010003
Rem Eboot cleanup
copy %outputPrx% %outputPath%\%outputPrx%
copy %outputStub%%outputPath%\%outputStub%
del %outputPrx%
del %outputStub%
Rem cleanup...
rd /s /q %intdir%
Rem rd /s /q %intdir%\..\
@@ -1 +1 @@
954
956
@@ -1 +1 @@
Version 3.0.954 Debug Build Friday March 25 2022 6:35 PM
Version 3.0.956 Debug Build Sunday March 27 2022 11:29 AM