[service, ns, acc] Stub IsQualificationTransitionSupportedByProcessId and SaveDataThumbnail commands
All checks were successful
eden-license / license-header (pull_request) Successful in 22s
All checks were successful
eden-license / license-header (pull_request) Successful in 22s
- ns: Stubbed IsQualificationTransitionSupportedByProcessId (2520) to always return true. - acc: added the missing SaveDataThumbnail commands: * ClearSaveDataThumbnail (111) → stubbed, returns success. * LoadSaveDataThumbnail (112) → stubbed, returns success with size=0. * GetSaveDataThumbnailExistence (113) → stubbed, returns false. This allows titles like Borderlands GOTY to progress past save-related errors.
This commit is contained in:
parent
4ea9664ff4
commit
3b18de150e
7 changed files with 54 additions and 8 deletions
|
@ -1108,6 +1108,35 @@ void Module::Interface::StoreSaveDataThumbnail(HLERequestContext& ctx, const Com
|
|||
rb.Push(ResultSuccess);
|
||||
}
|
||||
|
||||
void Module::Interface::ClearSaveDataThumbnail(HLERequestContext& ctx) {
|
||||
LOG_WARNING(Service_ACC, "(STUBBED) called");
|
||||
|
||||
IPC::ResponseBuilder rb{ctx, 2};
|
||||
rb.Push(ResultSuccess);
|
||||
}
|
||||
|
||||
void Module::Interface::LoadSaveDataThumbnail(HLERequestContext& ctx) {
|
||||
// TODO: Grab thumbnail from Nand so this can be unstubbed
|
||||
// For now, pretend a thumbnail exists and return dummy data
|
||||
std::vector<u8> dummy_thumbnail(THUMBNAIL_SIZE, 0);
|
||||
ctx.WriteBuffer(dummy_thumbnail);
|
||||
|
||||
LOG_WARNING(Service_ACC, "(STUBBED) called. returning dummy thumbnail");
|
||||
|
||||
IPC::ResponseBuilder rb{ctx, 3};
|
||||
rb.Push(ResultSuccess);
|
||||
rb.Push<u64>(THUMBNAIL_SIZE);
|
||||
}
|
||||
|
||||
void Module::Interface::GetSaveDataThumbnailExistence(HLERequestContext& ctx) {
|
||||
// TODO: Get actual thumbnail image
|
||||
LOG_WARNING(Service_ACC, "(STUBBED) called. Returning true (dummy thumbnail)");
|
||||
|
||||
IPC::ResponseBuilder rb{ctx, 3};
|
||||
rb.Push(ResultSuccess);
|
||||
rb.Push<bool>(true);
|
||||
}
|
||||
|
||||
void Module::Interface::TrySelectUserWithoutInteractionDeprecated(HLERequestContext& ctx) {
|
||||
LOG_DEBUG(Service_ACC, "called");
|
||||
// A u8 is passed into this function which we can safely ignore. It's to determine if we have
|
||||
|
|
|
@ -47,6 +47,9 @@ public:
|
|||
void StoreSaveDataThumbnailApplication(HLERequestContext& ctx);
|
||||
void GetBaasAccountManagerForSystemService(HLERequestContext& ctx);
|
||||
void StoreSaveDataThumbnailSystem(HLERequestContext& ctx);
|
||||
void ClearSaveDataThumbnail(HLERequestContext& ctx);
|
||||
void LoadSaveDataThumbnail(HLERequestContext& ctx);
|
||||
void GetSaveDataThumbnailExistence(HLERequestContext& ctx);
|
||||
|
||||
private:
|
||||
Result InitializeApplicationInfoBase();
|
||||
|
|
|
@ -33,9 +33,9 @@ ACC_SU::ACC_SU(std::shared_ptr<Module> module_, std::shared_ptr<ProfileManager>
|
|||
{105, nullptr, "CheckNetworkServiceAvailabilityAsync"},
|
||||
{106, nullptr, "GetProfileSyncNotifier"},
|
||||
{110, &ACC_SU::StoreSaveDataThumbnailSystem, "StoreSaveDataThumbnail"},
|
||||
{111, nullptr, "ClearSaveDataThumbnail"},
|
||||
{112, nullptr, "LoadSaveDataThumbnail"},
|
||||
{113, nullptr, "GetSaveDataThumbnailExistence"},
|
||||
{111, &ACC_SU::ClearSaveDataThumbnail, "ClearSaveDataThumbnail"},
|
||||
{112, &ACC_SU::LoadSaveDataThumbnail, "LoadSaveDataThumbnail"},
|
||||
{113, &ACC_SU::GetSaveDataThumbnailExistence, "GetSaveDataThumbnailExistence"},
|
||||
{120, nullptr, "ListOpenUsersInApplication"},
|
||||
{130, nullptr, "ActivateOpenContextRetention"},
|
||||
{140, &ACC_SU::ListQualifiedUsers, "ListQualifiedUsers"},
|
||||
|
|
|
@ -1,3 +1,6 @@
|
|||
// SPDX-FileCopyrightText: Copyright 2025 Eden Emulator Project
|
||||
// SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
// SPDX-FileCopyrightText: Copyright 2018 yuzu Emulator Project
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
|
@ -26,7 +29,7 @@ ACC_U0::ACC_U0(std::shared_ptr<Module> module_, std::shared_ptr<ProfileManager>
|
|||
{102, nullptr, "AuthenticateApplicationAsync"},
|
||||
{103, nullptr, "CheckNetworkServiceAvailabilityAsync"}, // 4.0.0+
|
||||
{110, &ACC_U0::StoreSaveDataThumbnailApplication, "StoreSaveDataThumbnail"},
|
||||
{111, nullptr, "ClearSaveDataThumbnail"},
|
||||
{111, &ACC_U0::ClearSaveDataThumbnail, "ClearSaveDataThumbnail"},
|
||||
{120, nullptr, "CreateGuestLoginRequest"},
|
||||
{130, nullptr, "LoadOpenContext"}, // 5.0.0+
|
||||
{131, &ACC_U0::ListOpenContextStoredUsers, "ListOpenContextStoredUsers"}, // 6.0.0+
|
||||
|
|
|
@ -1,3 +1,6 @@
|
|||
// SPDX-FileCopyrightText: Copyright 2025 Eden Emulator Project
|
||||
// SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
// SPDX-FileCopyrightText: Copyright 2018 yuzu Emulator Project
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
|
@ -29,9 +32,9 @@ ACC_U1::ACC_U1(std::shared_ptr<Module> module_, std::shared_ptr<ProfileManager>
|
|||
{105, nullptr, "CheckNetworkServiceAvailabilityAsync"},
|
||||
{106, nullptr, "GetProfileSyncNotifier"},
|
||||
{110, &ACC_U1::StoreSaveDataThumbnailApplication, "StoreSaveDataThumbnail"},
|
||||
{111, nullptr, "ClearSaveDataThumbnail"},
|
||||
{112, nullptr, "LoadSaveDataThumbnail"},
|
||||
{113, nullptr, "GetSaveDataThumbnailExistence"},
|
||||
{111, &ACC_U1::ClearSaveDataThumbnail, "ClearSaveDataThumbnail"},
|
||||
{112, &ACC_U1::LoadSaveDataThumbnail, "LoadSaveDataThumbnail"},
|
||||
{113, &ACC_U1::GetSaveDataThumbnailExistence, "GetSaveDataThumbnailExistence"},
|
||||
{120, nullptr, "ListOpenUsersInApplication"},
|
||||
{130, nullptr, "ActivateOpenContextRetention"},
|
||||
{140, &ACC_U1::ListQualifiedUsers, "ListQualifiedUsers"},
|
||||
|
|
|
@ -286,7 +286,7 @@ IApplicationManagerInterface::IApplicationManagerInterface(Core::System& system_
|
|||
{2517, nullptr, "CreateApplicationInstance"},
|
||||
{2518, nullptr, "UpdateQualificationForDebug"},
|
||||
{2519, nullptr, "IsQualificationTransitionSupported"},
|
||||
{2520, nullptr, "IsQualificationTransitionSupportedByProcessId"},
|
||||
{2520, D<&IApplicationManagerInterface::IsQualificationTransitionSupportedByProcessId>,"IsQualificationTransitionSupportedByProcessId"},
|
||||
{2521, nullptr, "GetRightsUserChangedEvent"},
|
||||
{2522, nullptr, "IsRomRedirectionAvailable"},
|
||||
{2800, nullptr, "GetApplicationIdOfPreomia"},
|
||||
|
@ -523,4 +523,11 @@ Result IApplicationManagerInterface::GetApplicationTerminateResult(Out<Result> o
|
|||
R_SUCCEED();
|
||||
}
|
||||
|
||||
Result IApplicationManagerInterface::IsQualificationTransitionSupportedByProcessId(
|
||||
Out<bool> out_is_supported, u64 process_id) {
|
||||
LOG_WARNING(Service_NS, "(STUBBED) called. process_id={:016X}", process_id);
|
||||
*out_is_supported = true;
|
||||
R_SUCCEED();
|
||||
}
|
||||
|
||||
} // namespace Service::NS
|
||||
|
|
|
@ -53,6 +53,7 @@ public:
|
|||
u64 application_id);
|
||||
Result CheckApplicationLaunchVersion(u64 application_id);
|
||||
Result GetApplicationTerminateResult(Out<Result> out_result, u64 application_id);
|
||||
Result IsQualificationTransitionSupportedByProcessId(Out<bool> out_is_supported, u64 process_id);
|
||||
|
||||
private:
|
||||
KernelHelpers::ServiceContext service_context;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue