mirror of
https://github.com/shadps4-emu/shadPS4.git
synced 2025-06-14 22:53:15 +00:00
- sceKernelUuidCreate, sceAppContentAppParamGetInt, sceAppContentTemporaryDataMount2 (#199)
- PlayGo - stub libusbd -added /temp0 and /data mounts at emu start. (Ghost Files: Memory of a Crime, Abyss: The Wraiths of Eden) - some posix functions
This commit is contained in:
parent
c5d1d579b1
commit
0fa7d5d02c
19 changed files with 900 additions and 14 deletions
|
@ -3,7 +3,12 @@
|
|||
|
||||
// Generated By moduleGenerator
|
||||
#include <cmath>
|
||||
#include <common/path_util.h>
|
||||
#include <common/singleton.h>
|
||||
#include <core/file_format/psf.h>
|
||||
#include <core/file_sys/fs.h>
|
||||
#include "app_content.h"
|
||||
#include "common/io_file.h"
|
||||
#include "common/logging/log.h"
|
||||
#include "core/libraries/error_codes.h"
|
||||
#include "core/libraries/libs.h"
|
||||
|
@ -45,9 +50,29 @@ int PS4_SYSV_ABI sceAppContentAddcontUnmount() {
|
|||
return ORBIS_OK;
|
||||
}
|
||||
|
||||
int PS4_SYSV_ABI sceAppContentAppParamGetInt() {
|
||||
LOG_ERROR(Lib_AppContent, "(STUBBED) called");
|
||||
return ORBIS_OK;
|
||||
int PS4_SYSV_ABI sceAppContentAppParamGetInt(OrbisAppContentAppParamId paramId, s32* value) {
|
||||
if (value == nullptr)
|
||||
return 0x80D90002;
|
||||
auto* param_sfo = Common::Singleton<PSF>::Instance();
|
||||
switch (paramId) {
|
||||
case ORBIS_APP_CONTENT_APPPARAM_ID_SKU_FLAG:
|
||||
*value = ORBIS_APP_CONTENT_APPPARAM_SKU_FLAG_FULL;
|
||||
break;
|
||||
case ORBIS_APP_CONTENT_APPPARAM_ID_USER_DEFINED_PARAM_1:
|
||||
*value = param_sfo->GetInteger("USER_DEFINED_PARAM_1");
|
||||
break;
|
||||
case ORBIS_APP_CONTENT_APPPARAM_ID_USER_DEFINED_PARAM_2:
|
||||
*value = param_sfo->GetInteger("USER_DEFINED_PARAM_2");
|
||||
break;
|
||||
case ORBIS_APP_CONTENT_APPPARAM_ID_USER_DEFINED_PARAM_3:
|
||||
*value = param_sfo->GetInteger("USER_DEFINED_PARAM_3");
|
||||
break;
|
||||
case ORBIS_APP_CONTENT_APPPARAM_ID_USER_DEFINED_PARAM_4:
|
||||
*value = param_sfo->GetInteger("USER_DEFINED_PARAM_4");
|
||||
break;
|
||||
}
|
||||
LOG_ERROR(Lib_AppContent, " paramId = {}, value = {}", paramId, *value);
|
||||
return *value == -1 ? 0x80D90005 : ORBIS_OK;
|
||||
}
|
||||
|
||||
int PS4_SYSV_ABI sceAppContentAppParamGetString() {
|
||||
|
@ -147,8 +172,10 @@ int PS4_SYSV_ABI sceAppContentTemporaryDataFormat() {
|
|||
return ORBIS_OK;
|
||||
}
|
||||
|
||||
int PS4_SYSV_ABI sceAppContentTemporaryDataGetAvailableSpaceKb() {
|
||||
int PS4_SYSV_ABI sceAppContentTemporaryDataGetAvailableSpaceKb(
|
||||
const OrbisAppContentMountPoint* mountPoint, size_t* availableSpaceKb) {
|
||||
LOG_ERROR(Lib_AppContent, "(STUBBED) called");
|
||||
*availableSpaceKb = 1073741824;
|
||||
return ORBIS_OK;
|
||||
}
|
||||
|
||||
|
@ -157,8 +184,15 @@ int PS4_SYSV_ABI sceAppContentTemporaryDataMount() {
|
|||
return ORBIS_OK;
|
||||
}
|
||||
|
||||
int PS4_SYSV_ABI sceAppContentTemporaryDataMount2() {
|
||||
LOG_ERROR(Lib_AppContent, "(STUBBED) called");
|
||||
int PS4_SYSV_ABI sceAppContentTemporaryDataMount2(OrbisAppContentTemporaryDataOption option,
|
||||
OrbisAppContentMountPoint* mountPoint) {
|
||||
auto* param_sfo = Common::Singleton<PSF>::Instance();
|
||||
std::string id(param_sfo->GetString("CONTENT_ID"), 7, 9);
|
||||
const auto& mount_dir = Common::FS::GetUserPath(Common::FS::PathType::TempDataDir) / id;
|
||||
auto* mnt = Common::Singleton<Core::FileSys::MntPoints>::Instance();
|
||||
mnt->Mount(mount_dir, mountPoint->data);
|
||||
LOG_INFO(Lib_AppContent, "sceAppContentTemporaryDataMount2: option = {}, mountPoint = {}",
|
||||
option, mountPoint->data);
|
||||
return ORBIS_OK;
|
||||
}
|
||||
|
||||
|
|
|
@ -11,6 +11,15 @@ class SymbolsResolver;
|
|||
|
||||
namespace Libraries::AppContent {
|
||||
|
||||
constexpr int ORBIS_APP_CONTENT_APPPARAM_ID_SKU_FLAG = 0;
|
||||
constexpr int ORBIS_APP_CONTENT_APPPARAM_ID_USER_DEFINED_PARAM_1 = 1;
|
||||
constexpr int ORBIS_APP_CONTENT_APPPARAM_ID_USER_DEFINED_PARAM_2 = 2;
|
||||
constexpr int ORBIS_APP_CONTENT_APPPARAM_ID_USER_DEFINED_PARAM_3 = 3;
|
||||
constexpr int ORBIS_APP_CONTENT_APPPARAM_ID_USER_DEFINED_PARAM_4 = 4;
|
||||
|
||||
constexpr int ORBIS_APP_CONTENT_APPPARAM_SKU_FLAG_TRIAL = 1;
|
||||
constexpr int ORBIS_APP_CONTENT_APPPARAM_SKU_FLAG_FULL = 3;
|
||||
|
||||
struct OrbisAppContentInitParam {
|
||||
char reserved[32];
|
||||
};
|
||||
|
@ -21,6 +30,23 @@ struct OrbisAppContentBootParam {
|
|||
char reserved2[32];
|
||||
};
|
||||
|
||||
typedef u32 OrbisAppContentTemporaryDataOption;
|
||||
constexpr int ORBIS_APP_CONTENT_MOUNTPOINT_DATA_MAXSIZE = 16;
|
||||
typedef struct OrbisAppContentMountPoint {
|
||||
|
||||
char data[ORBIS_APP_CONTENT_MOUNTPOINT_DATA_MAXSIZE];
|
||||
} OrbisAppContentMountPoint;
|
||||
|
||||
constexpr int ORBIS_APP_CONTENT_TEMPORARY_DATA_OPTION_NONE = 0;
|
||||
constexpr int ORBIS_APP_CONTENT_TEMPORARY_DATA_OPTION_FORMAT = (1 << 0);
|
||||
constexpr int ORBIS_NP_UNIFIED_ENTITLEMENT_LABEL_SIZE = 17;
|
||||
typedef struct OrbisNpUnifiedEntitlementLabel {
|
||||
|
||||
char data[ORBIS_NP_UNIFIED_ENTITLEMENT_LABEL_SIZE];
|
||||
} OrbisNpUnifiedEntitlementLabel;
|
||||
|
||||
typedef u32 OrbisAppContentAppParamId;
|
||||
|
||||
int PS4_SYSV_ABI _Z5dummyv();
|
||||
int PS4_SYSV_ABI sceAppContentAddcontDelete();
|
||||
int PS4_SYSV_ABI sceAppContentAddcontEnqueueDownload();
|
||||
|
@ -28,7 +54,7 @@ int PS4_SYSV_ABI sceAppContentAddcontEnqueueDownloadSp();
|
|||
int PS4_SYSV_ABI sceAppContentAddcontMount();
|
||||
int PS4_SYSV_ABI sceAppContentAddcontShrink();
|
||||
int PS4_SYSV_ABI sceAppContentAddcontUnmount();
|
||||
int PS4_SYSV_ABI sceAppContentAppParamGetInt();
|
||||
int PS4_SYSV_ABI sceAppContentAppParamGetInt(OrbisAppContentAppParamId paramId, s32* value);
|
||||
int PS4_SYSV_ABI sceAppContentAppParamGetString();
|
||||
int PS4_SYSV_ABI sceAppContentDownload0Expand();
|
||||
int PS4_SYSV_ABI sceAppContentDownload0Shrink();
|
||||
|
@ -49,9 +75,11 @@ int PS4_SYSV_ABI sceAppContentSmallSharedDataGetAvailableSpaceKb();
|
|||
int PS4_SYSV_ABI sceAppContentSmallSharedDataMount();
|
||||
int PS4_SYSV_ABI sceAppContentSmallSharedDataUnmount();
|
||||
int PS4_SYSV_ABI sceAppContentTemporaryDataFormat();
|
||||
int PS4_SYSV_ABI sceAppContentTemporaryDataGetAvailableSpaceKb();
|
||||
int PS4_SYSV_ABI sceAppContentTemporaryDataGetAvailableSpaceKb(
|
||||
const OrbisAppContentMountPoint* mountPoint, size_t* availableSpaceKb);
|
||||
int PS4_SYSV_ABI sceAppContentTemporaryDataMount();
|
||||
int PS4_SYSV_ABI sceAppContentTemporaryDataMount2();
|
||||
int PS4_SYSV_ABI sceAppContentTemporaryDataMount2(OrbisAppContentTemporaryDataOption option,
|
||||
OrbisAppContentMountPoint* mountPoint);
|
||||
int PS4_SYSV_ABI sceAppContentTemporaryDataUnmount();
|
||||
int PS4_SYSV_ABI sceAppContentGetPftFlag();
|
||||
int PS4_SYSV_ABI Func_C59A36FF8D7C59DA();
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue