Merge pull request #13049 from Leystryku/master
Fix Just Dance 2023 not booting
This commit is contained in:
commit
6d731e1aa1
|
@ -64,8 +64,8 @@ struct RawNACP {
|
||||||
u64_le cache_storage_size;
|
u64_le cache_storage_size;
|
||||||
u64_le cache_storage_journal_size;
|
u64_le cache_storage_journal_size;
|
||||||
u64_le cache_storage_data_and_journal_max_size;
|
u64_le cache_storage_data_and_journal_max_size;
|
||||||
u64_le cache_storage_max_index;
|
u16_le cache_storage_max_index;
|
||||||
INSERT_PADDING_BYTES(0xE70);
|
INSERT_PADDING_BYTES(0xE76);
|
||||||
};
|
};
|
||||||
static_assert(sizeof(RawNACP) == 0x4000, "RawNACP has incorrect size.");
|
static_assert(sizeof(RawNACP) == 0x4000, "RawNACP has incorrect size.");
|
||||||
|
|
||||||
|
|
|
@ -15,6 +15,7 @@
|
||||||
#include "core/hle/service/cmif_serialization.h"
|
#include "core/hle/service/cmif_serialization.h"
|
||||||
#include "core/hle/service/filesystem/filesystem.h"
|
#include "core/hle/service/filesystem/filesystem.h"
|
||||||
#include "core/hle/service/filesystem/save_data_controller.h"
|
#include "core/hle/service/filesystem/save_data_controller.h"
|
||||||
|
#include "core/hle/service/glue/glue_manager.h"
|
||||||
#include "core/hle/service/ns/ns.h"
|
#include "core/hle/service/ns/ns.h"
|
||||||
#include "core/hle/service/sm/sm.h"
|
#include "core/hle/service/sm/sm.h"
|
||||||
|
|
||||||
|
@ -40,7 +41,7 @@ IApplicationFunctions::IApplicationFunctions(Core::System& system_, std::shared_
|
||||||
{26, D<&IApplicationFunctions::GetSaveDataSize>, "GetSaveDataSize"},
|
{26, D<&IApplicationFunctions::GetSaveDataSize>, "GetSaveDataSize"},
|
||||||
{27, D<&IApplicationFunctions::CreateCacheStorage>, "CreateCacheStorage"},
|
{27, D<&IApplicationFunctions::CreateCacheStorage>, "CreateCacheStorage"},
|
||||||
{28, D<&IApplicationFunctions::GetSaveDataSizeMax>, "GetSaveDataSizeMax"},
|
{28, D<&IApplicationFunctions::GetSaveDataSizeMax>, "GetSaveDataSizeMax"},
|
||||||
{29, nullptr, "GetCacheStorageMax"},
|
{29, D<&IApplicationFunctions::GetCacheStorageMax>, "GetCacheStorageMax"},
|
||||||
{30, D<&IApplicationFunctions::BeginBlockingHomeButtonShortAndLongPressed>, "BeginBlockingHomeButtonShortAndLongPressed"},
|
{30, D<&IApplicationFunctions::BeginBlockingHomeButtonShortAndLongPressed>, "BeginBlockingHomeButtonShortAndLongPressed"},
|
||||||
{31, D<&IApplicationFunctions::EndBlockingHomeButtonShortAndLongPressed>, "EndBlockingHomeButtonShortAndLongPressed"},
|
{31, D<&IApplicationFunctions::EndBlockingHomeButtonShortAndLongPressed>, "EndBlockingHomeButtonShortAndLongPressed"},
|
||||||
{32, D<&IApplicationFunctions::BeginBlockingHomeButton>, "BeginBlockingHomeButton"},
|
{32, D<&IApplicationFunctions::BeginBlockingHomeButton>, "BeginBlockingHomeButton"},
|
||||||
|
@ -267,6 +268,22 @@ Result IApplicationFunctions::GetSaveDataSizeMax(Out<u64> out_max_normal_size,
|
||||||
R_SUCCEED();
|
R_SUCCEED();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Result IApplicationFunctions::GetCacheStorageMax(Out<u32> out_cache_storage_index_max,
|
||||||
|
Out<u64> out_max_journal_size) {
|
||||||
|
LOG_DEBUG(Service_AM, "called");
|
||||||
|
|
||||||
|
std::vector<u8> nacp;
|
||||||
|
R_TRY(system.GetARPManager().GetControlProperty(&nacp, m_applet->program_id));
|
||||||
|
|
||||||
|
auto raw_nacp = std::make_unique<FileSys::RawNACP>();
|
||||||
|
std::memcpy(raw_nacp.get(), nacp.data(), std::min(sizeof(*raw_nacp), nacp.size()));
|
||||||
|
|
||||||
|
*out_cache_storage_index_max = static_cast<u32>(raw_nacp->cache_storage_max_index);
|
||||||
|
*out_max_journal_size = static_cast<u64>(raw_nacp->cache_storage_data_and_journal_max_size);
|
||||||
|
|
||||||
|
R_SUCCEED();
|
||||||
|
}
|
||||||
|
|
||||||
Result IApplicationFunctions::BeginBlockingHomeButtonShortAndLongPressed(s64 unused) {
|
Result IApplicationFunctions::BeginBlockingHomeButtonShortAndLongPressed(s64 unused) {
|
||||||
LOG_WARNING(Service_AM, "(STUBBED) called");
|
LOG_WARNING(Service_AM, "(STUBBED) called");
|
||||||
|
|
||||||
|
|
|
@ -40,6 +40,7 @@ private:
|
||||||
Result CreateCacheStorage(Out<u32> out_target_media, Out<u64> out_required_size, u16 index,
|
Result CreateCacheStorage(Out<u32> out_target_media, Out<u64> out_required_size, u16 index,
|
||||||
u64 normal_size, u64 journal_size);
|
u64 normal_size, u64 journal_size);
|
||||||
Result GetSaveDataSizeMax(Out<u64> out_max_normal_size, Out<u64> out_max_journal_size);
|
Result GetSaveDataSizeMax(Out<u64> out_max_normal_size, Out<u64> out_max_journal_size);
|
||||||
|
Result GetCacheStorageMax(Out<u32> out_cache_storage_index_max, Out<u64> out_max_journal_size);
|
||||||
Result BeginBlockingHomeButtonShortAndLongPressed(s64 unused);
|
Result BeginBlockingHomeButtonShortAndLongPressed(s64 unused);
|
||||||
Result EndBlockingHomeButtonShortAndLongPressed();
|
Result EndBlockingHomeButtonShortAndLongPressed();
|
||||||
Result BeginBlockingHomeButton(s64 timeout_ns);
|
Result BeginBlockingHomeButton(s64 timeout_ns);
|
||||||
|
|
|
@ -336,7 +336,7 @@ FSP_SRV::FSP_SRV(Core::System& system_)
|
||||||
{1012, nullptr, "GetFsStackUsage"},
|
{1012, nullptr, "GetFsStackUsage"},
|
||||||
{1013, nullptr, "UnsetSaveDataRootPath"},
|
{1013, nullptr, "UnsetSaveDataRootPath"},
|
||||||
{1014, nullptr, "OutputMultiProgramTagAccessLog"},
|
{1014, nullptr, "OutputMultiProgramTagAccessLog"},
|
||||||
{1016, nullptr, "FlushAccessLogOnSdCard"},
|
{1016, &FSP_SRV::FlushAccessLogOnSdCard, "FlushAccessLogOnSdCard"},
|
||||||
{1017, nullptr, "OutputApplicationInfoAccessLog"},
|
{1017, nullptr, "OutputApplicationInfoAccessLog"},
|
||||||
{1018, nullptr, "SetDebugOption"},
|
{1018, nullptr, "SetDebugOption"},
|
||||||
{1019, nullptr, "UnsetDebugOption"},
|
{1019, nullptr, "UnsetDebugOption"},
|
||||||
|
@ -706,6 +706,13 @@ void FSP_SRV::GetProgramIndexForAccessLog(HLERequestContext& ctx) {
|
||||||
rb.Push(access_log_program_index);
|
rb.Push(access_log_program_index);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void FSP_SRV::FlushAccessLogOnSdCard(HLERequestContext& ctx) {
|
||||||
|
LOG_DEBUG(Service_FS, "(STUBBED) called");
|
||||||
|
|
||||||
|
IPC::ResponseBuilder rb{ctx, 2};
|
||||||
|
rb.Push(ResultSuccess);
|
||||||
|
}
|
||||||
|
|
||||||
void FSP_SRV::GetCacheStorageSize(HLERequestContext& ctx) {
|
void FSP_SRV::GetCacheStorageSize(HLERequestContext& ctx) {
|
||||||
IPC::RequestParser rp{ctx};
|
IPC::RequestParser rp{ctx};
|
||||||
const auto index{rp.Pop<s32>()};
|
const auto index{rp.Pop<s32>()};
|
||||||
|
|
|
@ -58,6 +58,7 @@ private:
|
||||||
void SetGlobalAccessLogMode(HLERequestContext& ctx);
|
void SetGlobalAccessLogMode(HLERequestContext& ctx);
|
||||||
void GetGlobalAccessLogMode(HLERequestContext& ctx);
|
void GetGlobalAccessLogMode(HLERequestContext& ctx);
|
||||||
void OutputAccessLogToSdCard(HLERequestContext& ctx);
|
void OutputAccessLogToSdCard(HLERequestContext& ctx);
|
||||||
|
void FlushAccessLogOnSdCard(HLERequestContext& ctx);
|
||||||
void GetProgramIndexForAccessLog(HLERequestContext& ctx);
|
void GetProgramIndexForAccessLog(HLERequestContext& ctx);
|
||||||
void OpenMultiCommitManager(HLERequestContext& ctx);
|
void OpenMultiCommitManager(HLERequestContext& ctx);
|
||||||
void GetCacheStorageSize(HLERequestContext& ctx);
|
void GetCacheStorageSize(HLERequestContext& ctx);
|
||||||
|
|
Reference in New Issue