|
|
|
@ -2,6 +2,7 @@
|
|
|
|
|
// Licensed under GPLv2 or any later version
|
|
|
|
|
// Refer to the license.txt file included.
|
|
|
|
|
|
|
|
|
|
#include <algorithm>
|
|
|
|
|
#include "common/log.h"
|
|
|
|
|
#include "common/make_unique.h"
|
|
|
|
|
#include "core/file_sys/archive_systemsavedata.h"
|
|
|
|
@ -33,8 +34,8 @@ const std::array<float, 8> STEREO_CAMERA_SETTINGS = {
|
|
|
|
|
10.0f, 5.0f, 55.58000183105469f, 21.56999969482422f
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
const u32 CONFIG_SAVEFILE_SIZE = 0x8000;
|
|
|
|
|
std::array<u8, CONFIG_SAVEFILE_SIZE> cfg_config_file_buffer = {};
|
|
|
|
|
static const u32 CONFIG_SAVEFILE_SIZE = 0x8000;
|
|
|
|
|
static std::array<u8, CONFIG_SAVEFILE_SIZE> cfg_config_file_buffer;
|
|
|
|
|
|
|
|
|
|
static std::unique_ptr<FileSys::Archive_SystemSaveData> cfg_system_save_data;
|
|
|
|
|
|
|
|
|
@ -118,7 +119,7 @@ ResultCode FormatConfig() {
|
|
|
|
|
if (!res.IsSuccess())
|
|
|
|
|
return res;
|
|
|
|
|
// Delete the old data
|
|
|
|
|
std::fill(cfg_config_file_buffer.begin(), cfg_config_file_buffer.end(), 0);
|
|
|
|
|
cfg_config_file_buffer.fill(0);
|
|
|
|
|
// Create the header
|
|
|
|
|
SaveFileConfig* config = reinterpret_cast<SaveFileConfig*>(cfg_config_file_buffer.data());
|
|
|
|
|
// This value is hardcoded, taken from 3dbrew, verified by hardware, it's always the same value
|
|
|
|
@ -160,9 +161,8 @@ ResultCode FormatConfig() {
|
|
|
|
|
void CFGInit() {
|
|
|
|
|
// TODO(Subv): In the future we should use the FS service to query this archive,
|
|
|
|
|
// currently it is not possible because you can only have one open archive of the same type at any time
|
|
|
|
|
using Common::make_unique;
|
|
|
|
|
std::string syssavedata_directory = FileUtil::GetUserPath(D_SYSSAVEDATA_IDX);
|
|
|
|
|
cfg_system_save_data = make_unique<FileSys::Archive_SystemSaveData>(
|
|
|
|
|
cfg_system_save_data = Common::make_unique<FileSys::Archive_SystemSaveData>(
|
|
|
|
|
syssavedata_directory, CFG_SAVE_ID);
|
|
|
|
|
if (!cfg_system_save_data->Initialize()) {
|
|
|
|
|
LOG_CRITICAL(Service_CFG, "Could not initialize SystemSaveData archive for the CFG:U service");
|
|
|
|
|