mirror of
https://github.com/SysRay/psOff_public.git
synced 2025-02-17 04:50:09 +00:00
Implement some deprecated SaveData API
This commit is contained in:
parent
9938ea8a7d
commit
bc7a2b98d4
2
.vscode/launch.json
vendored
2
.vscode/launch.json
vendored
@ -6,7 +6,7 @@
|
||||
"type": "cppvsdbg",
|
||||
"request": "launch",
|
||||
"program": "${config:psoff.root-path}/emulator.exe",
|
||||
"args": ["--file", "${config:psoff.game-path}/eboot.bin", "--d"],
|
||||
"args": ["--file", "${config:psoff.game-path}/eboot.bin", "--d", "${config:psoff.add-arg}"],
|
||||
"stopAtEntry": false,
|
||||
"cwd": "${config:psoff.root-path}",
|
||||
"environment": [],
|
||||
|
@ -246,6 +246,11 @@ class VideoOut: public IVideoOut, private IEventsGraphics {
|
||||
}
|
||||
}
|
||||
|
||||
void getSafeAreaRatio(float* area) final {
|
||||
auto ext = m_imageHandler.get()->getExtent();
|
||||
if (area != nullptr) *area = ext.width / (float)ext.height;
|
||||
}
|
||||
|
||||
vulkan::DeviceInfo* getDeviceInfo() final { return &m_vulkanObj->deviceInfo; }
|
||||
|
||||
int addEvent(int handle, EventQueue::KernelEqueueEvent const& event, Kernel::EventQueue::IKernelEqueue_t eq) final;
|
||||
|
@ -53,6 +53,13 @@ class IVideoOut {
|
||||
*/
|
||||
virtual void setFliprate(int handle, int rate) = 0;
|
||||
|
||||
/**
|
||||
* @brief Returns the current display's safe area
|
||||
*
|
||||
* @param area
|
||||
*/
|
||||
virtual void getSafeAreaRatio(float* area) = 0;
|
||||
|
||||
/**
|
||||
* @brief Add a VIDEO_OUT_EVENT for the window
|
||||
*
|
||||
|
@ -207,10 +207,6 @@ EXPORT SYSV_ABI int32_t sceSaveDataSyncSaveDataMemory(const SceSaveDataMemorySyn
|
||||
return Ok;
|
||||
}
|
||||
|
||||
EXPORT SYSV_ABI int32_t sceSaveDataSetupSaveDataMemory(const SceUserServiceUserId userId, size_t memorySize, const SceSaveDataParam* param) {
|
||||
return Ok;
|
||||
}
|
||||
|
||||
EXPORT SYSV_ABI int32_t sceSaveDataSetupSaveDataMemory2(const SceSaveDataMemorySetup2* setupParam, SceSaveDataMemorySetupResult* result) {
|
||||
if (setupParam == nullptr || setupParam->memorySize == 0 || setupParam->option != SceSaveDataMemoryOption::SET_PARAM) return getErr(ErrCode::_EINVAL);
|
||||
|
||||
@ -269,13 +265,21 @@ EXPORT SYSV_ABI int32_t sceSaveDataSetupSaveDataMemory2(const SceSaveDataMemoryS
|
||||
return Ok;
|
||||
}
|
||||
|
||||
EXPORT SYSV_ABI int32_t sceSaveDataGetSaveDataMemory(const SceUserServiceUserId userId, void* buf, const size_t bufSize, const uint64_t offset) {
|
||||
if (buf == nullptr || bufSize == 0) return getErr(ErrCode::_EINVAL);
|
||||
::memset(buf, 0, bufSize);
|
||||
return Ok;
|
||||
EXPORT SYSV_ABI int32_t sceSaveDataSetupSaveDataMemory(const SceUserServiceUserId userId, size_t memorySize, const SceSaveDataParam* param) {
|
||||
const SceSaveDataMemorySetup2 ssdms2 {
|
||||
.option = SceSaveDataMemoryOption::SET_PARAM,
|
||||
.userId = userId,
|
||||
.memorySize = memorySize,
|
||||
.iconMemorySize = 0,
|
||||
.initParam = param,
|
||||
.initIcon = nullptr,
|
||||
.slotId = 0,
|
||||
};
|
||||
|
||||
return sceSaveDataSetupSaveDataMemory2(&ssdms2, nullptr);
|
||||
}
|
||||
|
||||
EXPORT SYSV_ABI int32_t sceSaveDataGetSaveDataMemory2(SceSaveDataMemoryGet2* getParam) {
|
||||
EXPORT SYSV_ABI int32_t sceSaveDataGetSaveDataMemory2(const SceSaveDataMemoryGet2* getParam) {
|
||||
if (getParam == nullptr || getParam->data == nullptr || getParam->data->buf == nullptr) return getErr(ErrCode::_EINVAL);
|
||||
|
||||
auto filename = std::format("SLOT{}_UID{}.dat", getParam->slotId, getParam->userId);
|
||||
@ -321,8 +325,21 @@ EXPORT SYSV_ABI int32_t sceSaveDataGetSaveDataMemory2(SceSaveDataMemoryGet2* get
|
||||
return Ok;
|
||||
}
|
||||
|
||||
EXPORT SYSV_ABI int32_t sceSaveDataSetSaveDataMemory(const SceUserServiceUserId userId, const void* buf, const size_t bufSize, const uint64_t offset) {
|
||||
return Ok;
|
||||
EXPORT SYSV_ABI int32_t sceSaveDataGetSaveDataMemory(const SceUserServiceUserId userId, void* buf, const size_t bufSize, const int64_t offset) {
|
||||
if (buf == nullptr || bufSize == 0) return getErr(ErrCode::_EINVAL);
|
||||
SceSaveDataMemoryData ssdmd {
|
||||
.buf = buf,
|
||||
.bufSize = bufSize,
|
||||
.offset = offset,
|
||||
};
|
||||
const SceSaveDataMemoryGet2 ssdmg2 {
|
||||
.userId = userId,
|
||||
.data = &ssdmd,
|
||||
.param = nullptr,
|
||||
.icon = nullptr,
|
||||
.slotId = 0,
|
||||
};
|
||||
return sceSaveDataGetSaveDataMemory2(&ssdmg2);
|
||||
}
|
||||
|
||||
EXPORT SYSV_ABI int32_t sceSaveDataSetSaveDataMemory2(const SceSaveDataMemorySet2* setParam) {
|
||||
@ -378,6 +395,23 @@ EXPORT SYSV_ABI int32_t sceSaveDataSetSaveDataMemory2(const SceSaveDataMemorySet
|
||||
return Ok;
|
||||
}
|
||||
|
||||
EXPORT SYSV_ABI int32_t sceSaveDataSetSaveDataMemory(const SceUserServiceUserId userId, const void* buf, const size_t bufSize, const int64_t offset) {
|
||||
SceSaveDataMemoryData ssdmd {
|
||||
.buf = (void*)buf,
|
||||
.bufSize = bufSize,
|
||||
.offset = offset,
|
||||
};
|
||||
const SceSaveDataMemorySet2 ssdms2 {
|
||||
.userId = userId,
|
||||
.data = &ssdmd,
|
||||
.param = nullptr,
|
||||
.icon = nullptr,
|
||||
.dataNum = 1,
|
||||
.slotId = 0,
|
||||
};
|
||||
return sceSaveDataSetSaveDataMemory2(&ssdms2);
|
||||
}
|
||||
|
||||
EXPORT SYSV_ABI int32_t sceSaveDataRestoreBackupData(const SceSaveDataRestoreBackupData* restore) {
|
||||
LOG_USE_MODULE(libSceSaveData);
|
||||
LOG_ERR(L"todo %S", __FUNCTION__);
|
||||
|
@ -154,7 +154,7 @@ struct SceSaveDataDirNameSearchResult {
|
||||
|
||||
struct SceSaveDataMemorySync {
|
||||
int32_t userId;
|
||||
uint32_t slotId;
|
||||
uint32_t slotId; // Values: 0...3
|
||||
SceSaveDataMemorySyncOption option;
|
||||
uint8_t reserved[28];
|
||||
};
|
||||
@ -203,7 +203,7 @@ struct SceSaveDataMemorySetup2 {
|
||||
size_t iconMemorySize;
|
||||
const SceSaveDataParam* initParam;
|
||||
const SceSaveDataIcon* initIcon;
|
||||
uint32_t slotId;
|
||||
uint32_t slotId; // Values: 0...3
|
||||
uint8_t reserved[20];
|
||||
};
|
||||
|
||||
@ -218,7 +218,7 @@ struct SceSaveDataMemoryGet2 {
|
||||
SceSaveDataMemoryData* data;
|
||||
SceSaveDataParam* param;
|
||||
SceSaveDataIcon* icon;
|
||||
uint32_t slotId;
|
||||
uint32_t slotId; // Values: 0...3
|
||||
uint8_t reserved[28];
|
||||
};
|
||||
|
||||
@ -229,7 +229,7 @@ struct SceSaveDataMemorySet2 {
|
||||
const SceSaveDataParam* param;
|
||||
const SceSaveDataIcon* icon;
|
||||
uint32_t dataNum;
|
||||
uint32_t slotId;
|
||||
uint32_t slotId; // Values: 0...3
|
||||
uint8_t reserved[24];
|
||||
};
|
||||
|
||||
@ -243,4 +243,4 @@ struct SceSaveDataEvent {
|
||||
SceSaveDataTitleId titleId;
|
||||
SceSaveDataDirName dirName;
|
||||
uint8_t reserved[40];
|
||||
};
|
||||
};
|
||||
|
@ -5,8 +5,9 @@ set(libName libSceSystemService)
|
||||
project(${libName})
|
||||
|
||||
add_library(${libName} SHARED entry.cpp)
|
||||
|
||||
add_dependencies(${libName} core config_emu)
|
||||
target_link_libraries(${libName} PRIVATE SDL2 ${Vulkan_LIBRARIES} config_emu.lib)
|
||||
target_link_libraries(${libName} PRIVATE core.lib SDL2 ${Vulkan_LIBRARIES} config_emu.lib)
|
||||
target_compile_definitions(${libName} PRIVATE BOOST_ALL_NO_LIB WIN32_LEAN_AND_MEAN)
|
||||
|
||||
setupModule(${libName})
|
||||
setupModule(${libName})
|
||||
|
@ -1,4 +1,5 @@
|
||||
#include "common.h"
|
||||
#include "core/videoout/videoout.h"
|
||||
#include "logging.h"
|
||||
#include "system_param.h"
|
||||
#include "tools/config_emu/config_emu.h"
|
||||
@ -153,10 +154,7 @@ EXPORT SYSV_ABI int32_t sceSystemServiceGetDisplaySafeAreaInfo(SceSystemServiceD
|
||||
return Err::SERVICE_ERROR_PARAMETER;
|
||||
}
|
||||
|
||||
info->ratio = 16.0f / 9.0f;
|
||||
|
||||
LOG_USE_MODULE(libSceSystemService);
|
||||
LOG_TRACE(L"todo %S", __FUNCTION__);
|
||||
accessVideoOut().getSafeAreaRatio(&info->ratio);
|
||||
return Ok;
|
||||
}
|
||||
|
||||
|
@ -1,7 +1,6 @@
|
||||
cmake_minimum_required(VERSION 3.24)
|
||||
set(libName libSceVideoOut)
|
||||
include(../setupModule.cmake)
|
||||
|
||||
set(libName libSceVideoOut)
|
||||
project(${libName})
|
||||
|
||||
add_library(${libName} SHARED entry.cpp)
|
||||
@ -9,4 +8,4 @@ add_library(${libName} SHARED entry.cpp)
|
||||
add_dependencies(${libName} core)
|
||||
target_link_libraries(${libName} PRIVATE core.lib)
|
||||
|
||||
setupModule(${libName})
|
||||
setupModule(${libName})
|
||||
|
Loading…
x
Reference in New Issue
Block a user