Adding some debug projects. & Toolbox 2.0 Project :)
@@ -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>
|
||||
|
After Width: | Height: | Size: 25 KiB |
|
After Width: | Height: | Size: 42 KiB |
|
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>
|
||||
|
After Width: | Height: | Size: 25 KiB |
|
After Width: | Height: | Size: 42 KiB |
|
After Width: | Height: | Size: 42 KiB |
@@ -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 ..
|
||||
@@ -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>
|
||||
|
After Width: | Height: | Size: 197 KiB |
@@ -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)
|
||||
{
|
||||
|
||||
@@ -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");
|
||||
|
||||
@@ -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))
|
||||
|
||||
@@ -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:
|
||||
|
||||
@@ -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");
|
||||
|
||||
|
||||
@@ -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()
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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 */
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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>
|
||||
@@ -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
|
||||
@@ -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
|
||||
|
||||